Appearance
Claude Code 到底给大模型发了什么?除了我们在终端里输入的内容,它背后还带了哪些系统提示词、工具定义、上下文和请求参数?
最近越来越多朋友开始用 Claude Code,但很多人都会冒出同一个问题:Claude Code 背后发了什么?
如果你也对这些细节好奇,很推荐试试 claude-trace。
claude-trace 是什么
这是一个专门用于观察 Claude Code 请求细节的工具。它会拦截 Claude Code 发往 Anthropic API 的请求,记录成 .jsonl 日志,同时生成一份可以直接打开的 HTML 报告。
GitHub 地址:https://github.com/badlogic/lemmy/tree/main/apps/claude-trace
安装
bash
npm install -g @mariozechner/claude-trace核心使用方式
bash
# 启动带日志记录的 Claude Code
claude-trace
# 包含所有 API 请求(默认只记录更完整的对话)
claude-trace --include-all-requests
# 使用指定参数运行 Claude
claude-trace --run-with chat --model sonnet-3.5
# 生成包含所有请求的 HTML
claude-trace --generate-html logs.jsonl report.html --include-all-requests
# 生成对话摘要和可搜索索引
claude-trace --index
# 提取 OAuth token
claude-trace --extract-token你能看到什么
claude-trace 最有价值的地方,是让你直接看到 Claude Code 发给模型的全部内容:
- 系统提示词:Claude Code 默认加载了哪些指令
- 工具定义:它暴露了哪些工具给模型使用
- 工具输出:模型调用工具后返回了什么
- 原始请求和响应:完整的 API 请求体和模型回复
这对于想研究 Agent 工作流的人来说,非常直观。
输出文件说明
最终日志保存在当前项目目录下的 .claude-trace/log-YYYY-MM-DD-HH-MM-SS.{jsonl,html} 文件里:
| 文件类型 | 用途 |
|---|---|
.jsonl | 适合留底和二次处理 |
.html | 自包含报告,双击即可在浏览器打开查看 |
实用场景
场景一:调试 Agent 行为
当你觉得 Claude Code 在某个任务上"不听话"时,可以通过 claude-trace 查看它收到的完整上下文,理解模型为什么这样回复。
场景二:学习 Agent 设计
想了解成熟 Agent 产品是怎么设计系统提示词和工具定义的?claude-trace 能让你看到真实的案例。
场景三:优化 Token 成本
通过分析日志,了解每次请求消耗了多少 Token,识别是否有不必要的上下文传递。
注意事项
默认记录策略:claude-trace 默认不会把所有零碎请求都记下来,而是优先保留更完整、更有分析价值的对话。如果想看得更细,加上
--include-all-requests。索引功能会消耗 Token:如果使用
--index生成摘要和索引页,这一步会额外消耗 token。敏感信息脱敏:源码对敏感请求头做了脱敏处理,使用起来相对安全。
一句话总结
想搞清楚 Claude Code 背后在做什么?直接用 claude-trace 拦截请求,一目了然。
