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...

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

相关推荐
嘟嘟MD5 小时前
程序员副业 | 2025年9月复盘
后端·aigc
楼田莉子5 小时前
Qt开发学习——QtCreator深度介绍/程序运行/开发规范/对象树
开发语言·前端·c++·qt·学习
暮之沧蓝5 小时前
Vue总结
前端·javascript·vue.js
尘觉5 小时前
中秋节与 Spring Boot 的思考:一场开箱即用的团圆盛宴
java·spring boot·后端
木易 士心6 小时前
Promise深度解析:前端异步编程的核心
前端·javascript
间彧6 小时前
Seata分布式事务框架详解与项目实战
后端
zhuyasen6 小时前
单机已达上限?PerfTest 分布式压测登场,轻松模拟百万用户洪峰
后端·性能优化·测试
im_AMBER6 小时前
Web 开发 21
前端·学习
又是忙碌的一天6 小时前
前端学习day01
前端·学习·html
勇哥java实战分享6 小时前
sensitive-word:一个简单易用的敏感词过滤框架
后端