调试Claude code的正确姿势
随着kimi k2的发布,Claude code的使用频率愈发的频繁,在发现moonshot官方提供了调试工具之后,我对claude code的交互过程愈发好奇。
moonpalace的安装
官方moonpalace仓库地址
go语言编写,可以直接下载二进制二进制文件,并添加到环境变量中。
代理运行
moonpalace start
默认端口9988
$ moonpalace start --port <PORT>
[MoonPalace] 2024/07/29 17:00:29 MoonPalace Starts => change base_url to "http://127.0.0.1:9988/v1"
[MoonPalace] 2024/07/29 21:30:53 POST /v1/chat/completions 200 OK
[MoonPalace] 2024/07/29 21:30:53 - Request Headers:
[MoonPalace] 2024/07/29 21:30:53 - Content-Type: application/json
[MoonPalace] 2024/07/29 21:30:53 - Response Headers:
[MoonPalace] 2024/07/29 21:30:53 - Content-Type: application/json
[MoonPalace] 2024/07/29 21:30:53 - Msh-Request-Id: c34f3421-4dae-11ef-b237-9620e33511ee
[MoonPalace] 2024/07/29 21:30:53 - Server-Timing: 7134
[MoonPalace] 2024/07/29 21:30:53 - Msh-Uid: cn0psmmcp7fclnphkcpg
[MoonPalace] 2024/07/29 21:30:53 - Msh-Gid: enterprise-tier-5
[MoonPalace] 2024/07/29 21:30:53 - Response:
[MoonPalace] 2024/07/29 21:30:53 - id: cmpl-12be8428ebe74a9e8466a37bee7a9b11
[MoonPalace] 2024/07/29 21:30:53 - prompt_tokens: 1449
[MoonPalace] 2024/07/29 21:30:53 - completion_tokens: 158
[MoonPalace] 2024/07/29 21:30:53 - total_tokens: 1607
[MoonPalace] 2024/07/29 21:30:53 New Row Inserted: last_insert_id=15
命令行中并未包含我们想要的数据,只是展示了简略的信息。但很幸运的是,请求的request和response都被完整记录在sqlite数据库中。
因此我在原版项目基础上添加了web命令。
web改造
因为主要任务是研究提示词,并未深入测试,所以单独建立了一个仓库,在此基础上添加。
moonpalaceweb仓库
为了减少web请求也被记录的数据库的情况,并未和start共用一个命令,增加了一个web命令,默认端口9998
D:\>moonpalace web
[MoonPalace] 2025/07/20 20:56:09 Web interface started at http://127.0.0.1:9998/
完整显示了请求信息,如果需要获取详情信息点击view detail。
主要元数据
request
response
返回的是sse数据。
后续我们可以根据实际发送的请求深入研究claude code的提示词设计