@sairahul1: https://x.com/sairahul1/status/2058832033628241931
摘要
一个Twitter推文串,描述了如何使用Claude Code并配合七个专门的AI代理来构建软件工厂,以避免vibe coding的陷阱,使单个开发者能够高效地交付功能。
查看缓存全文
缓存时间: 2026/05/25 14:57
如何用 Claude Code 构建一个在你睡觉时也能发布功能的软件工厂
我曾以为我在用 AI 写代码。
实际上,我只是打字更快了。
区别就在这儿——以及改变一切的 7 代理系统。
保存好这篇文章。它能帮你省下数月时间。
没人谈过的问题
那个看起来高效实则低效的循环:
→ 让 Claude 构建一个功能 → 它生成代码 → 出问题了 → 粘贴错误回去 → 它修补代码 → 又出问题了 → 再次询问
第一天:感觉像魔法。
第三十天:你花在监督 AI 上的时间比过去写代码的时间还多。
同样的逻辑出现在 3 个不同的地方。
Claude 忘记了你两周前定下的约定。
新功能破坏了旧功能。
测试要么缺失要么肤浅。
你醒来才发现:不是 AI 不行。
是你的工作流程不行。
真正的问题是结构性的。
当你在 Claude Code 中输入“构建这个功能“时,你是在要求一个 AI 会话同时扮演:
→ 产品分析师 → 架构师 → 后端工程师 → 前端工程师 → 测试工程师 → 代码审查员
所有角色一拥而上。
在同一次混乱的对话中。
计划中的错误假设变成了错误的数据库模型。
错误的数据库模型变成了错误的 API。
错误的 API 变成了错误的 UI。
等你发现问题时,错误已经蔓延到了各处。
这就叫做凭感觉编程。
而且它有明显的天花板。
转变:从凭感觉编程到软件工厂
真正改变一切的关键:
真正的工程团队不会在单次大对话中工作。
不同的人负责不同的工作:
→ 有人澄清用户问题 → 有人思考架构 → 有人构建 API → 有人构建 UI → 有人思考边界情况 → 有人做审查
当这一切被压缩到一次 AI 会话中时,错误会悄无声息地累积。
解决办法是将工作拆分给专门的智能体。
每个智能体获得:→ 一个专注的任务 → 自己干净的上下文窗口 → 只给它实际需要的工具 → 关于它不能触碰什么的严格规则
结果是:一个软件工厂。
一个开发者 + 七个专注的智能体 = 一个协作团队。
以下是让这一切运转起来的七个智能体。
7 个智能体
智能体 1:代码库研究员
开发者在使用 AI 时犯的最大错误?
一上来就要求写代码。
AI 接受提示词,通过猜测来填补空白,然后开始生成代码。
糟糕的设计就这样悄悄潜入。
代码库研究员解决了这个问题。
它的唯一职责:在写任何一行代码之前,检查代码库并解释事物是如何运作的。
它的工作:→ 梳理相关文件及其角色 → 记录要遵循的现有模式 → 查找已构建的类似功能 → 标记风险(时区、多租户、重试逻辑) → 列出哪些测试需要更新
它不能做什么:→ 编辑文件(仅限只读访问) → 运行任何修改状态的命令 → 做假设——它会询问确认
工具:仅限 Read、Grep、Glob。
规则:每次构建前都要先探索,无一例外。
研究员总是第一个运行。
智能体 2:故事撰写者
大多数功能失败不是因为代码错了。
而是因为问题从未被清晰定义。
故事撰写者在任何技术决策做出之前,将一个粗略的功能想法转化为一个真实的用户故事。
它接收的输入:→ 你粗略的功能描述 → 研究员的发现
它输出的内容:
一个用户故事:“作为一个[角色],我想要[行为],以便[结果]。”
**验收标准:**可以直接被测试验证的陈述。正常路径。失败路径。业务规则。
**边界情况:**边界、重试、多租户相关问题。
**范围外:**明确不会构建的内容。
**待解问题:**它确实不知道的事情——从不猜测。
它不能做什么:→ 编造业务规则 → 编写任何代码或技术设计 → 在事情确实不清楚时继续推进
工具:仅限 Read。
规则:在一切进展之前,你阅读这个故事并批准它。
这是拯救下游所有环节的人工检查点。
智能体 3:规格书撰写者
故事获得批准后,规格书撰写者将其转化为一份技术概要。
这是每个构建智能体都要遵循的蓝图。
它接收的输入:→ 你已批准的用户故事 → 研究员的发现 → 你项目的 CLAUDE.md 规则
它输出的内容:
→ 数据模型变更(字段、类型、迁移) → 后台流程 / 处理流程 → API 变更(端点、请求/响应格式) → 前端变更(组件、页面、钩子) → 所需测试(成功、失败、边界情况) → 风险与待解问题 → 每个将要变更的文件
它不能做什么:→ 编辑任何文件 → 凭空发明新的基础设施——会明确指出来 → 跳过租户隔离或时区问题 → 留下未回答的问题
工具:仅限 Read、Grep、Glob。
规则:这份概要就是第二个人工检查点。
在触碰任何文件之前,你阅读并批准它。
如果你看到“将 ID 存储在内存中“——那就是你的红旗。
现在就抓住它。而不是在 10 个文件被修改之后。
智能体 4:后端构建者
现在开始构建。
后端构建者实现功能的后端部分——而且只做后端部分。
它接收的输入:→ 已批准的技术概要 → 研究员的发现 → 你项目的 CLAUDE.md
它构建的内容:→ API 路由 → 服务和业务逻辑 → 数据库访问和迁移 → 后台任务 → 为它写的所有代码编写单元测试
它不能做什么:→ 触碰 React 组件、页面或客户端钩子(那是智能体 5 的事) → 未经指示发明新的依赖项 → 修改约定范围外的文件 → 在没有运行类型检查、lint 和测试套件的情况下停止
完成后,它会返回一份摘要:→ 每个新增或编辑的文件 → 每个被复用的现有助手方法或模式 → 任何本来会有所帮助的 CLAUDE.md 规则
工具:Read、Edit、Write、Bash——仅限于后端文件夹。
分离是关键所在。
后端构建者永远不会意外破坏前端。
智能体 5:前端构建者
前端构建者实现 UI 部分——而且只做 UI 部分。
它首先读取后端构建者的摘要。
这一点很重要。
它按照后端产生的 API 来使用它。
它不会发明新的端点。
如果 API 格式对 UI 来说不合适,它会将不匹配作为反馈提出来——而不是作为一个补丁。
它接收的输入:→ 已批准的技术概要 → 研究员的发现 → 后端构建者的摘要(API 契约)
它构建的内容:→ React 组件和页面 → 客户端钩子和状态 → 加载和错误状态 → 为它写的所有代码编写组件和单元测试
它不能做什么:→ 触碰服务、API 路由、工作进程或迁移(那是智能体 4 的事) → 发明端点或响应格式 → 未经指示添加依赖项 → 在没有运行类型检查、lint 和测试套件的情况下停止
工具:Read、Edit、Write、Bash——仅限于前端文件夹。
两个构建者。
两个干净的上下文窗口。
一个绝无可能破坏另一个的工作。
智能体 6:测试验证者
两个构建者都为各自的代码编写了单元测试。
这还不够。
测试验证者只做一件事:证明该功能确实做到了用户故事中承诺的效果。
它编写验收测试。
不是单元测试。
是验收测试。
这些测试从外部测试功能——就像真实用户体验它的方式一样。
它接收的输入:→ 已批准的用户故事(包含所有验收标准) → 已批准的技术概要 → 两个构建者的摘要
它输出的内容:→ 一个验收测试文件,覆盖每个验收标准 → 一份报告:哪些标准通过了,哪些失败了,哪些无法干净地覆盖
它不能做什么:→ 修改任何后端或前端代码 → 为不可测试的标准编造变通方案 → 如果某个标准实际上没有被覆盖,就标记为已覆盖
如果测试失败:该功能不满足故事的要求。
它会精确报告哪个标准失败了。
它不会修补代码。
那要回到对应的构建者那里。
工具:Read、Edit、Write(仅限测试文件)、Bash。
规则:在验收测试通过之前,你还没有完成一个功能。
智能体 7:实现验证者
这个智能体负责抓住其他所有人都遗漏的问题。
验证者将当前的实现与已批准的故事和概要进行比较——并报告差距。
它从不修复任何东西。
它只是说实话。
每次都会运行的检查:
→ 故事中尚未实现的验收标准 → 没有测试覆盖的失败路径 → 安全问题:缺少认证检查、租户隔离漏洞、日志中的秘密信息、暴露给客户端的原始错误 → 在约定范围之外变更的文件 → 与 CLAUDE.md 或现有代码不一致的模式 → 应该复用现有助手方法的重复逻辑 → 概要中悄悄跳过的时区或多租户问题
输出总是按严重程度分组:
严重 — 合并前必须修复 重要 — 合并前应修复 次要 — 基于意见,由审查员决定
每个发现都包含文件路径和行号。
如果没有任何问题,它会直说。
它不会为了显得全面而编造问题。
工具:仅限 Read、Grep、Glob。
这个智能体是工厂值得信赖的原因。
一份自己评分的论文毫无价值。
一个只看到磁盘上的内容——而不是它如何被写出来的——的验证者才是诚实的。
链条如何运行
完整流程——一个提示启动一切:
你打开 Claude Code 并输入:
“为超过 7 天未付款的发票构建发票提醒功能。”
以下是后续发生的事情,无需你再输入任何内容:
第 1 步 → 研究员 梳理你的发票、支付和邮件代码。返回相关文件、现有模式、风险。
第 2 步 → 故事撰写者 产出用户故事和验收标准。
⏸ 暂停:你阅读并批准故事。
第 3 步 → 规格书撰写者 将批准的故事转化为技术概要。
⏸ 暂停:你阅读并批准概要。(就在这里抓住那个“将 ID 存储在内存中“的错误。)
第 4 步 → 后端构建者 实现服务、API 路由、BullMQ 任务和单元测试。返回:变更的文件、复用的模式、全部测试通过。
第 5 步 → 前端构建者 读取后端构建者的 API 摘要,构建管理 UI 面板和提醒按钮,编写组件测试。全部测试通过。
第 6 步 → 测试验证者 为全部六项验收标准编写验收测试。报告:7 项通过,1 项失败——手动触发没有检查租户所有权。
第 7 步 → 验证者 发现问题。报告为严重,并附上文件路径和行号。
→ 循环回到后端构建者。 修复已应用。全部 8 项验收测试通过。验证者再次运行。干净。
⏸ 暂停:你审查并开启 PR。
三个人工检查点。
其他一切自动运行。
基础:在智能体工作之前,你需要这个
CLAUDE.md——跨越每次会话的记忆:
每次你打开 Claude Code,它都是从零记忆开始的。
CLAUDE.md 解决了这个问题。
它是你仓库根目录下的一个 Markdown 文件,每次会话都会自动加载。
这里存放着永久性的项目信息:
→ 你的技术栈(Next.js App Router、Node.js、Prisma、BullMQ、Resend) → 你的命令(npm run dev、npm test、npx prisma migrate dev) → 架构规则(“业务逻辑放在 services 中。API 路由保持简洁。”) → 不该做的事(“不要添加 cron——使用 BullMQ。不要记录原始支付负载。”) → 指引到更深入的文档(docs/billing.md、docs/architecture.md)
保持在 100-300 行之间。
每次 AI 犯了让你惊讶的错误时,问问自己:CLAUDE.md 中有一条规则能防止这个错误吗?
添加这条规则。
几周后,你的 CLAUDE.md 就成了 AI 做出的每个错误假设的记录——你的会话质量会明显提升。
上下文漂移——无声的杀手:
大多数 Claude Code 会话并不是戏剧性地失败。
它们是逐渐偏离的。
一个错误假设进入了上下文。
模型继续在此基础上构建。
你让 Claude 构建订阅管理。
它设计:用户 → 订阅。
你想起:订阅属于公司,而不是用户。
如果你只说“不,订阅属于公司“——Claude 会修补。
现在你同时有了 user.subscriptionId 和 company.subscriptionId 在飘荡。
规则:
→ 小错误?直接原地修正。 → 架构假设错了?扔掉这个会话,带着正确的假设重新开始一个新的会话。
一个带着正确心智模型的干净会话,每次都胜过修补过的会话。
结果:实际发生了哪些变化
工厂模式之前:
→ 凭感觉编程循环:提示 → 生成 → 错误 → 修补 → 重复 → 会话上下文被噪音填满 → 错误假设累积成损坏的功能 → 一个工程师一次只能做一件事 → 每个功能都在等待合适的人有空
工厂模式之后:
→ 结构化链条:研究 → 故事 → 概要 → 构建 → 验证 → 验证 → 每个智能体获得干净的上下文窗口,只包含它需要的内容 → 错误假设在概要审批阶段就被发现——而不是在 10 个文件之后 → 一个工程师就能交付一个完整的垂直切片:后端、前端、测试、验证 → 团队的最佳知识驻留在智能体中——而不是被困在人的脑子里
真正的转变:
支付专家构建了一个支付集成智能体。
现在团队中的每个工程师都能交付涉及计费的功能。
无需等待。
无需交接。
前端主管的组件模式生活在前端构建智能体中。
DevOps 工程师的 CI 检查生活在一个钩子里。
QA 主管的边界情况生活在测试验证者的规则中。
专家知识,以智能体的形式共享。
而不是被困在可用性上。
如何在这个周末构建你自己的工厂
8 步设置清单:
1. 安装 Claude Code → code.claude.com
2. 创建文件夹结构:→ .claude/agents/ → .claude/skills/feature-factory/ → .claude/skills/build-with-tests/ → .claude/hooks/
3. 编写你的 CLAUDE.md(100-300 行:技术栈、命令、架构规则、禁止列表)
4. 使用 Claude Code 中的 /agents 命令创建 7 个智能体。描述每个智能体的职责。Claude 编写文件。你审查并提交。
5. 创建 feature-factory 编排器技能。让 Claude 来编写它——它会读取你的 7 个智能体文件并串联整个链条。
6. 创建 build-with-tests 技能。描述你的团队如何构建:匹配现有模式、边写代码边写测试、最后运行类型检查。
7. 添加一个预提交钩子。阻止包含 .env、.key、.pem 或 secrets.json 文件的提交。只需 5 分钟。防止灾难。
8. 让一个真实功能走完整个链条。选一个小的。观察它在哪儿卡住。添加规则。工厂会自我调优。
总时间:2-3 小时。
然后运行几个功能。
经过 3-4 次之后,工厂就熟悉了你的代码库。
你会花更少的时间监督。
更多的时间决定下一步要构建什么。
7 个智能体——快速参考
→ 研究员 — 在构建任何东西之前梳理代码(仅限 Read) → 故事撰写者 — 将想法转化为带有验收标准的用户故事(仅限 Read) → 规格书撰写者 — 将故事转化为技术概要(仅限 Read) → 后端构建者 — 构建 API、服务、任务、单元测试(仅限后端文件夹) → 前端构建者 — 构建组件、页面、钩子、UI 测试(仅限前端文件夹) → 测试验证者 — 针对用户故事编写验收测试(仅限测试文件) → 验证者 — 将实现与故事和概要进行比较,报告差距(仅限 Read)
3 个人工检查点:→ 批准故事 → 批准概要 → 批准 PR
其他一切自动运行。
大多数使用 Claude Code 的开发者仍然在凭感觉编程。
提示 → 生成 → 修补 → 祈祷。
这本身没错。
但它是一座天花板。
工厂并没有把你从流程中移除。
它把你从那些不需要你的部分中移除。
你留在你的判断力至关重要的环节:
这是正确的问题吗?这是正确的设计吗?这个可以安全发布吗?
智能体处理剩下的一切。
相似文章
@sairahul1: Karpathy刚刚描绘了2026年的招聘是什么样的:"用Claude Code构建一个大型项目——比如一个Twitter克隆…"
Andrej Karpathy设想了2026年的招聘流程:候选人使用Claude Code等AI代理构建大型项目,并通过并行代理进行安全测试。该帖子强调了向代理驱动开发和交付生产代码的转变。
@eng_khairallah1: https://x.com/eng_khairallah1/status/2058116763372453997
一份全面的指南,教非编码人员如何使用Claude和Cowork构建AI代理,无需编写任何代码,解释核心组件并提供分步说明。
@eng_khairallah1: https://x.com/eng_khairallah1/status/2055579146684936644
一份详细指南,解释了vibe编码的概念,并提供了使用Claude免费构建应用程序的分步教程,面向非程序员。
@corbin_braun: 7个AI代理构建完整软件
展示了一个由7个AI代理协作构建完整软件应用的系统。
@Av1dlive: Claude Code 的创始工程师刚刚发布了一段 37 分钟的视频,讲解如何用 AI 智能体编程。我见过一些 800 美元的课程……
Claude Code 的创始工程师发布了一段免费的 37 分钟视频,涵盖如何使用 AI 智能体进行编程,包括 CLAUDE.md 文件、工具调用以及 Claude Agents 和 Claude Routines。该推文还推广了一个基于此视频的 6 个月课程。