尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

把 Claude Code 源码蒸馏成 Agent Skill:TaoToken 配置骨架与 Harness Engineering 实践

把 Claude Code 源码蒸馏成 Agent Skill:TaoToken 配置骨架与 Harness Engineering 实践 1. 从 51.2 万行 TypeScript 里蒸馏出可复用的 Agent SkillClaude Code 源码公开后摆在面前的是 51.2 万行 TypeScript。对做 Agent 的开发者来说这是一份难得的生产级 harness 实现样本但直接读显然不现实——一个 session 塞不下读完了也记不住。真正有价值的做法是把这套源码里的 harness 设计模式蒸馏成一份可安装、可复用的 Agent Skill让后续任何 Agent 项目都能直接调用。这件事的工程化路径可以拆成三层第一层是蒸馏流程本身用多 Agent 分工把源码空间降维成几条可移植的设计原则第二层是 Skill 的落地形态产出一个能npx skills add安装的包第三层是运行时的接入骨架也就是本文要交付的重点——用 TaoToken 统一 Key/API 通道把 Claude Code、Cline、CC Switch 这些工具接到同一套配置上让蒸馏出来的 Skill 真正跑起来。适合谁看有 TypeScript 基础、正在搭本地 Agent Harness 的开发者想把 Claude Code 的设计模式迁移到自己框架的人以及已经在用 Cline 或 Claude Code、但配置散落在各处、想统一收口的人。下面从配置骨架开始一步步给出可复制的config.toml与settings.json再验证连通性最后把蒸馏流程固化成可复现的 Skill 配置。2. TaoToken 前置统一 Key 与 API 通道蒸馏流程里会同时出现多个 Agent 角色负责执行的 Claude Code、负责 review 的 Codex 类模型、以及跑在 Cline 里的辅助 Agent。如果每个工具各自配一套 Key 和 endpoint切换成本高还容易在 handoff 时因为环境不一致导致请求失败。TaoToken 在这里的作用是把模型调用收敛到一个入口Key 和 API 通道统一管理。先拿到访问凭证。打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后进入控制台在 API Keys 页面创建一个新 Key。建议按用途拆 Key一个给 Claude Code 执行用一个给 review 类模型用方便后续在progress-log.md里追踪是哪条通道产生的调用。创建 Key 的入口在控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。API 基地址统一用 https://taotoken.net/api 注意这个地址不带 UTM 参数配置里直接写死即可。注意Key 只创建一次就够不要在每个工具里重复生成。统一 Key 的好处是额度、日志、限流都在一处看排障时不用在多个后台之间跳。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有针对不同客户端的字段说明。下面直接给可复制的骨架。3. 可复制配置config.toml 与 settings.json 骨架配置分两块一块是给 Claude Code / CC Switch 用的settings.json一块是给 Cline 或自研 Harness 用的config.toml。两者共用同一个 API 基地址和 Key只是字段名不同。3.1 settings.json 骨架Claude Code 的配置走settings.json放在项目根目录或用户级配置目录。核心是把模型请求指向 TaoToken 的 API 通道{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoTokenKey, ANTHROPIC_MODEL: claude-sonnet-4-5, ANTHROPIC_SMALL_FAST_MODEL: claude-haiku-4-5 }, permissions: { allow: [ Read, Write, Bash(npx skills:*) ] } }字段说明ANTHROPIC_BASE_URL指向 TaoToken 的 API 入口ANTHROPIC_AUTH_TOKEN填上一步创建的 KeyANTHROPIC_MODEL是执行类模型ANTHROPIC_SMALL_FAST_MODEL用于轻量任务。permissions.allow里放开npx skills是为了后面安装蒸馏出来的 Skill。3.2 config.toml 骨架Cline 或自研 Harness 用config.toml结构更接近通用配置[provider] name taotoken base_url https://taotoken.net/api api_key sk-你的TaoTokenKey timeout_seconds 120 [models] executor claude-sonnet-4-5 reviewer gpt-5.4-xhigh fast claude-haiku-4-5 [harness] role builder handoff_dir ./harness/handoffs progress_log ./harness/progress-log.md task_board ./harness/task-board.md [limits] max_parallel_subagents 8 context_budget_tokens 180000这里把 harness 层的几个关键路径也写进配置handoff_dir对应 Agent 之间的 handoff 文档目录progress_log是只追加的活动日志task_board是共享任务队列。这样任何 clean agent 启动时读一次config.toml就知道去哪找上下文符合「文件系统作为上下文」的思路。3.3 CC Switch 接入如果同时用多个客户端可以用 CC Switch 做配置切换。在 CC Switch 里新增一个 profile字段对应上面的settings.json把ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN填进去即可。切换时不用改文件避免手抖改错 Key。提示config.toml和settings.json里的 Key 建议用环境变量引用比如${TAOTOKEN_API_KEY}不要把明文 Key 提交到仓库。本地开发可以用.env加载。4. 验证请求连通性与成功结果配置写完必须验证否则蒸馏流程跑到一半才发现通道不通前面的 handoff 全白做。验证分三步。4.1 命令行直连验证先用 curl 打一次 API确认 Key 和基地址正确curl -s https://taotoken.net/api/v1/messages \ -H x-api-key: sk-你的TaoTokenKey \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-5, max_tokens: 64, messages: [{role: user, content: ping}] }返回里能看到content字段和正常的usage就说明通道通了。如果返回 401检查 Key 是否复制完整返回 404检查base_url有没有多写或少写/v1。4.2 Claude Code 内验证在项目目录下启动 Claude Code让它读一次config.toml并汇报当前模型claude 读取 ./config.toml告诉我 executor 和 reviewer 分别是什么模型并确认 base_url 指向哪里预期结果是它准确复述出claude-sonnet-4-5和gpt-5.4-xhigh并确认base_url是https://taotoken.net/api。这一步同时验证了模型通道和文件读取权限。4.3 Skill 安装验证蒸馏产物是一个可安装的 Skill用npx skills add装npx skills add agentic-harness-patterns-skill装完后列出已安装 Skill确认触发词出现在列表里npx skills list如果 Skill 描述被截断导致触发词不显示说明描述超了长度限制需要压缩到 120 字符以内。这一步在蒸馏流程的 Phase 7 会专门处理。4.4 模型对话快速验证想单独确认某个模型是否可用可以直接在模型对话页测试https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。选好模型发一条消息能正常返回就说明该模型通道没问题再回到 Harness 里配置。5. 本篇常见错排查配置和验证过程中下面几个错出现频率最高。Key 无效或 401。最常见的原因是复制时带了空格或者把控制台里的 Key ID 当成了 Key 本身。回到 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 重新复制一次注意只复制sk-开头的那串。base_url 写错。有人写成https://taotoken.net/api/v1有人写成带 UTM 的完整链接。正确写法是https://taotoken.net/api不带 UTM路径拼接由客户端负责。带 UTM 的地址只用于网页跳转不要写进配置文件。模型名不匹配。config.toml里写的模型名必须和 TaoToken 支持的模型列表一致。如果报 model not found先去模型对话页确认该模型可用再回填配置。Skill 触发词不生效。前面提到过Skill 描述有 250 字符硬限超了会被截断触发词就丢了。把描述压到 120 字符左右确保核心触发词在前半段。handoff 文档读不到。多 Agent 协作时接收方在新 session 里读不到 handoff通常是handoff_dir路径写成了相对路径但工作目录不对。统一用绝对路径或者在config.toml里把handoff_dir写成相对项目根目录的路径并确保所有 Agent 从同一个根目录启动。并行子 Agent 超限。max_parallel_subagents设太大容易触发限流。从 4 开始试稳定后再往上加。蒸馏流程里 Phase 1-2 用了 4 个 Explore AgentPhase 5 用了 8 个重写 Agent都是逐步加上去的。权限被拦。Claude Code 默认会拦Bash类操作npx skills add会被挡。在settings.json的permissions.allow里显式放开Bash(npx skills:*)。6. 把蒸馏流程固化成可复现的 Skill 配置配置跑通之后最后一步是把整套蒸馏流程固化下来让它可复现。核心思路是把 harness 文件集当成 Skill 的一部分一起分发而不是散落在各个项目里。一个可复现的 Skill 目录结构大致是这样agentic-harness-patterns-skill/ ├── SKILL.md ├── config.toml ├── settings.json ├── harness/ │ ├── clean-agent-brief.md │ ├── review-agent-brief.md │ ├── context-map.md │ ├── task-board.md │ ├── progress-log.md │ ├── review-checklist.md │ └── output-format.md └── references/ ├── memory-and-context.md ├── multi-agent-coordination.md └── tool-permissions.mdSKILL.md里写清楚触发条件和执行入口config.toml和settings.json提供开箱即用的通道配置harness/下的文件定义协作机制references/放蒸馏出来的设计原则。这样任何人npx skills add之后改一下 Key 就能直接跑。长期跑编码和 Agent 任务的话可以考虑用 Coding Plan 把额度固定下来https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。Claude Code 相关的接入细节在 https://taotoken.net/doc/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 有单独说明。蒸馏的本质是降维而配置骨架是让降维结果能落地的那层地基。先把通道统一、把 harness 文件集建好再让 Agent 开始干活——顺序反了后面全是返工。
返回列表