Claude Code 创始人 Boris Cherny 在斯坦福 CS146S 课上说的那句话——很多人把 Claude Code 用成了「纯聊天框」看似提效实则效率不高。更扎心的是Claude Code 日安装量已经达到 2900 万次。这意味着有海量开发者每天都在用这个工具但其中绝大多数人可能还在用我凌晨两点的那种方式问一句答一句确认一句改一句。这不是 AI 编程这是 AI 打字。聊天框模式 vs Agent 工作流模式对比聊天框模式的本质问题人在干活AI 打辅助我回顾了自己那四十分钟到底在干什么。拆解下来大概有这么几个动作描述需求、看 AI 输出、判断对不对、发现不对就重新描述、确认后再让它执行下一步、出了问题再回退。整个过程中决策权在我执行权也在逐步回到我手里。AI 最多算个打字速度快的实习生。Lisa1399 那篇 Claude Code Best Practice 里说得一针见血「AI 提效不了多少本质上还是人在干活AI 打辅助。」我当时的状态就是这种——表面上每次都在用 AI实际上我花 60% 的时间在「指挥」AI 花 40% 的时间在「执行」而它执行的每一步我都得盯着。这和我用 Stack Overflow 复制粘贴代码没有本质区别区别只是把复制粘贴变成了对话确认。聊天框模式下的人力分配流程我们生产环境里还遇到过更离谱的情况。有一次让 Claude Code 帮我们改一个数据库迁移脚本我一句「帮我加上字段默认值」它把三个 migration 文件都改了我逐个确认完跑 migrate 发现顺序冲突。原因是它改的是最新三个 migration但中间还有一个我没告诉它的 migration 也依赖那个字段。这就是聊天框模式的致命伤AI 的视野被你的描述框死了。你说一句它看一句。你不说它就看不到上下文之间的关联。Boris Cherny 的答案不是更花哨的聊天框而是 Agent 工作流Boris Cherny 在斯坦福那节课上讲了一个关键判断Claude Code 的答案「不是做一个更花哨的聊天框」而是选择不同的路径——agentic workflow。这句话我花了一个多月才真正消化。什么叫 Agent 工作流用大白话说就是你给 AI 一个目标而不是一步步指令AI 自己规划路径、读代码、写代码、跑测试、修 bug整个过程它自己闭环。我第一次体会到 Agent 工作流的威力是改一个从没碰过的老项目。那是一个两年前写的 Node.js 后端我自己都记不清代码结构了。如果用聊天框模式我得先自己读一遍代码再告诉 AI 每个文件要怎么改。那我换了个方式。我在项目根目录下放了一个AGENTS.md把项目的技术栈、目录约定、代码规范写在里面。然后直接给 Claude Code 一句话「这个项目的测试覆盖率太低了帮我把核心业务逻辑的单元测试补上测试框架用 vitest。」它先读了AGENTS.md了解项目结构然后自己扫了src/下的所有文件识别出核心业务模块接着逐个模块写测试写完跑测试测试失败就自己修。整个过程我泡了杯咖啡回来看结果大概十五分钟它写了 23 个测试用例19 个直接通过剩下 4 个它自己修了两轮也过了。Agent 工作流执行时序同样的事情如果用聊天框模式我估计得花一个半小时。因为我得一个个文件告诉它「这个要测」一个个函数告诉它「用什么 mock」一个个失败告诉它「哪里错了」。这就是 Agent 工作流的核心差异——AI 拥有了执行链路的自主权而不是每一步都等你拍板。从聊天框到 Agent 的三步进化我把自己这段时间的进化路径总结成了三步。不是什么高深理论就是实打实的踩坑经验。第一步学会给上下文而不是给指令聊天框模式最典型的特征就是一句一句下指令「帮我改这个函数」「把这个变量名改一下」「加上错误处理」。Agent 工作流的第一步是把上下文给足让 AI 自己判断该做什么。我在项目里标配一个CLAUDE.md或者AGENTS.md里面写三样东西# 项目上下文 ## 技术栈 - Runtime: Node.js 20 TypeScript - 框架: Fastify - 数据库: PostgreSQL Drizzle ORM - 测试: vitest ## 目录约定 - src/modules/ 下按业务模块分目录 - 每个模块必须有独立的 router、service、repository - 错误处理统一走 src/utils/errors.ts ## 当前优先级 - 提高核心模块测试覆盖率到 80% - 修复已知的 3 个内存泄漏问题有了这个文件我每次只需要说「帮我把 users 模块的测试补上」它就知道该读哪些文件、用什么框架、遵循什么规范。这一步的价值在于你从「每一步的指挥官」变成了「初始条件的设定者」。AI 不再需要你手把手告诉它每一步怎么做它自己能从上下文推断出合理的工作路径。我们团队有一个后端同事刚开始用 Claude Code 的时候每次对话都是从零开始——新开一个对话重新描述一遍项目背景。后来我让他写了CLAUDE.md同样的任务对话轮次从平均 12 轮降到了 3 轮。对话轮次越少说明 AI 的自主性越高。第二步用 TodoWrite 规划任务而不是即兴指挥这个是我踩坑最深的一个点。以前我让 Claude Code 做一个复杂任务比如「重构认证模块」它上来就开始改代码。改到一半发现不对退回去重新来。改到后面发现前面改的有问题又退回去。这种来回折腾本质上是因为它没有一个清晰的任务规划。后来我学了一招先让 Claude Code 制定计划再执行。# 在 Claude Code 中输入 帮我重构认证模块。先列出具体步骤让我确认确认后再逐步执行。它会给你一个类似这样的计划1. 分析现有认证相关文件列出所有涉及的模块 2. 设计新的认证中间件接口 3. 创建新文件 src/modules/auth/middleware.ts 4. 迁移现有路由中的认证逻辑到中间件 5. 更新测试 6. 运行全量测试确认无回归你确认了计划它就按步骤执行。执行过程中它会自己标记完成状态遇到问题也会按计划的逻辑去处理而不是随机应变。Agent 任务规划的树形分解结构这一步的价值在于把 AI 从「即兴发挥」变成了「按计划执行」。你不需要在每一步都做决策只需要在计划阶段做一次审核。我们生产环境有一次重构支付模块用的就是这个方式。Claude Code 列了 8 个步骤我审了一遍发现第 3 步和第 5 步有依赖关系冲突调整后让它执行。最终整个重构用了 25 分钟零回归。如果用聊天框模式一步步来保守估计得两个小时。第三步让 AI 自己闭环而不是等你验收聊天框模式的最后一个习惯是AI 做完了你来看你看了发现问题再让它改。这个过程本质上还是人在做验收效率瓶颈在你。Agent 工作流的终极形态是AI 自己写、自己测、自己修直到通过为止。具体操作很简单# 关键是加上测试闭环的指令 帮我修复 src/modules/orders/ 里的 3 个已知 bug。 修完后跑测试如果有失败就自己修复全部通过后再通知我。这时候 Claude Code 的工作模式就变成了读代码定位 bug写修复跑测试测试失败分析原因改代码再跑测试全部通过 → 输出结果摘要给你你从「每一步的审核员」变成了「最终结果的查看者」。这一步有一个关键前提你的项目得有完善的测试。如果没有测试AI 写完代码你根本不知道对不对最后还是得自己验收。所以我一直跟团队说测试覆盖率是 Agent 工作流的地基。没有测试Agent 就是一辆没有刹车的车。Agent 自闭环测试修复循环我们团队实际跑通的 Agent 工作流说了这么多放一个我们团队实际在用的工作流。场景是每周的需求迭代——产品经理提需求我们用 Claude Code 来实现核心代码。# 1. 需求转技术方案人审核 根据下面的需求描述生成技术方案。关注涉及哪些文件要改、新增哪些接口、数据模型是否需要变更。 需求xxx 参考 CLAUDE.md 中的项目规范。 # 2. 技术方案确认后进入执行 按上面的技术方案执行每完成一个步骤标记 [done]。 完成后运行全量测试修复所有失败用例。 最后输出变更文件清单和测试结果。 # 3. 结果审查 Claude Code 输出后我花 5 分钟看变更文件清单和测试结果。 如果有问题针对性地指出让它修。 如果没问题直接 git commit。平均下来一个中等复杂度的需求涉及 5-8 个文件从方案到代码完成大约 20-30 分钟。同样的工作纯手写大概 2-3 小时聊天框模式大概 1-1.5 小时。这不是什么魔法就是把 AI 当 Agent 用而不是当聊天机器人用。完整 Agent 工作流三阶段一个容易踩的坑不要过度信任 Agent讲到这里必须泼一盆冷水。Agent 工作流不是万能的我在生产环境里踩过一个大坑。有一次让 Claude Code 自己闭环修复一批 lint 报错。它确实把所有报错都修了但其中有几个地方它的修法是加了// eslint-disable注释。技术上报错消失了但实际上问题被掩盖了。从那以后我加了一条规矩Agent 可以自己闭环执行但最终的 diff 必须人工 review。# 我现在的标准流程 Agent 执行 → 输出 diff → 人工 review → 确认后 commitAgent 的价值不是替代你的判断力而是替代你的重复劳动。你不需要自己一行行写代码但你需要判断代码写得对不对。这个定位很重要搞错了就会出事。我们生产环境还遇到过 Agent 把测试用例改得更容易通过的情况——不是修 bug而是降低了测试标准。这在没有人工 review 的情况下很容易漏过去。Claude Code 日装 2900 万但深度使用率可能不到 10%Claude Code 日安装量 2900 万这个数字很吓人但你仔细想想——这 2900 万里有多少人是装完之后用了两天就回到手动写代码的我身边至少有五六个同事装了 Claude Code试了几次觉得「也就那样」然后弃了。问他们怎么用的基本都是聊天框模式问一句答一句觉得答得不好就不问了。这不是工具的问题是用法的问题。5G运营助手那篇文章对比了 Claude Code 和 Codex 的 8 种实战模式其中终端 Agent 模式和编辑器补全模式的核心差异就在于一个是「你告诉它做什么」另一个是「你看着它做」。从聊天框模式到 Agent 工作流不是一个功能开关的切换而是一个思维模式的转变。你需要从「我是操作者」转变为「我是规划者」从「我写代码AI 辅助」转变为「AI 写代码我审核」。这个转变不难但需要刻意练习。就像从 SVN 切到 Git 一样刚开始你总觉得不放心总想手动管理每一个文件。但一旦你适应了分支工作流你就再也回不去了。FAQQ1Agent 工作流对项目有什么硬性要求最核心的要求是测试覆盖率。没有测试的项目AI 改完代码你无法自动验证对不对Agent 自闭环就跑不起来。建议先把核心业务逻辑的测试覆盖率提到 60% 以上再开始用 Agent 工作流。其次是一个清晰的CLAUDE.md项目说明文件这相当于给 AI 的入职手册。Q2聊天框模式是不是完全没用不是。对于一次性的小任务——比如写一个正则、解释一段代码、生成一个 shell 脚本——聊天框模式完全够用甚至更高效。Agent 工作流的优势在复杂、多文件、需要上下文关联的任务上。分清楚任务复杂度选择合适的模式才是真正的高手。Q3CLAUDE.md 要写多详细不需要写成文档。我的经验是控制在 50 行以内写三样东西就够了技术栈和框架版本、目录结构约定、当前阶段的优先级任务。太详细反而会让 AI 抓不住重点。可以参考 OpenAI 的 Codex 和 Claude Code 官方文档里的 AGENTS.md 模板。Q4用 Agent 工作流会不会写出很多意料之外的代码会的。所以前面强调了 diff review 这个环节。我现在的习惯是让 Agent 执行完之后跑git diff --stat先看变更文件清单确认都是预期要改的文件再看具体 diff。如果 Agent 改了你不期望的文件说明任务描述不够精确下次拆分得更细就行。Q5团队里其他人还在用聊天框模式怎么推动转变最有效的方式是做一次对比演示。拿同一个需求A 同事用聊天框模式做B 同事用 Agent 工作流做计时对比。我们团队试过一次同一个中等需求A 用了一小时四十分钟B 用了二十二分钟。结果一出来不用你推大家自己就切换了。工具就摆在那里2900 万人已经装了。但安装不等于会用会用不等于用好。从聊天框到 Agent 工作流差的不是技术门槛是思维模式。你愿意多花十分钟写一个CLAUDE.md后面每次开发能省一个小时。这笔账算得过来。