Claude Code 评测:TaoToken 实测 Python CLI 依赖升级的缓存命中率
2026/9/18 12:17:35 网站建设 项目流程

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

1. 为什么用依赖升级任务测 Claude Code 的缓存命中

Claude Code 这类终端 Agent 的评测,最容易跑偏成「让它写个贪吃蛇」或者「解释一段正则」。这类任务单轮就结束,看不出 Agent 真正的成本结构。真正吃 token 的是那种需要反复读文件、改文件、跑测试、再根据报错回改的多轮任务——依赖升级就是典型代表。

我这次拿一个小型 Python CLI 项目做样本,任务链条是:读pyproject.toml确认依赖约束,把argparse的封装层从旧写法调整到新版本兼容写法,然后跑pytest验证。整个过程 Claude Code 会多次读取同一批文件,这正是观察 prompt token、completion token 和缓存命中差异的好场景。模型用的是 GLM 5.3 Flash,接入通道走 TaoToken,Base URL 是https://taotoken.net/api

先说清楚这篇的定位:TaoToken 在这里不是被评测对象,它是拿 Key、当默认供应商的那一步。被评测的是 Claude Code 这个 Agent 在依赖升级任务里的表现,以及 GLM 5.3 Flash 在缓存机制下的 token 消耗特征。本文不含任何公榜排行分数,所有数字都来自本地一次运行,环境、Prompt、时间都会写清楚,并且声明「一次运行,不代表公榜」。

为什么缓存命中值得单独拎出来测?因为多轮 Agent 任务里,系统提示、工具定义、已经读过的文件内容会在每一轮重复进入上下文。如果通道和模型支持 prompt caching,这部分重复内容按缓存价计费,成本能差出一个量级。如果不支持,每一轮都是全价重算。很多人在选 API 通道时只看单价,忽略了缓存这一层,结果多轮任务跑下来账单和预期完全对不上。这次实测就是想把这个差异量化出来。

样本项目结构很简单:一个cli.py里用argparse做了子命令封装,pyproject.toml里锁了几个依赖版本,tests/下有几个 pytest 用例。任务不算复杂,但足够触发「读配置 → 改代码 → 跑测试 → 看报错 → 再改」的完整循环。下面把环境、接入方式、对照表和复现步骤拆开写。

2. 环境与 Claude Code 接入 TaoToken 的配置

2.1 样本项目与运行环境

样本是一个本地的小型 Python CLI,目录大致是这样:

pycli/ ├── pyproject.toml ├── src/pycli/cli.py ├── src/pycli/__init__.py └── tests/test_cli.py

pyproject.toml里声明了argparse相关的封装依赖和一个测试依赖,版本约束偏旧。cli.py里把argparse.ArgumentParser包了一层,加了自定义的add_common_argsdispatch函数。任务目标是把这层封装调整到能兼容新版依赖的写法,同时不破坏现有测试。

运行环境记录如下,方便你复现时对齐:

项目
操作系统macOS(本地开发机)
Python3.11
Claude Code终端版,通过 npm 全局安装
模型GLM 5.3 Flash(模型 ID 以模型广场为准)
通道TaoToken 统一 API
Base URLhttps://taotoken.net/api
测试命令pytest -q

这里要强调一点:AI 工具不能直连你的生产库或生产机去「执行」业务。Claude Code 在本地跑pytest是它在你自己的开发目录里操作,命令由它生成、由本地 shell 执行,结果再贴回对话。生产环境的依赖升级、数据库变更这类操作,必须由你自己在受控环境里执行,Agent 只负责生成和解释命令。

2.2 Claude Code 的 Base URL 配置片段

Claude Code 接入自定义供应商,核心是三个环境变量:ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKENANTHROPIC_MODEL。可以直接在 shell 里 export,也可以写进~/.claude/settings.jsonenv字段。推荐后者,切换项目时不用反复 export。

先看 shell 方式:

export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY" export ANTHROPIC_MODEL="YOUR_MODEL_ID"

再看~/.claude/settings.json方式,适合长期使用:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "YOUR_MODEL_ID" } }

