Claude Code 黑箱揭秘

一次拆解 Claude Code 的实验:如何看懂它的运作机制?

最近,Claude Code 在程序员圈子里可谓是大火。

它几乎以一己之力,把「命令行里的 AI 编程助手」这个概念推向了高潮:

  • 不用打开 VS Code,也不用开网页,你只要在 CLI 里打一行命令,它就能理解上下文,直接生成大段可运行的代码。
  • 不仅能帮写,还能调试、执行、解释,就像一个随时待命的"AI 结对程序员"。
  • 在交互体验上,它甚至比 GitHub Copilot CLI 或 OpenAI 出的一些实验性工具要更"超前",让人第一次有了"AI 真正接管命令行"的感觉。

但问题也随之而来:

👉 Claude Code 究竟是如何做到的?

  • 它的 上下文压缩 是怎么做的,才能在有限的 token 内理解我们整个项目结构?
  • 它的 工具调用机制 又是怎么实现的?到底有哪些内置的工具?是通过 JSON schema 还是其他协议?
  • 它在背后调用模型时,prompt 是如何写的,能让大模型既听懂人话,又能正确执行系统命令?

这些问题,官方几乎没有透露太多细节。于是,Claude Code 成了一个"黑箱"------大家都在用,都觉得很强,但很少有人真的搞清楚它的内部逻辑。

带着这些疑问,我写了一个小工具 ------ claude-code-proxy, 它可以劫持 Claude Code 的 API 调用,把整个过程「可视化」出来,让我们像看 X 光片一样观察它的内部运作。

我是怎么做的?

工具的原理很简单:

  1. 找到全局安装的 @anthropic-ai/claude-code
  2. 修改它的 cli.js,Hook 住 this.beta.messages.create() 方法
  3. 把所有请求和响应记录到日志
  4. 用一个 Web 界面展示出来

效果就是: 你可以在浏览器里看到 Claude Code 的所有输入和输出,包括:

  • 系统 prompt
  • 用户输入
  • 可用工具定义
  • AI 的回复
  • tool 调用详情

启动

命令非常简单:

bash 复制代码
npm install -g claude-code-proxy
claude-code-proxy

运行之后会自动:

  • 修改 Claude Code 的 CLI 文件
  • 启动本地服务器 (http://localhost:3000)
  • 自动打开一个 Web 界面

在界面里,你能直观地看到:

  • Conversation 面板:完整的输入输出对话
  • Global Tool Set:工具定义
  • Guessed System Prompts:Claude 隐藏的系统提示
  • Input / Output 面板:请求参数、响应内容、token 用量等

就像是给 Claude Code 接了一台「黑箱解剖机」。

授人以渔

在教会了大家怎么用以后,我更希望你们能亲自跑起来,真正去观察 Claude Code 的行为模式。

因为很多细节,只有在你自己抓到日志、对比不同场景下的输入输出后,才会真正「恍然大悟」:

  • 上下文压缩:你会发现它并不是把所有文件都塞进去,而是做了"提取 + 摘要"的策略,这样才能在有限的 token 内保留关键信息。
  • 工具调用:它的工具定义其实就是一组 JSON schema,你能清楚看到大模型是怎么通过 structured output 来触发系统调用的。
  • 系统提示词:Claude 的隐藏 prompt 里,往往暗藏了对 Agent 行为的规范约束,理解这些提示能让你知道它为什么会「听话」。

这些部分就像「黑箱」的骨架和血肉,你不跑一跑日志是看不到的。

所以,这个工具本质上不是"教你怎么用 Claude Code",而是教你怎么拆解一个 AI Agent 的工作机制

等你亲手拆过一次,再去看其他的 AI 编程助手,就能更快看懂它们的设计思路。

项目地址

工具已经开源在 GitHub,感兴趣的朋友可以看看: 👉 github.com/shanhexi/cl...

欢迎大家交流学习,如果你有新的发现或者改进点,欢迎一起讨论。

相关推荐
bobz9651 小时前
新研究:纯强化学习可激发大模型高级推理能力
后端
shark_chili1 小时前
解密计算机心脏:CPU南北桥技术发展全解析
后端
吃饺子不吃馅2 小时前
为什么SnapDOM 比 html2canvas截图要快?
前端·javascript·面试
努力的小雨2 小时前
混元开源之力:spring-ai-hunyuan 项目功能升级与实战体验
后端·github
bobz9652 小时前
calico vs cilium
后端
这里有鱼汤2 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
绝无仅有2 小时前
面试实战总结:数据结构与算法面试常见问题解析
后端·面试·github
绝无仅有2 小时前
Docker 面试常见问题及解答
后端·面试·github
程序员爱钓鱼2 小时前
Go语言100个实战案例-项目实战篇:股票行情数据爬虫
后端·go·trae