1. 从"AI辅助"到"AI原生":团队开发范式的分水岭
大多数团队对AI的使用还停留在"辅助"层面——开发者写代码时开着补全插件,产品经理用对话工具润色文档,测试同学偶尔让模型帮忙生成几条用例。这种模式的天花板很明显:AI是一个外挂工具,流程没变,角色没变,交付物的组织方式也没变。而AI Native(AI原生)要激进得多,它把AI当作团队的一等公民,从需求拆解、方案设计、编码实现、测试验证到部署运维,每个环节的默认执行者都可能是Agent,人的角色转向目标设定、上下文供给和质量把关。
这个转变不是换个工具那么简单。我见过不少团队兴致勃勃地引入各种Agent框架,结果两周后全部回退到手动模式,原因几乎都一样:没有为AI重建工作流。你让一个Agent去改一个它完全不了解的代码库,它只能瞎猜;你让多个Agent并行干活却没有共享上下文,它们就会互相踩脚。所以这篇手册要解决的核心问题是:一个团队到底该怎么把AI Native落到日常研发里,而不是停在Demo阶段。
关键词里的SDLC(软件开发生命周期)、CLAUDE.md、Plan Mode、Agent这几个词,其实勾勒出了一条完整的落地路径:用CLAUDE.md这类上下文文件给Agent建立"项目认知",用Plan Mode让Agent先想清楚再动手,用Agent承担具体执行,最终重塑整个SDLC。这套东西适合已经有一定工程规范、想让AI真正参与生产的团队,也适合个人开发者想把自己的工作流升级成AI原生模式。下面我会按真实落地的顺序,把每个环节拆开讲透。
2. 上下文工程:CLAUDE.md为什么是AI Native的地基
2.1 没有上下文文件的Agent,等于每天失忆的新员工
先讲一个我踩过的坑。早期我让Agent帮我改一个中型项目的接口,它上来就新建了一个文件,把逻辑写在了完全错误的位置,还引用了项目里根本不存在的工具函数。我当时觉得是模型不行,换了个更强的模型,结果还是一样的问题——它不知道这个项目的目录约定、不知道哪些模块是核心、不知道代码风格要求。
这就像你招了一个能力很强的新员工,但从不告诉他项目背景,每天上班都当他是第一天来。CLAUDE.md(以及类似的AGENTS.md、.cursorrules等上下文文件)解决的就是这个问题。它是一份放在项目根目录的Markdown文件,Agent在开始任何任务前会先读它,从而获得项目的"世界观"。
一份真正有用的CLAUDE.md应该包含哪些内容?我总结了一个经过实战验证的结构:
- 项目定位与架构概览:一句话说清这个项目是干什么的,主要模块有哪些,模块之间的依赖关系。不要写成长篇大论,Agent需要的是地图不是游记。
- 目录约定:哪个目录放业务逻辑,哪个放工具函数,哪个放测试,命名规范是什么。这一条能极大减少Agent"放错位置"的概率。
- 技术栈与版本约束:用了什么框架、什么语言版本、哪些库是禁止引入的。我见过Agent擅自引入一个新依赖导致构建失败的案例。
- 编码规范:缩进、命名、注释语言、错误处理方式。写得越具体,Agent的输出越接近团队标准。
- 常用命令:如何启动、如何跑测试、如何构建。Agent需要知道怎么验证自己的改动。
- 禁区清单:哪些文件不要动,哪些操作需要人工确认。这是安全底线。
2.2 上下文文件的维护成本与更新节奏
很多人写完CLAUDE.md就扔在那不管了,结果几个月后它描述的还是老架构,Agent照着过时的信息干活,反而帮倒忙。我的做法是把上下文文件纳入代码评审流程:任何一次影响架构或约定的改动,PR里必须同步更新CLAUDE.md,否则不予合并。
更新节奏上,我建议分两层:稳定的部分(项目定位、技术栈)变动少,放在文件顶部;易变的部分(当前迭代重点、临时约定)放在底部,并且标注日期。这样Agent读的时候能快速区分哪些是长期有效的,哪些是阶段性的。
还有一个容易被忽略的点:上下文文件不是越长越好。我试过写一份两千行的CLAUDE.md,结果Agent经常"读不完"或者抓不住重点。后来我压缩到三百行以内,把细节拆到子目录的局部上下文文件里(比如src/api/CLAUDE.md只讲API层的约定),Agent处理具体任务时按需读取,效果明显更好。这其实就是上下文的分层加载思路,和人类看文档的习惯是一样的——先看总览,需要细节时再翻具体章节。
2.3 用Plan Mode把"想清楚"变成强制步骤
Plan Mode是我认为AI Native工作流里最被低估的一个机制。它的核心思想很简单:让Agent在动手改代码之前,先输出一份执行计划,人确认后再执行。听起来很朴素,但它解决了一个致命问题——Agent的"手比脑快"。
没有Plan Mode的时候,Agent经常是边想边改,改到一半发现方向错了,但已经动了好几个文件,回滚成本很高。开启Plan Mode后,它会先列出:我打算改哪些文件、每个文件改什么、为什么这么改、有没有风险。这时候人只需要花三十秒扫一眼,就能拦住大部分方向性错误。
我在实际使用中的经验是,Plan Mode特别适合三类任务:跨多文件的改动、涉及核心逻辑的修改、以及Agent不太熟悉的模块。而对于单文件的小修小补,强制走Plan Mode反而拖慢节奏。所以我的建议是把它配置成"按任务复杂度触发",而不是一刀切。
Plan Mode产出的计划本身也是宝贵的上下文。如果这次任务没做完需要分几次,把计划存下来,下次Agent接着干的时候直接读计划,就能无缝衔接。这比让它重新理解一遍需求高效得多。
3. Agent编排:单Agent、多Agent与Harness的边界
3.1 先搞清楚Agent、Harness和框架的区别
热词里反复出现Agent、Agent Harness、Agent框架这几个词,很多人混着用,其实它们不是一回事。我用一个类比说清楚:
- Agent是那个"干活的人",它有能力、有目标、能调用工具。
- Harness是"工作台和工具箱",它给Agent提供执行环境、工具接口、权限控制、日志记录。你可以理解为Agent的"操作系统"。
- Agent框架(如LangChain、Dify、CrewAI等)是"招人和管理人的制度",它定义了多个Agent怎么协作、任务怎么分发、状态怎么流转。
搞混这三者的后果是选型时抓不住重点。如果你只是想让一个Agent帮你改代码,你需要的可能只是一个好的Harness(比如命令行编码工具),根本用不上复杂的多Agent框架。反过来,如果你要做一个需要多个角色协作的复杂系统,那框架的编排能力才是关键。
我个人的选型原则是:能用单Agent解决的,绝不上多Agent。多Agent带来的协调开销、上下文同步成本、调试难度,往往超过它带来的收益。只有当任务天然可以并行、且各子任务之间耦合度低的时候,多Agent才划算。
3.2 多Agent协作的三种典型拓扑
当你确实需要多Agent时,怎么组织它们?我实践下来有三种比较靠谱的拓扑:
第一种是流水线式。Agent A的输出是Agent B的输入,依次传递。比如"需求分析Agent → 方案设计Agent → 编码Agent → 测试Agent"。这种结构清晰,但缺点是前一个环节出错会一路传下去,所以每个环节都要有校验。
第二种是主管-工人式。一个主管Agent负责拆解任务和分派,多个工人Agent并行执行,主管再汇总结果。这种适合可以并行的大任务,比如同时给十个模块写测试。关键是主管要能判断工人干得对不对。
第三种是评审对抗式。一个Agent负责产出,另一个Agent专门挑刺,来回几轮直到达成一致。这种在代码审查、方案评审场景下特别有效,因为对抗性能逼出更多问题。
| 拓扑类型 | 适用场景 | 主要风险 | 我的建议 |
|---|---|---|---|
| 流水线式 | 有明确阶段划分的任务 | 错误累积传递 | 每阶段加校验点 |
| 主管-工人式 | 可并行的大任务 | 主管判断力不足 | 主管用强模型 |
| 评审对抗式 | 质量要求高的产出 | 陷入无意义争论 | 设定轮次上限 |
3.3 Agent的记忆机制:别让它每次都从零开始
Agent记忆是另一个高频话题。简单说,Agent的记忆分短期和长期。短期记忆是当前会话的上下文,任务结束就没了;长期记忆是跨会话持久化的信息,比如项目知识、历史决策、用户偏好。
我踩过的坑是:早期完全依赖短期记忆,导致每次开新会话,Agent都要重新理解一遍项目,浪费大量token和时间。后来我引入了长期记忆机制——把重要的决策、踩过的坑、验证过的方案写进一个持久化的知识文件,Agent每次启动时加载。这其实就是把CLAUDE.md的思路扩展到了"经验层"。
但长期记忆有个陷阱:它会过时。三个月前的一个技术决策,现在可能已经不适用了。所以我的做法是给每条记忆打上时间戳和置信度标签,Agent在使用时能判断这条信息是否还可靠。定期清理过期记忆也是必要的维护工作。
3.4 Agent安全:权限边界必须画清楚
Agent安全这个话题,很多团队是出了事才重视。我见过Agent误删文件、误提交代码、甚至误调用生产接口的案例。核心原则就一条:最小权限。
具体怎么做?我给Agent的权限分了三档:
- 只读档:只能读文件、查资料,不能做任何修改。适合调研、分析类任务。
- 沙箱档:可以在隔离环境里自由操作,但改动不会影响主分支和真实数据。适合编码、测试类任务。
- 受限写档:可以修改指定范围的文件,但关键操作(如删除、部署、调用外部接口)需要人工确认。
Agent沙箱是执行隔离的关键设施。所有Agent的代码执行、命令运行都应该在沙箱里进行,即使它闯祸了,影响范围也可控。这一点在团队协作场景下尤其重要,因为你没法保证每个Agent的每次决策都是对的。
4. 重塑SDLC:AI Native研发流程的四个关键改造点
4.1 需求阶段:从"写文档"到"喂上下文"
传统SDLC里,需求阶段产出的是PRD文档。AI Native模式下,需求阶段的产出应该是一份结构化的、Agent可直接消费的上下文包。什么意思?就是需求描述不能是给人看的模糊语言,而要是给Agent看的精确指令。
举个例子,传统PRD可能写"优化用户登录体验"。这句话人看了大概知道方向,但Agent看了完全不知道要干什么。AI Native的需求描述应该是:"登录接口响应时间从当前的800ms降到200ms以内,失败时返回明确的错误码,前端增加加载状态提示"。每一条都可验证、可执行。
我的做法是在需求阶段就让Agent参与:把原始需求丢给Agent,让它反问澄清问题,直到需求足够精确。这个过程往往能暴露出人类自己都没想清楚的地方。
4.2 设计阶段:Plan Mode的深度应用
设计阶段是Plan Mode发挥最大价值的地方。我要求Agent在写任何代码前,先产出一份包含以下内容的设计方案:
- 改动涉及的文件清单及每个文件的改动要点
- 关键数据结构或接口定义
- 潜在风险和回滚方案
- 验证方式(怎么证明改对了)
这份方案由人评审通过后才进入编码。评审的重点不是代码细节,而是方向是否正确、边界是否清晰、有没有遗漏的依赖。我实测下来,这个环节能拦下大约六成的方向性错误,性价比极高。
4.3 编码与测试:Agent的主力战场
编码阶段是Agent最能发挥价值的地方,但前提是前面的上下文和设计都到位了。我的经验是,Agent编码的质量和上下文质量成正比。上下文给得足,它写出来的代码基本能直接用;上下文含糊,它就开始自由发挥。
测试环节我特别想强调一点:让Agent写测试,但不要让Agent自己判断测试是否通过。因为Agent有"自我美化"的倾向,它可能写出一个永远通过的假测试。正确做法是测试用例由Agent生成,但执行和判定由独立的CI流程完成,Agent只负责根据失败结果修复。
4.4 部署与运维:人机分工的边界
部署和运维环节,我的原则是Agent可以建议,但不能自主执行。原因很简单:这两个环节的容错率极低,一旦出错影响面很大。Agent可以帮你分析日志、定位问题、生成修复方案,但最终的部署操作必须由人确认。
我见过有团队让Agent自动部署,结果因为一个配置错误导致服务中断。这个教训说明,AI Native不等于全自动,关键决策点必须保留人的判断。合理的分工是:Agent做重复性的、可验证的工作,人做判断性的、高风险的工作。
5. 落地实操:从零搭建AI Native工作流的完整步骤
5.1 第一步:建立项目上下文基线
先别急着上Agent,第一步是把项目的上下文整理清楚。具体操作:
- 在项目根目录创建CLAUDE.md,按前面讲的六个板块填充内容。第一版不用追求完美,先把架构概览、目录约定、常用命令这三块写清楚。
- 在关键子目录创建局部上下文文件,只写该目录特有的约定。
- 把这份文件提交到版本库,纳入评审流程。
这一步大概花半天到一天,但它是后面所有工作的基础。我见过跳过这步直接上Agent的团队,最后都回来补课了。
5.2 第二步:配置Agent执行环境
接下来是给Agent准备"工作台"。核心是确定三件事:
- 用哪个Harness:命令行编码工具、IDE插件、还是自建环境。我的建议是先用成熟的命令行工具跑通流程,有特殊需求再自建。
- 权限怎么配:按前面讲的三档权限,给不同任务类型配置不同的权限级别。
- 沙箱怎么隔离:确保Agent的代码执行在隔离环境里,不影响主环境。
配置完成后,用一个简单任务验证:让Agent读一遍CLAUDE.md,然后描述一下这个项目的架构。如果它说得八九不离十,说明上下文配置到位了。
5.3 第三步:跑通一个完整的Plan-Execute-Verify循环
选一个中等复杂度的真实任务,完整走一遍流程:
- 把任务描述和上下文给Agent,让它进入Plan Mode产出计划。
- 人工评审计划,确认方向。
- Agent执行编码,产出改动。
- 独立运行测试验证。
- 根据结果让Agent修复或人工介入。
这个循环跑通一次,团队就基本理解AI Native的工作节奏了。我建议第一个任务不要选太简单的,否则体现不出流程价值;也不要选太难的,否则容易受挫。中等复杂度、涉及两三个文件的任务最合适。
5.4 第四步:沉淀经验,形成团队规范
跑通几个任务后,把过程中积累的经验固化下来:
- 哪些类型的任务适合Agent,哪些不适合
- 上下文文件需要补充哪些内容
- 常见的Agent错误模式及应对方法
- 权限配置的调整
这些经验应该写进团队的AI Native工作规范里,成为新成员的上手材料。我特别建议建一个"Agent踩坑记录"文档,每次Agent犯错都记一笔,时间长了这就是团队最宝贵的资产。
6. 那些没人告诉你但一定会遇到的坑
6.1 Token消耗失控:看不见的成本黑洞
AI Agent Token消耗是很多团队低估的成本项。一个复杂任务,Agent可能要读几十个文件、来回好几轮,token消耗轻松上万。如果不加控制,月底账单会吓你一跳。
我的控制手段有三个:一是上下文精简,只给Agent当前任务相关的文件,不要一股脑全塞进去;二是设置轮次上限,防止Agent陷入无意义的反复;三是分级用模型,简单任务用轻量模型,复杂任务才用强模型。这三招下来,我的token成本降了大概六成。
6.2 Agent"自信地犯错":如何识别和拦截
Agent最危险的行为不是报错,而是自信地给出错误答案。它不会说"我不确定",而是理直气壮地编造一个看起来合理的方案。识别这种错误需要经验,我总结几个信号:
- 它引用了项目里不存在的文件或函数
- 它的方案和CLAUDE.md里的约定冲突
- 它跳过了你明确要求的某个步骤
- 它的解释里出现"应该""大概""通常"这类模糊词
拦截方法就是前面强调的Plan Mode和独立验证。永远不要相信Agent的自我报告,要用客观结果验证。
6.3 多Agent互相"甩锅":协调失败的典型场景
多Agent协作时,最常见的问题是任务边界不清导致互相推诿。比如主管Agent分派任务时描述模糊,两个工人Agent都以为对方会处理某个环节,结果谁都没做。
解决办法是任务描述必须包含明确的输入、输出和验收标准。主管Agent分派任务时,要写清楚"你负责什么、产出什么、什么算完成"。我还会加一个"交接检查"环节,每个Agent完成任务后,由下一个环节的Agent确认输入是否完整,不完整就打回。
6.4 上下文污染:错误信息如何被放大
如果上下文文件里有一条错误信息,Agent会基于它做出一系列错误决策,而且这些错误决策又可能被写回上下文,形成污染循环。我遇到过一次:CLAUDE.md里写错了一个目录路径,结果Agent连续几个任务都把文件放错位置。
防范方法是定期审计上下文文件,尤其是那些被频繁引用的部分。另外,Agent产出的内容在写回上下文前,必须经过人工确认,不能让它自己更新自己的"世界观"。
7. 团队协作中的角色重定义
7.1 开发者:从写代码到设计上下文和评审计划
AI Native模式下,开发者的核心工作发生了转移。写代码的比重下降,设计上下文、评审Agent计划、把关质量的比重上升。这不是说编码能力不重要了,而是说编码能力体现在"能判断Agent写得对不对"上。
我观察到,适应得最好的开发者往往是那些表达清晰、逻辑严谨的人。因为他们能把需求拆解得足够细,让Agent准确执行。反而是那些习惯"边写边想"的开发者,一开始会很不适应,因为Agent需要你先想清楚再动手。
7.2 新人培养:AI Native下的学习路径
Agent学习路线是很多新人关心的问题。我的建议是分三步:第一步,先学会用Agent完成简单任务,理解它的能力和边界;第二步,学会写上下文文件和设计计划,这是核心技能;第三步,学会编排多Agent和处理复杂场景。
但我要提醒一点:不要跳过基础编码能力的训练。一个不懂代码的人,没法判断Agent写得对不对,也没法在Agent卡住时接手。AI Native不是让人不学编程,而是让人把精力从重复编码转向更高层的设计和判断。
7.3 代码评审的新重点
传统代码评审关注代码本身的质量。AI Native模式下,评审还要多关注几件事:Agent的改动是否符合上下文约定、是否有Agent特有的"幻觉"痕迹、测试是否真正验证了功能。我现在的评审清单里,专门加了一项"这条改动如果出问题,回滚成本有多大",因为Agent的改动有时候会牵扯很广。
8. 关于工具选型的一些实在话
8.1 Agent框架怎么选:别被功能列表迷惑
市面上Agent框架很多,功能列表一个比一个长。但我的经验是,选框架要看你的真实需求,而不是它的功能数量。如果你只是做单Agent任务,一个轻量的Harness就够了,上重型框架纯属给自己找麻烦。
选型时我会问三个问题:这个框架解决了我什么具体问题?它的学习成本我能不能承受?它的社区活跃度和维护情况如何?三个问题答不上来的,直接pass。
8.2 自建还是用现成:一个务实的判断标准
自建Agent系统的诱惑很大,但成本也高。我的判断标准是:如果你的需求用现成工具能满足八成,就别自建。剩下那两成特殊需求,往往可以用插件或脚本补足。只有当现成工具完全无法满足核心需求时,自建才划算。
我见过团队花几个月自建了一套Agent系统,结果功能还不如成熟工具,最后又切回去了。这个坑希望大家别踩。
8.3 工具会变,方法论不会
最后说一句掏心窝的话:具体的工具和框架,一两年就会换一批。但上下文工程、Plan Mode、权限隔离、独立验证这些方法论层面的东西,是穿越工具周期的。与其追着新工具跑,不如把这些底层能力练扎实。工具是术,方法论是道,道练好了,换什么工具都能快速上手。
我在实际落地这套东西的过程中,最大的体会是:AI Native不是让AI替你做决定,而是让AI替你做执行,你腾出精力做更重要的判断。想清楚这个定位,很多纠结就迎刃而解了。