Skip to content
Go back

揭秘Claude Code:为什么它如此出色,以及如何复现这种魔力

编辑页面

揭秘Claude Code:为什么它如此出色,以及如何复现这种魔力

BadAGI.org深度解析 - 基于MinusX团队的逆向工程分析

Claude Code架构分析

📋 Table of contents

引言:简单的力量

如果你对Claude Code的工作原理感兴趣,这篇来自MinusX团队的分析一定要读。

最核心的洞察是什么?

Claude Code在每个架构决策点上都选择了简单——一个主循环、简单的搜索、简单的待办事项列表等等。抵制过度设计的冲动,为模型搭建一个好的舞台,然后让它尽情发挥吧!

这难道不是自动驾驶领域”端到端”路线的重演吗?同样的教训,何其相似。

核心架构:四大支柱

1. 控制循环(Control Loop):极简主义的胜利

1.1 保持一个主循环

设计哲学:Keep Things Simple, Dummy

Claude Code拒绝了流行的多Agent架构,坚持使用单一主循环:

# Claude Code的核心循环(概念示意)
while True:
    user_input = get_input()
    context = build_context()
    response = llm_call(context)
    execute_tools(response)
    update_state()

为什么这么做?

反模式警告:

1.2 小模型无处不在

惊人的事实:超过50%的LLM调用使用claude-3-5-haiku

这些小模型被用于:

成本效益分析:

标准模型调用成本:100%
小模型调用成本:20-30%
性能损失:<10%(对于特定任务)
总体成本节省:70-80%

2. 提示词(Prompts):精心雕琢的艺术

2.1 CLAUDE.md模式:协作管理用户偏好

文件结构:

~/.claude/CLAUDE.md  # 全局偏好
./CLAUDE.md          # 项目特定偏好

这些文件会自动被拉入上下文,包含:

Token分配:

系统提示词:~2800 tokens
工具定义:~9400 tokens  
用户CLAUDE.md:1000-2000 tokens
总计:13000-14000 tokens(起始上下文)

2.2 特殊标签和大量示例

Claude Code使用了大量的XML标签和Markdown格式化:

<thinking>
分析用户需求...
</thinking>

<plan>
1. 搜索相关代码
2. 理解现有模式
3. 实现新功能
</plan>

<execute>
具体执行步骤...
</execute>

示例驱动的提示词设计:

3. 工具(Tools):少即是多

3.1 LLM搜索 >>> 基于RAG的搜索

革命性选择:抛弃RAG,拥抱LLM原生搜索

传统RAG的问题:

Claude Code的方案:

# 使用复杂的ripgrep命令
rg "class.*Controller" --type py

# 使用jq处理JSON
cat package.json | jq '.dependencies'

# 使用find定位文件
find . -name "*.test.js" -mtime -7

为什么这样更好?

3.2 工具设计哲学:高级vs底层

使用频率排行:

  1. Edit - 编辑文件(最频繁)
  2. Read - 读取文件
  3. ToDoWrite - 管理待办事项
  4. Bash - 执行命令
  5. Search - 搜索代码

设计原则:

3.3 让Agent管理自己的待办事项

ToDoWrite工具的妙用:

待办事项:
- [x] 理解现有代码结构
- [x] 编写测试用例
- [ ] 实现核心功能
- [ ] 重构和优化
- [ ] 更新文档

这不仅是给用户看的,更是Agent自己的”工作记忆”:

4. 可引导性(Steerability):精细的控制

4.1 语气和风格控制

Claude Code在提示词中有详细的风格指导:

响应风格:
- 简洁直接,避免冗长解释
- 专注于解决问题,而非展示知识
- 承认不确定性,不要假装全知
- 使用用户的术语和命名习惯

4.2 “请注意,这很重要”仍然是王道

尽管看起来很原始,但直接的强调仍然最有效:

⚠️ 重要:绝对不要修改测试文件
🔴 关键:始终先运行现有测试
⭐ 核心原则:保持向后兼容

