Skip to content

整理自沉默王二(二哥)javabetter.cn《AI Agent 面试 296 题合集》:原文。全文搬运仅供个人学习,请勿外传。

面试官问你:"Agent 挂了几十个 Skill,怎么保证命中率?"如果你回答"写个路由规则做分发",恭喜你,又踩坑了。

为什么?

因为 Skill 的选择根本不走路由,走的是 LLM 语义匹配。命中不命中,全看 description 怎么写。

哈喽大家好,我是二哥呀。今天继续用 3 分钟,拆一道 Agent 高频面试题。

Tool Call 是 Function Calling 协议,LLM 根据 JSON Schema 选函数、填参数,走的是结构化匹配。

Skill 是什么?Skill 是一组打包好的能力,由一个 SKILL.md 文件定义,里面写着名称、描述、触发场景和执行流程。Agent 启动时,把所有 Skill 的 description 注入到 system prompt 里。用户说一句话,LLM 读所有 description,自己判断该不该触发、触发哪个。

换句话说,Skill 的选择机制是自然语言级别的语义匹配,不是 JSON Schema 级别的结构匹配。

第一招,写好 description。这是命中率的根本。一个 Skill 的 description 如果写成"处理文章相关任务",那完蛋了,用户说"帮我写篇文章"和"帮我改个标题"都会命中它。怎么改?写具体场景和触发关键词。比如标题生成的 Skill,description 就应该写"为文章生成候选标题。触发关键词:标题、起标题、想标题、爆款标题"。关键词列得越明确,LLM 匹配时越果断。

第二招,缩小 Skill 的职责范围。一个 Skill 只干一件事。别搞一个大而全的"写作助手"Skill,把写文章、起标题、排版、配图全塞进去。拆开来,写文章是一个 Skill,起标题是一个 Skill,各管各的。职责越单一,description 越好写,命中越准。

第三招,消除语义重叠。两个 Skill 的 description 如果在语义上有重叠,LLM 就会犹豫。比如"AI 文章撰写"和"技术文章撰写",用户说"帮我写篇 AI 技术文章",LLM 不知道该选哪个。解决办法:要么合并,要么在 description 里明确划定边界——"AI 文章撰写"加一句"专注 AI Coding 工具实测和大模型评测","技术文章撰写"加一句"专注 Java、数据库等传统技术栈"。让 LLM 有判断依据。

第四招,用 disable-model-invocation 兜底。有些 Skill 只在用户主动输入斜杠命令时才该触发,不应该被 LLM 自动匹配。这类 Skill 在 SKILL.md 里把 disable-model-invocation 设成 true,LLM 就不会自作主张去触发它。这一招专门用来治理 Skill 误触。

面试官如果追问:"Skill 数量继续膨胀怎么办?"

告诉他——短期靠 description 质量兜底,中期靠 Skill 分组,把 Skill 按业务领域归类,做两阶段匹配。但说到底,Skill 的命中率取决于 LLM 自身的语义理解能力。所以不要盲目堆 Skill 数量,够用就好,每加一个都要问自己:它的 description 能和现有 Skill 清晰区分吗?

这道题你学会了吗?想解锁更多 Agent 面试题的源码级拆解,点赞关注,我是二哥,下期见!

本文整理自沉默王二(二哥)《AI Agent 面试 296 题合集》的公开内容,仅供个人学习使用

本站仅供个人学习使用,请勿外传