ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI Native团队开发落地手册:CLAUDE.md与Plan Mode实战

AI Native团队开发落地手册:CLAUDE.md与Plan Mode实战 1. 从“人肉流水线”到“AI Native 团队”为什么我们需要一套完整的开发落地手册过去大半年我一直在带团队做 AI 原生应用的交付。从最初几个人凑在一起写 Prompt、调 API到后来项目越接越多、协作越来越乱我逐渐意识到一个问题大多数团队并不是缺一个会写 Prompt 的人而是缺一套能让“人 Agent”协同运转的工程体系。这套体系就是现在圈子里常说的 AI Native SDLCAI 原生软件开发生命周期。说白了AI Native 团队和传统研发团队最大的区别不在于用不用大模型而在于把 Agent 当成团队里的“一等公民”来对待。传统团队里人是执行主体工具是辅助AI Native 团队里Agent 承担了大量重复性、结构化的执行工作人则退到“定义问题、设计约束、审查结果”的位置上。这个转变听起来简单落地的时候坑非常多——权限怎么管、上下文怎么传、Agent 之间怎么协作、出错怎么回滚每一个都是实打实的工程问题。这篇手册面向的是正在或准备把 AI Agent 引入研发流程的团队负责人、一线开发者和技术管理者。我会把过去踩过的坑、验证过的方案、以及那些“文档里不会写但实际很要命”的细节尽量完整地摊开来讲。核心关键词包括AI Native、SDLC、Agent、CLAUDE.md、Plan Mode这些不是概念堆砌而是我实际项目里每天都在用的东西。先给一个整体判断AI Native 团队的落地本质上是把“研发流程”重新设计成一套可被 Agent 理解和执行的协议。你写的每一份文档、每一个配置文件、每一条约束都是在给 Agent 下指令。想清楚这一点后面的所有设计就都有了主线。2. AI Native SDLC 的整体设计与核心思路拆解2.1 传统 SDLC 和 AI Native SDLC 的本质差异传统 SDLC 的经典阶段是需求、设计、开发、测试、部署、运维每个阶段由人主导工具链是辅助。AI Native SDLC 不是简单地在每个阶段“加一个 AI 助手”而是重新划分人机职责边界。我习惯用一个类比来解释传统团队像是一家餐厅厨师人做菜厨具工具辅助AI Native 团队更像是一家中央厨房菜谱规范文档和半成品Agent 产出是核心资产厨师更多是在做品控和创意菜。Agent 负责的是“按菜谱批量出餐”人负责的是“定菜谱、尝味道、改配方”。这个差异带来的直接后果是文档的重要性被放大了十倍。在传统团队里文档写得好不好影响的是沟通效率在 AI Native 团队里文档写得好不好直接决定 Agent 能不能正确执行。这就是为什么 CLAUDE.md 这类文件会成为整个体系的核心。2.2 为什么选择“Agent 规范文档 Plan Mode”这套组合市面上 Agent 框架很多从通用型的到垂直领域的都有。我最终选择以“规范文档驱动 Plan Mode 先行 多 Agent 分工”作为主线原因有三点。第一规范文档是唯一能同时被人和 Agent 理解的媒介。你不可能让每个 Agent 都去读一遍完整的代码库但你可以让它读一份结构化的 CLAUDE.md里面写清楚项目结构、编码规范、常用命令、禁区。这份文档既是新人的 onboarding 材料也是 Agent 的“系统提示词”。第二Plan Mode 解决了“Agent 一上来就乱改代码”的问题。早期我们直接让 Agent 执行任务结果它经常在没理解需求的情况下就动手改出来的东西南辕北辙。Plan Mode 强制 Agent 先输出一份执行计划人确认后再执行。这个“先想后做”的机制把返工率降了一大截。第三多 Agent 分工比单 Agent 全能更可控。一个 Agent 既写代码又做测试又管部署上下文会爆炸出错也难定位。拆成“规划 Agent、编码 Agent、审查 Agent、测试 Agent”之后每个 Agent 的职责清晰上下文窗口也不会被无关信息占满。2.3 团队角色与 Agent 角色的映射关系落地之前我建议先把团队角色和 Agent 角色做一次映射。下面这张表是我们团队实际用的版本你可以根据自己情况调整。团队角色对应 Agent 角色核心职责关键约束技术负责人规划 Agent拆解需求、输出执行计划必须经人确认才能进入执行开发工程师编码 Agent按计划写代码、改代码只能改计划中列出的文件代码审查者审查 Agent检查代码规范、潜在缺陷只读权限不能直接改代码测试工程师测试 Agent生成用例、执行测试测试环境隔离不能碰生产运维工程师部署 Agent执行部署脚本、回滚需要人工二次确认这张表的价值在于它把“Agent 能干什么、不能干什么”写死了。很多团队出事就是因为 Agent 权限过大一个误操作把生产环境搞崩了。2.4 落地前的三个前置判断不是所有团队都适合立刻上 AI Native SDLC。我一般会先问三个问题项目复杂度是否足够高如果只是几个页面的小工具引入 Agent 体系的收益可能还不如直接手写。团队是否有稳定的规范沉淀如果连代码规范、分支策略都没定清楚Agent 只会把混乱放大。是否有可回滚的基础设施Agent 会犯错没有快速回滚能力就不要让它碰关键流程。这三个问题如果答案都是“是”那就可以往下走了。3. 核心细节解析与实操要点CLAUDE.md、Plan Mode 与 Agent 协作3.1 CLAUDE.md 到底该写什么一份可复用的模板拆解CLAUDE.md 是整套体系的“宪法”。我见过很多团队把它写成一份 README 的复制粘贴结果 Agent 读完还是不知道该干什么。一份合格的 CLAUDE.md应该包含以下六个部分。第一部分项目概览。用三五句话讲清楚这个项目是干什么的、技术栈是什么、目录结构大概什么样。这部分是给 Agent 建立“世界观”的。第二部分常用命令。把构建、测试、启动、部署的命令全部列出来包括参数。Agent 不需要猜命令它只需要照着执行。第三部分编码规范。命名约定、文件组织方式、错误处理风格、日志格式。这部分越具体越好比如“所有异步函数必须用 try-catch 包裹并记录 error 级别日志”。第四部分禁区清单。明确写出“不要修改哪些文件”“不要执行哪些命令”“不要引入哪些依赖”。这是安全底线。第五部分上下文索引。告诉 Agent 遇到某类问题应该去读哪个文件。比如“涉及数据库 schema 的改动先读 docs/schema.md”。第六部分协作协议。Agent 之间怎么传递信息、产出物放在哪里、命名规则是什么。下面是我们团队实际用的一个精简模板你可以直接抄# 项目概览 - 项目名称xxx - 技术栈TypeScript Node.js PostgreSQL - 目录结构src/ 源码tests/ 测试docs/ 文档 # 常用命令 - 安装依赖npm install - 本地启动npm run dev - 运行测试npm test - 构建npm run build # 编码规范 - 使用 2 空格缩进 - 函数命名用 camelCase类名用 PascalCase - 所有 API 调用必须有超时和重试 # 禁区 - 不要修改 .env 文件 - 不要直接操作生产数据库 - 不要引入新的 ORM 依赖 # 上下文索引 - 数据库 schemadocs/schema.md - API 文档docs/api.md - 部署流程docs/deploy.md # 协作协议 - 规划产出放在 plans/ 目录 - 代码产出放在 src/ 目录 - 审查意见放在 reviews/ 目录注意CLAUDE.md 不是一次写完就完事的它应该随着项目演进持续更新。我一般要求团队每周 review 一次把新踩的坑补进去。3.2 Plan Mode 的正确打开方式先想后做的工程化落地Plan Mode 的核心思想是把“执行”拆成“规划”和“执行”两个阶段中间加一道人工确认。这个机制看起来简单但用不好会变成形式主义。我总结的 Plan Mode 使用要点有三条。第一规划必须结构化。不要让 Agent 输出一段自由文本的计划而是要求它按固定格式输出任务目标、涉及文件、执行步骤、预期结果、风险点。结构化之后人审查起来快Agent 执行起来也有依据。第二规划必须可验证。每个步骤都要有明确的“完成标准”。比如“修改 user.ts 中的 login 函数使其支持邮箱登录”这个步骤的完成标准就是“login 函数接受 email 参数且测试通过”。第三规划必须限制范围。Agent 经常在规划里夹带私货比如“顺便重构一下这个模块”。我的做法是在 CLAUDE.md 里明确写规划只能包含需求直接相关的改动任何额外改动必须单独提计划。下面是一个 Plan Mode 输出的实际例子# 任务目标 为登录接口增加邮箱登录支持 # 涉及文件 - src/auth/login.ts - src/auth/types.ts - tests/auth/login.test.ts # 执行步骤 1. 在 types.ts 中增加 EmailLoginParams 类型 2. 修改 login.ts 中的 login 函数支持 email 参数 3. 在 login.test.ts 中增加邮箱登录的测试用例 4. 运行测试确保全部通过 # 预期结果 - 邮箱登录功能可用 - 原有手机号登录不受影响 - 测试覆盖率不低于 80% # 风险点 - 邮箱格式校验可能影响性能 - 需要确认数据库是否支持邮箱字段人审查这份计划时重点看“涉及文件”和“风险点”。如果发现 Agent 要改不该改的文件直接打回。3.3 多 Agent 协作的上下文传递机制多 Agent 协作最容易出问题的地方是上下文丢失。规划 Agent 想清楚了编码 Agent 却不知道编码 Agent 改完了审查 Agent 又看不懂。解决这个问题的关键是建立一套“上下文传递协议”。我们的做法是所有 Agent 之间的信息传递都通过文件系统完成不依赖对话历史。规划 Agent 把计划写到 plans/ 目录编码 Agent 从 plans/ 读计划审查 Agent 从 src/ 读代码、从 plans/ 读计划测试 Agent 从 tests/ 读用例。每个 Agent 的输入输出都是文件这样即使某个 Agent 重启上下文也不会丢。这套机制还有一个好处可追溯。任何一个产出物都能追溯到它的上游输入出了问题容易定位。3.4 Agent 权限分级与安全边界设计Agent 安全是绕不开的话题。我的原则是最小权限 分级授权。只读 Agent审查 Agent、分析 Agent只能读文件不能写。受限写 Agent编码 Agent只能写 src/ 和 tests/ 目录不能碰配置文件和部署脚本。受控执行 Agent部署 Agent可以执行部署命令但每次执行前需要人工确认。禁止 Agent 直接操作生产环境任何涉及生产的操作必须由人执行或人工二次确认。这套分级看起来麻烦但真出事的时候能救命。我见过一个团队让 Agent 直接操作生产数据库结果一个误删把用户表清空了恢复花了整整一天。4. 实操过程与核心环节实现从零搭建一套 AI Native 开发流程4.1 环境准备与工具链选型搭建 AI Native 开发流程第一步是把工具链定下来。我的建议是不要追求工具数量追求工具之间的衔接顺畅。核心工具包括一个支持 Agent 的代码编辑器或 IDE、一个版本控制系统、一个 CI/CD 平台、一个 Agent 运行环境。选型的时候重点看三点是否支持自定义 Agent 配置、是否支持 Plan Mode、是否支持多 Agent 协作。环境准备的具体步骤在项目根目录创建 CLAUDE.md按 3.1 的模板填写。创建 plans/、reviews/、tests/ 等协作目录。配置 Agent 的权限按 3.4 的分级来。在 CI 中增加 Agent 产出的检查环节。提示环境准备阶段不要急着让 Agent 干活先把规范文档写扎实。规范文档的质量直接决定后续所有环节的效率。4.2 第一个 Agent 任务的完整执行记录我拿一个真实任务来演示给一个已有的 Node.js 项目增加“用户头像上传”功能。第一步规划 Agent 输出计划。规划 Agent 读取 CLAUDE.md 和需求描述输出一份计划内容包括涉及文件src/user/avatar.ts、src/user/types.ts、tests/user/avatar.test.ts、执行步骤、预期结果、风险点。第二步人工审查计划。我审查的时候发现计划里没有提到文件大小限制和格式校验这是安全风险。打回让规划 Agent 补充。第三步编码 Agent 执行。编码 Agent 读取修改后的计划按步骤写代码。写完在 plans/ 目录下生成一份执行记录说明每个步骤的完成情况。第四步审查 Agent 检查。审查 Agent 读取代码和计划检查是否符合编码规范、是否有潜在缺陷。输出审查意见到 reviews/ 目录。第五步测试 Agent 验证。测试 Agent 读取代码生成测试用例执行测试输出测试报告。第六步人工验收。我最后检查一遍确认没问题后合并。这个流程走下来一个中等复杂度的功能从规划到验收大概两三个小时比纯人工快不少而且质量更稳定。4.3 关键参数配置与调优过程Agent 的运行参数直接影响效果。我重点调过三个参数。上下文窗口大小。太小了 Agent 记不住东西太大了浪费资源还容易分心。我的经验值是规划 Agent 给大一点因为它要读全局信息编码 Agent 给小一点因为它只需要读计划和相关文件。重试次数。Agent 执行失败时自动重试的次数。我一般设 2 到 3 次太多了会浪费时间太少了容易因为偶发问题失败。超时时间。单个任务的最长执行时间。根据任务复杂度设简单任务 30 秒复杂任务 5 分钟。调参的过程就是不断试错。我建议先按保守值设跑一段时间后根据实际表现调整。4.4 与现有 CI/CD 流程的集成方式AI Native 流程不能脱离现有 CI/CD 独立存在。我的做法是把 Agent 产出当成普通代码来对待走同样的 CI 流程。具体来说Agent 写的代码要过 lint、要过测试、要过代码审查Agent 生成的计划要存档Agent 的审查意见要作为 PR 评论的一部分。这样既保证了质量又不会让 Agent 成为流程外的“黑盒”。集成的时候有一个细节要注意Agent 的产出要标记来源。我们在 commit message 里会加[agent]前缀方便追溯哪些改动是 Agent 做的。5. 常见问题与排查技巧实录5.1 Agent 执行失败的典型原因与排查路径Agent 执行失败是家常便饭关键是要快速定位原因。我整理了一张排查表失败现象可能原因排查方法解决方案Agent 不执行任何操作权限配置错误检查 Agent 权限设置按分级重新授权执行到一半卡住上下文超限查看上下文使用量拆分任务或精简上下文产出物不符合预期规范文档不清晰检查 CLAUDE.md 相关条目补充规范细节反复重试仍失败任务本身不可行人工评估任务合理性重新拆解任务修改了不该改的文件禁区清单不完整检查禁区清单补充禁区条目这张表是我们团队实际用的基本覆盖了 80% 的失败场景。5.2 上下文丢失与幻觉问题的应对策略Agent 幻觉是另一个高频问题。表现是 Agent 编造不存在的函数、引用不存在的文件、给出错误的命令。应对策略有三条。第一所有事实性信息必须可查证。Agent 说某个函数存在就要求它给出文件路径和行号。查不到就是幻觉。第二关键操作必须二次确认。涉及删除、覆盖、部署的操作必须人工确认。第三定期清理上下文。长会话容易积累错误信息定期开新会话能减少幻觉。5.3 多 Agent 协作中的冲突处理多 Agent 同时工作时冲突难免。常见冲突有两类文件冲突和意见冲突。文件冲突的解决方式是加锁。一个 Agent 在改某个文件时其他 Agent 不能同时改。我们的做法是在 plans/ 目录下放一个 lock 文件记录当前被占用的文件。意见冲突的解决方式是人工仲裁。比如编码 Agent 和审查 Agent 对某个实现方式有分歧就由人来拍板。Agent 之间不要试图互相说服那是浪费时间。5.4 性能瓶颈与并发问题的实操经验Agent 并发是很多团队关心的问题。我的经验是并发不是越多越好关键是控制好资源竞争。我们团队的做法是同时运行的 Agent 不超过 5 个每个 Agent 占用的资源有上限超过上限就排队。这样虽然牺牲了一点吞吐量但稳定性大幅提升。还有一个细节Agent 的产出要异步处理。不要让 Agent 同步等待结果而是让它把产出写到文件由后续流程异步读取。这样能避免 Agent 之间互相阻塞。6. 团队落地过程中的经验与持续演进6.1 从试点到全面推广的节奏把控AI Native 流程的推广不能一刀切。我的建议是先在一个小项目上试点跑通后再推广。试点阶段重点验证三件事规范文档是否够用、Agent 协作是否顺畅、人工审查是否高效。这三件事都跑通了再往其他项目推。推广阶段要注意节奏。不要一次性把所有项目都切过来而是分批切换每批切换后观察一段时间。我们团队当时分了四批前后花了两个月才全部切完。6.2 团队成员的技能转型与心态调整AI Native 对团队成员的能力要求变了。以前看重“写代码快”现在看重“定义问题准、写规范清晰、审查产出细”。这个转变对一些人来说是痛苦的。我的做法是先培训、再实践、后考核。培训阶段讲清楚新流程的逻辑实践阶段让每个人亲手跑一遍考核阶段看实际产出。心态调整的关键是让成员看到收益。当大家发现 Agent 帮自己省掉了大量重复劳动抵触情绪自然就少了。6.3 规范文档的持续维护机制规范文档是活的不是死的。我们团队的做法是每周一次规范 review把新踩的坑、新总结的经验补进去。维护机制包括谁发现谁补充、每周集中 review、每月做一次大版本更新。这样规范文档才能跟上项目演进的节奏。6.4 后续可扩展的方向这套体系跑通之后可以往几个方向扩展。一是引入更多垂直 Agent比如专门做性能优化的、专门做安全扫描的。二是把 Agent 能力开放给非研发角色比如产品经理可以用规划 Agent 做需求拆解。三是建立 Agent 产出的质量度量体系用数据驱动流程优化。我个人在实际操作中的体会是AI Native 团队的落地技术只占三成剩下七成是流程设计和团队协作。工具再好流程不顺、协作不畅照样跑不起来。所以别急着堆工具先把规范文档写扎实把协作协议定清楚把权限边界划明白剩下的就是持续迭代的事了。
返回列表