4.3 算法化的提示词

将复杂逻辑写成明确的算法步骤:

当用户要求重构时:
1. 先运行所有测试,确保通过
2. 识别重构的范围和影响
3. 创建重构计划并获得确认
4. 逐步执行,每步后运行测试
5. 完成后运行完整测试套件

实战洞察:数据说话

工具使用统计

基于MinusX团队的分析:

Edit工具:35%(最频繁)
Read工具:25%
ToDoWrite:15%
Bash命令:10%
搜索相关:10%
其他:5%

模型调用分布

claude-3-5-haiku(小模型):50%+
claude-3-5-sonnet(主模型):40%
其他模型:10%

性能对比

与其他AI编程工具相比:

哲学反思:端到端的胜利

与自动驾驶的平行宇宙

自动驾驶领域的教训:

Claude Code的选择:

”苦涩的教训”重现

Rich Sutton的”The Bitter Lesson”再次被验证:

从长远来看,利用计算能力的通用方法最终会胜过利用人类知识的专门方法。

Claude Code的体现:

如何在你的Agent中复现这种魔力

第一步:简化架构

# 错误示范:过度设计
class ComplexAgentSystem:
    def __init__(self):
        self.perception_agent = PerceptionAgent()
        self.planning_agent = PlanningAgent()
        self.execution_agent = ExecutionAgent()
        self.monitoring_agent = MonitoringAgent()
        # 20个Agent后...

# 正确示范:简单有效
class SimpleAgent:
    def __init__(self):
        self.llm = LLM()
        self.tools = Tools()
    
    def run(self):
        while True:
            response = self.llm.think()
            self.tools.execute(response)

第二步:优化模型使用

def smart_model_selection(task):
    if task in ['read_file', 'parse_html', 'summarize']:
        return use_small_model()  # 便宜快速
    elif task in ['write_code', 'debug', 'architect']:
        return use_large_model()  # 强大准确

第三步:精心设计提示词

# 项目根目录下的AGENT.md
项目规范:
- 使用TypeScript
- 遵循函数式编程
- 优先使用组合而非继承

禁止事项:
- 不要使用any类型
- 不要忽略错误处理
- 不要硬编码配置

示例模式:
[具体的代码示例]

第四步:构建简单有效的工具

# 专注于核心功能
tools = {
    'edit': edit_file,      # 80%的需求
    'read': read_file,      # 15%的需求  
    'execute': run_command, # 5%的需求
}
# 就这么简单!

关键启示:少即是多

1. 复杂性是敌人

每增加一层抽象,调试难度指数级增长。保持简单,保持可控。

2. 让模型发挥所长

与其设计复杂系统来”帮助”模型,不如给它简单工具,让它自己发挥。

3. 迭代胜过设计

从简单开始,根据实际使用逐步改进,而非一开始就过度设计。

4. 用户体验至上

技术的复杂性不应该暴露给用户。简单的界面背后可以是精妙的实现。

立即行动:你的Agent改造计划

  1. 审视现有架构:是否过度复杂?
  2. 简化控制流:能否用单一循环替代?
  3. 优化模型调用:哪些任务可以用小模型?
  4. 改进提示词:是否足够具体和示例化?
  5. 精简工具集:哪些工具真正被频繁使用?

总结:大道至简

Claude Code的成功不是因为它有多复杂,而是因为它足够简单。在AI Agent的设计中,我们需要的不是更多的组件和抽象,而是:

正如MinusX团队所说:

抵制过度设计的冲动,为模型搭建一个好的舞台,然后让它尽情发挥吧!

这可能就是AI时代的设计哲学:不是我们有多聪明,而是我们能多好地让AI发挥它的聪明。

延伸阅读


🎯 核心洞察:在AI的世界里,简单不是妥协,而是最高级的优雅。Claude Code用它的成功证明了这一点。


编辑页面
Share this post on:

Next Post
Claude提示词架构:10层结构打造完美上下文工程