一、起点:Anthropic 的理念与现实的距离
Anthropic 提出的核心想法是:不要每次都从零开始跟 AI 对话,而是让 AI 一开始就能看到项目的”记忆”。 这个”记忆”包括:- 项目的技术栈和架构规范
- 代码风格约定
- 过去讨论过的设计决策
- 常见问题的解决方案
- 多个开发者同时工作怎么办? 如果大家的进度都记在一个文件里,很容易冲突。
- 规范文档太长怎么办? 我们的前端规范有 1600 多行,后端规范也有几百行,全塞给 AI 会爆 token,而且大部分内容对当前任务其实没用。
- 怎么保证代码质量? AI 写的代码不能直接合到主分支,得有人审核、测试。
- 怎么记录 AI 的工作? 如果出了问题,怎么回溯 AI 到底做了什么?
二、落地:四个核心设计决策
1. 多人协作:每个开发者有独立的进度文件夹
Anthropic 的文章里没怎么提多人协作的问题,但这在真实项目里是绕不开的。 我们的做法是:在workflow/agent-progress/ 目录下,给每个开发者(包括 AI)创建一个独立的文件夹。
比如:
index.md,记录这个开发者当前在做什么、做到哪一步了、遇到了什么问题等。AI 在开始工作前会先读这个文件,了解上下文;工作结束后会更新这个文件,记录新的进度。
这样多个开发者可以同时工作,不会互相干扰。
2. 解决信息过载:两层索引系统
前面提到,我们的规范文档很长(前端 1600+ 行,后端几百行)。在实践中,我们发现直接把完整文档喂给 AI 会带来几个问题: 为什么需要结构化体系?- 信息过载问题:当 AI 需要实现一个”快捷键功能”时,如果把 1600 行的完整前端规范全部读取,AI 会被大量无关内容干扰——比如”API 调用规范”、“状态管理规范”等。这些内容虽然重要,但对当前任务没有帮助,反而会降低 AI 的注意力集中度。
- Token 经济性问题:在长对话中,如果每次都读取完整文档,token 消耗会迅速累积。如果一个对话有 20 轮交互,重复读取文档会浪费大量成本。
- 知识导航问题:开发者(和 AI)需要能快速回答”我现在要实现 X 功能,应该看规范的哪个部分?”如果没有清晰的导航系统,只能靠全文搜索或逐章阅读,效率很低。
我们的解决方案:两层结构
我们设计了index.md + doc.md 的两层知识体系:
index.md 是一个轻量级导航表,它列出了规范的所有章节,并明确标注每个章节的行号范围。更重要的是,它按开发任务类型组织,而不是按文档结构组织。
比如:
- 即时知识访问(Instant Knowledge Access):AI 只需要读取 100 多行的 index.md,就能在几秒内定位到”实现快捷键功能需要看第 876-1425 行”。这比全文搜索或逐章浏览快得多。
-
按需加载(On-Demand Loading):AI 根据当前任务,只读取
doc.md的相关章节(比如 500 行而不是 1600 行)。这样既节省了 token,又避免了信息过载。 - 标准化工作流(Standardized Workflow):这个两层结构成为团队标准——所有人(包括 AI 和新加入的人类开发者)都知道”先看 index,再读 doc”。这降低了认知负担,提高了协作效率。
-
AI 读
index.md,了解规范的整体结构 - 根据当前任务(比如”实现快捷键功能”),AI 在导航表中找到”编写 Command Palette → L876-1425”
-
AI 精确读取
doc.md的第 876-1425 行,获取详细的实现指导 - AI 按照规范编写代码,避免了”不知道从哪里开始”或”遗漏关键细节”的问题
与 Claude Skills 的本质区别
你可能会问:Anthropic 不是推出了 Claude Skills 吗?为什么不直接用 Skills,而要自己搞这套 structure? 这是因为两者解决的问题不同:- Claude Skills 是一种生态驱动的通用能力包,它的设计目标是跨项目复用。比如”git 操作”、“Python 测试”、“文件系统操作”等,这些能力在任何项目里都适用。Skills 追求的是广度和复用性。
- 我们的 structure 是一种项目专用的深度定制体系,它索引,存放了 Mosi 项目的特定架构、技术栈、状态管理模式、API 调用约定等。这些知识是项目独有的,无法跨项目复用。我们的体系追求的是深度和精确性。
- Skills 可以教 AI:“如何写一个 React 组件”(通用知识)
- 我们的 doc.md 教 AI:“在 Mosi 项目里,如何按照我们的特定架构(Monorepo + Turborepo)、状态管理模式(Zustand + URL 状态同步)、API 调用规范(tRPC + SSE + Tool Calls)来写组件”(项目专属知识)
3. 封装最佳实践:短命令系统
为了让开发流程更规范,我们定义了一系列”短命令”,每个短命令对应一个特定的操作。 短命令存放在.cursor/commands/ 目录下,每个命令是一个 .md 文件。
目前常用的短命令有:
-
/init-agent:初始化 AI 会话,让 AI 读取当前开发者的进度和相关规范 -
/check-frontend:让 AI 检查前端代码是否符合规范 -
/check-backend:让 AI 检查后端代码是否符合规范 -
/record-agent-flow:记录本次 AI 工作的内容到进度文件
.md 文件里写的是一段完整的 AI 指令。
比如 check-frontend.md 里可能写着:
/check-frontend 并回车后:
-
Cursor 会自动读取
.cursor/commands/check-frontend.md的内容 - 将这个内容作为提示词注入到当前对话中
- AI 根据这个提示词执行相应的检查操作
/check-frontend,就相当于发送了一个精心设计的完整提示词,保证了指令的一致性和完整性。
而且短命令可以在团队间共享,新人也能直接用上团队积累的经验。
可以把短命令当成一种prompt 的sdk,使用短命令就是在调用我们团队为了某种场景制造的专门的sdk
4. 质量把关:人类开发者的审核机制
虽然 AI 能写代码,但我们不会让 AI 直接提交代码。所有代码都需要人类开发者审核、测试通过后,才能 commit。 典型的流程是:- AI 写代码
- 开发者本地运行,看看功能是否正常
- 开发者 review 代码,看看有没有明显问题
- 如果有问题,让 AI 修改;如果没问题,开发者手动 commit
三、实战:一个完整的开发流程
前面讲了一堆设计理念,可能还是有点抽象。下面用一个真实的例子,展示完整的开发流程。 背景: 我要在前端实现一个快捷键功能,按Cmd+K 唤起搜索框。我已经在本地创建了一个 Git 分支 feat/keyboard-navigation。
第 1 步:初始化 AI 会话
init-agent.md 的内容注入到对话中。这个模板里定义了 AI 需要做的初始化步骤:
AI 按照短命令的指引执行:
-
读取
workflow/agent-progress/taosu/index.md,了解我当前的进度和上下文 -
读取
workflow/frontend-structure/index.md,了解前端规范的整体结构 -
如果有需要,进一步读取
doc.md的相关章节
第 2 步:描述需求
-
根据”快捷键”关键词,去读
workflow/frontend-structure/doc.md的”快捷键系统”章节 -
了解到项目里已经有一个
useKeyboardShortcuthook,可以直接用 - 写代码:在合适的地方调用这个 hook,绑定 Cmd+K 快捷键
第 3 步:本地测试
我在本地运行项目,按Cmd+K,搜索框成功唤起。功能正常。
第 4 步:代码自查
check-frontend.md 的内容(一个详细的代码检查清单)注入到对话中。
AI 根据短命令模板执行检查:
按照模板中定义的检查项,review 刚才写的代码:
- 检查组件命名是否符合规范
- 检查 React hooks 的依赖数组是否完整
- 检查类型定义是否严格
-
检查是否有潜在的性能问题
…
第 5 步:提交代码
第 6 步:记录流程
record-agent-flow.md 的内容注入到对话中,这个模板指导 AI 如何记录工作流程。
AI 按照模板指引执行:
- 总结本次的工作内容(需求、实现方案、遇到的问题、解决方法等)
-
将这些信息格式化后追加到
workflow/agent-progress/taosu/index.md
四、踩过的坑与解决方案
问题 1:短命令的学习成本
新人刚开始用这套系统时,需要学习有哪些短命令、每个命令是干什么的。 我们提供了/onboard-developer 短命令来引导新人。新人只需要运行这个命令,AI 就会按照预设的引导流程,介绍整个工作流系统、常用的短命令、以及如何开始第一个任务。
问题 2:AI 在长对话中会”遗忘”规范
即使在会话开始时通过/init-agent 让 AI 读取了所有规范,但随着对话轮次增加、上下文变长,AI 可能会逐渐”淡忘”最初读取的开发规范细节。这会导致 AI 在写代码时偏离规范要求。
我们的解决方案是:在关键节点用短命令强制 AI 重新查阅规范。
比如 /check-frontend 这个短命令,它的模板内容明确要求 AI:
-
先用
git status查看刚才修改了哪些代码 -
根据改动类型(比如”新增了一个 Hook”),去
index.md找到对应的章节 -
重新读取
doc.md的相关部分(比如”Hook 开发规范 L179-265”) - 对照规范逐项检查代码
五、总结和展望
Anthropic 的”AI 长时记忆”理念很有价值,但要真正落地到多人协作的实际项目中,需要解决很多工程问题。 我们在 Mosi 项目里的实践,核心做了这几件事:- 多人协作支持:每个开发者有独立的进度文件夹
- 规范索引系统:index.md + doc.md 的结构,让 AI 能高效查找规范
- 短命令系统:封装常用操作,提高开发效率
- 人在回路:AI 写代码,人审核提交,保证质量
- 自动化更多流程:比如让 AI 自动创建分支、自动写 commit message 等
- 更智能的规范索引:现在 AI 需要手动判断要读哪些章节,未来可以让 AI 根据任务描述自动匹配相关章节
- 团队知识库:把团队讨论过的设计决策、踩过的坑等,也整理成文档,让 AI 能学习到这些经验
附:相关资源
- Anthropic 的原文: Building effective agents