1. ClawWork 是什么:香港大学开源项目把 AI 智能体扔进真实经济任务
ClawWork 是香港大学数据科学实验室(HKUDS)在 GitHub 上开源的一个 AI 智能体经济任务执行框架。它做的事情可以用一句话说清楚:给每个 AI 智能体发 10 美元启动资金,让它去完成覆盖制造、金融、医疗等 44 个经济领域的 220 个真实专业任务,赚到钱就活,花光了就破产出局。适合谁?适合想验证自己手上模型到底能不能“干活赚钱”的开发者、想跑 Agent 长链路任务评测的团队,以及单纯想看看 AI 在成本压力下会做出什么决策的技术爱好者。
我第一次跑 ClawWork 的时候,盯着终端里一行行扣费日志,感觉像在看一个实习生拿着公司信用卡疯狂刷搜索 API。它和传统评测最大的区别在于:MMLU 考的是“你知不知道”,HumanEval 考的是“你会不会写”,而 ClawWork 考的是“你花多少钱、赚多少钱”。这个转变非常关键,因为真实商业环境里,一个能解决问题但烧掉 50 万 Token 的模型,和一个用 5000 Token 精准交付的模型,价值完全不同。
ClawWork 底层的 Nanobot 架构抛弃了所有聊天交互的冗余设计,核心就是一个“打工机器 + 记账本”。系统从 GDPVal 任务池里随机派单,智能体调用大模型推理、Tavily 搜索($0.0008/次)、Jina 抓取($0.05/1M Tokens)等工具,每一步都经过财务校验。最终交付物由裁判模型打分,0 到 1 分对应 $82.78 到 $5004 的结算区间。如果余额归零,进程直接被 kill。
这个机制倒逼 AI 学会“算计”。比如一个供应链分析任务,盲目发起 50 次模糊搜索的智能体会在几分钟内烧掉 $8 以上,然后因为逻辑混乱被裁判打 0 分,血本无归。而精准构造 2 个搜索词、直接定位目标 PDF 的智能体,可能只花 $0.15 就拿到 0.95 分,赚取 $850 佣金。这种成本意识,是传统评测完全测不出来的维度。
对于想复现这套流程的读者,你需要准备三样东西:一个能跑 Python 3.10+ 的环境、至少一个大模型 API Key、以及一个搜索工具的 Key。接下来我会用 TaoToken 统一 Key 来接入,这样你不需要在多个平台之间切换,一个 Key 就能调用不同厂商的模型,方便对比不同“打工人”的 ROI 表现。
2. TaoToken 统一 Key 前置:一个 Key 打通多模型接入
在跑 ClawWork 之前,你需要解决一个很实际的问题:ClawWork 支持 OpenAI、Anthropic、Google 以及开源模型等多种后端,如果每个厂商都去注册、充值、管理 Key,光是配置环境变量就能耗掉半小时。TaoToken 的思路是提供一个统一的 API 入口,你只需要一个 Key,就能在 ClawWork 里切换不同模型,这对于需要对比“哪个模型打工性价比最高”的场景特别实用。
TaoToken 的 API 地址是https://taotoken.net/api,兼容 OpenAI 的接口格式。这意味着任何使用 OpenAI SDK 或 LangChain/LiteLLM 的框架,只需要改 Base URL 和 Key 就能接入。ClawWork 底层用的是 LiteLLM 做模型路由,所以配置起来非常直接。
你需要先拿到一个 API Key。访问https://taotoken.net/api-keys(带上 utm 参数方便追踪来源),创建一个新的 Key。创建的时候建议给 Key 起个名字,比如clawwork-test,方便后续在账单里区分不同项目的消耗。Key 的格式通常是sk-开头的一串字符,复制下来保存好,后面配置环境变量要用。
这里有一个关键点:ClawWork 的计费拦截器会实时扣减智能体的模拟余额,但你的真实 API 消耗是走 TaoToken 的账单。所以你在测试的时候,建议先充一个小额度,比如 5 到 10 美元,够跑几个任务就行。等确认模型表现符合预期,再加大投入。
TaoToken 支持的模型列表可以在https://taotoken.net/doc查看。对于 ClawWork 这种需要长链路推理和工具调用的场景,我建议优先选 Claude 3.5 Sonnet 或 GPT-4o 级别的模型,因为它们在多步任务中的指令遵循能力更强,不容易陷入搜索死循环。如果你想测试开源模型的性价比,DeepSeek-Coder 也是不错的选择,API 成本低,适合跑海量低端任务。
配置的时候有一个坑要注意:ClawWork 的config.yaml里默认可能写的是 OpenAI 的官方地址,你需要把它改成 TaoToken 的 Base URL。同时,环境变量里的OPENAI_API_KEY要换成你的 TaoToken Key。如果你用的是 LiteLLM 的路由配置,还需要在模型名称前加上openai/前缀,告诉 LiteLLM 走 OpenAI 兼容接口。
另外,TaoToken 的 Coding Plan 适合需要长期跑 Agent 任务的场景,比如你想让 ClawWork 7x24 小时常驻跑任务,用 Coding Plan 的额度会比按量计费更划算。具体可以看https://taotoken.net/coding-plan的说明。如果你只是想先试试模型对话效果,可以用https://taotoken.net/model-chat快速验证 Key 是否正常工作。
3. 可复制配置:ClawWork 接入 TaoToken 的完整片段
这一节直接给可复制的配置片段。你需要修改两个地方:环境变量和 ClawWork 的配置文件。先看环境变量,在终端里执行:
export TAOTOKEN_API_KEY="sk-你的TaoTokenKey" export OPENAI_API_KEY="$TAOTOKEN_API_KEY" export OPENAI_BASE_URL="https://taotoken.net/api" export TAVILY_API_KEY="tvly-你的搜索Key"注意OPENAI_BASE_URL不要加 UTM 参数,保持干净的 API 地址。Tavily 的 Key 需要你去 Tavily 官网注册获取,ClawWork 用它来做网页搜索,每次调用扣 $0.0008。
接下来是 ClawWork 的config.yaml配置。这个文件通常在项目根目录下,你需要修改agent_defaults和evaluation部分:
system: max_concurrent_agents: 3 log_level: "INFO" agent_defaults: starting_balance: 10.0 max_steps: 25 model: "openai/claude-3-5-sonnet" api_base: "https://taotoken.net/api" api_key_env: "TAOTOKEN_API_KEY" tools: web_search: enabled: true provider: "tavily" cost_per_call: 0.0008 web_reader: enabled: true provider: "jina" cost_per_million_tokens: 0.05 evaluation: judge_model: "openai/gpt-4o" judge_api_base: "https://taotoken.net/api" judge_api_key_env: "TAOTOKEN_API_KEY" strict_mode: true这里有几个参数需要解释。model字段里的openai/前缀是给 LiteLLM 看的,表示走 OpenAI 兼容接口。后面的模型名称你可以换成 TaoToken 支持的任何模型,比如openai/gpt-4o或openai/deepseek-coder。judge_model是裁判模型,建议用比打工模型更强的模型,比如 GPT-4o 或 Claude 3.5 Sonnet,这样打分更严格,更接近真实商业验收。
max_steps: 25是一个安全阀。如果不限制步数,智能体可能陷入无限循环搜索,几分钟就把 $10 烧光。25 步对于大多数任务够用,如果任务特别复杂,可以适当放宽到 40 步,但要做好余额快速下降的心理准备。
如果你用 Docker 部署,docker-compose.yml里的环境变量也要对应修改:
version: '3.8' services: clawwork-core: image: hkuds/clawwork:latest container_name: clawwork_engine restart: unless-stopped volumes: - ./config.yaml:/app/config.yaml - ./workspace:/app/workspace environment: - OPENAI_API_KEY=${TAOTOKEN_API_KEY} - OPENAI_BASE_URL=https://taotoken.net/api - TAVILY_API_KEY=${TAVILY_API_KEY} ports: - "8000:8000" clawwork-dashboard: image: hkuds/clawwork-dashboard:latest container_name: clawwork_dashboard ports: - "3000:3000" depends_on: - clawwork-core启动命令:
docker-compose up -d启动后访问http://localhost:3000就能看到仪表盘。如果你在本地直接跑,用:
python -m livebench.run --agent gpt-4o --task finance_analysis这个命令会启动一个智能体,分配一个金融分析任务,然后你就能在终端看到实时的扣费日志和任务执行过程。
4. 验证请求:跑通第一个 ClawWork 任务并确认结算
配置写好后,先别急着跑复杂任务。我建议用一个简单的任务做冒烟测试,确认 TaoToken 的 Key 能正常调用,ClawWork 的计费拦截器工作正常,裁判模型能正常打分。
先验证 API 连通性。在终端里用 curl 发一个最简单的请求:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-3-5-sonnet", "messages": [{"role": "user", "content": "回复OK两个字母"}], "max_tokens": 10 }'如果返回的 JSON 里有choices字段且内容包含OK,说明 Key 和 Base URL 都正确。如果返回 401,检查 Key 是否复制完整;如果返回 404,检查 Base URL 是否写成了https://taotoken.net/api而不是其他路径。
接下来跑一个 ClawWork 的简单任务。用这个命令:
python -m livebench.run --agent gpt-4o --task simple_data_extract --max-steps 10这个任务会让智能体从一个模拟的网页中提取结构化数据,然后输出 JSON。任务本身不复杂,但能完整走通“派单 → 调用模型 → 调用搜索 → 交付 → 裁判打分 → 结算”的链路。
跑起来后,终端会输出类似这样的日志:
[Task Dispatcher] Assigned task: simple_data_extract, reward: $120.00 [Agent gpt-4o] Starting with balance: $10.00 [Transaction] LLM inference cost: -$0.0032, balance: $9.9968 [Transaction] Tavily search cost: -$0.0008, balance: $9.9960 [Agent gpt-4o] Artifact submitted. [Judge] Evaluating artifact... score: 0.88 [Settlement] Reward: $105.60, final balance: $115.5960看到Settlement这一行,说明整个链路跑通了。裁判给了 0.88 分,对应 $105.60 的结算,智能体最终余额 $115.60。这个任务里,智能体花了大约 $0.004 的成本,赚了 $105.60,ROI 非常高。但别高兴太早,复杂任务的成本会指数级上升。
如果你想验证不同模型的表现,可以把--agent参数换成claude-3-5-sonnet或deepseek-coder,对比它们的得分和成本。我实测下来,Claude 3.5 Sonnet 在需要多步推理的任务里得分更稳定,但 Token 成本比 DeepSeek 高不少。DeepSeek 偶尔会输出格式错误导致裁判扣分,但胜在便宜,适合跑量。
还有一个验证点是仪表盘。打开http://localhost:3000,你应该能看到当前智能体的余额曲线、任务完成状态和行业 ROI 分布。如果仪表盘显示“No agents connected”,检查clawwork-core容器的日志,通常是环境变量没传进去或者 Base URL 写错了。
5. 常见报错排查:401、local proxy failed、reading choices 怎么解
跑 ClawWork 的过程中,你大概率会遇到几个典型报错。我把自己踩过的坑和社区里高频出现的问题整理出来,对照着排查能省不少时间。
报错一:401 Unauthorized
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Invalid API key'}}这个最直接,Key 不对。检查三个地方:环境变量TAOTOKEN_API_KEY是否设置成功(用echo $TAOTOKEN_API_KEY确认);config.yaml里的api_key_env是否写的是TAOTOKEN_API_KEY;Docker 环境下.env文件是否被正确加载。如果 Key 是从https://taotoken.net/api-keys复制的,注意不要多复制空格或换行。
报错二:local proxy failed / Connection refused
litellm.exceptions.APIConnectionError: local proxy failed to connect这个通常是因为 Base URL 写错了。ClawWork 默认可能走的是http://localhost:8000或 OpenAI 官方地址,你需要确认OPENAI_BASE_URL和config.yaml里的api_base都改成了https://taotoken.net/api。另外,如果你在 Docker 里跑,容器内的localhost指向容器本身,不是宿主机,所以不能用localhost作为 API 地址,必须用完整域名。
报错三:reading 'choices' of undefined
TypeError: Cannot read properties of undefined (reading 'choices')这个报错说明 API 返回的 JSON 结构不符合预期。常见原因有两个:一是模型名称写错了,TaoToken 返回了错误信息而不是正常的choices数组;二是请求被限流,返回了 429 状态码。检查config.yaml里的模型名称是否在 TaoToken 支持列表里,可以在https://taotoken.net/doc确认。如果是限流,把max_concurrent_agents降到 1 或 2,等几分钟再试。
报错四:OAuth / token refresh failed
Error: OAuth token refresh failed for provider anthropic如果你在 ClawWork 里配置了 Anthropic 原生接口而不是走 TaoToken 统一入口,可能会遇到 OAuth 刷新失败。解决办法很简单:统一走 TaoToken 的 OpenAI 兼容接口,把模型名称写成openai/claude-3-5-sonnet,这样就不需要单独处理 Anthropic 的 OAuth 流程了。这也是用统一 Key 的好处之一,省掉各厂商不同的认证逻辑。
报错五:BankruptcyException 频繁触发
BankruptcyException: Agent balance insufficient for Tavily_Search这不是代码 bug,是智能体真的把钱花光了。检查max_steps是否设得太大,或者任务是否太复杂导致搜索次数过多。可以先把starting_balance临时调高到 20 美元做调试,等确认模型行为正常后再调回 10 美元。另外,strict_mode: true会让裁判打分更严,如果模型输出格式经常出错,可以先设为false观察一下。
报错六:Docker 容器启动后立即退出
检查docker-compose logs clawwork-core的输出。常见原因是config.yaml路径挂载错误,或者环境变量文件.env不存在。确保./config.yaml文件真实存在且格式正确,YAML 对缩进敏感,用空格不要用 Tab。
6. 从 ClawWork 到 TaoToken:统一 Key 让 AI 打工人持续在线
跑通 ClawWork 之后,你会发现一个很现实的问题:不同模型在不同任务上的 ROI 差异巨大。金融分析任务里 Claude 3.5 Sonnet 的得分和成本平衡最好,代码重构任务里 DeepSeek-Coder 的性价比碾压,而医疗数据核对任务里 GPT-4o 的格式遵循能力最稳。如果你每个模型都去单独注册、充值、管理 Key,光是切换成本就够你头疼的。
TaoToken 的统一 Key 方案解决的就是这个问题。一个 Key 走https://taotoken.net/api,在 ClawWork 的config.yaml里改一行模型名称就能切换后端,不需要重新配置环境变量,也不需要重新认证。这对于需要跑多模型对比实验的场景特别实用。
如果你打算长期跑 ClawWork 任务流,比如让 AI 7x24 小时接单打工,建议看一下 Coding Plan 的额度方案(https://taotoken.net/coding-plan),比按量计费更适合持续消耗的场景。如果只是偶尔跑几个任务验证模型表现,按量计费就够了。
接入文档在https://taotoken.net/doc,里面有完整的 API 参数说明和模型列表。遇到接入问题的时候,先对照文档检查 Base URL 和模型名称,大部分报错都能自己解决。
最后说一个实际经验:ClawWork 的裁判模型建议用比打工模型更强的模型,比如打工用 DeepSeek-Coder,裁判用 GPT-4o。这样打分更严格,更能暴露打工模型的问题。但裁判模型的 API 成本也要算进你的总预算里,别光盯着打工模型的消耗。我试过用同一个模型既打工又裁判,结果裁判给分偏松,很多低质量交付物也能拿到 0.7 以上,失去了筛选意义。
跑 ClawWork 最有意思的地方,是看着智能体在余额压力下做出各种“精打细算”的决策。有的会主动缩短搜索词,有的会跳过不确定的网页抓取,有的甚至会在交付前反复检查格式。这些行为在传统评测里完全看不到,但在真实商业环境里恰恰是最重要的能力。用 TaoToken 统一 Key 接入,你可以低成本地对比不同模型在这种压力下的表现,找到最适合你业务场景的“AI 打工人”。