<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Claude-Tap on liaohch3</title><link>https://liaohch3.com/tags/claude-tap/</link><description>Recent content in Claude-Tap on liaohch3</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 23:42:53 +0800</lastBuildDate><atom:link href="https://liaohch3.com/tags/claude-tap/index.xml" rel="self" type="application/rss+xml"/><item><title>claude-tap：把 Claude Code / Codex 的真实请求抓出来</title><link>https://liaohch3.com/posts/claude-tap-trace-viewer/</link><pubDate>Sun, 03 May 2026 23:42:53 +0800</pubDate><guid>https://liaohch3.com/posts/claude-tap-trace-viewer/</guid><description>&lt;p&gt;今天发了一条推文介绍 &lt;a class="link" href="https://github.com/liaohch3/claude-tap" target="_blank" rel="noopener"
 &gt;claude-tap&lt;/a&gt;。这里把背景和截图整理成一篇博客，方便以后回看。&lt;/p&gt;
&lt;p&gt;我的主业是 Agent 开发，日常经常需要研究 Claude Code / Codex 这类工具的上下文工程：system prompt 怎么写，messages 怎么组织，tools 怎么传，tool results 怎么回灌，token 又花在了哪里。&lt;/p&gt;
&lt;p&gt;以前社区里有一个 &lt;code&gt;claude-trace&lt;/code&gt;，但它已经不太适配最新的 Claude Code。所以我重新做了一个工具：&lt;code&gt;claude-tap&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="claude-tap-做什么"&gt;claude-tap 做什么
&lt;/h2&gt;&lt;p&gt;一句话：&lt;strong&gt;把 Claude Code / Codex 的真实请求抓出来，生成本地 HTML trace viewer。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;它会在本地启动一个 proxy，把客户端发给上游模型服务的请求记录下来，最后生成 JSONL trace 和一个自包含的 HTML 页面。这个页面可以直接打开，不依赖服务端。&lt;/p&gt;
&lt;img src="https://liaohch3.com/images/claude-tap/github-overview.jpg" alt="claude-tap GitHub 项目首页" loading="lazy"&gt;
&lt;p&gt;它主要解决的是一个很具体的问题：不要只猜 Agent harness 怎么设计，而是直接看真实请求。&lt;/p&gt;
&lt;h2 id="看见完整上下文"&gt;看见完整上下文
&lt;/h2&gt;&lt;p&gt;Claude Code / Codex 真正发给模型的内容，通常比我们肉眼在终端里看到的复杂很多。除了用户消息，还有 system prompt、developer instructions、工具定义、历史消息、continuation 信息、token usage 等。&lt;/p&gt;
&lt;p&gt;这些东西如果只靠猜，很容易误判。trace viewer 能把每次 LLM call 展开看：&lt;/p&gt;
&lt;img src="https://liaohch3.com/images/claude-tap/trace-overview.jpg" alt="在 trace viewer 中查看 Codex 请求上下文" loading="lazy"&gt;
&lt;p&gt;对我来说，最有价值的是能看到这些细节：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;system prompt / instructions&lt;/li&gt;
&lt;li&gt;messages / input&lt;/li&gt;
&lt;li&gt;tools schema&lt;/li&gt;
&lt;li&gt;tool calls 和 tool results&lt;/li&gt;
&lt;li&gt;token usage&lt;/li&gt;
&lt;li&gt;WebSocket / SSE 事件&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这对于研究一个 Agent 工具为什么这样行动、为什么上下文变大、为什么某次调用结果不稳定，都很有帮助。&lt;/p&gt;
&lt;h2 id="看见工具调用和结果"&gt;看见工具调用和结果
&lt;/h2&gt;&lt;p&gt;Agent 工具链里，LLM call 本身只是一部分。很多行为真正发生在工具调用阶段。&lt;/p&gt;
&lt;p&gt;比如 Codex 调用 &lt;code&gt;exec_command&lt;/code&gt; 时，模型到底生成了什么参数，工具返回了什么结果，下一轮又如何把结果喂回模型，这些都可以在 viewer 里展开看。&lt;/p&gt;
&lt;img src="https://liaohch3.com/images/claude-tap/tool-calls.jpg" alt="查看工具调用和工具结果" loading="lazy"&gt;
&lt;p&gt;这类信息平时散落在终端输出和内部状态里，直接读很麻烦。放进 trace viewer 后，就比较适合复盘和对比。&lt;/p&gt;
&lt;h2 id="对比连续请求"&gt;对比连续请求
&lt;/h2&gt;&lt;p&gt;另一个我常用的功能是 diff。&lt;/p&gt;
&lt;p&gt;Agent 在连续几轮调用中，新增了哪些消息，工具结果如何进入上下文，&lt;code&gt;previous_response_id&lt;/code&gt;、metadata、prompt cache 等字段怎么变化，都可以直接对比。&lt;/p&gt;
&lt;img src="https://liaohch3.com/images/claude-tap/diff-view.jpg" alt="对比连续请求的差异" loading="lazy"&gt;
&lt;p&gt;这对调试上下文工程很有用。尤其是在改 prompt、改 tool schema、改 harness 逻辑之后，可以直接看新旧请求差异，而不是只看最终回答。&lt;/p&gt;
&lt;h2 id="为什么是本地-html"&gt;为什么是本地 HTML
&lt;/h2&gt;&lt;p&gt;我做这个工具时有一个很明确的边界：数据默认留在本地。&lt;/p&gt;
&lt;p&gt;trace 里会包含 system prompt、上下文、工具结果，有些项目里还会出现路径、日志、内部配置等信息。把它做成一个本地 HTML viewer，比较适合个人研究、团队内部复盘和问题定位。&lt;/p&gt;
&lt;p&gt;它不是一个生产监控平台，也不想先把数据上传到某个云服务。它更像一个开发者工具：需要的时候打开，用完之后 trace 文件还在你自己的机器上。&lt;/p&gt;
&lt;h2 id="试用"&gt;试用
&lt;/h2&gt;&lt;p&gt;项目地址：&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/liaohch3/claude-tap" target="_blank" rel="noopener"
 &gt;https://github.com/liaohch3/claude-tap&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;安装：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uv tool install claude-tap
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;追踪 Claude Code：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;claude-tap
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;追踪 Codex：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;claude-tap --tap-client codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果你也在研究 Agent、Claude Code、Codex、上下文工程，欢迎试用、提 issue 或 star。&lt;/p&gt;
&lt;p&gt;原推文：&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://x.com/liaohch3/status/2050964318070673581" target="_blank" rel="noopener"
 &gt;https://x.com/liaohch3/status/2050964318070673581&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>