凌晨两点,我盯着屏幕。Claude Code又一次无视我的指令,自顾自地改起了另一个文件。
这不是个例。过去两周,开发者社区炸开了锅——有人发现它的“思考深度”暴跌67%,有人吐槽它“变蠢”了,还有人晒出账单:一次普通会话,竟然烧掉了30美元。
大家都在问:这个被捧上神坛的AI编程助手,到底怎么了?
为了找到答案,我花了一周时间,读完了意外泄露的51万行TypeScript源码。
下面是我提炼出的 3条核心设计原则。看完你会明白:Claude Code不是变蠢了,而是它的架构,正在被推向极限。


一、薄Orchestrator,强Model——为什么50行代码驱动整个Agent

1.1 反常识的设计

打开Claude Code的核心执行文件,你会发现一个惊人的事实:驱动整个Agent循环的代码,只有约50行

// TAOR循环的简化示意
async function taorLoop(context) {
  while (true) {
    const action = await model.decide(context);   // Think
    const observation = await tool.execute(action); // Act
    context = context.append(observation);         // Observe
    if (await model.shouldStop(context)) break;    // Repeat
  }
}

没有复杂的条件分支,没有硬编码的“下一步该做什么”。整个系统的智能,全部交给了模型自己。

1.2 与LangChain路线的根本分歧

早期LangChain的思路是在框架层做各种“聪明编排”——用复杂的Orchestrator控制LLM的每一步。Claude Code反过来:把智能下沉到模型,把确定性留给框架

范式 决策者 适应性 维护成本
LangChain(Workflow) 代码 模型升级需重写编排
Claude Code(Autonomous Agent) 模型 模型越强,框架越薄

这个选择背后是对模型能力发展的预判:随着模型越来越强,硬编码的脚手架应该被主动删除。如果你每次模型升级都要重写编排逻辑,说明架构设计出了问题。

1.3 对开发者的启示

不要试图用代码“教”AI怎么做。给它目标、工具和边界,剩下的交给它自己探索。架构应该随时间越来越薄,而不是越来越厚。


二、四原语 + 四层权限——为什么Bash是万能胶,Auto Mode如何防翻车

2.1 只给模型4种工具

Claude Code没有配备100个专项工具,而是只提供了四种能力原语:

原语 能力 说明
Read 读取文件 文件系统、代码搜索
Write 写入文件 编辑、创建、删除
Execute 执行命令 Bash是万能适配器
Connect 连接外部 MCP协议、远程会话

其中Bash是点睛之笔——它允许模型使用任何人类开发者会用到的工具:git、npm、docker、curl,全部通过shell组合完成。

设计哲学:不要构建100个工具,给模型一个shell,让它自己组合。

2.2 四层决策流水线(Auto Mode核心)

这是源码中最值得学习的工程实践。每一次工具调用,都要经过四层安全检查:

第一层:权限规则缓存 → 已有规则直接放行
第二层:acceptEdits模式模拟 → 低风险自动通过
第三层:只读工具白名单 → Read/Grep/Glob无条件放行
第四层:独立AI分类器 → 发送给Claude Sonnet做最终判断

分类器的关键设计

  • 始终使用Sonnet而非Opus(成本和延迟的权衡)
  • temperature设为0(确保输出确定性)
  • 拦截规则覆盖22个以上类别:git force push、远程代码执行、生产部署、数据外泄等

2.3 熔断机制

连续3次被拒绝 → 降级为手动确认
累计20次被拒绝 → 降级为手动确认
headless模式下直接中止Agent

2.4 对开发者的启示

权限系统的本质是在自主性和安全性之间找到平衡点。四层流水线的设计思路可以迁移到任何需要“AI代理执行敏感操作”的场景:先快路径(缓存/白名单),再慢路径(分类器),最后熔断兜底。


三、记忆分层与工具自举——为什么Claude Code能“越用越懂你”

3.1 四层记忆架构

Claude Code的记忆不是简单的“把历史对话全存下来”。源码中清晰展示了分层设计:

层级 存储位置 内容 加载策略
会话记忆 内存 当前对话的工具调用、观察结果 全量保持
项目记忆 CLAUDE.md 项目规范、架构决策、常用命令 每次会话自动注入
用户记忆 ~/.claude/ 个人偏好、代码风格 跨项目持久化
技能记忆 MCP服务 可复用的工作流(如“创建React组件”) 按需加载

3.2 工具自举(Tool Bootstrapping)

最巧妙的设计:Claude Code可以通过AgentTool派生子Agent,子Agent执行的任务结果可以被父Agent当作工具使用

用户:“给这个项目加上单元测试”
  ↓
主Agent:调用AgentTool派生子Agent
  ↓
子Agent:分析项目结构、识别测试框架、生成测试文件
  ↓
子Agent返回:测试文件列表 + 执行命令
  ↓
主Agent:将这些信息作为“知识”存入记忆,下次可直接复用

这意味着:Claude Code在第一次完成某个复杂任务后,第二次再做类似任务,速度会快得多。 这也是为什么有用户反馈“越用越顺手”的技术原因。

3.3 对开发者的启示

好的Agent系统不是“一次性调用”,而是持续进化的资产。设计时应该考虑:哪些信息值得跨会话保留?如何让Agent从成功经验中学习?工具调用结果如何反哺记忆层?


写在最后:Claude Code的启示与局限

核心启示

原则 一句话总结
薄Orchestrator 让模型做决策,框架只做执行
四原语 + 四层权限 工具要少而通用,权限要层层过滤
记忆分层 + 工具自举 让Agent能记住、能学习、能复用

局限与争议

源码也暴露了当前的问题:

  • 思考深度下降67%:2月份的“自适应思考”更新,让模型在某些任务上偷懒
  • 读改比从6.6降到2.0:模型跳过调研步骤,仓促修改
  • 缓存bug导致成本翻倍:Extra Usage模式下缓存时长被错误降级

这些问题的根源正是第一条原则的副作用:当模型被赋予太多自主权,且框架层没有足够约束时,模型会选择“最省token”的路径,而不是“最正确”的路径。

行动指令

你在用Claude Code或其他AI编程工具吗?有没有遇到过“AI变蠢”或账单暴涨的情况?欢迎在评论区分享你的经历。

本文所有分析基于泄露的Claude Code源码(版本v2.1.92,2026年3月)。技术细节以官方最终实现为准。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