AI子代理的技能进化:从知识沉淀到能力升级的TaoToken实践
1. 子代理为什么“学过就忘”从对话碎片到可复用 skill 的真实断层先说一个我观察到的现象很多人把 AI 子代理跑起来之后最常做的一件事就是挂个定时任务让它每天读点文档、抓点资料、存进 memory。跑了一周memory 文件确实变大了但真到用的时候子代理还是那个子代理——它不会主动把上次学到的东西拿出来用你得在 prompt 里提醒它“去查一下 memory 里关于 XX 的记录”它才会去翻。这就是“学到”和“会了”之间的断层。memory 是仓库skill 是肌肉记忆。仓库里的东西再多不转化成肌肉记忆每次用都得先“想起来去仓库找”这个“想起来”的动作本身就是额外的推理开销。任务一复杂这层开销就会吃掉上下文窗口导致子代理在真正需要发挥的地方反而变笨。我试过在一个长期跑的代码审查子代理上做对比A 版本只把每次审查发现的问题写进 memoryB 版本在写进 memory 的同时把高频问题模式抽出来注册成一个 skill。跑了两周后B 版本在遇到同类问题时响应里直接带出检查项不需要再去检索 memoryA 版本则每次都要先做一轮“回忆检索”平均多消耗 1.5 轮工具调用。所以这篇要解决的问题很具体怎么让子代理在长期任务里把零散对话沉淀成可复用的 skill并且通过统一的 Key/API 通道把 memory 和 skill 的联动跑通。适合已经在跑子代理、但感觉“它学了却不会用”的人。下面直接给结构、给配置、给验证流程。2. TaoToken 前置统一 Key/API 通道在 memory 与 skill 联动中的位置在讲配置之前得先把通道这件事说清楚。子代理的 memory 和 skill 联动本质上是一次“读写 推理”的循环任务执行完子代理要把经验写进 memory复盘时要从 memory 里抽取模式生成或更新 skill下次任务来时skill 要被加载进上下文。这三个环节都需要调模型如果每个子代理、每个环节都各配一套 Key 和 Base URL管理成本会迅速失控。TaoToken 在这里的角色是统一入口。你可以在官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 了解整体能力实际接入时用 API 地址 https://taotoken.net/api 作为 Base URL。所有子代理——不管是负责架构设计的“通才”还是专职写代码的“专才”——都走同一个 Key模型 ID 按需切换。这样 memory 写入、skill 生成、任务执行三个环节的调用日志能对齐到同一个通道排查问题时不用在多个 Key 之间来回切。具体到联动流程我把它拆成三段第一段是执行后沉淀。子代理完成任务后触发一次“复盘调用”把本次任务的过程摘要、有效做法、失败尝试整理成结构化文本写入 memory 文件。这一步用便宜的模型就行不需要太强推理。第二段是模式抽取。定期比如每 10 次任务后跑一次“技能生成调用”读取 memory 里新增的记录让模型判断哪些做法已经重复出现、可以固化成 skill。这一步需要模型有较好的归纳能力建议用中等偏上的模型。第三段是 skill 加载。新任务开始时子代理先读取 skill 注册表把匹配当前任务的 skill 内容注入系统提示。这一步不调模型纯文件读取但 skill 的格式必须规范否则注入后模型解析不了。三段都走 TaoToken 的同一个 Base URLKey 只配一次。下面给可复制的配置。3. 可复制配置memory 结构、skill 注册模板与 settings 片段先给 memory 的目录结构。我习惯按“日期 任务类型”分文件避免单个文件过大导致读取时截断agent_root/ ├── memory/ │ ├── 2026-03-20_code_review.md │ ├── 2026-03-21_code_review.md │ └── index.json ├── skills/ │ ├── registry.json │ └── code_review_patterns.md └── config/ └── settings.jsonmemory 单条记录的格式用 Markdown 加 front matter方便模型解析也方便人看--- task_type: code_review timestamp: 2026-03-21T14:30:00 outcome: success --- ## 任务摘要 审查了 user_service.py 中的分页逻辑。 ## 有效做法 - 先检查 LIMIT/OFFSET 是否与总数查询一致 - 分页参数缺失时默认 page1, size20 ## 失败尝试 - 直接假设 size 上限为 100实际项目里是 50导致误报skill 注册表用 JSON每个 skill 记录名称、触发条件、内容文件路径{ skills: [ { name: code_review_pagination, trigger: task_type code_review content.contains(分页), file: skills/code_review_patterns.md, version: 3, updated_at: 2026-03-21T15:00:00 } ] }skill 内容文件本身要写成“可直接执行”的检查清单而不是知识描述。区别在于知识描述是“分页要注意边界”检查清单是“检查 LIMIT 与 COUNT 查询是否使用同一套 WHERE 条件”。后者模型拿到就能用前者还得再推理一步。settings.json 里配 TaoToken 通道和模型分工{ api: { base_url: https://taotoken.net/api, api_key: sk-你的Key, default_model: claude-sonnet-4-5, cheap_model: claude-haiku-4-5 }, memory: { dir: agent_root/memory, index: agent_root/memory/index.json }, skill: { registry: agent_root/skills/registry.json, auto_update_threshold: 3 } }auto_update_threshold: 3的意思是同一个模式在 memory 里出现 3 次后触发 skill 生成。这个值别设太低否则会把偶发做法误固化成 skill也别设太高否则沉淀太慢。如果你用的是 Claude Code 类的环境settings 片段可以放在项目根目录的.claude/settings.json里字段名保持一致。Cline MCP 的场景下把 base_url 和 api_key 填进 MCP server 的环境变量即可模型 ID 在调用时指定。Codex 的 auth.json 则对应填base_url和api_key两个字段。三件套始终是 Base URL、Key、Model ID缺一不可。4. 验证请求一次可复现的 memory 到 skill 联动流程配置放好后跑一次完整验证。我把它拆成四个可观察的步骤每步都有明确的输入和预期输出。第一步手动写入一条 memory 记录。在agent_root/memory/下新建2026-03-22_code_review.md内容用上面的模板task_type 写code_review有效做法里写一条“检查分页参数默认值”。然后更新 index.json把新文件加进去。第二步触发 skill 生成调用。用 curl 直接打 TaoToken 的 API模拟子代理的复盘环节curl https://taotoken.net/api/v1/messages \ -H Content-Type: application/json \ -H x-api-key: sk-你的Key \ -H anthropic-version: 2023-06-01 \ -d { model: claude-sonnet-4-5, max_tokens: 1024, messages: [ { role: user, content: 读取 memory/2026-03-22_code_review.md判断其中的有效做法是否值得固化为 skill。如果值得输出 skill 名称、触发条件和检查清单格式为 JSON。 } ] }预期返回里应该包含一个 JSON 结构skill 名称类似code_review_pagination触发条件包含分页检查清单至少两条。如果返回的是自然语言描述而不是 JSON说明 prompt 里的格式约束不够强可以在末尾加一句“只输出 JSON不要其他文字”。第三步把返回的 skill 写入 registry.json 和对应的 md 文件。注意 version 字段从 1 开始updated_at 用当前时间。第四步发一个新任务验证 skill 是否被加载。构造一个包含“分页”关键词的代码审查请求curl https://taotoken.net/api/v1/messages \ -H Content-Type: application/json \ -H x-api-key: sk-你的Key \ -H anthropic-version: 2023-06-01 \ -d { model: claude-sonnet-4-5, max_tokens: 2048, system: 你是代码审查子代理。可用 skillcode_review_pagination检查清单见 skills/code_review_patterns.md。, messages: [ { role: user, content: 审查这段分页代码def get_users(page, size): return db.query(User).offset(page*size).limit(size) } ] }成功的标志是返回的审查意见里直接出现了 skill 检查清单中的条目比如“检查 LIMIT 与 COUNT 是否使用同一套 WHERE 条件”而不是泛泛地说“注意分页边界”。这说明 skill 已经被加载并生效不需要子代理再去 memory 里检索。整个流程跑通后你可以把第二步到第四步做成定时任务每积累 3 条同类 memory 就自动触发一次 skill 更新。这样子代理的能力就是持续生长的而不是靠你手动喂。5. 本篇常见错排查401、local proxy failed、reading choices 与 OAuth 报错配置过程中最容易撞上的几类报错我按实际遇到的频率排一下。401 Unauthorized。最常见的原因是 Key 没带对或者带了但格式不对。TaoToken 的 API 用x-api-key头不是Authorization: Bearer。如果你从别的平台复制配置过来很容易把 header 名写错。检查 settings.json 里的 api_key 字段有没有多余空格以及 curl 命令里的 header 名是不是x-api-key。local proxy failed。这个报错通常出现在你本地配了转发规则、但转发目标不可达的时候。如果你在 settings 里把 base_url 写成了http://localhost:xxxx之类的本地地址而本地服务没起来就会报这个。直接改成https://taotoken.net/api不要经过本地转发。另外检查环境变量里有没有残留的HTTP_PROXY或HTTPS_PROXY有的话清掉。reading choices 相关报错。这个一般出现在用 OpenAI 兼容格式调 Claude 模型的时候。TaoToken 的 API 同时支持 Anthropic 原生格式和 OpenAI 兼容格式但两者的响应结构不同。如果你用 OpenAI 的 SDK 去调返回里找choices字段是对的如果用 Anthropic 的 SDK响应里是content数组找choices就会报错。确认你用的 SDK 和请求格式匹配不要混用。OAuth 相关报错。Claude Code 类的工具在首次登录时会走 OAuth 流程如果你在 settings 里同时配了 OAuth token 和 API Key可能会冲突。解决办法是明确用 API Key 模式把 OAuth 相关的字段清空。在.claude/settings.json里只保留api_key和base_url不要留oauth_token之类的字段。还有一个隐蔽的坑skill 注册表里的 trigger 条件写得太宽导致所有任务都加载同一个 skill上下文被撑爆。比如 trigger 写成task_type code_review那所有代码审查任务都会加载分页检查清单即使这次审查的是数据库连接池。trigger 要尽量具体带上内容关键词。排查时建议先单独用 curl 打一次 API确认通道本身是通的再去查子代理框架层的配置。通道通、框架配置对、skill 格式规范这三层都过了联动就能跑起来。6. 从知识沉淀到能力升级把通道和 skill 注册用起来回到最开始那个断层memory 是仓库skill 是肌肉记忆。这篇给的配置和验证流程核心就是把“写 memory”和“生成 skill”之间的那一步自动化掉并且用统一的通道让三个环节的调用可追溯。你现在可以做的具体动作先把 settings.json 里的 base_url 改成https://taotoken.net/apiKey 换成你自己的然后按第 3 节的目录结构建好 memory 和 skills 文件夹。接着跑第 4 节的四步验证观察 skill 是否被正确加载。跑通之后把第二步到第四步包成一个脚本挂到定时任务里阈值设成 3。后续如果要扩展方向有两个一是给 skill 加版本回滚每次更新前备份旧版本发现新 skill 效果不好可以退回去二是把 skill 的触发条件做成可测试的每次更新后跑一组回归用例确认没有误触发。这两个都不难但能让子代理的能力升级更稳。通道方面模型对话、Coding Plan、API Keys 管理、接入文档这些入口都在 TaoToken 上需要切换模型或查看用量时直接去对应页面操作就行。把 Key 和 Base URL 配一次剩下的精力花在 skill 的沉淀质量上这才是子代理真正“会了”的关键。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →