# Agentic Engineering Patterns 指南

- 来源：meng shao (@shao__meng)
- 发布时间：2026-06-11 08:27
- AIHOT 分数：62
- AIHOT 链接：https://aihot.virxact.com/items/cmq8sd9fg05crslld4aqm0a7a
- 原文链接：https://x.com/shao__meng/status/2064867069167087782

## AI 摘要

Simon Willison 撰写《Agentic Engineering Patterns》指南（2026年2月起连载），阐述专业工程师如何用 Claude Code、Codex 等 coding agent 获得可靠可维护结果。核心区分：Agentic Engineering ≠ Vibe Coding。关键判断：写代码变便宜了，写好代码并没有。五大原则：定义边界（人的工作：定目标、给工具、验结果、把经验写回 harness）、接受新约束、囤积可复用解法、质量应上升而非下降、严守反模式（绝不自审 PR）。实操：Git 作 agent 时间机器、Subagent 省上下文、三层测试防线、线性代码导读消除认知债。

## 正文

再次强烈推荐「Agentic Engineering Patterns」

作者 @simonw 2026 年 2 月起撰写，每周约新增 1-2 章，目前仍在演进。文字由他本人撰写，示例与代码借助 LLM 辅助。

在线阅读：
https://simonwillison.net/guides/agentic-engineering-patterns/

核心目标：如何用好 Claude Code、Codex 这类能写代码、也能执行代码的 coding agent，拿到可靠、可维护的结果。

# 核心概念：Agentic Engineering ≠ Vibe Coding

Vibe Coding vs Agentic Engineering
· 定义来源：Karpathy 提出 vs Willison 提出的专业实践
· 适用人群：常与非程序员原型相关 vs 专业工程师放大既有能力
· 代码质量：未审查、原型级 vs 审查、测试、可上线
· 人的角色：几乎不参与代码理解 vs 定义问题、验证结果、持续改进 harness

Agent 的定义： 在循环中调用工具以达成目标。Coding agent 的关键差异是能执行代码--没有执行能力，LLM 输出价值有限；有了执行，agent 才能迭代到"确实能跑"的软件。

人的工作并未消失，而是上移：
· 决定写什么代码（问题空间有数十种解法与权衡）
· 提供工具与足够细的规格
· 验证结果是否稳健可信
· 把经验写回指令与 harness（LLM 本身不会从错误中学习，但系统可以）

# 全书最重要的一个判断
写代码变便宜了，写好代码并没有。

过去几十年，工程习惯都建立在"代码昂贵"之上：
· 宏观： 大量设计、估算、排期，功能必须数倍覆盖开发成本
· 微观： 是否重构、写测试、补文档、做 debug UI--每个决定都受时间约束
Agent 把这个约束打碎。一个人还能并行跑多个 agent，同时实现、重构、测试、写文档。

但"好代码"仍有明确标准：
· 能跑、且被证明能跑
· 解决对的问题
· 处理错误路径，不只 happy path
· 简洁、可维护
· 有测试与合适文档
· 设计留出演进空间（YAGNI 与可扩展性的平衡）
· 满足安全、可观测性等 non-functional 要求

新习惯： 当直觉说"不值得做"时，不妨开个异步 agent 试一下--最坏情况是浪费几分钟 token；很多过去"不划算"的改进，现在值得做。

# 五大原则层（Principles）

1. 定义边界
Agentic Engineering 是专业工程师用 coding agent（能写能跑）放大能力；不等于 vibe coding（不审代码的原型玩法）。人的核心工作：定目标、给工具、验结果、把经验写回 harness。

2. 接受新约束
写代码几乎免费，写好代码仍然贵。旧习惯（过度规划、跳过测试/文档/重构）要推翻；直觉说「不值得做」时，不妨开个异步 agent 试一下。

3. 囤积可复用解法
积累带可运行证明的代码片段（仓库、笔记、小工具）。最强用法：把两个已验证例子拼进 prompt，让 agent 组合出新方案；每个技巧人类只需解决一次。

4. 质量应上升，而非下降
技术债、命名混乱、大文件拆分等「简单但耗时」的清理，交给后台 agent 做，成本已低到可零容忍 code smell；用原型并行验证技术选型；任务结束做回顾，把有效做法写进指令（复合工程）。

5. 严守反模式
绝不提交自己没审过的 PR。合格标准：确信能跑、体量小、有上下文、描述自己读过、附测试证据。否则只是把活甩给 reviewer。

# 实操层：与 Agent 更好的协作

1. 先懂机制，再谈用法
Agent = LLM + 系统提示 + 工具循环。你不必背实现细节，但要清楚：
· 对话越长越贵；agent 会尽量利用 token 缓存
· 模型无状态，每次重放上下文
· 能执行代码才是 coding agent 与普通 LLM 的分水岭
· Reasoning/Thinking 对调试复杂问题尤其有用

2. Git：大胆用，不必背
把 Git 当 agent 的「时间机器」和「安全网」：
· 新会话恢复上下文：Review changes made today
· 救场：Sort out this git mess for me
· 找丢了的代码：Find and recover my code that does …
· 定位回归：Use git bisect to find when this bug was introduced
· 修 commit / 抽库留历史：Undo last commit / 从新 repo 复制模块并保留 commit 历史

3. Subagent：省上下文，不是炫技
上下文有限，大任务要「分身」：
· Explore：进陌生 repo 先摸清结构，汇总给主 agent
· 并行：多文件独立改动可同时跑，可用更便宜模型
· 专家（审查 / 跑测 / 调试）：隐藏冗长输出，只回报结果
原则： 为省 token 而拆，不为拆而拆；主 agent 够用就别过度分工。

4. 测试：三层防线
1 TDD：先写测 → 确认失败 → 实现至通过
2 建立测试意识：新会话先跑全套测试
3 手动验：python -c / curl / Playwright 真浏览器
4 留证：Showboat 记录命令与真实输出，防编造

5. 理解代码：还认知债
Agent 产出若成黑盒，会积累 认知债（类似技术债，拖慢后续决策）：
· Linear walkthrough：线性导读，用 grep/cat 引用代码，禁止手抄
· Interactive explanation：在导读基础上做可暂停、可调速的动画演示
适用： 陌生代码、自己忘了细节的代码、vibe code 出来却没看过的代码。

### 引用推文

> Simon Willison：@jakedahn I've been writing a whole guide! https://simonwillison.net/guides/agentic-engineering-patterns/
