用途
Capability Routing 用于在编写任何抓取、解析、浏览器自动化、API 客户端或包装器之前,先做一次路由决策。它要解决的问题不是“我有哪些工具”,而是“这个任务真正的难点是什么,哪个已有能力直接拥有这个难点”。
技能明确反对两种错误:一是明明已安装专门能力,却因为熟悉 shell、Python 或 Node 而重写一个更弱的版本;二是用重型浏览器栈去读取一个静态 JSON 文件。它强调“当多个工具都能完成时,选择最便宜且可靠、优势与难点匹配的那一个”。
主要能力
- 四问检查法:当前工具列表是否已在做这件事;是否存在已安装但未启用的能力或配置;是否有技能指明该操作归属哪个工具;自己即将写的实现是否真的更强。若前三问给出能力且第四问为否,就使用已有能力;若第四问确实为是,则写,并用一行说明原因。
- 适配度提醒:以任务匹配度、可靠性、证据质量、可用性,对比设置成本、上下文成本、延迟,提醒专门工具靠实质改善任务获得优先,而非仅凭“专门”二字。
- 难点归属路由表:实时网页搜索与普通提取归宿主原生网页工具;渲染、反爬、仅 JS 内容归 Firecrawl 或真实浏览器后端;点击、滚动、登录、无限滚动归浏览器自动化;库 API 或版本事实归已安装的 --help/源码、Context7 或上游;GitHub 仓库、PR、CI、发布状态归官方 GitHub MCP 或 gh;符号级导航与引用归 code-intel 或 Serena;Skyrim 实时加载顺序归 houseCARL;Skyrim 类型化构建/发布归 Skyrim Forge;ESP/Papyrus/NIF/BSA 操作归 Spooky 的工具包;渲染 UI 是否正确归视觉验证加视觉能力路径。
- 原始能力胜出的场景:读取一个本地 JSON/文本文件用文件读取;GET 一个简单静态公开 URL 用原生提取;在三个文件中替换已知字符串用普通编辑;统计日志匹配数用 grep。
- 失败信号与升级路径:遇到 Cloudflare 反爬插页、403/429/重定向循环、HTTP 200 但只有 JS 外壳、提取内容只有页眉页脚导航、可见内容缺失、需点击或滚动才出现、登录或同意墙,说明工具类别错了,应升级类别而非调参。升级路径为:普通提取 → 渲染提取 → 浏览器交互 → 真正受限则停止并说明所需条件。
- 失败原因判读:未授权/需要 API key 表示能力存在但缺凭证;限流/配额表示工具对但时机不对;挑战页/空壳表示类别错误;工具未找到表示此处未启用;参数格式错误表示调用方问题。只有“挑战页/空壳”才是换工具的理由。
- 能力不可用时的回退:干净回退、完成任务并说明哪些未经验证,不声称拥有不存在的工具,也不停止回退仍能完成的工作。
使用方式
在准备写实现之前,按四问检查法逐条核对;若已有能力覆盖难点,直接使用;若确实需要自己写,用一行说明理由。遇到失败时,先读失败原因,再决定是修调用、换时机、换供应商还是升级工具类别。技能还给出一个实测示例:Hermes v0.20.4 通过无密钥供应商环(exa、parallel、tavily、firecrawl、keenable)解析 web_search/web_extract,带轮询与限流故障转移;在隔离环境清除所有凭证后,五个供应商均无密钥提供搜索与提取,30 次突发请求下裸 Exa 拒绝 27 次 HTTP 429,而环服务了 30/30。原生无密钥提取对 TradingView 得到 39,437 字符,对比 urllib 的 12,535 字符(3.1 倍),耗时 0.4 秒。firecrawl-mcp 增加 25 个工具模式、36,321 字节、每轮约 9,080 token,但无密钥时仅 scrape 和 search 两个可用,21 个返回需要 API key,extract 已弃用,parse 需要自托管 URL。
适用场景
适用于任何需要调用外部工具或编写包装器的 AI 工作流,尤其是网页抓取、浏览器自动化、API 客户端、代码导航、GitHub 操作、游戏模组工具链等存在多种可选工具的场景。也适用于排查“工具失败”与“工具不可用”的混淆问题。
限制
技能本身是决策指南,不提供具体工具的实现代码。文中提到的具体工具、版本、实测数据均来自资料原文,未提供的功能、收费、价格、平台或效果信息暂未提供。部分路由表条目(如 Skyrim 相关工具)属于特定领域,通用性有限。