Claude Code / Codex 到底把什么发给了模型?用 ccglass 做一次请求级观测 现在很多开发者已经开始把 AI 编程 Agent 当成日常工具使用。比如 Claude Code、Codex、OpenCode、Cursor、Cline、DeepSeek 相关 CLI、Kimi、Ollama、OpenRouter 等。它们不只是补全代码还会读项目、搜索文件、调用工具、运行命令、修改代码、解释错误甚至连续完成一个小型开发任务。这类工具确实提高了效率但也带来一个很现实的问题当 Agent 做错事时我们经常不知道它到底为什么错。你能看到它最终说了什么也能看到它改了哪些文件。但很多关键问题并不在最终回答里它到底把哪些上下文发给了模型system prompt 里有哪些限制和行为规则这一轮请求带了哪些 tool schema模型有没有真的返回 tool call工具结果有没有进入下一轮上下文input token 为什么突然变大cache 有没有命中请求慢到底是网络慢、模型慢还是上下文太重同一个任务下Claude Code 和 Codex 给模型的请求有什么差异如果这些问题看不到调试 AI Agent 就很容易变成猜测。这篇文章介绍一个开源工具ccglass。GitHub 地址https://github.com/jianshuo/ccglassccglass 是什么一句话概括ccglass 是一个面向 AI 编程 Agent 的本地观测工具用来查看 Agent 实际发送给大模型的请求和响应。它不是新的 AI 编程助手也不是模型服务商。它更像一个本地的请求观察层。当你运行 Claude Code、Codex、OpenCode、Kimi、Ollama、OpenRouter 等工具时ccglass 可以在本地启动一个代理服务把请求和响应记录下来再通过 Web Dashboard 展示出来。你可以在 Dashboard 中看到request / response bodysystem promptuser / assistant 消息历史tools schematool calltool resultstreamed chunkstoken 使用量cache 命中情况cost 估算latency 和吞吐不同请求之间的上下文 diff这对使用 AI 编程工具的人来说很有价值因为很多 Agent 的行为差异本质上都藏在请求层。为什么只看最终答案不够以前我们使用普通聊天模型时主要关注的是模型回答得对不对但 AI 编程 Agent 不一样。它不是一次性回答问题而是在多轮循环中不断做决策先读哪些文件是否要运行测试是否调用搜索工具工具参数怎么填工具返回结果后要不要继续请求模型哪些上下文需要保留是否应该修改文件所以 Agent 的失败不一定是“模型不聪明”也可能是请求链路里的某个环节出了问题。举几个常见例子。1. Agent 没有调用工具表面现象Agent 说自己无法确定结果或者直接给出一个泛泛的回答。可能原因tool schema 根本没有传给模型工具描述太模糊模型不知道何时使用system prompt 限制了工具调用客户端没有正确解析模型返回的 tool call。如果只看最终回答很难判断是哪种情况。用 ccglass 可以直接检查请求里有没有工具 schema响应里有没有 tool call。2. Agent 修改了错误文件表面现象它确实改了代码但改的不是问题所在。可能原因第一轮请求没有项目结构搜索工具返回了相似但无关的文件工具结果太长关键信息被稀释后续请求没有保留关键错误输出。这类问题看 Dashboard 里的消息历史和工具结果会更清楚。3. token 成本突然升高表面现象一个看似很小的任务跑了很多轮请求成本明显变高。可能原因每一轮都重复携带大量文件内容工具返回结果没有被压缩上下文没有有效裁剪cache 命中率低system prompt 和 tool schema 本身就很大。ccglass 可以展示 input token、output token、cache token 和 cost 估算。对于团队使用 AI 编程工具这些指标很有必要。ccglass 和普通抓包工具有什么不同有些同学可能会问这不就是抓包吗Charles、mitmproxy、Proxyman 不能做吗通用抓包工具当然有价值但 AI 编程 Agent 的场景有一些特殊点。很多 AI CLI 是 Node 或原生程序不一定稳定遵守HTTP_PROXY/HTTPS_PROXY。有些客户端还有自己的网络实现、认证逻辑或流式响应处理方式。直接 patchfetch也容易因为客户端升级而失效。ccglass 的思路是在本地启动一个代理服务。通过OPENAI_BASE_URL、ANTHROPIC_BASE_URL等环境变量把 Agent 请求指向本地代理。本地代理记录请求和响应。再把请求转发到真实模型 API。Dashboard 读取日志并可视化展示。这种方式的好处是不需要安装 CA 证书不需要解密 HTTPS不需要改客户端源码更适合观察 prompt、tool call、token、cache、cost、latency更贴近 AI Agent 的调试场景。它不是替代所有抓包工具而是把重点放在 AI 编程请求的可观测性上。快速开始ccglass 是一个 Node 工具安装方式很简单npm install -g ccglass安装完成后直接运行ccglass它会弹出交互式菜单让你选择要观察的客户端。也可以直接指定ccglass claude ccglass codex ccglass kimi ccglass opencode ccglass ollama ccglass openrouter例如观察 Codexccglass codex启动成功后终端会输出 Dashboard 地址类似dashboard: http://127.0.0.1:57633打开这个地址就可以实时查看请求记录。一个实际调试场景假设你让 Agent 修复一个测试失败项目里有一个测试失败请分析原因并修复。Agent 最后给出一个改动但测试仍然没过。这时如果只看最终输出你可能只能问它是不是没理解需求但用 ccglass可以把问题拆得更具体第一轮请求里是否包含测试失败信息Agent 是否真的运行了测试测试输出是否被完整返回给模型它搜索了哪些文件它读取的源码和测试是否匹配修改前最后一轮请求里模型到底看到了哪些上下文修改后是否又请求模型检查结果这样调试就从“猜 Agent 为什么错”变成“检查请求链路哪里断了”。适合哪些人使用我觉得 ccglass 特别适合下面几类开发者经常使用 Claude Code、Codex 等 AI 编程工具的人想研究不同 Agent 请求结构差异的人正在开发 AI Agent、IDE 插件或 OpenAI-compatible 客户端的人需要排查 tool calling 问题的团队关注 token 成本、cache 命中率和请求延迟的人想把 AI 编程过程沉淀成可复盘日志的人。如果你只是偶尔让 AI 写一段小代码可能暂时不需要它。但如果你已经开始让 AI Agent 参与真实项目尤其是让它读文件、改代码、跑测试、调用工具那么请求级可观测性会越来越重要。可以重点观察哪些指标第一次使用 ccglass 时可以先从这几个地方看1. system prompt看看 Agent 的底层规则是什么。很多行为差异不是模型本身造成的而是 system prompt 决定的。2. tool schema看看模型实际看到了哪些工具工具描述是否清晰参数结构是否复杂。3. tool call 顺序看看 Agent 是先读文件、先搜索、先跑测试还是直接修改代码。4. 上下文变化观察每一轮请求新增了什么、保留了什么、丢失了什么。5. token 和 cost关注 input token 是否持续膨胀cache 是否命中单次任务成本是否异常。6. latency区分是模型生成慢、上下文太大还是请求链路本身慢。总结AI 编程工具正在从“代码补全”走向“开发 Agent”。这个变化很重要因为 Agent 不只是生成代码它还会读上下文、调用工具、做决策、执行多轮任务。能力越强黑箱感也越强。如果我们只能看到最终回答就很难判断 Agent 是哪里做错了是 prompt 问题、工具问题、上下文问题、客户端解析问题还是 token 和成本控制问题。ccglass 的价值就在这里它把 AI 编程 Agent 的请求过程展示出来让调试从猜测回到证据。如果你也在用 Claude Code、Codex、OpenCode、Kimi、Ollama、OpenRouter 或其他 OpenAI-compatible 客户端可以试试这个工具。GitHubhttps://github.com/jianshuo/ccglass安装npm install -g ccglass启动ccglass对于越来越复杂的 AI 编程工作流来说看清请求层可能会成为开发者的基本功。