如何用 TeamAI recall --check 相关性预检:subagent 避免无效检索的完整指南
2026/9/16 17:14:12 网站建设 项目流程

如何用 TeamAI recall --check 相关性预检:subagent 避免无效检索的完整指南

【免费下载链接】teamai-cliMake Every Team AI Native项目地址: https://gitcode.com/GitHub_Trending/te/teamai-cli

TeamAI是一款帮助团队把技能、规则与知识分发给各类 AI Agent 的 CLI 工具(Make Every Team AI Native)。其中teamai recall --check提供了一行式的相关性预检能力:subagent 在正式检索团队知识库之前,先花不到一秒判断"这次检索值不值得做",从而快速跳过无效检索,省掉读文件、打投票等一切无用开销。

为什么 subagent 需要"相关性预检"

在 TeamAI 的架构里,知识检索由一个独立的recall subagent(agents/teamai-recall.md)完成。它的设计目标是:主对话只拿到一份紧凑的结构化摘要,原始知识内容绝不污染主上下文窗口。

但如果不加判断地"来任务就检索",会带来三个问题:

问题后果
无意义的检索耗时索引构建 + BM25 搜索 + 图谱查询,白跑一趟
噪音进入上下文主题相邻但不相关的条目被误当成答案
投票被污染完整 recall 会自动给命中条目 upvote,无关命中会拉低知识库质量信号

--check就是为此而生的一道"守门员":它只做评分,不读任何文件、不做 upvote,用一行输出告诉调用方——检索,还是别算了。

recall --check 一键预检:用法与输出格式

只需一条轻量命令(关键词取任务中的 3–6 个高信号词即可):

teamai recall --check "重启 推理集群 restart inference"

输出只有一行,两种形态:

NOT_RELEVANT score=0.0 threshold=4.0 RELEVANT score=6.2 threshold=4.0 title="inference-cluster-restart" matched=restart,inference missing=集群 sources=learnings/xxx.md(推理集群重启踩坑)

各字段含义一目了然:

  • RELEVANT/NOT_RELEVANT:最终裁决,调用方只认这一个词
  • score:top 命中的相似度得分;threshold:本次裁决实际使用的截止线
  • title=:top 命中的标题(仅 RELEVANT 时出现)
  • matched=/missing=:命中/未命中该条目标题与标签的查询词,提示完整检索可能落在哪里
  • sources=:top 命中的来源文件,简单任务可直接引用,省去二次检索

命令的注册与描述见 src/index.ts,输出逻辑(emitCheckVerdict)实现在 src/recall.ts。

subagent 如何依据裁决做三层决策

agents/teamai-recall.md 的Step 0规定了完整的决策流,核心是"快速失败(fail fast)":

NOT_RELEVANT:立即收工

输出以NOT_RELEVANT开头时,subagent 只回一行No relevant team knowledge found for: <query>就停止——不进入后续任何步骤、不读任何文件、不执行完整 recall。这是预检存在的根本意义。

RELEVANT + 简单任务:LOW 快捷通道

如果任务信号显示改动很小(如"改名""加个参数""改配置"这类单文件单字段操作),subagent 会直接复用--check输出里的title=sources=拼一份 ≤500 字符的短回答,连完整 recall 都省了

RELEVANT + 复杂任务:走完整流程

多文件改动、重构、排障等任务,按正常流程做关键词检索、按深度选择(--depth context/lookup)、读取 top 命中并输出结构化摘要。

一个容易被忽略的细节:missing=只是提示而非停止信号——覆盖度只按标题和标签计算,被标为"缺失"的词完全可能出现在正文里,所以只有NOT_RELEVANT才能短路流程。另外,若命令本身失败或teamai不在 PATH 上,预检直接跳过、继续走 Step 1,绝不阻塞主任务。

阈值是怎么算的:为什么是 4.0 起步

裁决的底线规则在 src/recall.ts 中定义:

  • 代码知识图谱命中(teamwiki 图谱检索):固定截止线4.0
  • 经验条目命中(learnings/skills/docs/rules):动态截止线 =max(IDF 基线 × 1.35, 4.0)

这里有个巧妙的工程设计:4.0绝对下限(防止冷启动阶段因基线过低而误判"相关"),1.35相对比例则让阈值随语料规模自动上移——库越大、常见词越不值钱,"相关"的门槛就越高。这正是 precheck 能稳定工作、而不是永远报 RELEVANT 的原因。相关测试见 recall-relevance-threshold.test.ts。

上手建议清单 📌

  1. 先 --check,后 recall:任何可能用到团队知识的任务,都让 subagent 先跑一次预检
  2. 关键词 3–6 个,双语扩展:中文任务带上英文术语(如"重启"+"restart"),纯词匹配下双语才能打通中英文混杂的知识库
  3. 别用"排查/失败/问题"这类泛词撑场面:最多留 1–2 个辅助词,主体应是能锁定"这个任务"的专有名词、错误码、服务名
  4. 善用 sources=:简单任务直接引用,避免第二次检索
  5. 失败不阻塞:预检报错时继续原流程即可,它只是优化项而非必需项

完整的行为契约与字段格式约定,可参考 docs/usage-guide.md 与 docs/usage-guide.zh-CN.md。

💡 一句话总结:teamai recall --check用一行输出回答了 subagent 最贵的一个问题——"这次检索值不值"。先问再做,团队知识库的每一次调用才都花在刀刃上。

【免费下载链接】teamai-cliMake Every Team AI Native项目地址: https://gitcode.com/GitHub_Trending/te/teamai-cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询