拆解GitHub 2500个案例后:我们总结出编写AI Agent规范的“六大军规”

神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。

编者按:别再给Agent塞长文档了!掌握这套“数字实习生”管理框架,是让AI从玩具进化为生产力的硬核关键。

目标是编写一份清晰的规范,涵盖恰到好处的细节(包括结构、风格、测试和边界),在引导 AI 的同时避免信息过载。将大任务拆解为小任务,而不是把所有内容都塞进一个庞大的提示词中。先在“只读模式”下进行规划,然后再执行并持续迭代。

“我听过很多关于如何为 AI Agent 编写优秀规范的建议,但始终没发现一套成熟的框架。我也能写出堪比 RFC(征求意见稿)的详尽规范,但一旦上下文过长,模型就会开始‘罢工’。”

许多开发者都有这种挫败感。粗暴地将一份冗长的规范丢给 AI Agent 是行不通的——上下文窗口的限制和模型的“注意力预算”会成为阻碍。关键在于编写“聪明”的规范:这些文档既能清晰地引导 Agent,又能保持在实际的上下文容量内,并随项目同步演进。本指南总结了我在使用 Claude Code 和 Gemini CLI 等开发 Agent 的过程中的最佳实践,提炼出一套规范编写框架,旨在让你的 AI Agent 保持专注且高效。

我们将介绍编写优秀 AI Agent 规范的五项原则,每项原则都以加粗的要点开头。

1. 从顶层愿景开始,让 AI 拟定细节

用一份简练的概要规范启动项目,把细节交给 AI。

与其预先就过度设计,不如从清晰的目标陈述和几个核心需求开始。把它看作是一份“产品简报”,让 Agent 据此生成更详尽的规范。这样可以发挥 AI 擅长补充细节的长处,同时让你掌控大方向。除非你从一开始就有必须满足的极特定技术需求,否则这种方法非常奏效。

其原理在于:基于大语言模型(LLM)的 Agent 在获得明确的概要指令后,非常擅长填充细节;但它们需要一个清晰的任务目标,以防跑偏。通过提供简短的提纲或目标描述,并要求 AI 生成完整的规范(比方说 `spec.md`),就为 Agent 建立了一个持久的参考标准。在与 Agent 协作时,预先规划尤为重要——你可以先迭代计划,然后再交给 Agent 去写代码。这份规范成了你与 AI 共同构建的第一个产物。

实操方法:开启一个新的编程会话并输入以下提示词:

“你是一名 AI 软件工程师。请为 [项目 X] 起草一份详细规范,涵盖目标、功能、约束条件以及分步实施计划。”

初始提示词应保持在高层级——比方说:“构建一个网页应用,让用户可以跟踪任务(待办事项列表),应用需具备用户账户、数据库和简单的 UI”。

Agent 可能会回复一份结构化的规范草案,包括:概述、功能列表、技术栈建议、数据模型等。随后,这份规范就成了你和 Agent 共同参考的“唯一事实来源”。GitHub 的 AI 团队极力推崇规范驱动开发(Spec-driven Development),即“规范成为共享的事实来源……是随项目进化的、活生生的、可执行的产物”。在编写任何代码之前,务必检查并完善 AI 生成的规范,确保它符合你的愿景,并纠正其中的幻觉或偏离目标的细节。

利用“计划模式”强制执行规划优先:像 Claude Code 这样的工具提供了“计划模式”(Plan Mode),将 Agent 限制在只读操作——它可以分析你的代码库并创建详细计划,但在你准备好之前不会编写任何代码。这非常适合规划阶段:在计划模式下启动,描述你想构建的内容,让 Agent 在探索现有代码的同时起草规范。要求它针对计划向你提问,以消除歧义。让它从架构、最佳实践、安全风险和测试策略等方面评审该计划。目标是精炼计划,直到没有任何误解的空间。只有到那时,你才退出计划模式并让 Agent 开始执行。这一工作流可以避免“在规范尚未定型前就匆忙生成代码”这一常见陷阱。

