一、源码泄露背后的冰山:庞大且精密的工具系统

2026 年 3 月,Claude Code 因意外泄露了约 51 万行 TypeScript 源码。这次泄露让我们看清了顶级 Agent 系统的真实骨架:它远比大多数人想象的复杂。

它不是在“回答问题”,而是在“编排工具”。你的一次简单提问,在底层可能触发数十次工具调用和 Hook 钩子。

Claude Code 拥有一个庞大且纷繁的文件目录系统:

src/ (~1,900 文件, 512,000+ 行)
├── main.tsx                 # 入口 (Commander.js CLI + React/Ink 渲染)
├── commands.ts              # 命令注册表 (100+ 命令)
├── tools.ts                 # 工具注册表 (38+ 工具)
├── Tool.ts                  # 工具类型定义
├── QueryEngine.ts           # LLM 查询引擎 (~46K 行)
├── query.ts                 # 主查询循环 (~1,729 行)
├── context.ts               # 系统/用户上下文收集
├── cost-tracker.ts          # Token 成本追踪
│
├── commands/                # 斜杠命令实现 (100+ 个)
├── tools/                   # 工具实现 (38+ 个)
├── components/              # Ink UI 组件 (~140 个)
├── hooks/                   # React Hooks + 权限 Hooks
├── services/                # 外部服务集成
│   ├── api/                 # Anthropic API 客户端
│   ├── mcp/                 # MCP 协议集成
│   ├── lsp/                 # LSP 协议集成
│   ├── compact/             # 上下文压缩
│   ├── extractMemories/     # 记忆提取
│   ├── SessionMemory/       # 会话记忆
│   ├── tools/               # 工具执行 & 编排
│   └── analytics/           # GrowthBook + 遥测
├── constants/               # 系统提示词 + 常量
├── bridge/                  # IDE 集成桥接
├── coordinator/             # 多智能体协调器
├── plugins/                 # 插件系统
├── skills/                  # 技能系统
├── memdir/                  # 持久记忆系统
├── tasks/                   # 任务管理系统
├── state/                   # 状态管理
├── remote/                  # 远程会话
├── server/                  # Server 模式
├── vim/                     # Vim 模式 (完整状态机)
├── voice/                   # 语音输入
├── keybindings/             # 快捷键系统
├── screens/                 # 全屏 UI (Doctor, REPL, Resume)
├── schemas/                 # Zod 配置 Schema
├── migrations/              # 配置迁移
├── query/                   # 查询管道子模块
├── outputStyles/            # 输出样式
└── buddy/                   # 伴侣精灵 (彩蛋)

系统命令与工具库:

‧ /mcp (跨协议协作)    ‧ /memory (长期记忆)    ‧ /permissions (权限)
‧ /hooks (生命周期)    ‧ /plugin (插件)        ‧ /skills (封装技能)
‧ /tasks (任务拆解)    ‧ /plan (架构规划)      ‧ /review (审查)
‧ /status (状态)       ‧ /model (模型)         ‧ /output-style (输出)
层级 组件 功能
系统层 System Prompt 身份定义、安全规则、工具规范(Agent 的“宪法”)
模式层 Coordinator/Worker 多智能体编排模式切换,支持任务递归嵌套
工具层 40+ Tools 文件读写、代码搜索、命令执行、Web 抓取
钩子层 26+ Hooks 在工具执行前后注入逻辑,确保流程确定性
项目层 CLAUDE.md 项目级持久记忆,解决“新员工入职”的信息差
记忆层 三层记忆系统 短期压缩、中期萃取、长期整合的渐进式管线

“你以为你只是发了一条消息,其实你启动了一台拥有 40 多双手、20 多个监控点的自动化机器。”

二、提问的四重境界:个人实战心得

基于对 Claude Code 的设计哲学理解和实际使用经验,个人觉得开发者与 AI 的协作能力可以粗略划分为四重境界:

1. 第一重:盲盒式提问(小白入行)

这是最底层、也是最普遍的“小白”状态。

  • 特征:无背景、无品牌、无先验信息。
  • 典型表现

    “给我写一份品牌推广报告。”
    “帮我写个网站。”

  • 问题本质:把 AI 当成带了某种“超能力”的算命先生。在这种境界下,AI 只能基于最泛化的语料库输出“正确的废话”。

2. 第二重:指令式提问(遥控车模式)

比第一重稍微进阶,开始介入细节,但由于缺乏全局视角,陷入了单步操作的泥潭。

  • 特征:一步一步指挥,像操控遥控车一样。
  • 典型表现

    “在第 42 行加一个 if 语句。”
    “把这里改成红色,再改回去。”

  • 问题本质:短路了 Agent Loop(代理循环)。你剥夺了 AI 自主探索、规划和验证的能力,把自己变成了系统的瓶颈。

3. 第三重:意图式提问(委托模式)

你开始意识到 AI 是一个具备自主能力的资深工程师。

  • 特征:清晰描述目标(Goal),会简单使用 SKILLS知识库 或一些 MCP
  • 典型表现

    “启动一个研究团队:研究员负责调研竞品获客方式,分析师提取 ck知识库 的品牌特性,策略师基于以上输出制定拓客方案。”
    “重构认证模块,调用 jose 库并参考 CLAUDE.md 规范。”

  • 关键要素
    • 目标明确:要做什么(What),而非怎么做(How)。
    • 工具前置:明确告诉 AI 该调用哪些“技能”或“外部接口”。
    • 信任机制:让 AI 进入 Plan Mode(规划模式),它先扫描结构、出方案,你审批后它自主执行。

