
1. 零 Skill Agent 到底在解决什么问题最近 Agent 圈子里有个挺有意思的转向前脚 Skills 概念刚火后脚就有人拿出「零 Skill」的原位自进化方案。所谓零 Skill不是让 Agent 变笨而是反过来——不给它预置任何技能包让它一边干活一边给自己造工具。这个思路来自云玦科技那篇原位自进化In-situ Self-evolving Agent的论文核心角色分工是 Manager 拆任务、Tool Developer 现场造工具、Executor 执行、Integrator 收尾工具库从 0 一路收敛到 128 个在 HLE、DeepSearchQA 等 Benchmark 上跑出接近 SOTA 的成绩。它适合谁适合那些被「工具不够用」反复卡住的开发者。你肯定遇到过Agent 规划得好好的到某一步发现没有对应工具要么报错要么开始胡编。传统做法是提前把工具注册全但长尾需求永远补不完。零 Skill 的思路是让 Agent 在推理阶段自己补工具用代码执行的成功/失败作为二元反馈信号不依赖人工标注。但这里有个现实问题Agent 要自己造工具、自己调 API底层得有一个稳定的模型接入通道。如果每个工具调用都要单独配 Key、单独处理鉴权自进化闭环根本跑不起来。我实测下来用 TaoToken 的统一 Key 把模型通道收敛成一个入口再让 Agent 的工具链挂在这个入口上整个流程会清爽很多。下面就把配置骨架和验证动作拆开讲。2. TaoToken 前置统一 Key 与通道准备TaoToken 在这里扮演的角色是「模型调用的统一出口」。零 Skill Agent 的工具库里网页搜索、内容获取、计算器、PDF 处理这些工具最终都要落到模型推理上如果每个工具各自维护一套鉴权和端点工具数量一多就是灾难。统一 Key 的价值在于Agent 造出来的新工具只要按同一套配置去请求就能直接复用通道不用改鉴权逻辑。你需要准备的东西不多一个 TaoToken 账号一个 API Key以及确认你要用的模型名。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台生成 Key。API 基址是 https://taotoken.net/api 注意这个地址不带 UTM 参数配置里直接写这个。注意Key 只生成一次可见复制后立刻存到本地环境变量或配置文件别硬编码进会提交到 Git 的脚本里。模型对话调试入口https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你后面要跑长期编码或 Agent 任务Coding Plan 页面在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。3. 可复制配置config.toml 与 settings.json 骨架零 Skill Agent 的工具链通常需要一个 TOML 配置来描述模型通道再用 JSON 描述工具注册和运行时参数。下面这套骨架你可以直接改 Key 和模型名用。先看config.toml它负责模型通道和请求参数# config.toml - 模型通道统一配置 [provider] name taotoken base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} # 从环境变量读取别写死 timeout 120 max_retries 3 [model] default claude-sonnet-4-5 fallback gpt-4o-mini temperature 0.3 max_tokens 8192 [agent] # 零 Skill 模式允许运行时动态注册工具 dynamic_tool_registration true tool_convergence_limit 128 parallel_batch true batch_size 8 [tools] # 工具优先执行反馈作为监督信号 binary_feedback true sandbox_exec true再看settings.json它描述工具注册表和运行时行为{ agent_mode: zero_skill, tool_registry: { web_search: { enabled: true, endpoint: internal://search, priority: 1 }, content_fetch: { enabled: true, endpoint: internal://fetch, priority: 2 }, calculator: { enabled: true, endpoint: internal://calc, priority: 3 } }, self_evolve: { enabled: true, convergence_metric: test_time_convergence, distill_methodology: true }, runtime: { base_url: https://taotoken.net/api, api_key_env: TAOTOKEN_API_KEY, model: claude-sonnet-4-5 } }两个文件的分工要清楚config.toml管通道和模型参数settings.json管工具注册和自进化开关。Key 统一走环境变量TAOTOKEN_API_KEY这样 Agent 造出来的新工具只要读同一个环境变量就能直接接入不用改代码。设置环境变量的命令export TAOTOKEN_API_KEY你的KeyWindows PowerShell 用$env:TAOTOKEN_API_KEY你的Key4. 验证请求跑通一次工具调用链配置写完别急着上复杂任务先用一个最小请求验证通道是否通。下面这段 Python 用统一 Key 发一次对话请求确认模型能正常返回import os import requests API_KEY os.environ[TAOTOKEN_API_KEY] BASE_URL https://taotoken.net/api resp requests.post( f{BASE_URL}/v1/chat/completions, headers{ Authorization: fBearer {API_KEY}, Content-Type: application/json }, json{ model: claude-sonnet-4-5, messages: [ {role: user, content: 返回一个 JSON包含 tool_name 和 args 两个字段tool_name 填 web_search} ], temperature: 0.2 }, timeout60 ) print(resp.status_code) print(resp.json()[choices][0][message][content])如果返回 200 且内容里有tool_name说明通道通了。接下来验证工具调用链让 Agent 先规划、再调工具、再根据结果决定是否造新工具。下面是一个简化的调用链验证脚本import json import requests def call_model(messages): resp requests.post( f{BASE_URL}/v1/chat/completions, headers{Authorization: fBearer {API_KEY}}, json{model: claude-sonnet-4-5, messages: messages}, timeout60 ) return resp.json()[choices][0][message][content] # 第一步规划 plan call_model([ {role: user, content: 任务查2023届毕业生ACT参与率≥50%的州。先输出需要哪些工具。} ]) print(规划结果:, plan) # 第二步模拟工具执行反馈 tool_result {status: error, msg: no tool for act_data} # 第三步把反馈喂回去观察是否触发造工具 followup call_model([ {role: user, content: f工具执行结果{json.dumps(tool_result)}。下一步怎么办} ]) print(自进化决策:, followup)实测下来当工具返回 error 时模型会倾向于输出「需要新建工具」的决策这正是原位自进化的触发点。你要观察的是它有没有给出可执行的工具定义而不是空泛地说「我无法完成」。5. 本篇常见错排查配置和验证过程中几个坑比较集中。第一个是 401 鉴权失败。多数情况是环境变量没生效或者 Key 复制时带了空格。检查echo $TAOTOKEN_API_KEY是否和后台一致注意别把 Key 写进config.toml后又忘了设环境变量。第二个是模型名写错导致 404。config.toml里的default必须和 TaoToken 支持的模型名完全一致大小写、连字符都要对。拿不准就去模型对话页面确认可用模型列表。第三个是工具注册了但调不到。settings.json里dynamic_tool_registration为 true 时新工具是运行时注册的如果你用的是静态加载方式得手动把工具写进tool_registry。另外base_url在config.toml和settings.json里都出现了改的时候两处都要同步否则会出现「配置改了但请求还走旧地址」的诡异现象。第四个是自进化不收敛。论文里工具数量最终稳定在 128是因为有tool_convergence_limit和测试时收敛指标约束。如果你发现工具数量一直涨检查binary_feedback是否开启——没有执行反馈Agent 就分不清工具到底有没有用会一直造下去。第五个是并行 batch 报错。batch_size设太大容易触发限流先从 4 或 8 开始试稳定了再往上加。6. 把统一 Key 接进你的 Agent 工具链零 Skill Agent 的核心吸引力在于「越用越好用」但前提是工具调用通道足够稳、足够统一。TaoToken 在这里的价值不是替代你的 Agent 框架而是把模型鉴权和端点收敛成一个入口让 Agent 造出来的每一个新工具都能直接复用不用为每个工具单独配一套凭证。如果你还在调试阶段先去模型对话页面把模型名和返回格式确认清楚接入配置遇到报错对照接入文档逐项核对base_url、api_key_env和模型名如果打算长期跑编码或 Agent 任务Coding Plan 页面有更完整的通道方案。API Key 在控制台的 api-keys 页面管理生成后记得同步到环境变量。最后留一个实操建议先把config.toml和settings.json跑通最小请求再逐步打开dynamic_tool_registration和self_evolve。自进化是个闭环通道不稳闭环就转不起来。