Skill Router 的具体实现是什么?

考查重点:能力召回与适用范围判定。注册 Skill 名称、描述与位置,结合任务召回候选并校验适用边界,再加载正文;无匹配可不加载并记录误路由

本题目录

参考答案

核心回答

Skill Router负责把当前任务映射到零个、一个或多个适用Skill,然后交给加载器读取内容。具体可分为注册、候选选择、相关性判断、加载与执行反馈:注册表保存名称、描述、版本和资源位置;路由结合请求与会话状态选候选;校验适用边界后加载正文;Agent再按Skill调用工具完成任务。

Skill较少时,直接让模型依据清楚的描述选择即可。数量增加或混淆明显时,再引入关键词、向量召回与精排。不是所有项目都需要向量数据库,也不存在通用最优候选数量。

注册与候选选择怎样做

注册表记录skill_id、name、description、版本、入口、依赖和启用范围,自建系统可另外维护典型请求与反例索引。来源格式没有规定的字段,不应假定每个宿主都会读取。

先按用户可用范围、环境与依赖过滤;明确命名的调用优先解析到对应技能。普通请求用关键词处理专名,用语义检索补同义表达,再得到有限候选。路由器结合当前目标、已确认实体与任务阶段比较边界,而不是只取向量最高分。

如何处理歧义与组合

例如“查订单异常”可能命中日志诊断和订单分析,先判断任务对象与需要的证据,必要时组合;“帮我处理一下”没有足够信息时可以澄清或走通用路径。低匹配度应允许不选技能,两个候选接近时不要硬猜。

多技能不意味着全部并行。先诊断再生成修复方案有依赖,独立数据读取才适合并行。技能加载器核对版本与文件路径,正文指导工作方法,工具执行器仍负责参数与权限;选中了退款Skill也不等于已经授权退款。

路由可以拆成下面几个阶段,先判断适用性,再加载和执行:

flowchart TB
  A["请求与会话状态"] --> B["按可用范围过滤候选"]
  B --> C["比较任务与技能适用边界"]
  C --> D["必要时澄清关键缺口"]
  D --> E["判断零个、一个或多个"]
  E --> F["选中则按依赖加载"]
  F --> G["执行工具时独立校验"]
  G --> H["记录选择与任务结果"]

零个适用技能时走通用路径,跳过技能加载;有多个技能时先确定依赖,只有独立步骤才并行。图中的“必要时澄清”并非每次都询问用户。

如何发现路由问题

记录请求、候选集、选择结果、技能版本和最终任务结果。正确Skill未进入候选集,改召回或注册描述;进入候选却选错,检查边界、反例与精排;选对后做错,检查加载内容、工具和执行。

评测包含单技能、相似技能、多技能、无需技能、缺信息和长尾表述。分别观察候选Recall@K、选择准确率、误触发、拒识和端到端完成,不能只优化热门技能的总体准确率。

常见追问

能让模型读全部Skill全文再选吗? 可以作为小规模对照,但通常成本高、干扰多;元数据用于发现,正文用于实施,先后分工更清楚。

对应教程

参考资料

相关面经

3 篇

百度

Agent 应用开发工程师
秋招一面、二面、三面
查看原面经 →
Agent 怎么选择要调用的 Skill?

腾讯

后端开发工程师
一面
查看原面经 →
项目追问
看到你的这个里面做了一个SkillRoutor,可以讲讲这个SkillRouter具体是怎么做的吗?

字节跳动

Agent 应用开发工程师
二面
查看原面经 →
用户输入怎么和相关skill匹配?

收录题集

1 个来源,共1 份题集

相关题目

4 题