4. 第四重:系统式提问(编排模式)

这是最高境界,你不再是“操作员”,而是“架构师”,拥有类似 Claude Code 的系统级思维。

  • 特征自我驱动的工具化进化。不仅是灵活编排,更是能“创造工具”——整理个人代码习惯与逻辑,定义专属 Skills,开发专属 MCP,或构建属于自己的领域知识库。
  • 典型表现

    “为该重构任务定义一个监控 Hook,实时捕获所有 Bash 执行失败的信号;同时通过 /plugin 注入自定义安全扫描,若发现未授权的文件读写立即中断并报告状态。”
    “这是我的编码习惯和逻辑,请据此为我生成一个专属的 refactor-skill,并在后续重构中自动调用。”

当然,最高境界一向难以修炼,
我举一个这篇文章4亿token买来5个教训:让6个AI Agent连写4天代码发生了什么?的案例

他设计了一个 6 人团队:

  • 1 * Lead Agent 负责方案设计、任务拆分、任务分配、交付质量把关、根据实现调整优化技术方案等,对技术方案和最终实现效果负责;
  • 3 * Worker Agent 根据 Lead Agent的分配,实现具体任务。采用Git Worktree ,解决多 Agent 并行时代码互踩的问题,同时可以快速扩展,支持更多agent并行;worker 实现任务后交由 Lead Agent确认实现和技术方案是否一致。
  • 1 * Gatekeeper 对合入master的代码做审查,拒绝时会写具体的反馈文件,Worker 可以在原代码副本里修复后重新提交;另外,在每轮结束后经验会自动沉淀到记忆文件,下一轮 Lead Agent可以根据每一轮的经验,优化技术方案;
  • 1 * Watchdog 作为系统负责人,监控所有运行的环节,如果脚本异常、日志异常,会根据异常信息优化或者修复脚本,然后重跑脚本,保证整个系统平稳运行。
    在这里插入图片描述

然后经过了几天的尝试,各种bug:

天数 关键事件
Day 1 8个版本连环崩溃:24分钟内3次崩溃,代码0合入
Day 2 卡死 11.6 小时:Agent 全部卡在等 lock,Watchdog 68 次巡检报告"正常"
Day 3 0字节根因发现:流式日志取代 /dev/null,14 个模块自动合入
Day 4 TS 重写:Bash → TypeScript,31 文件 / 3600 行,测试 50 → 218 (+336%)

痛定思痛的作者不得不回退到“头疼治头,脚疼治脚”的过程:

故障 逼出来的能力
API 错误走 stdout 未被捕获 双通道检测
Bash 版本不兼容 兼容方案
环境变量连锁污染 三处防御性清理
双实例竞争 + 无超时 + 11.6h 卡死 互斥锁 + 双超时
stdout 全缓冲导致 0 字节误杀 流式日志 + 多维心跳

所以看得出来,一个好的系统Agent,要打的补丁也不少,而且要兼顾的“胶水代码”更是细枝末节的需要一堆
在这里插入图片描述

三、普通开发者咋办

面对如此复杂的系统,普通 Vibe Coding 使用者我感觉不用直接进入“系统提问”阶段,
我觉得第三重就比较好,大概就是:

学会使用工具 + 创造一些自己用的顺手的小工具 + 学会“结构化表达”需求

1. 学会“结构化表达”需求

不同项目可能不一样,感觉可以积累,
从“怎么做”转向“做什么”。

  • ❌ 错误做法:“打开文件 A,把第 10 行的函数名改成 B。”
  • ✅ 正确做法:“重构这个模块,让函数命名符合项目规范。”

推荐的需求模板:

  • 任务目标:[清晰描述达成结果]
  • 技术约束:[框架、库、规范]
  • 验收标准:[如何确认任务完成,如跑通测试]
  • 参考资料:[CLAUDE.md、相关文档]

2. 积累自己用顺手的工具

  • 为自己准备的顺手的SKILLS,不同的项目都可以使用得到,或者自己创造一些skills;
  • 一些项目开发的基本规则,写成rule.md,并加入到vibe coding的工具里面;
  • 找一款自己喜欢的vibe coding的工具,比如trae,codebuddy,claude code,qoder,workbuddy,etc.

五、总结:从 Prompt 到 Harness

个人感觉接下来写代码的工作大部分肯定交给vibe coding工具,那么人人都是产品经理的时代变成现实;
谁可以更好的提需求 + 有创意/想法,可能会更加有竞争力。

在这篇文章对话朱广翔 - 人人都能coding了,软件会消失吗?的一段话:

把AI用好,这样AI就会助我们成功。其实就是说我们人的发展要和AI保持一个15度的夹角。什么意思呢?我们人和AI不能正交,正交的话AI进步了你还在原地,你没有受益。但人又不能站在AI的延长线上,比如AI擅长写代码,你就不要写代码了,因为总有一天你会被它取代。你总要有点东西是它不能取代的。保持一个15度夹角,这夹角就是你的专业知识所在。比如你是学法律的、学金融的,你有自己的taste,或者你是懂艺术的。

参考文献

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