我如何给桌面 AI 助手做延迟工具发现(不用 embedding)
来源:dev.to — 2026-09-26
📋 概述
作者在写 Ankita,一个开源桌面 AI 助手(Electron 加终端 CLI),能跑 shell 命令、带审批 diff 改文件、搜实时网页、管理定时例程、免手操作对话,模型由 GitHub Copilot 驱动。整个架构由一个约束塑造:CLI 不带任何运行时 npm 依赖。作者说这个约束的本质是上下文而不是打包——当助手要调 web_search 或 git_diff 时,模型需要每个可能被选中的工具的完整参数 schema,而这些 schema 是你每次请求都在付费的上下文。把几十个工具全部预加载,用户还没打字,token 就先烧掉了。于是他做了延迟工具发现系统。
🔑 核心要点
- 核心判断是:schema 就是上下文成本,工具越多,未开口时的固定开销越大。
- 第一个决定是只暴露一个 find_tools,而不是五十个工具,它接受一句自然语言的 query 并返回匹配到的工具 schema。
- 第二个决定是用「类别加关键词摘要」做匹配,完全不用 embedding:工具按类别分组,每类带一句摘要和关键词列表。
- 匹配到的工具立刻在同一会话里变成可调用,其余的继续留在未加载状态,成本只在真正需要时发生。
💡 金句
把几十个工具全量加载进去,用户还没开口打字,token 就已经开始烧了。
👍 0
👎 0
← 返回 dev.to 首页