Intent-Router Skill 技能
把含糊指令编译成带类型意图规格的 AI Agent 技能
技能简介
Intent-Router 是一款面向 AI Agent 的「意图编译器」(intent compiler)Skill,由开发者 angel291592 开源发布,采用 MIT 许可。它要解决的是:当你丢给 AI 编程助手一句含糊指令——比如「给 user API 加缓存」——agent 要么立刻开始猜,用 400 行产出建立在一个你从未做过的假设之上;要么反复盘问,把一次普通 session 变成「四轮四十六个问题」的漫长审问,而审问结束却不留下任何可复用文件。Intent-Router 把含糊请求编译成一份带类型的 IntentSpec,能自己查到的就自己去查,只把真正需要人判断的问题留给你,意图仍不充分时则拒绝产出。
核心能力
- 三趟编译式工作流:Parse(解析)→ Resolve(解析未知项)→ Typecheck & emit(类型检查并产出),完全按编译器顺序运行,不发明任何未经验证的内容。
- PROBE / ASK 智能分级:每个未知项在到达用户前先被分类——答案若存在于代码库、依赖、配置、版本历史、测试或文档里,它就自己去读(不打搅你);只有答案活在人脑里(偏好、权衡、不可逆边界)时才提问。
- 只问一个真正值得拍板的问题:把「四十六问的盘问」压缩成唯一一个需要你判断的问题,并给出两个具体选项和一个推荐默认值,答案直接落进交付的代码。
- 机器可读的契约产物 IntentSpec:每次运行都以一份 YAML 格式的 IntentSpec 收尾,先存进
.intent/.intent.yaml,每个探测过的字段都带 evidence 指针,可跨 session、跨 agent、跨同事接续。 - 可判定的停止条件:不再「感觉差不多就停」,而是在谓词上停——充分 ⟺ 每个必填字段都已填上,且无任何 inferred 字段触到不可逆边界;不充分且 ASK 预算用完时拒绝产出,点名还开着的字段。
- 两种失败永不合并:区分
underspecified(需求欠说明,下一步在你)与degraded(探测失败/超时,属运维信号),避免后端故障被一个看似澄清性的提问掩盖。 - 四个明确决策态:ROUTE(已充分)、PROBE(缺的信息可查)、ASK(需人判断)、HALT(欠说明或降级),行为完全可观测。
- 领域无关:三趟流程与充分性谓词不绑定任何领域,变的只有「客观答案能在哪里被找到」。
安装配置
- 零依赖一键安装:无需安装、无需 API key,执行
npx skills add angel291592/Intent-Router,它会探测你装了哪些 agent 并逐个装进去,skill 名为intent-router。 - 手动安装:把仓库中
skills/intent-router/这个目录(不是仓库根目录)拷进 agent 会读取的目录——Claude Code 用.claude/skills/,Cursor、Codex、OpenCode、Gemini CLI、Copilot 等用.agents/skills/;路径前加~/即为全局安装。 - 无 skill 机制的 agent:
SKILL.md是单文件 markdown,不绑定任何工具,把正文粘进 system prompt 即可,references/按需加载。
使用步骤
- 执行
npx skills add angel291592/Intent-Router完成安装。 - 照常对 agent 下达任务,它设计为在请求不充分时自动触发,而非等你想起来调用。
- 如需强制触发:Claude Code / Cursor / Copilot 用
/intent-router refactor the auth module,Codex 用$intent-router ...,Pi / Kimi Code 用/skill:intent-router ...。 - 当它提出那唯一一个问题时,从两个具体选项(如「失效失败时不走缓存」还是「发旧数据」)中做出选择。
- 检查产出的
.intent/.intent.yaml,审阅带 evidence 指针的约束与最终 decision 状态。 - 把契约文件连同交付 diff 一起提交,供下一个 agent 或同事接续执行。
适用场景
- 编码 agent 任务:如「重构这个模块」「给用户 API 加缓存」,自动探测仓库、依赖、版本历史、测试与 ADR,只问不可逆的技术权衡(已实测,14 用例)。
- 客服与服务工单:「这个客户炸了,你处理一下」,自动读取订单记录、账户权益与现行政策,只问「退款还是换货」这类发出去就收不回的决定(已实测,1 用例)。
- 研究与分析:探测先前笔记、历史报告、来源白名单与缓存检索结果,只问「深度还是广度」这类会改变交付形态的问题。
- 运维与数据作业:探测 schema、看板、上次运行输出、部署与事故历史、留存策略,只问「回填能不能改写历史行」。
- 多角色助手:探测候选角色 registry、附件元数据、对话历史、用户等级与地区,只问「两个真正重叠的专家该给谁」。
适用人群
频繁使用 Claude Code、Codex、Cursor、OpenCode 等 AI 编程助手的开发者;被 agent「先猜后错」或「反复盘问」困扰、希望提升交付质量的工程团队;需要在团队/多 session 之间传递「任务真正意图」的项目负责人;以及构建路由、决策模型或工作流编排、需要标准化输入层的 AI 应用开发者。
工作原理
Intent-Router 把「把含糊请求变成成型输入」这一被下游所有路由器与决策模型默认已存在的步骤,做成一门编译工序。第一步 Parse:把原始请求转成 IntentSpec 草稿,归一化动作、对象与用户明确约束,列出 unknown 清单,凡模型自行填入的一律标记 source: inferred。第二步 Resolve:对每个 unknown 做路由决策——能查到的一律 PROBE 去读,只有死活在人的脑子里的才 ASK,核心规则是「只要客观答案存在且够得到,就永远 PROBE,绝不 ASK」。第三步 Typecheck & emit:在充分性谓词上做可判定停止,不充分则 HALT 并点名开放字段,就像编译器宁可拒绝链接也不随手挑一个地址。最终产出一份由 JSON Schema(draft 2020-12)固定的 IntentSpec,并报告 resolved_by_probe / unknowns_found 这一可量化考核指标。
评论与建议
登录 后参与评论或提建议