1. 为什么技能装上了却跑不起来
WorkBuddy 的技能市场(SkillHub)确实把「扩展 AI 能力」这件事变得像逛应用商店一样简单:搜关键词、点安装、几十秒后就能在对话里用/唤起。但真正让开发者卡住的,往往不是「怎么装」,而是装完之后技能加载失败、调用时报鉴权错误、或者明明装了却不出现在技能列表里。
我最近在几个项目里把 WorkBuddy 接到统一的 API 通道上,踩了一圈坑之后发现:绝大多数安装失败,根因都集中在 settings.json 的鉴权配置和技能目录结构上。SkillHub 里的技能包本身没问题,问题出在本地环境没有把「统一 Key」正确地暴露给技能运行时。
这篇文章聚焦一个具体场景:你已经用统一 Key / API 通道管理模型调用,现在要在 WorkBuddy 技能市场里安装技能,并且希望所有技能共用同一套凭证,而不是每个技能单独填一遍。我会给出可复制的settings.json配置骨架、三种安装方式各自对应的验证动作,以及技能加载失败时按什么顺序排查。
适合谁看:已经在用统一 Key 通道、准备把 WorkBuddy 当日常生产力工具的开发者;或者装了技能但一直报401、skill not found、invalid credentials的同学。读完你应该能自己定位「是配置没生效,还是技能包本身有问题」。
2. 前置:统一 Key 通道与 settings.json 的关系
在讲配置之前,先把两个概念对齐,不然后面看配置会懵。
统一 Key 通道指的是:你不再为每个模型、每个工具单独申请一套凭证,而是通过一个统一的入口(比如 TaoToken 的 API 通道)拿到一个 Key,所有请求都走这个 Key 转发。好处是换模型、加技能都不用改一堆环境变量。
settings.json是 WorkBuddy 读取本地配置的核心文件。技能在运行时需要知道两件事:请求发到哪个 base_url、用哪个 api_key 鉴权。如果技能包里硬编码了凭证,或者 settings.json 里字段名写错,技能就会在加载阶段直接失败。
你可以把 settings.json 理解成「技能运行时的通讯录」:技能要打电话(发请求),得先从这里查到号码(base_url)和身份(api_key)。通讯录写错了,技能自然打不出去。
TaoToken 在这里扮演的角色就是那个统一入口。官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 端点固定为 https://taotoken.net/api(注意这个地址不加 UTM 参数,配置里要写干净的)。你在这个通道下拿到的 Key,可以同时给对话模型和技能调用使用,这就是「统一 Key」的意义。
注意:settings.json 里填的 base_url 必须是纯 API 地址,不要带任何查询参数。带 UTM 的地址是给浏览器点击用的,写进配置会导致请求 404。
3. 可复制的 settings.json 配置骨架
下面这份骨架是我实测能跑通的版本,字段名和层级都按 WorkBuddy 当前读取逻辑来。你可以直接复制,把sk-xxxx换成你自己的 Key。
{ "api": { "base_url": "https://taotoken.net/api", "api_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxx", "timeout": 60, "max_retries": 2 }, "skills": { "enabled": true, "auto_load": true, "skill_dir": "~/.workbuddy/skills", "registry": "https://taotoken.net/api", "verify_on_load": true }, "logging": { "level": "info", "skill_debug": true } }几个关键字段逐个说明,这些是我踩坑后确认必须写对的:
api.base_url填https://taotoken.net/api,结尾不要带斜杠。带斜杠在某些技能包里会拼成//v1/chat导致 404。
api.api_key就是你在统一通道拿到的 Key。不要把它写进任何技能包内部,只放在 settings.json 里,技能运行时从这里读。
skills.skill_dir是技能安装的全局目录。三种安装方式最终都会把技能落到这里,如果这个路径不存在或没权限,安装会「成功」但加载失败。
skills.verify_on_load设为 true 时,WorkBuddy 会在加载技能时做一次轻量鉴权探测。这个开关很有用,能把「配置错误」和「技能包错误」区分开——如果 verify 阶段就报鉴权错,那问题在 settings.json;如果 verify 过了但调用失败,问题在技能包。
logging.skill_debug打开后,技能加载日志会输出到控制台,排查skill not found这类问题时必开。
配置写完后,建议先用一个最小请求验证通道本身是通的,再谈装技能。验证方法在下一节。
4. 三种安装方式与对应验证动作
WorkBuddy 装技能有三条路:对话安装、市场搜索安装、本地/仓库导入。三条路的配置读取逻辑一样,但验证动作不同,分开说。
4.1 对话安装后的验证
直接在对话框说「帮我安装一个会议纪要技能」,AI 会去 SkillHub 匹配并安装。装完后不要急着用,先跑一条验证命令:
# 查看已安装技能列表,确认目标技能在列 /skills list # 查看某个技能的详细状态,包括鉴权是否通过 /skills info meeting-notes如果/skills info返回里auth_status是ok,说明 settings.json 的 Key 被技能正确读取了。如果是failed,回到第 3 节检查api.api_key和base_url。
4.2 市场搜索安装后的验证
从左侧「专家 · 技能 · 连接器」进技能标签页,搜关键词点安装。这种方式装完后,技能默认是启用状态,但不会自动触发鉴权探测。你需要手动触发一次:
# 强制重新加载所有技能并做鉴权校验 /skills reload --verify实测下来,市场安装最容易出的问题是技能版本和当前 WorkBuddy 版本不匹配,表现为skill not found或incompatible skill format。这时候用/skills info <name>看version字段,和技能市场页面标的版本对一下。
4.3 本地/仓库导入后的验证
从 Git 仓库导入是我最推荐的方式,因为版本可控:
# 从仓库导入技能 /skills import https://github.com/username/workbuddy-skill-excel-analyzer # 导入后立即验证 /skills verify workbuddy-skill-excel-analyzer导入流程会自动克隆仓库、扫描SKILL.md、安装到skill_dir、验证完整性。如果卡在「验证完整性」这一步,八成是技能包里的SKILL.md缺少必需的元数据字段,或者skill_dir路径没写对。
本地文件夹导入同理:
/skills import /downloads/my-new-skill/导入完成后,三种方式都建议做同一个动作:在对话里实际调用一次技能,确认端到端通。比如装了 Excel 分析技能,就丢一个 xlsx 进去让它处理。能列出技能 ≠ 能调用技能,这一步不能省。
5. 技能加载失败排查顺序
技能装不上或加载失败,按下面顺序排查,基本能覆盖 90% 的情况。
第一步:确认 settings.json 被读取了。在对话里问 WorkBuddy「当前 api base_url 是什么」,如果返回的不是你配的地址,说明配置文件路径不对。WorkBuddy 默认读用户目录下的配置,如果你放在项目目录里,需要用启动参数指定。
第二步:确认 Key 有效。用 curl 直接打一次通道:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"ping"}]}'返回 200 说明 Key 和通道都没问题,问题在技能侧。返回 401 就是 Key 错了,返回 404 就是 base_url 写错了。
第三步:确认技能目录权限。skill_dir指向的目录必须存在且可写。Linux/macOS 下用ls -la ~/.workbuddy/skills看一眼,如果目录不存在,手动建一个再重装。
第四步:看技能调试日志。打开logging.skill_debug后重装一次,日志里会明确写「读取配置失败」还是「技能包解析失败」。前者改 settings.json,后者换技能包版本。
第五步:区分「装不上」和「调不动」。如果/skills list能看到技能,但对话里调用报错,那是技能运行时的鉴权问题,重点查技能包内部有没有硬编码凭证覆盖了 settings.json。这种情况在第三方技能里比较常见。
提示:第三方技能安装前,先看技能市场里的评分和下载量,再检查它声明的权限范围。需要读取本地文件或发起网络请求的技能,权限声明要格外留意。
6. 把配置一次做对,比反复重装省事
技能市场装技能这件事,装的动作本身很简单,难的是让所有技能共用一套统一 Key 配置而不互相打架。我的经验是:settings.json 只写一份,技能包内部一律不碰凭证,这样换 Key、换通道只需要改一个文件。
如果你还没拿到统一 Key,可以去 TaoToken 的控制台创建一个,地址是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api_keys 。创建后把 Key 填进上面那份 settings.json 骨架,先跑通 curl 验证,再装技能。
配置过程中如果卡在鉴权报错,接入文档里有各语言的请求示例,对照检查 header 和 body 格式:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc 。想先确认模型通道本身是否正常,可以直接在模型对话页发一条消息试试:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=chat 。
如果你打算长期用 WorkBuddy 跑编码类技能或 Agent 工作流,建议直接上 Coding Plan,省得每次调技能都担心额度:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding_plan 。最后提醒一句:技能装完先/skills verify再实际调用,两步都过了再投入日常使用,能省掉大量「以为装好了其实没通」的时间。