如何查询Claude Code 这样的工具实际发送给模型的提示词
如何查看 Claude Code 这类工具实际发给 AI 模型的提示词?
一、背景
相信不少朋友在使用 Claude Code、Cursor 等 AI 编程工具时,会发现每次对话消耗的 token 数量惊人。比如我只问了一句“你是谁”,输入 token 却显示 42k,这相当于一本短篇小说的长度!这些 token 究竟用在了哪里?工具在背后悄悄添加了哪些提示词(prompt)?
其实,这类工具为了帮助 AI 更好地理解任务,通常会在我们输入的简短问题前面,自动拼接上大量的系统指令、技能描述、工具调用说明等。这些内容虽然我们看不见,但每次请求都会发送给 AI 模型,因此消耗了大量 token。
本文将手把手教你如何通过 Charles Proxy 代理工具,拦截并查看 Claude Code 实际发送给 AI 模型的完整请求内容,让你清楚了解 token 到底消耗在哪些地方。
二、操作步骤(以 Windows 11 为例)
整个操作的核心思想是:用 Charles Proxy 作为中间人,解密 HTTPS 流量,查看 Claude Code 与 AI 服务之间的通信内容。以下是详细步骤。
1. 安装 Charles Proxy 代理工具
Charles Proxy 是一个功能强大的 HTTP/HTTPS 抓包工具,可以监控、修改甚至重发网络请求。它就像在浏览器和服务器之间安装了一个“监控摄像头”,能让我们看到所有传输的数据。
-
访问 Charles 官方下载页面:https://www.charlesproxy.com/latest-release/download.do
-
根据你的操作系统选择对应版本(Windows 选择
.exe安装包)。
(图片说明:Charles 官网下载页面,提供了 Windows、macOS、Linux 等版本的下载链接)
下载后双击安装,一直点击“下一步”即可完成安装。
2. 配置 Charles Proxy
为了能够解密 HTTPS 流量(因为 Claude Code 发送的是加密的 HTTPS 请求),我们需要进行以下配置。
(1)配置 SSL Proxying Settings
Charles 默认不会解密 HTTPS 流量,需要手动开启 SSL 代理功能。
-
打开 Charles,点击顶部菜单栏的 Proxy → SSL Proxying Settings。

-
在弹出的窗口中,勾选 Enable SSL Proxying。
-
点击 Add 按钮,在 Host 和 Port 中分别填入
*和*,表示对所有域名和端口的 HTTPS 流量进行解密。(也可以根据需求只添加特定域名,例如api.anthropic.com或openrouter.ai。) -
点击 OK 保存。
(2)配置 Proxy Settings
确保 Charles 的代理端口正确,通常默认是 8888。
-
点击菜单栏 Proxy → Proxy Settings。

-
在 HTTP Proxy 选项卡中,确认 Port 为 8888,并勾选 Enable transparent HTTP proxying。
-
点击 OK 保存。
(3)安装 Charles 根证书
为了让 Charles 能够解密 HTTPS 流量,我们需要在操作系统中安装 Charles 生成的根证书,并信任它。这样,Charles 就可以用自己的证书“冒充”目标服务器,解密并查看加密数据。
-
点击菜单栏 Help → SSL Proxying → Install Charles Root Certificate。

-
系统会弹出证书安装向导,选择“本地计算机” → “将所有证书都放入下列存储”,然后点击“浏览”,选择“受信任的根证书颁发机构”,完成安装。



