尧图精选

AI 采集器配置实战:Claude Code、OpenAI、LiteLLM 监控接入 TaoToken

🕒 发布时间:2026/10/2 16:23:00 📁 来源:尧图网络
1. 多 AI 工具监控为什么总对不上账如果你同时用 Claude Code 写代码、用 OpenAI API 跑业务、又在内网架了一套 LiteLLM Proxy 做统一网关大概率遇到过这种场景月底想统计一下这个月 AI 花了多少钱结果三个地方的数据各说各话。Claude Code 那边看不到 token 消耗OpenAI 后台只有按天聚合的账单LiteLLM 的/metrics里又是一堆 Prometheus 格式的原始指标想拼成一张统一的成本报表光字段对齐就要折腾半天。这个问题的根子在于不同 AI 工具的监控数据格式、采集方式、上报通道完全不一样。OpenAI 走的是 Usage API 拉取模式LiteLLM 暴露的是 Prometheus 指标端点Claude Code 这类客户端工具则更适合用 OTLP 推送。三套机制、三种数据模型如果没有一个统一的接入层你只能写三份采集脚本维护三套 Key最后还要自己写聚合逻辑。我试过直接用各自的 SDK 分别对接代码量不算大但 Key 管理很快就乱了——OpenAI 的 Key、Anthropic 的 Key、LiteLLM 的认证 Token 散落在不同配置文件里轮换一次要改好几个地方。更麻烦的是当你想加一个新模型或者换一个供应商时采集端要跟着改监控端也要跟着改。TaoToken 在这里扮演的角色是一个统一的 API 通道和 Key 管理层。它本身不替代你的监控系统Prometheus、Grafana 该用还用而是把 Claude Code、OpenAI、LiteLLM 这些采集对象的接入方式统一到一套 Base URL Key Model ID 的配置模型上。你只需要在 TaoToken 控制台生成一个 Key然后在各个工具的配置里把请求指向 TaoToken 的 API 地址采集和监控的数据流就都经过同一个通道字段格式、认证方式、上报路径自然就统一了。这篇文章面向的是已经在用或者准备用多 AI 工具做开发的工程师尤其是需要做成本追踪、Token 统计、错误率监控的团队。接下来我会按实际配置的顺序从 TaoToken 的前置准备开始一步步给出 Claude Code 的settings.json、LiteLLM 的config.toml、CC Switch 的配置片段然后演示怎么验证采集数据是否正常上报最后把常见的报错和排查方法列出来。你跟着做一遍应该能在一小时内把三套工具的监控接入跑通。2. TaoToken 前置准备Key、Base URL 与模型 ID 三件套在配置任何采集器之前先把 TaoToken 这边的三件套准备好API Key、Base URL、Model ID。这三个东西是后面所有配置的基础缺一个都跑不通。2.1 获取 API Key打开 TaoToken 控制台进入 API Keys 页面。如果你还没有账号先注册一个。创建 Key 的时候建议按用途命名比如claude-code-monitor、litellm-proxy、openai-collector这样后面排查问题时能一眼看出是哪个工具在用。创建完成后Key 只会显示一次复制下来存到安全的地方。不要硬编码到代码或配置文件里后面我会用环境变量的方式引用。注意TaoToken 的 Key 是统一凭证同一个 Key 可以用于 Claude Code、OpenAI 兼容接口、LiteLLM 等多种接入方式。但为了监控数据能按来源区分建议不同工具用不同的 Key这样在指标里可以通过 Key 维度做更细的归因。2.2 确认 Base URLTaoToken 的 API 地址是https://taotoken.net/api这个地址是 OpenAI 兼容格式的也就是说任何支持自定义 Base URL 的 OpenAI SDK 或工具都可以直接指向这里。Claude Code 走的是 Anthropic 格式TaoToken 也做了兼容具体配置在下一节展开。2.3 选择 Model IDTaoToken 支持的主流模型包括 GPT-4o、GPT-4o-mini、Claude 3.5 Sonnet、Claude 3 Opus 等。在控制台的模型列表页面可以看到当前可用的 Model ID。配置时要用准确的 Model ID比如gpt-4o、claude-3-5-sonnet-20241022不要用别名或简写否则请求会返回 404。如果你不确定某个模型是否可用可以直接在模型对话页面测试一下。输入 Model ID 发一条消息能正常返回就说明配置没问题。2.4 环境变量准备把三件套写入环境变量后面所有配置文件都通过${VAR}的方式引用# ~/.bashrc 或 ~/.zshrc export TAOTOKEN_API_KEYsk-你的TaoToken Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api export TAOTOKEN_MODEL_IDgpt-4o如果你用 Claude Code还需要额外设置 Anthropic 相关的变量export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEY$TAOTOKEN_API_KEY改完记得source ~/.bashrc让变量生效。验证一下echo $TAOTOKEN_API_KEY | head -c 8 # 应该输出 sk-xxxxx 的前几位这一步看起来简单但后面 90% 的 401 报错都是因为环境变量没生效或者 Key 复制错了。建议先把这步做扎实。3. 可复制配置Claude Code settings.json、LiteLLM config.toml 与 CC Switch 片段这一节是全文的核心给出三套工具的可复制配置。每套配置都包含 Base URL、Key、Model ID 三件套你可以直接改改环境变量名就能用。3.1 Claude Code settings.json 配置Claude Code 的配置文件默认在~/.claude/settings.json。如果目录不存在先创建mkdir -p ~/.claude然后写入以下内容{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken Key, ANTHROPIC_MODEL: claude-3-5-sonnet-20241022, ANTHROPIC_SMALL_FAST_MODEL: claude-3-5-haiku-20241022 }, permissions: { allow: [ Bash(git*), Bash(npm*), Read, Write ] }, telemetry: { enabled: true, otlp_endpoint: http://localhost:4317, otlp_protocol: grpc, service_name: claude-code, resource_attributes: { source: claude_code, environment: production } } }这里有几个关键点。ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址Claude Code 会把所有请求发到这里。ANTHROPIC_MODEL指定主模型ANTHROPIC_SMALL_FAST_MODEL是后台任务用的轻量模型建议用 Haiku 系列省钱。telemetry段是监控接入的关键。Claude Code 支持 OTLP 协议上报遥测数据包括请求次数、Token 消耗、延迟等。otlp_endpoint指向你本地的 OTLP Collector通常是 4317 端口的 gRPC。如果你还没有 Collector可以用 OpenTelemetry Collector 或者直接让 TaoToken 的监控端接收。注意telemetry段里的resource_attributes会作为标签附加到所有指标上source: claude_code这个标签后面在 PromQL 里会用来筛选 Claude Code 的数据。3.2 LiteLLM config.toml 配置LiteLLM Proxy 的配置文件通常是config.yaml但如果你用 TOML 格式管理可以写成config.toml。这里给出 TOML 版本[litellm_settings] callbacks [prometheus] drop_params true [model_list] [[model_list.item]] model_name gpt-4o [model_list.item.litellm_params] model openai/gpt-4o api_base https://taotoken.net/api api_key os.environ/TAOTOKEN_API_KEY [[model_list.item]] model_name claude-3-5-sonnet [model_list.item.litellm_params] model anthropic/claude-3-5-sonnet-20241022 api_base https://taotoken.net/api api_key os.environ/TAOTOKEN_API_KEY [general_settings] master_key os.environ/LITELLM_MASTER_KEY database_url os.environ/DATABASE_URLcallbacks [prometheus]这行是监控接入的核心它让 LiteLLM 在每次请求后把指标暴露到/metrics端点。api_base指向 TaoTokenapi_key用os.environ/前缀引用环境变量避免明文写 Key。启动 LiteLLM Proxylitellm --config config.toml --port 4000启动后访问http://localhost:4000/metrics应该能看到 Prometheus 格式的指标输出。如果看到litellm_requests_metric、litellm_tokens_metric这类指标说明配置生效了。3.3 CC Switch 配置片段CC Switch 是用来在多个 Claude Code 配置之间切换的工具。如果你同时有官方 API 和 TaoToken 两套配置可以用 CC Switch 管理。配置文件通常在~/.cc-switch/config.json{ providers: [ { name: taotoken, base_url: https://taotoken.net/api, api_key: sk-你的TaoToken Key, model: claude-3-5-sonnet-20241022, small_fast_model: claude-3-5-haiku-20241022 } ], active: taotoken }切换时执行cc-switch use taotoken这个配置和 Claude Code 的settings.json是联动的CC Switch 会把选中的 provider 写入~/.claude/settings.json的env段。所以如果你用 CC Switch就不需要手动改settings.json了。3.4 三件套对照表把三套配置里的关键参数整理成表方便你对照检查工具Base URLKey 来源Model ID 示例Claude Codehttps://taotoken.net/apiANTHROPIC_API_KEYclaude-3-5-sonnet-20241022LiteLLMhttps://taotoken.net/apiTAOTOKEN_API_KEYgpt-4o/claude-3-5-sonnetCC Switchhttps://taotoken.net/apisk-你的TaoToken Keyclaude-3-5-sonnet-20241022三套配置的 Base URL 完全一致Key 可以复用同一个Model ID 按各自支持的格式填写。这就是统一通道的好处配置模型一致排查问题时只需要检查一个地址。4. 验证请求确认采集数据正常上报配置写完不代表监控就通了必须验证数据是否真的上报到了采集端。这一节给出具体的验证步骤从单工具测试到多源聚合一步步确认。4.1 验证 Claude Code 请求走 TaoToken先确认 Claude Code 的请求确实发到了 TaoToken。最简单的方法是在 Claude Code 里执行一个简单任务然后看 TaoToken 控制台的请求日志。打开终端运行claude 用一句话解释什么是递归如果配置正确Claude Code 会返回结果同时 TaoToken 控制台的请求日志里会出现一条记录包含模型名、Token 消耗、耗时等信息。如果报 401检查ANTHROPIC_API_KEY是否设置正确echo $ANTHROPIC_API_KEY如果报连接错误检查ANTHROPIC_BASE_URLecho $ANTHROPIC_BASE_URL # 应该输出 https://taotoken.net/api4.2 验证 LiteLLM 指标端点LiteLLM 启动后直接 curl 它的 metrics 端点curl -s http://localhost:4000/metrics | grep litellm你应该能看到类似这样的输出# HELP litellm_requests_metric Total number of requests # TYPE litellm_requests_metric counter litellm_requests_metric{modelgpt-4o,api_basehttps://taotoken.net/api} 12.0 litellm_tokens_metric{modelgpt-4o,typeinput} 3456.0 litellm_tokens_metric{modelgpt-4o,typeoutput} 789.0如果litellm_requests_metric的数值在发请求后增加说明指标采集正常。如果一直是 0检查callbacks [prometheus]是否写对了。4.3 验证 OTLP 上报Claude Code 的 OTLP 数据发到localhost:4317你需要一个 OTLP Collector 来接收。最简单的验证方式是启动一个 OpenTelemetry Collector配置如下# otel-collector-config.yaml receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 exporters: logging: loglevel: debug prometheus: endpoint: 0.0.0.0:8889 service: pipelines: metrics: receivers: [otlp] exporters: [logging, prometheus]启动 Collectorotelcol --config otel-collector-config.yaml然后在 Claude Code 里执行一个任务观察 Collector 的日志输出。如果看到claude_code相关的指标说明 OTLP 上报通了。同时访问http://localhost:8889/metrics也能看到 Prometheus 格式的指标。4.4 多源数据聚合验证当三套工具都接入后用 PromQL 做一次聚合查询确认数据能统一到一起。假设你用 Prometheus 作为存储在 Prometheus 的查询界面执行# 所有来源的总请求数 sum by (source) (ai_requests_total) # 按模型分组的 Token 消耗 sum by (model) (ai_tokens_input_total ai_tokens_output_total) # 各来源的成本 sum by (source) (ai_cost_usd_total)如果source标签能区分出claude_code、openai、litellm三个值说明多源聚合成功。如果某个来源缺失回到对应工具的配置检查。4.5 成功结果对照配置全部跑通后你应该能看到这样的结果检查项预期结果Claude Code 请求TaoToken 控制台有请求日志LiteLLM /metrics有litellm_requests_metric且数值增长OTLP Collector日志中有claude_code指标Prometheus 查询sum by (source)返回三个来源成本统计ai_cost_usd_total有非零值如果这五项都通过说明监控接入完成。接下来就是排查可能出现的错误。5. 常见报错排查401、local proxy failed、reading choices、OAuth配置过程中最容易踩的坑集中在几个报错上。这一节按报错信息分类给出排查步骤和解决方法。5.1 401 Unauthorized这是最常见的报错几乎都是 Key 的问题。排查顺序第一步确认环境变量是否生效echo $TAOTOKEN_API_KEY echo $ANTHROPIC_API_KEY如果输出为空说明变量没设置或者没 source。检查~/.bashrc或~/.zshrc里的 export 语句然后重新 source。第二步确认 Key 没有多余空格。复制 Key 的时候很容易带上换行或空格用这个命令检查echo -n $TAOTOKEN_API_KEY | wc -c # 对比 Key 的实际长度第三步确认 Key 在 TaoToken 控制台是启用状态。如果 Key 被禁用或删除也会返回 401。第四步如果 Claude Code 报 401 但 LiteLLM 正常检查ANTHROPIC_API_KEY是否单独设置了。Claude Code 读的是这个变量不是TAOTOKEN_API_KEY。5.2 local proxy failed这个报错通常出现在 Claude Code 启动时提示本地代理连接失败。原因一般是ANTHROPIC_BASE_URL配置错误或者网络无法访问 TaoToken 的地址。先检查 Base URLecho $ANTHROPIC_BASE_URL # 应该是 https://taotoken.net/api然后测试网络连通性curl -I https://taotoken.net/api如果 curl 返回 200 或 401说明网络通问题在配置。如果 curl 超时检查你的网络环境是否能访问外网。还有一种情况是 Claude Code 的旧版本会缓存代理配置改完settings.json后需要重启 Claude Code 才生效。直接关掉终端重新打开。5.3 reading choices 报错这个报错通常来自 OpenAI SDK 或 LiteLLM提示解析响应时找不到choices字段。原因是请求返回的不是标准的 OpenAI 格式可能是第一Model ID 写错了TaoToken 返回了错误信息而不是正常的 completion 响应。检查model字段是否和控制台的 Model ID 一致。第二Base URL 少了/api后缀。TaoToken 的地址是https://taotoken.net/api不是https://taotoken.net。少了/api会返回 404 页面SDK 解析时就报reading choices。第三请求体格式不对。如果你用的是 Anthropic 格式的请求发到 OpenAI 兼容端点响应结构不匹配。确认你用的 SDK 和端点格式一致。排查方法是用 curl 直接发一个请求curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: gpt-4o, messages: [{role: user, content: test}] }如果 curl 返回正常的 JSON 且有choices字段说明服务端没问题问题在 SDK 配置。如果 curl 也报错看错误信息定位。5.4 OAuth 相关报错Claude Code 在某些版本会尝试 OAuth 流程如果你用的是 API Key 模式可能会看到 OAuth 相关的报错。解决方法是在settings.json里明确禁用 OAuth{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken Key, CLAUDE_CODE_DISABLE_OAUTH: true } }设置CLAUDE_CODE_DISABLE_OAUTHtrue后Claude Code 会直接用 API Key 认证跳过 OAuth 流程。5.5 指标缺失排查如果配置都通了但 Prometheus 里查不到某个来源的指标按这个顺序排查第一确认采集器是否启用。LiteLLM 检查callbacks配置Claude Code 检查telemetry.enabled。第二确认上报端点可达。OTLP 用curl -v localhost:4317测试端口Prometheus 用curl localhost:4000/metrics测试。第三确认标签是否正确。如果source标签没设置聚合查询时会被过滤掉。第四确认时间范围。Prometheus 查询默认是最近 1 小时如果数据是几小时前上报的调整时间范围。5.6 报错速查表报错信息最可能原因快速修复401 UnauthorizedKey 错误或未设置检查环境变量重新 sourcelocal proxy failedBase URL 错误确认地址含/apireading choicesModel ID 或 URL 错误用 curl 测试端点OAuth 报错认证模式冲突设置DISABLE_OAUTHtrue指标缺失采集器未启用检查 callbacks/telemetry 配置6. 把监控接入固化下来长期编码与 Agent 场景的配置建议配置跑通只是第一步真正要发挥监控的价值需要把它固化到日常开发流程里。这一节给几个实用建议针对长期编码和 Agent 场景。6.1 用 Coding Plan 管理长期编码的 Key如果你每天都在用 Claude Code 写代码建议在 TaoToken 控制台创建一个专门的 Coding Plan。Coding Plan 的好处是额度独立、用量可追踪不会和业务 API 的消耗混在一起。创建后把 Key 配到 Claude Code 的settings.json里这样监控数据里source: claude_code的指标就只反映编码场景的消耗。配置方式和普通 Key 一样只是 Key 的来源不同{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的Coding Plan Key, ANTHROPIC_MODEL: claude-3-5-sonnet-20241022 } }6.2 Agent 场景的标签规范如果你在跑 Agent 任务建议在请求头或配置里加上业务标签这样监控数据能按项目维度拆分。LiteLLM 支持在请求里传 metadataimport litellm response litellm.completion( modelgpt-4o, messages[{role: user, content: 分析这段代码}], metadata{ source: agent, project: code-review, environment: production } )这些 metadata 会作为标签附加到 Prometheus 指标上后面可以用sum by (project)做项目级成本分析。6.3 告警规则配置监控数据有了下一步是配置告警。在 Prometheus 的告警规则文件里加几条groups: - name: ai-cost-alerts rules: - alert: DailyCostExceeded expr: sum(increase(ai_cost_usd_total[24h])) 100 for: 5m labels: severity: warning annotations: summary: AI 日成本超过 100 美元 - alert: HighErrorRate expr: | sum(rate(ai_errors_total[5m])) / sum(rate(ai_requests_total[5m])) 0.05 for: 10m labels: severity: critical annotations: summary: AI 请求错误率超过 5%这两条规则分别监控日成本和错误率。日成本超过 100 美元告警错误率超过 5% 告警。阈值按你的实际情况调整。6.4 定期检查清单把下面这些检查项加入你的周常运维清单每周确认 TaoToken 控制台的 Key 用量是否正常有没有异常峰值。检查 Prometheus 的ai_cost_usd_total是否和 TaoToken 账单对得上。确认 OTLP Collector 和 LiteLLM Proxy 的进程还在运行。检查告警规则有没有误报或漏报。如果发现某个来源的数据突然断了先看对应工具的进程状态再看网络连通性最后看配置有没有被改动。大部分问题都是环境变量失效或者进程挂掉导致的。6.5 扩展新工具的接入路径当你需要接入新的 AI 工具时接入路径是固定的先在 TaoToken 控制台创建 Key然后在工具的配置里设置 Base URL 为https://taotoken.net/api填入 Key 和 Model ID最后验证请求和指标上报。三件套不变配置模型一致这就是统一通道的价值。如果你在配置过程中遇到本文没覆盖的报错可以去 TaoToken 的接入文档页面查一下那里有更详细的参数说明和示例。需要测试模型可用性的话模型对话页面可以直接发请求验证。长期编码场景建议用 Coding Plan 管理额度避免和业务 API 混在一起。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →