ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

运营台用 Claude Cowork,TaoToken 怎么出周度消耗表?

运营台用 Claude Cowork,TaoToken 怎么出周度消耗表? 1. 从 Cowork/聊天合并看运营台先把 TaoToken 调用凭证与 Token 计量接稳近期 Claude 官方宣布 Cowork 与聊天合并为一个 Claude材料只给到标题没有更多正文细节所以这里不展开产品评论。对运营台分析师来说真正要落地的是另一件事Claude/Cowork 类任务的调用凭证、Base URL、Key 管理和 Token 计量怎么接稳。准备填写调用凭证前先打开 TaoToken 官网 获取 Key再按本文把 Claude Code、Codex、CC Switch 三件套和一份周度消耗表跑通。很多运营台不是没有 AI 工具而是调用链路太散有人在本机 Claude Code 里用一套 Key有人在 Codex 里用另一套还有人手工复制对话结果到表格。最后老板问“本周运营台在 Claude/Cowork 相关任务上消耗了多少 Token、哪个模型消耗最多、哪个 Key 别名对应哪个项目”没人能立刻给出一张可信表。问题通常不在模型本身而在计量口径没有统一。本文的视角是运营台分析师目标不是写一份 Cowork 产品分析而是做一份可复现的产出所有 AI 调用都指向 TaoToken 的 Base URLhttps://taotoken.net/apiKey 使用占位符YOUR_API_KEY调用日志按周汇总成 CSV最后形成运营台周度 Token 消耗表。过程中涉及 Claude Code 的settings.json/ANTHROPIC_*、Codex 的config.toml、CC Switch 三件套以及本地 SQL/Python 汇总脚本。所有 SQL 和命令都在读者本地或只读副本执行不要通过 MCP/Agent 直连生产库。先定一个原则Claude Code 读 Anthropic 兼容变量Codex 读自己的config.toml和 provider 环境变量两者不要互相套用。尤其是不要把ANTHROPIC_*写进 Codex 配置里否则排障时会浪费大量时间在看错误日志上。下面从拿 Key、填 Base URL 开始一步一步把周度消耗表做出来。2. 拿 Key 前的清单TaoToken 官网、Base URL、Key 别名与最小权限在准备填写调用凭证之前建议先打开 TaoToken 官网 获取 Key并确认三件事Base URL 是什么、Key 放在哪个环境变量、不同运营台项目是否使用不同 Key 别名。本文统一使用Base URLhttps://taotoken.net/apiKey 占位符YOUR_API_KEY周度汇总目标按week app env model key_alias聚合 Token推荐 Key 别名ops-weekly、ops-cowork-lab、ops-content-monitor等按项目区分不要所有任务共用一个别名日志字段ts、app、env、model、prompt_tokens、completion_tokens、total_tokens、request_id、key_alias、status为什么不建议所有运营台任务共用一个 Key因为周报最终要回答“谁消耗了什么”。如果 Key 没有别名所有 Token 都会混在一起只能看到总量无法归因。更稳妥的做法是每个运营台子项目创建独立 Key 或独立别名至少在日志里记录key_alias。这样即使实际使用同一个 Key也能在应用层区分来源。还要注意不要把 Key 写进 Git 仓库。无论是settings.json、config.toml还是.env文件都建议用环境变量或本地私密配置。如果必须写入配置文件也要确保该文件在.gitignore中。下面是一个最小的本地 Key 清单模板# 只用于本地或 CI 私密环境不要提交到仓库 # Claude Code 侧使用 ANTHROPIC_*Codex 侧使用 TAOTOKEN_API_KEY两者不要混用 export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export TAOTOKEN_API_KEYYOUR_API_KEY这个片段只是环境变量清单不代表把所有变量一次性加载到所有工具。实际使用时Claude Code 只读取ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN等 Anthropic 兼容变量Codex 读取它自己的config.toml中env_key指定的变量。把它们分开后面排障会简单很多。3. Claude Code 接入settings.json 里只放 ANTHROPIC_* 与 TaoToken Base URLClaude Code 的配置适合放在用户级或项目级settings.json。核心是让请求发到 TaoToken 的 Base URL并使用YOUR_API_KEY作为调用凭证。下面这份配置只展示最小必要字段模型 ID 使用占位符实际填写你控制台里可用的模型 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_SMALL_MODEL_ID } }如果你更习惯用 shell 环境变量启动也可以这样export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODELYOUR_MODEL_ID export ANTHROPIC_SMALL_FAST_MODELYOUR_SMALL_MODEL_ID claudeClaude Code 的配置重点有三个ANTHROPIC_BASE_URL必须是https://taotoken.net/api不要自己加 UTM也不要把官网页面地址填进去。ANTHROPIC_AUTH_TOKEN或你的 Claude Code 版本支持的 Key 字段值填YOUR_API_KEY。不要在同一个配置里写两个不同来源的 Key。ANTHROPIC_MODEL和ANTHROPIC_SMALL_FAST_MODEL用你实际可用的模型 ID不要猜。不同版本对字段名可能有差异如果启动后提示模型不存在优先检查模型 ID 和 Base URL。启动后建议做一次最小验证claude -p 只回复 ok如果返回正常说明 Claude Code 到 TaoToken 的基础链路已经通。接下来不要急着批量跑运营台任务而是先记录一次请求日志。因为周度消耗表的关键不是“我用了 Claude”而是“我能从每次响应里拿到 Token 用量”。如果你的应用或脚本包装了 Claude Code可以在包装层记录request_id和usage如果只是本机交互也可以先记录任务名、开始时间、模型、Key 别名再用控制台用量做交叉核对。常见问题可以按下面顺序排查401检查YOUR_API_KEY是否有多余空格、换行是否把页面文本复制进去了。404检查ANTHROPIC_BASE_URL是否被写成了官网地址或缺少/api。model not found检查ANTHROPIC_MODEL是否是你账号可用的模型 ID。返回为空检查网络、终端超时、流式输出设置但不要关闭 TLS 校验。用量为 0检查响应中是否有usage字段流式响应可能需要额外解析。Claude Code 更适合交互式任务而周度消耗表需要结构化日志。下一节把 Codex 的配置单独拆开避免和 Claude Code 混在一起。4. Codex 接入config.toml 独立配置不要把 ANTHROPIC_* 塞进去Codex 的配置通常放在config.toml。它和 Claude Code 不是同一套变量体系所以不要把ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN写到 Codex 配置里。Codex 侧应该定义自己的 provider并使用TAOTOKEN_API_KEY这类独立环境变量。下面是一份可复制的config.toml模板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然后在启动 Codex 的 shell 里设置export TAOTOKEN_API_KEYYOUR_API_KEY codex这里有几个容易出错的点第一base_url写https://taotoken.net/api不要加 UTM。UTM 是给官网引流统计用的不是给 API 请求用的。第二env_key TAOTOKEN_API_KEY表示 Codex 会去读名为TAOTOKEN_API_KEY的环境变量。你导出什么变量名这里就写什么变量名。不要写ANTHROPIC_AUTH_TOKEN。第三wire_api按你实际使用的 Codex 版本和 provider 兼容模式填写。本文示例使用chat如果你的版本要求其他值以实际文档和错误日志为准。第四如果 Codex 报“provider not found”优先检查model_provider是否和[model_providers.taotoken]的名称一致。TOML 对层级敏感少一个括号都会导致配置不生效。验证 Codex 时不要上来就跑长任务先用一个短提示确认链路codex exec 请只输出 ok如果成功再在应用侧记录一次用量。Codex 的响应结构和 Claude Code 不同所以日志适配器不要假设字段完全一致。最稳妥的做法是统一成内部字段prompt_tokens、completion_tokens、total_tokens。如果某次响应没有 usage就先把该次请求标记为usage_missing不要用猜测值混入周报。5. CC Switch 三件套Claude Code、Codex、Key 清单如何切换如果你同时维护 Claude Code、Codex 和其他 AI 工具CC Switch 可以作为切换入口。这里说的“三件套”不是某个具体插件 API而是三份需要被管理的配置资产件对应文件/位置关键内容注意Claude Code 配置settings.json或项目配置ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、模型 ID只走 Anthropic 兼容变量Codex 配置config.tomlmodel_provider、base_url、env_key不要写ANTHROPIC_*Key 清单本地 env 文件或密码管理器YOUR_API_KEY、key_alias、项目归属不提交到 Git在 CC Switch 里做切换时建议把三件套拆成两个 profile 加一份清单profile: taotoken-claude-code ANTHROPIC_BASE_URL https://taotoken.net/api ANTHROPIC_AUTH_TOKEN YOUR_API_KEY 用途运营台 Claude Code 交互任务 profile: taotoken-codex TAOTOKEN_API_KEY YOUR_API_KEY 用途运营台 Codex 批处理任务 key_alias: ops-weekly - 周报与摘要任务 ops-cowork-lab - Cowork 相关实验任务 ops-content-monitor - 内容监控任务这样切换时Claude Code 不会误读 Codex 的 KeyCodex 也不会误读ANTHROPIC_*。如果你在 CC Switch 界面里只能填一个 Base URL仍然填https://taotoken.net/api。如果你在界面里需要填写“供应商名称”可以写TaoToken但不要影响实际请求地址。还要统一 Key 别名。运营台最容易出现的问题是三个分析师各自用不同名字记录最后汇总时对不上。建议在日志里固定使用key_alias例如ops-weekly、ops-cowork-lab。即使底层 Key 轮换周报维度仍然稳定。6. 周度消耗表流水线本地日志 → JSONL → SQLite → CSV现在进入可复现产出做一份运营台周度 Token 消耗表。思路很简单每次调用 AI 后把响应中的 usage 写入本地 JSONL然后用 Python 或 SQLite 按周聚合最后输出 CSV。Base URL 始终指向https://taotoken.net/apiKey 使用YOUR_API_KEY但日志里不要记录明文 Key只记录key_alias。先定义一个本地日志写入函数适合放在你的运营台脚本里import json from datetime import datetime, timezone USAGE_LOG ops_token_usage.jsonl def record_usage(resp, request_id, appops-console, envprod, key_aliasops-weekly): usage getattr(resp, usage, None) or {} row { ts: datetime.now(timezone.utc).isoformat(), app: app, env: env, model: getattr(resp, model, unknown), prompt_tokens: usage.get(prompt_tokens, 0), completion_tokens: usage.get(completion_tokens, 0), total_tokens: usage.get(total_tokens, 0), request_id: request_id, key_alias: key_alias, status: ok, } with open(USAGE_LOG, a, encodingutf-8) as f: f.write(json.dumps(row, ensure_asciiFalse) \n)如果调用失败也建议记录一行把status写成errorToken 写 0。这样周报里可以看到调用次数和失败率而不是只看到成功请求。运营台周报如果只统计成功 Token很容易掩盖失败重试造成的额外消耗。接下来用 Python 汇总最近一周的 JSONL#!/usr/bin/env python3 import csv import json from collections import defaultdict from datetime import datetime, timezone LOG_FILE ops_token_usage.jsonl OUT_FILE ops_weekly_token.csv def parse_ts(ts): return datetime.fromisoformat(ts.replace(Z, 00:00)).astimezone(timezone.utc) def week_key(dt): year, week, _ dt.isocalendar() return f{year}-W{week:02d} agg defaultdict(lambda: defaultdict(int)) with open(LOG_FILE, r, encodingutf-8) as f: for line in f: line line.strip() if not line: continue row json.loads(line) dt parse_ts(row[ts]) wk week_key(dt) key ( wk, row.get(app, unknown), row.get(env, unknown), row.get(model, unknown), row.get(key_alias, default), ) agg[key][calls] 1 agg[key][prompt_tokens] int(row.get(prompt_tokens, 0)) agg[key][completion_tokens] int(row.get(completion_tokens, 0)) agg[key][total_tokens] int(row.get(total_tokens, 0)) with open(OUT_FILE, w, newline, encodingutf-8-sig) as f: writer csv.writer(f) writer.writerow([ week, app, env, model, key_alias, calls, prompt_tokens, completion_tokens, total_tokens ]) for key, metrics in sorted(agg.items(), reverseTrue): writer.writerow([ *key, metrics[calls], metrics[prompt_tokens], metrics[completion_tokens], metrics[total_tokens], ]) print(fwritten: {OUT_FILE})如果你已经把日志导入本地 SQLite也可以用 SQL 做同样的事情。下面这段 SQL 只建议在你的本地数据库或只读副本执行不要通过 MCP/Agent 直连生产库-- 本地 SQLite / 只读副本执行 SELECT strftime(%Y-%W, ts) AS week, app, env, model, key_alias, COUNT(*) AS calls, SUM(prompt_tokens) AS prompt_tokens, SUM(completion_tokens) AS completion_tokens, SUM(total_tokens) AS total_tokens FROM token_usage WHERE ts datetime(now, -7 days) GROUP BY week, app, env, model, key_alias ORDER BY week DESC, total_tokens DESC;导出的 CSV 可以直接给运营台周会使用。建议表头至少包含week, app, env, model, key_alias, calls, prompt_tokens, completion_tokens, total_tokens如果老板还想看“运营台哪个任务最费 Token”可以在表格里再加一列task_name由应用侧在调用时传入。比如record_usage( resp, request_idreq_2025_001, appops-console, envprod, key_aliasops-weekly, )然后在日志里增加task_name字段例如weekly_summary、cowork_compare、content_monitor。这样周报就能从“模型消耗”下钻到“任务消耗”。运营台分析师通常需要两套视图一套按 Key 别名看成本归属一套按任务名看业务价值。7. 运营台验收与排障让周报数据能复现的检查点周度消耗表最怕的不是少一个字段而是数据无法复现。今天跑出来 120 万 Token明天跑出来 80 万 Token中间没人知道差异来自哪里。为了避免这种情况建议在运营台里固定以下验收检查点时间口径统一。所有日志写 UTC周报展示时再转成运营台所在时区。否则跨周任务会被分到不同周。Key 别名统一。每次调用必须带key_alias没有别名的请求默认归到default但周报里要标记出来。模型字段统一。不要让同一个模型出现多个大小写不同的名字例如Claude-Sonnet和claude-sonnet。成功与失败分开统计。失败请求也记录calls总数包含失败total_tokens只累加实际返回的 usage。usage 缺失要标记。如果某次响应没有 usage先写usage_missing不要直接估算后混入总表。金额与 Token 分开。周度消耗表先统计 Token价格变化频繁金额表建议单独做并记录单价来源和生效日期。Key 轮换不换别名。底层 Key 可以定期轮换但key_alias要保持稳定否则历史周报会断档。Base URL 统一为https://taotoken.net/api。不要在不同脚本里写不同地址否则有的请求成功、有的请求失败周报看起来会像随机波动。如果 Claude Code 或 Codex 已经能正常调用但周报没有数据优先检查应用层是否真的记录了 usage。很多工具在终端里能正常对话但不会自动把 usage 写到你的运营台日志里。你需要在自己的包装脚本、SDK 回调或任务执行器里记录。记录时至少保留request_id方便和控制台用量交叉核对。如果周报数据和预期差距很大按下面顺序查先查时间范围是否用了 UTC 周WHERE条件是否正确。再查 Key 别名是否有一部分请求没有别名。再查模型字段是否同名模型被拆成多行。再查失败重试重试是否也记录了调用次数。最后查 usage 字段是否有的响应没有 usage或者流式响应没有正确解析。运营台分析师不需要成为 API 网关专家但需要保证同一份口径可以重复执行。只要日志字段稳定、Key 别名稳定、Base URL 稳定周度消耗表就可以从“手工拼表”变成“脚本产表”。8. 下一步按路径走模型对话 → Coding Plan → 创建 Key → Claude Code 文档如果你还没有开始接入建议按下面路径走一遍。先体验模型对话确认基础调用正常再看 Coding Plan 是否适合运营台批量任务然后创建 Key最后对照 Claude Code 文档完成配置。模型对话先试一次基础调用确认你能接受返回格式和延迟。https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contentweekly_usage_chatCoding Plan如果运营台需要跑周报摘要、内容监控、批量归类等任务先看套餐和用量策略。https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentweekly_usage_coding创建 Key在准备填写调用凭证前打开控制台创建或查看 Key。https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentweekly_usage_keysClaude Code 文档按文档把settings.json、ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN和模型 ID 配好。https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentweekly_usage_claude_code最后再回到本文的产出目标Base URL 使用https://taotoken.net/apiKey 使用YOUR_API_KEY所有运营台调用按week app env model key_alias写入本地 JSONL再用 Python 或 SQL 汇总成 CSV。这样 Claude Cowork、聊天合并为一个 Claude 之后不管产品入口怎么变化你的运营台都能用同一套凭证、同一套计量口径持续产出可复查的周度 Token 消耗表。
返回列表