WorkBuddy 路由调度
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 安装 @user_83dd345d/skill-radoute。
技能介绍
要解决的问题
当工作区装了十几个技能,Agent 每次都要临时判断:该用哪个技能、上一步结果怎么交给下一步、换技能时状态怎么办、事后怎么复盘。这些判断只存在于模型上下文里时,既不可复现也无法审计。Skill Router 把四件事变成落盘流程——会话、路由决策、上下文总线、调用链全部写在 .workbuddy/router/,事后可用 router.py trace 回看每一步的候选、分数和判定依据。
职责分三层:registry.py 扫描本机技能来源、建索引、按任务描述打分排序;router.py 管会话、路由、上下文与调用链;SKILL.md 规定何时调用它们,以及模型在其中的判断责任。路由器只做选择、传值、记账,实际业务发生在被路由到的 skill 里,且不会修改既有 skill 的文件。
工作机制
核心是六步:开会话、逐子任务路由、开调用并真正加载技能、写回上下文、switch 切换、trace 回溯。路由返回 auto / confirm / decompose / no_match:多意图时返回 sub_task_plan 而不是硬取 top1;命中理由全是零散单字、或 top1 的 description 明确排除了当前场景时,模型可以直接否决并用 --exclude 重新路由,让否决动作留在 trace 里。
切换永远用 switch 而非新建会话,--keep-open 把当前调用挂起,之后 call resume c002 原样回到现场。上下文总线只放摘要、路径、标识符和结构化结论,大段原文落文件。
v2.0 之后多技能编排可以写成 workflows/*.yaml 模板一条命令跑完:步骤间自动传上下文,任一步失败自动回滚该步写入并可从断点续跑;intent.parse 按依赖图给子任务分层,互不依赖的用 ThreadPoolExecutor 并发执行;真正执行技能时才加载完整内容,进入保留 5 个的 LRU 缓存。v3.0 的 workflow from-text 能从一句话生成模板,或用 workflow build 交互式搭建。
前置还有三道闸:intent 用关键词加正则规则把自然语言解析成结构化任务,sentinel 在路由前检查安全黑名单、能力覆盖度与 API Key 配置,路由反馈把「否决 top1」这类修正记到本地 feedback.json,下次相似任务打分时加权。远程获取走 acquire.py,只从带签名的 GitHub Releases 取包,SHA256 预期值硬编码在本地,未预置哈希或不匹配的包直接删除。
适用边界与注意点
单一技能就能完成、不需要留痕的任务直接调那个技能,别套一层;纯问答、纯解释类请求,以及用户已点名技能且只有一步的情况同理。只有「多技能协作」「选择存在不确定性」「需要审计」三种场景值得。
打分只是词法先验,最终选谁仍由模型判断。--guard 会额外跑意图解析与能力/资源检查,有 I/O 成本,默认关闭。acquire.py 目前仅支持 --source github,新技能需先在 finder.TRUSTED_RELEASES 登记受信 repo 并在 acquire.KNOWN_SKILLS 预置哈希,否则提示联系作者更新;audit 只做粗筛,P0 高风险包必须交互确认,--auto/--force 都绕不过去。
使用场景
- 一份调研素材要整理成公众号文章并配架构图,需要串联文档、写作、画图三个技能,且每步结果要传给下一步。
- 装了十几个技能但每次选哪个不确定,希望路由给出top3候选并允许人工确认后再执行。
- 多个技能要按固定顺序跑完整条流水线,中间某步失败时能回滚并从断点继续,而不是从头再来。
- 合规要求Agent的每次技能选择、切换原因和上下文传递都要可查,事后能导出调用链。
适合人员
- 在Agent里装了多个技能却经常选错或忘记用哪个的应用开发者,希望路由替自己做初筛。
- 需要让多个技能按固定顺序协作完成长任务的AI工程师,关心步骤间上下文如何传递。
- 给团队内部Agent做技能目录维护的人,需要远程获取新技能时有哈希校验和审计留痕。
- 有合规要求的团队,需要Agent每次选技能、切换技能的理由都能事后导出追溯。