安装完成后,最好重启 Charles 使配置生效。
为什么需要安装根证书?
因为 HTTPS 是加密的,正常情况下无法直接查看内容。Charles 通过成为中间人,用自己的证书与客户端(Claude Code)建立连接,同时与服务器建立另一个连接。客户端必须信任 Charles 的证书,否则会报安全警告。安装根证书就是告诉系统:“Charles 是可信的,允许它解密我的 HTTPS 流量。”
如果遇到问题,可以参考以下资料:
3. 修改 Claude Code 的配置文件
Claude Code 基于 Node.js 开发,我们可以通过设置环境变量,让它的请求经过 Charles 代理,并允许自签名证书(Charles 的根证书就是自签名的)。
配置文件位于:C:\Users\你的用户名\.claude.json
(如果没有该文件,可以新建一个,或者先运行一次 Claude Code 自动生成。)
用文本编辑器(如记事本、VS Code)打开,内容示例如下:
{
"numStartups": 55,
"customApiKeyResponses": {
"approved": ["“”"],
"rejected": []
},
"env": {
"IS_SANDBOX": "1",
"ANTHROPIC_AUTH_TOKEN": "sk-or-v1-XXXX",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"HTTPS_PROXY": "http://127.0.0.1:8888",
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "stepfun/step-3.5-flash:free",
"ANTHROPIC_REASONING_MODEL": "stepfun/step-3.5-flash:free",
"ANTHROPIC_MODEL": "stepfun/step-3.5-flash:free",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "stepfun/step-3.5-flash:free",
"ANTHROPIC_API_KEY": "",
"NODE_TLS_REJECT_UNAUTHORIZED": 0,
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "stepfun/step-3.5-flash:free",
"ANTHROPIC_SMALL_FAST_MODEL": "stepfun/step-3.5-flash:free"
}
}
关键字段解释:
HTTPS_PROXY:设置 HTTPS 代理地址为http://127.0.0.1:8888,这正是 Charles 的代理地址。这样 Claude Code 的所有 HTTPS 请求都会经过 Charles。NODE_TLS_REJECT_UNAUTHORIZED:设为0表示 Node.js 不会拒绝未授权的 TLS/SSL 连接(即接受自签名证书)。因为我们用的是 Charles 的自签名证书,如果不设置此项,Node.js 会因证书不受信任而报错,导致请求失败。ANTHROPIC_BASE_URL等字段是你使用的 API 地址和模型名称,可以根据实际情况调整,这里用的是 OpenRouter 的免费模型作为示例。ANTHROPIC_AUTH_TOKEN是你的 API 密钥,需要换成你自己的。
为什么要修改这些环境变量?
为了让 Claude Code 的网络请求强制走代理(HTTPS_PROXY),并且允许 Charles 的证书(NODE_TLS_REJECT_UNAUTHORIZED=0)。否则,请求会直接发送到服务器,我们就无法拦截查看了。
4. 启动 Charles Proxy
双击桌面图标启动 Charles。启动后,它会在后台运行,并开始监听 8888 端口的代理请求。
5. 启动 Claude Code 并开始对话
打开命令行(CMD 或 PowerShell),输入 claude 启动 Claude Code 交互界面。
然后随便输入一条消息,比如“你是谁”。
在 Claude Code 处理请求的过程中,Charles 会捕获到它和 AI 服务端的所有通信。

6. 在 Charles 中查看请求内容
回到 Charles 主界面,你会看到左侧不断有新的请求出现。由于流量很多,我们需要过滤出与 AI 服务相关的请求。
仔细观察,你会发现 Claude Code 在发送一次用户消息时,可能产生了两次请求,而且两次请求的数据量明显不同。
选中其中一个请求,点击上方的 Contents 标签,就可以看到完整的请求体(JSON 格式)。请求体中包含了实际发送给 AI 模型的提示词(prompt)。
例如,你可能会看到类似这样的内容:
这些额外的提示词包括:
- 系统指令:定义 AI 的身份、行为准则、任务目标。
- 技能描述:工具能调用的各种功能(如读文件、执行命令、搜索等)的详细说明。
- 历史对话摘要:之前的对话记录(如果有)。
- 工具调用规范:告诉 AI 如何格式化输出以调用本地工具。
正是这些内容,让一条简单的“你是谁”膨胀到了 42k token。
通过对比两次请求,发现第二次请求包含了回复,第一个只有请求
三、总结与思考
通过以上步骤,我们成功捕获了 Claude Code 与 AI 模型之间的通信,看到了那些隐藏的提示词。原来,工具为了增强 AI 的能力,会在后台默默添加大量系统指令和工具说明,这就是 token 消耗大户。
这种机制是合理的,因为 Claude Code 作为一个编程助手,需要让 AI 知道它可以读写文件、执行命令、理解代码库等。但了解这一点后,我们可以:
- 更理性地评估 token 消耗,避免对高用量感到意外。
- 如果使用自己的 API 密钥,可以尝试精简提示词(例如修改工具描述的长度)来降低成本。
- 理解 AI 工具的工作原理,未来遇到类似问题时能举一反三。
希望本文能帮助你揭开 AI 编程助手的神秘面纱,更好地掌控你的 token 使用!
注意事项:
- 抓包完成后,记得关闭 Charles,或者从系统代理设置中移除代理,否则可能影响正常上网。
- 如果你不想每次抓包都修改配置文件,可以设置临时的环境变量,例如在命令行中运行:
set HTTPS_PROXY=http://127.0.0.1:8888 set NODE_TLS_REJECT_UNAUTHORIZED=0 claude
闭 Charles,或者从系统代理设置中移除代理,否则可能影响正常上网。
- 如果你不想每次抓包都修改配置文件,可以设置临时的环境变量,例如在命令行中运行:
set HTTPS_PROXY=http://127.0.0.1:8888 set NODE_TLS_REJECT_UNAUTHORIZED=0 claude - 如果使用其他 AI 工具,原理类似,只需配置好代理并信任 Charles 证书即可。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)