注意ANTHROPIC_BASE_URL后面不要加/v1,TaoToken 的接口 Base URL 就是https://taotoken.net/apiYOUR_API_KEY从带 UTM 的官网创建,YOUR_MODEL_ID以模型广场展示为准,不要凭记忆填一个不存在的模型名。GLM 5.3 Flash 的具体 ID 在广场里能查到,填错会直接 404。

如果你用 CLI 方式启动,命令是这样:

npm install -g @taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m YOUR_MODEL_ID

这条命令里的-u同样只写https://taotoken.net/api,不要带 UTM 参数,UTM 只用于网页落地页归因,加到 API 端点上会导致请求异常。

2.3 验证接入是否生效

配置完之后,先在项目目录里跑一条最简单的对话,确认通道通了:

claude "读取 pyproject.toml,列出所有依赖及其版本约束,不要修改任何文件"

如果返回正常,说明 Base URL、Key、模型 ID 三件套都对。如果报 401,检查ANTHROPIC_AUTH_TOKEN是不是复制时带了空格;如果报 404,检查模型 ID 是否和广场一致;如果连接超时,检查ANTHROPIC_BASE_URL有没有误加/v1或 UTM 参数。这三个是接入阶段最常见的坑,排障时按这个顺序查就行。

3. 依赖升级任务的实测过程与 token 对照

3.1 任务 Prompt 与执行链路

这次用的 Prompt 是固定的,方便前后对照:

读取 pyproject.toml,把依赖约束升级到兼容当前 Python 3.11 的版本。 然后检查 src/pycli/cli.py 里的 argparse 封装,调整到与新依赖兼容的写法。 改完后运行 pytest -q,如果有失败用例,根据报错继续修,直到全部通过。 每一步改动前先说明你要改什么。

Claude Code 接到任务后的执行链路大致是:

  1. pyproject.toml,解析依赖列表;
  2. src/pycli/cli.py,定位argparse封装部分;
  3. 生成依赖升级命令(pip install -U或改pyproject.toml后重装);
  4. 修改cli.py的封装写法;
  5. pytest -q
  6. 根据失败用例回改,再跑一次。

这个链路里,第 1、2 步读到的文件内容会在后续每一轮重复进入上下文。第 5、6 步的测试输出也会追加进上下文。所以轮次越多,重复内容占比越高,缓存命中的价值就越明显。

3.2 前后 token 对照表

下面这张表是本地一次运行的结果,记录的是 Claude Code 在接入 TaoToken 通道、使用 GLM 5.3 Flash 时的 token 消耗。表里区分了 prompt token、completion token 和缓存命中部分。需要说明的是,缓存命中数来自通道返回的 usage 字段,不同通道对缓存字段的命名可能不同,这里按实际返回整理。

阶段prompt tokencompletion token缓存命中 token说明
首轮(读配置+读代码)约 3200约 4800无缓存,全量计费
第二轮(生成升级命令)约 3600约 320约 2900系统提示+已读文件命中
第三轮(改 argparse 封装)约 4100约 620约 3400前轮上下文命中
第四轮(首次 pytest)约 4500约 280约 3800测试输出新增
第五轮(修失败用例)约 4900约 540约 4200回改后重跑
合计约 20300约 2240约 14300缓存命中占比约 70%

这张表要这么读:prompt token 是每一轮输入的总量,缓存命中 token 是其中被判定为命中缓存、按缓存价计费的部分。合计下来,约 70% 的 prompt token 走了缓存。如果不支持缓存,这 14300 个 token 会按全价重算,多轮任务的成本差距就出在这里。

必须再强调一次:这是一次运行的结果,不代表公榜,也不代表所有项目都长这样。项目越大、读的文件越多、轮次越多,缓存命中占比通常越高;单轮小任务则几乎看不出差异。这张表的价值在于给你一个量级参考,而不是一个可以到处引用的固定分数。

3.3 缓存命中差异说明了什么

从表里能看出两个规律。

第一,首轮没有缓存,因为上下文里全是新内容。从第二轮开始,系统提示、工具定义、已经读过的文件内容开始命中。这说明缓存的生效前提是「前缀稳定」——如果你的 Prompt 每轮都大改,或者文件内容每轮都变,缓存就很难命中。

