ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

DeepSeek 的 Harness 团队对标 Claude Code,谁在为代码智能体消耗 Token?

2026/9/18 17:37:02 拓冰建站 浏览量
DeepSeek 的 Harness 团队对标 Claude Code,谁在为代码智能体消耗 Token? 想把 Claude Code 接到可观测的调用记录先打开 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentharness-token 创建 Key再把 Base URL 填成 https://taotoken.net/api。DeepSeek 资深研究员陈德里发出内部招聘贴、组建 Harness 团队对标 Claude Code 这条新闻真正值得开发者关心的不是团队名而是 Harness 式工程层如何组织长会话、多工具调用以及 Token 究竟由谁消耗。TaoToken 在这里只负责给 AI 编程工具供 Key 与 Base URL不参与 Harness 团队本身的产品研发。下面从 Claude Code settings.json 和 Codex config.toml 开始跑一轮多轮代码任务把“谁在消耗 Token”落到你自己的账单里。1. 从 DeepSeek Harness 对标 Claude Code 说起代码智能体的 Token 花在哪新闻层面只记住三件事DeepSeek 资深研究员陈德里发出内部招聘贴新团队叫 Harness定位是“除模型本身以外的所有工作”目标对标 Anthropic 的 Claude Code。如果把百川 AI 医生和 DeepSeek 代码智能体放在同一张图里看百川切的是医疗供给缺口Harness 切的是开发者工作流入口本篇只把后者拆成可跟做的 Agent / Harness 视角。代码智能体不是单轮聊天。一次“帮我修这个 issue”通常包含读取项目说明、检索文件、打开相关源码、生成补丁、运行测试、读取报错、再改。Claude Code 这类工具在每一轮都要把系统提示、工具定义、历史消息、工具返回结果重新提交给模型。模型只负责生成下一个 tokenHarness 负责决定什么时候读文件、什么时候调工具、什么时候压缩历史、什么时候开子 agent。Token 由模型 API 调用消耗但消耗量由 Harness 的编排策略放大或收敛。因此你要观察的不是“模型贵不贵”这一个点而是长会话里历史消息是否被完整重放工具 schema 是否常驻上下文文件读取是否一次拉入大文件子 agent 是否复制了主上下文压缩摘要本身是否也在消耗 token并行工具调用是否产生多份返回。适用场景很具体本地用 Claude Code 做多文件重构、用 Codex 跑仓库级任务、给编程工具换 Base URL 后核对账单。只有把请求打到可观测的调用记录里才能回答“谁在消耗 Token”。2. 在 TaoToken 创建 Key给 Claude Code / Codex 准备 Base URL 和模型 ID先打开 TaoToken 官网注册后在控制台创建 Key占位符记作 YOUR_API_KEY。然后在模型广场选择你要给代码智能体用的模型复制对应的模型 ID占位符记作 YOUR_MODEL_ID。不要凭记忆手写模型 ID也不要用展示名称代替可调用 ID。接入时记住两个地址API 基址https://taotoken.net/apiKey从官网控制台创建填入编程工具的环境变量或配置文件API 基址末尾不要加 /v1也不要拼 UTM 参数。Claude Code、Codex 这类工具会按自己的协议去拼路径你填的是供应商入口不是最终的 messages 或 responses 端点。TaoToken 在这里的角色是给 AI 编程工具供 Key 与 Base URL不参与 Harness 团队本身的产品研发。3. Claude Code settings.json 与 Codex config.toml可复制的 Harness 式配置这一段直接给配置文件。Claude Code 用户级配置通常放在 ~/.claude/settings.json也可以按项目放到 .claude/settings.json。关键是把 ANTHROPIC_BASE_URL 指向 TaoToken API 基址把 ANTHROPIC_AUTH_TOKEN 换成 YOUR_API_KEY把 ANTHROPIC_MODEL 换成模型广场里的 YOUR_MODEL_ID。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_MODEL_ID, ANTHROPIC_SMALL_FAST_MODEL: YOUR_MODEL_ID } }如果你把 Claude Code 配置拆到环境变量里等价写法是export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODELYOUR_MODEL_ID export ANTHROPIC_SMALL_FAST_MODELYOUR_MODEL_IDCodex 不要套用 ANTHROPIC_*。Codex 的配置通常放在 ~/.codex/config.toml用 provider 段描述 Base URL 和 Key 环境变量。下面给一个通用写法wire_api 与 model 字段要按你当前 Codex 版本和模型广场说明调整。model YOUR_MODEL_ID model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chat对应环境变量export TAOTOKEN_API_KEYYOUR_API_KEY如果你用 CC Switch 管理多套配置同样只填三件套Base URL 填 https://taotoken.net/apiKey 填 YOUR_API_KEY模型 ID 填从模型广场复制的 YOUR_MODEL_ID。不要把 Claude Code 的 ANTHROPIC_* 变量复制到 Codex 配置里两者读取配置的路径不同混用只会让请求发不出去或落到错误端点。4. 跑一次多轮代码任务在调用记录里验证 Token 归属配置改完后不要只发一句“你好”就算通了。用一个会触发多轮工具调用的任务才能看到 Harness 式工作流的 token 结构。下面以 Claude Code 为例在任意项目目录执行claude -p 读取当前目录的 README.md 和 package.json列出项目启动脚本再检索 src 目录里所有 TODO 注释输出文件名和行号不要修改任何文件 --output-format json如果你的 Claude Code 版本支持 --output-format json返回里会带 usage 字段。你要重点看两类数字input_tokens这一轮提交给模型的上下文规模output_tokens模型生成的补丁、解释或工具调用参数。再到 TaoToken 控制台的调用记录里对照时间、模型 ID、请求次数和 token 数。一个多工具任务通常不会只有一次请求读取文件、grep、生成下一步计划、汇总结果可能分别对应不同调用。Codex 用户可以用类似命令验证codex exec 读取 package.json解释 scripts 字段并列出 src 下的顶层目录不要修改文件跑完后回答三个问题总 token 里 input 占多少output 占多少同一轮任务发了几次请求工具调用是否触发了额外请求模型 ID 是否就是你在模型广场复制的那个。如果 input_tokens 远大于 output_tokens说明主要成本在上下文重放和工具返回而不是模型“话多”。如果请求次数远超预期说明 Harness 层在反复读文件、开子 agent 或重试。调用记录不是新闻复述它能把“谁在消耗 Token”拆到每一次请求。5. Harness 式工作流常见错误MCP、子 agent、wire_api 与模型 ID第一类问题Claude Code 的 ANTHROPIC_BASE_URL 填错。有人会把 Base URL 写成 https://taotoken.net/api/v1Claude Code 再按自己的路径拼一次结果路径重复。正确写法是 https://taotoken.net/api末尾不带 /v1。Codex 也不要填 ANTHROPIC_BASE_URL它读的是 config.toml 里的 provider 配置。第二类问题模型 ID 从展示页抄而不是从模型广场复制可调用 ID。表现可能是请求发出但返回模型不存在或者调用记录里没有预期模型。模型 ID 以官网模型广场为准配置里的 YOUR_MODEL_ID 必须逐个字符对齐。第三类问题MCP 工具开太多。每一个 MCP 工具都会把名称、描述、参数 schema 注入上下文。你开着文件系统、数据库、浏览器、搜索、项目管理等一堆 MCP即使本轮不用工具 schema 也可能常驻。长会话里这部分会反复计费。排查方法是暂时关闭未用 MCP只保留当前任务需要的工具再跑同一条命令对比 input_tokens。第四类问题子 agent 没有独立预算意识。主 agent 开子 agent 时子 agent 往往有自己的系统提示、工具集和上下文。子 agent 的每一次模型调用都会单独消耗 token主 agent 汇总子 agent 结果时还要再消耗一次。如果你看到调用记录里同一任务出现多组并发请求先检查是否触发了子 agent 或并行工具调用。对简单的“读文件 改一处”任务不必开子 agent。第五类问题大文件整段读取。让代码智能体直接 cat 一个几千行日志、lock 文件或构建产物input_tokens 会瞬间抬高。更合理的做法是先让它用 ripgrep/grep 缩小范围再只读相关片段。Claude Code 和 Codex 都支持检索式工作流Harness 的编排策略应该优先检索、再读取、最后修改。第六类问题无限长会话不做压缩或过度压缩。长会话每轮重放历史input_tokens 会随轮次增长但频繁执行压缩也会产生额外调用。比较稳的做法是一个任务一个会话任务完成后新开长任务在关键节点压缩一次保留目标、已改文件、未决问题丢弃大段工具日志。第七类问题Codex config.toml 里 wire_api 与当前模型不匹配。不同 Codex 版本、不同模型供应商对 chat、responses 等协议支持不同。如果请求能发出但返回格式解析失败先核对 Codex 文档和模型广场说明再调整 wire_api。不要同时保留多套 provider 配置却忘了切换 model_provider。第八类问题只看 output_tokens 判断成本。代码智能体的账单由输入、输出、请求次数共同决定。一次成功的补丁可能 output 很短但为了找到那一行代码Harness 层可能读取了十几个文件、执行了多次检索。排查时先把调用记录按时间排序标出每次请求对应的动作再判断是检索过多、历史过长还是子 agent 拆分过细。6. 配置完成后Key、Claude Code 文档与长期 Coding Plan 入口如果你刚改完 ~/.claude/settings.json 或 ~/.codex/config.toml下一步先去 API Keys 页面确认 Key 状态再对照 Claude Code 接入文档核对 Base URL、ANTHROPIC_* 变量和模型 ID。排障时先看调用记录再决定是换模型、关 MCP还是拆会话。创建和检查 Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewriteClaude Code 接入文档https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-docutm_campaignrewrite准备长期跑 Harness 式多轮 Agent 任务https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite把 Base URL 和 Key 配好后再跑一次第 4 节的多轮任务。只有当调用记录里的 input_tokens、output_tokens、请求次数和工具动作对得上DeepSeek Harness 对标 Claude Code 这条新闻才不只是团队名而是一套你能观察、能复现、能优化的代码智能体工作流。