Agent 的进阶使用方法¶
上一节我们学习了 AGENTS.md 的基础用法,以及一些基本指令。一般来说使用上面一节的内容,就可以开始工作了,但是在实际的大量工程过程中,仍然容易踩各种坑。这一节讲解一些具体而且进阶的 Agent 使用方法。
1. 万事开头难:如何启动一个具体的项目¶
作者不建议任何读者一上来直接把简单的需求丢给 Agent 就跑。一个好的项目一定是需要人在工作过程中监控的,至少你需要知道 Agent 大致干了什么事情。
人在与 Agent 合作时实际上担任的是领导的位置:提出方案、架构、设想,给出粗糙或具体的修改意见,交由 Agent 进行处理。如果一个领导对项目毫无掌控力,那么这个项目会以非常快的速度,坍缩成谁都无法把控的样子。
作者喜欢这么启动一个项目:
- 向 Agent 描述大致的需求,让 Agent 简单设想并描述项目框架,或者项目的输入、输出与交互的形式;
- 第二步分是否懂技术:
- 如果懂技术,则向 Agent 不断追问技术选型,并让 Agent 反问项目的环境和具体的细节。很多时候 Agent 会过度设计,为简单的项目需求设计过于复杂的结构和依赖,此时建议遵循奥卡姆剃刀原则,如无必要,勿增实体;
- 如果不懂技术,可以让 Agent 反问用户项目的输入输出和交互细节,不断打磨追问,以收敛到一个非常具体的结构;
- 让 Agent 写一份详细的项目描述和技术选型,后续可以从这个文档启动;
- 让 Agent 准备需要的工作环境。
到这里,整个启动过程基本结束,可以进入详细的工作流程了。
2. AGENTS.md 的进阶写法¶
AGENTS.md 是每一个 Agent 在当前的工作目录里面工作时,一定会遵循的要求。因此,我们可以把一些我们希望 Agent 长期遵循的信息写入到里面。
作者习惯按照下面的结构和流程来组织 AGENTS.md:
- 工作目录的工作目标。比如说,本项目旨在完成一门课程的各个章节的笔记;
- 粗略的文件夹结构。给出粗略的文件夹结构有助于 Agent 在文件夹中寻找需要的文件。但不能写得过于细致,因为代码的变动速度远比参考文档来的快,代码才是最真实的环境,文档不过是一个简要的总结和概括;
- 一些工作规范。比如如何搜索内容,如何整理笔记,如何规范格式等等;
- 额外的索引参考。比如可信的外部网站,准确的本地教材文件,可靠的模板链接,等等;
- AGENTS.md 自身的迭代规范。比如每次执行完一个具体的工作或修复,总结用户在这个过程中提出了何种需求,何种意见,有怎样的偏好,总结并记录到工作规范中。
成熟的 Agent 框架可以一键创建 AGENTS.md,一般输入 /init 即可;但是作者仍然推荐自己规划 AGENTS.md 的结构,毕竟看一个文档总比监控项目简单多了。
3. 反思、总结、蒸馏与进化¶
第二小节里面提到,可以把工作时总结的经验教训总结到 AGENTS.md 里面,从而让 Agent 做当前任务时,更加得心应手。
类似的 Prompt 技巧不止这一个。比如,可以在项目的某一次变动结束后,询问 Agent:
Agent 就会向你做一些项目的总结和简单的教学。
进一步,可以把相关的内容整理进项目文档中,让它成为后续工作的上下文。例如:
请把刚才总结出来的项目经验整理成一份简短的开发笔记,写入 `docs/开发经验.md`。重点记录:
1. 本次任务的目标;
2. 实际采用的方案;
3. 中途发现的问题;
4. 后续继续开发时需要注意的事项。
如果这些内容属于长期规范,也可以让 Agent 进一步提炼到 AGENTS.md 中:
这个过程很重要。Agent 的单次工作结果只是当前任务的产物,经过总结、反思和蒸馏之后,才会变成项目的一部分。项目越复杂,越需要把这些经验沉淀下来。否则每次重新打开项目时,Agent 都会重新摸索一遍文件结构、技术选型、命名习惯和用户偏好。
一个成熟的工作流大致是:
- 让 Agent 完成一个具体任务;
- 让 Agent 总结本次任务做了什么;
- 让 Agent 说明过程中发现了什么潜在问题;
- 让 Agent 提炼出后续可以复用的规则;
- 将重要规则写入
AGENTS.md或项目文档。
这样一来,Agent 就不再只是一次性的代码生成工具。 Agent 会逐渐理解当前项目上下文,随着项目推进,它会越来越清楚这个项目的结构、规范、风格和边界,并成为一个越来越好的合作者。