将规范作为上下文:一旦获得批准,将该规范保存下来(比方说存为 `SPEC.md`),并根据需要将相关章节提供给 Agent。许多使用强力模型的开发者正是这么做的——规范文件在不同会话间持久存在,每当项目复工时,它都能为 AI 提供支撑。这减轻了因对话历史过长或重启 Agent 时可能出现的“健忘”问题。这类似于团队中使用产品需求文档 (PRD):它是每个人(人类或 AI)都可以查阅以保持步调一致的参考资料。正如一位工程师所观察到的,经验丰富的人往往“先写好文档,模型仅凭这些输入就可能构建出相匹配的实现”。这份规范就是那份文档。

保持目标导向:AI Agent 的概要规范应更多地关注“做什么”和“为什么”,而不是纠结于“怎么做”的琐碎细节(至少在初期如此)。可以把它想象成用户故事和验收标准:用户是谁?他们需要什么?成功的标准是什么?(比方说:“用户可以添加、编辑、完成任务;数据持久化保存;应用响应迅速且安全”)。这能让 AI 生成的详细规范立足于用户需求和结果,而不仅仅是技术待办事项。正如 GitHub Spec Kit 文档所言,提供关于构建内容及其原因的概要描述,让编程 Agent 生成专注于用户体验和成功标准的详细规范。从大局愿景出发,可以防止 Agent 在随后进入编码阶段时“只见树木不见森林”。

2. 像写专业的 PRD(或 SRS)一样构建规范

将你的 AI 规范视为一份结构化的文档 (PRD),拥有清晰的章节,而不是一堆零散的笔记。

许多开发者对待 Agent 规范的方式与传统的产品需求文档 (PRD) 或系统设计文档非常相似——全面、组织良好且易于让“一根筋”的 AI 解析。这种正式的方法为 Agent 提供了一个可以遵循的蓝图,减少了歧义。

六大核心领域:GitHub 对超过 2500 个 Agent 配置文件进行的分析揭示了一个清晰的模式:最有效的规范涵盖了六个领域。请将其作为完整性检查清单:

  1. 命令: 将可执行命令放在前面——不仅是工具名称,还要带上参数的完整命令:`npm test`、`pytest -v`、`npm run build`。Agent 会频繁参考这些命令。

  2. 测试: 如何运行测试、使用什么框架、测试文件存放位置以及代码覆盖率期望。

  3. 项目结构: 源代码在哪里、测试在哪里、文档在哪里。要明确表述:“`src/` 存放应用代码,`tests/` 存放单元测试,`docs/` 存放文档。”

  4. 代码风格: 一段显示你风格的真实代码片段,胜过三段文字描述。包括命名规范、格式化规则和优秀输出示例。

  5. Git 工作流: 分支命名、提交信息格式、PR 要求。只要你写清楚,Agent 就能照办。

  6. 边界: Agent 绝对不能碰的东西——密钥、第三方库目录、生产环境配置、特定文件夹。“严禁提交密钥”是 GitHub 研究中出现频率最高的有益约束。

明确你的技术栈:说“React 18 配合 TypeScript、Vite 和 Tailwind CSS”,而不是只说“React 项目”。包含版本号和核心依赖。模糊的规范会产生模糊的代码。

使用一致的格式:清晰至上。许多开发者在规范中使用 Markdown 标题甚至类似 XML 的标签来划分章节,因为 AI 模型处理结构化文本的能力优于随意散文。比方说,你可以这样构建规范:

# Project Spec: My team's tasks app

 ## Objective

 * Build a web app for small teams to manage tasks...

 ## Tech Stack

 * React 18+, TypeScript, Vite, Tailwind CSS

* Node.js/Express backend, PostgreSQL, Prisma ORM

 ## Commands

 * Build: `npm run build` (compiles TypeScript, outputs to dist/)

* Test: `npm test` (runs Jest, must pass before commits)

* Lint: `npm run lint --fix` (auto-fixes ESLint errors)

 ## Project Structure

 * `src/` – Application source code

* `tests/` – Unit and integration tests

* `docs/` – Documentation

 ## Boundaries

 * ✅ Always: Run tests before commits, follow naming conventions

* ⚠️ Ask first: Database schema changes, adding dependencies

*

发布时间:2026-03-24 08:24