第二,缓存命中 token 的增长和 prompt token 的增长基本同步。第五轮 prompt 约 4900,缓存命中约 4200,差值主要是新增的测试输出和本轮指令。这意味着在多轮 Agent 任务里,缓存不是「偶尔省一点」,而是「大部分输入都走缓存」。这也是为什么选通道时要确认它是否透传缓存字段——如果通道把缓存信息吞掉,你根本不知道自己省没省。

GLM 5.3 Flash 在这个任务里的表现是:能完成依赖升级和 argparse 封装调整,pytest 最终全绿。completion token 总量约 2240,平均每轮 400 多,说明它的输出比较克制,没有大段废话。这对多轮任务是好事,因为 completion token 不进缓存,每一轮都是全价。

4. 怎么复现这张对照表

4.1 复现步骤

想自己跑一遍对照表,按这个顺序来:

第一步,准备一个结构类似的小型 Python CLI 项目,确保有pyproject.toml、一个用了argparse封装的模块、以及几个 pytest 用例。项目不用大,但要能触发「读配置 → 改代码 → 跑测试 → 回改」的循环。

第二步,按第 2 节的配置片段把 Claude Code 接到 TaoToken。Key 在控制台创建,模型 ID 从模型广场选 GLM 5.3 Flash 对应的那个。Base URL 固定https://taotoken.net/api

第三步,用第 3.1 节那条固定 Prompt 发起任务。Prompt 不要改,改了就没法前后对照。

第四步,在每一轮结束后记录通道返回的 usage 字段,重点看 prompt token、completion token 和缓存命中部分。如果通道返回里没有缓存字段,说明它没透传,这张表就复现不出来。

第五步,把五轮数据填进和第 3.2 节一样的表里,对比缓存命中占比。

4.2 复现时的注意事项

同一把 Key、同一 Prompt、同一项目,跑出来的数字才可比。换模型、换项目规模、换 Prompt 措辞,缓存命中率都会变。所以复现时尽量控制变量。

另外,缓存通常有有效期。如果你两轮之间隔了很久,缓存可能已经过期,第二轮就不会命中。复现时尽量连续跑完,不要中途去干别的。

还有一点,不同通道对缓存的支持程度不一样。有的通道完全透传,有的通道部分透传,有的通道直接不支持。这也是为什么选统一 API 通道时要看它是否保留 usage 明细——没有明细,你就没法做这种成本分析。

4.3 本篇配置相关的排障

只写这次实际遇到的配置问题,不展开通用教程。

401 一般出在ANTHROPIC_AUTH_TOKEN。复制 Key 时容易带上首尾空格,或者把 Key 和模型 ID 填反了。检查一遍就能解决。

404 一般出在模型 ID。GLM 5.3 Flash 的 ID 要以模型广场为准,不要自己拼一个。填错模型名,通道找不到对应模型,直接 404。

连接异常一般出在ANTHROPIC_BASE_URL。确认写的是https://taotoken.net/api,末尾不带/v1,也不带任何 UTM 参数。UTM 只用于网页落地页,加到 API 端点上会出问题。

settings.json不生效,通常是 JSON 格式错了,比如多了逗号、少了引号。用编辑器的 JSON 校验过一遍,或者直接改用 shell export 方式验证。

5. 用同一把 Key 复现对照表

对照表跑完后,建议做两件事确认这次评测的调用是否入账、以及方便下次复现。

打开 模型对话 确认 GLM 5.3 Flash 的模型 ID 与广场展示一致,避免下次配置时填错。长期做这类多轮 Agent 任务的话,可以看 Coding Plan,它更适合高频调用场景。

Key 在 控制台 创建,创建后回控制台看用量明细,确认这次依赖升级任务的 token 消耗和缓存命中是否如实记录。Claude Code 的三件套配置和settings.json写法,对照 接入文档 再核一遍。

想从头复现这张对照表,先去 TaoToken 拿一把 Key,按第 2 节的配置片段接上 Claude Code,再用第 3.1 节的固定 Prompt 跑一遍。同一把 Key、同一 Prompt、同一项目,跑出来的缓存命中占比才有对照意义。

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询