news 2026/8/19 18:07:11

AI Agent 是怎么选中正确 Skill 的?一文拆解“意图理解→向量检索→LLM 决策”全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI Agent 是怎么选中正确 Skill 的?一文拆解“意图理解→向量检索→LLM 决策”全流程

Skill 匹配 的本质,不是 关键词搜索 ,而是语义理解、向量检索与 LLM 决策的三层叠加。

最近团队在做一个内部 Agent 项目,遇到一个特别现实的问题:Skill 库从最初的十几个,慢慢涨到了七八十个,选错技能的情况开始变得频繁。有一次同事让 Agent“帮忙整理一下会议纪要”,结果调用的是“写周报”的 Skill,输出的东西驴唇不对马嘴。

这事儿倒逼我们把 Skill 匹配这套机制彻底捋了一遍。今天就把这个过程记下来,也算是一次踩坑总结。

📌 本文看点

01

匹配四步走

02

两条匹配思路

03

避坑与改进

01

DIFFERENCE

Agent 和聊天机器人,差在哪儿?

普通的对话机器人很简单:用户提问,模型直接生成答案,一问一答,结束。

但 Agent 不一样。它得先想清楚“用户到底要干什么”,然后判断“该用哪个能力去完成”,最后才是执行、交付结果。这个“先理解、再选择、后执行”的过程,才是 Agent 真正有意思的地方——也是最容易出问题的地方。

举个最直观的例子:用户说“帮我做一份季度汇报 PPT”,Agent 手里可能有 GeneratePPT、WriteEmail、SearchDocument、DrawFlowchart 好几十个 Skill,它凭什么就知道该选 GeneratePPT?

答案不是关键词匹配这么简单粗暴。真正在起作用的,是三件事情叠在一起:语义理解、语义检索、LLM 推理决策。下面一个个拆开说。

02

DEFINITION

先搞清楚,Skill 到底是个什么东西

很多人会把 Skill 和 Tool 混为一谈,其实两者不是一回事。

Tool 更底层,是一个个具体的函数或工具,比如“发一封邮件”、“查一次数据库”、“生成一个文件”。而 Skill 是面向任务的能力组合,比如“生成一份完整的季度汇报 PPT”——这背后往往要调用好几个 Tool 才能拼出结果。

一个规范的 Skill 通常长这样:有名字、有功能描述、有适用场景说明、有输入参数定义、有输出格式约定、还得配几个调用示例。拿 GeneratePPT 举例:

名称:GeneratePPT
功能:根据用户提供的主题和素材生成 PPT
输入:主题、内容结构、页数、素材文件
输出:一个 .pptx 文件
执行步骤:分析主题→生成大纲→组织页面内容→调用生成工具→导出文件

这套结构化的描述,才是后面 LLM 能“看懂”并选对 Skill 的基础。描述写得含糊,匹配一定不准,这个后面会细说。

03

PIPELINE

匹配是怎么一步步发生的

拆开来看,整个匹配过程大致分四步。

第一步,理解用户到底想干什么

Agent 先用 LLM 分析用户输入,把任务目标和限制条件提取出来。比如用户说“请根据这份销售数据,生成一份季度汇报 PPT”,LLM 需要识别出:任务类型是生成演示文稿,输入素材是销售数据,输出格式要求 PPT,业务场景是季度汇报。这一步做好了,后面的检索才有靶子。

第二步,把这个意图变成一串数字

这一步叫向量化,说白了就是把自然语言转换成机器能比较的数值表示。为什么非要绕这一圈?因为用户的说法千差万别:“做个汇报材料”、“整理成演示文稿”、“输出季度总结 PPT”——字面上完全不同,但意思其实是一回事。只靠关键词匹配,这种同义表达根本处理不了。向量化之后,语义相近的表达在向量空间里距离也会更近,这就是它的价值所在。

第三步,去 Skill 库里检索相关的候选项

Skill 库就是 Agent 所有可用能力的集合,比如 SearchDocument(检索文档)、GeneratePPT(生成 PPT)、WriteEmail(写邮件)、SQLQuery(查数据库)、CodeReview(代码审查)等等。系统会拿用户意图的向量,跟每个 Skill 描述的向量算相似度,选出最靠前的几个候选:

GeneratePPT 0.92,CreatePresentation 0.89,WriteReport 0.78,MakeSlides 0.74,DrawChart 0.62

这里有个细节值得说一下:为什么要留 Top-K 而不是直接锁定第一名?因为很多任务其实需要多个 Skill 配合,只看单一最高分容易漏掉真正需要组合调用的情况——比如先查数据,再画图表,最后才生成 PPT。留几个候选,是给后面的判断留余地。

第四步,LLM 做最终拍板

检索解决的是“哪些 Skill 可能沾边”,真正决定用哪个,还得靠 LLM 结合上下文综合判断:这个 Skill 真能完成任务吗?用户给的信息够不够?要不要先调别的 Skill 打底?要不要先反问用户一句?最后输出的是文件还是文本还是结构化数据?还是那个季度汇报的例子,LLM 会这么想:任务目标是生成演示文稿,输入里带着销售数据,用户明确要 PPT 文件,GeneratePPT 能完成内容组织和文件生成——所以选它,而且大概率还得先调一次数据分析或图表生成的工具。

04

EXECUTION

选中之后,一个 Skill 内部是怎么跑起来的

很多人以为 Skill 被选中之后就是“一步到位”生成结果,其实不是。复杂一点的 Skill,内部往往是一整条执行链路。

还拿 GeneratePPT 举例,它内部大致要走这几步:解析用户需求,识别汇报主题和受众;读取输入素材,导入 Excel 或 CSV 文件;分析业务数据,提取关键指标和趋势;生成内容结构,设计页面大纲;生成图表,把数据转成柱状图或折线图;调用 PPT 生成工具,完成排版;导出结果文件;最后把文件位置、页数、主要内容反馈给用户。

「这中间任何一步都可能出岔子:文件格式不支持、数据缺失、用户要求本身就没说清楚、目标 Skill 暂时不可用、工具调用失败、生成结果不符合预期。」

遇到这些情况,靠谱的 Agent 不会硬着头皮往下走,而是会请用户补充信息,或者换个备用 Skill 试试,或者先把中间结果丢出来让用户确认一下再继续。这种“留有余地”的设计,往往比一味追求“一次到位”更靠谱。

05

STRATEGY

两种匹配思路,各有各的坑

实践中大概有两条路子。

方案 A全量 Prompt 直选

把所有 Skill 的描述一股脑塞进 Prompt,让 LLM 直接从里面挑。这个方式实现起来很简单,Skill 数量少的时候用起来也顺手。但问题也很明显——Skill 一多,Prompt 越拼越长,成本和延迟跟着往上走,还容易撞上下文长度的天花板。更麻烦的是,一旦库里出现好几个功能相近的 Skill,LLM 挑起来经常摇摆不定。

方案 B向量检索 + LLM 精选

先向量化,再检索出 Top-K 候选,最后交给 LLM 在这个小范围里做决策。这样一来,喂给 LLM 的候选数量始终可控,匹配效率明显更高,也更适合像我们这种 Skill 库不断在长的场景。当然它也不是没有代价,检索效果高度依赖 Embedding 模型的质量,Skill 描述写得不清不楚,检索照样会跑偏,而且还得额外维护一套向量索引和更新机制。

「向量检索干的是“找得全”,LLM 干的是“选得准”。」

说白了,向量检索干的是“找得全”这件事,LLM 干的是“选得准”这件事。单靠检索,容易选出看着相似但根本用不了的 Skill;单靠 LLM 面对几十上百个候选,成本高、判断压力也大。两者搭配着用,先缩小范围再精细决策,目前看下来是相对稳妥的组合。

06

FACTORS

匹配准不准,说到底看这几点

折腾了一圈之后,我们发现真正决定匹配效果的,往往不是算法多花哨,而是几个很朴素的细节。

Skill 描述要清楚

能做什么、不能做什么、适用什么场景、需要什么输入、会给出什么输出,这些交代不清楚,检索和判断都会跟着乱。

Skill 名称要直接

取名叫 Process、HandleTask、Assistant 这种,谁也猜不出它到底是干嘛的,还不如老老实实叫 GeneratePPT、SearchDocument、SQLQuery 来得直接。

示例要覆盖真实说法

“做一份 PPT”、“整理成演示文稿”、“生成季度汇报材料”这些说法都得囊括进去,不能只写一种标准表达。

输入输出定义标准化

参数名统一、类型明确、必填可选分清楚。

Top-K 数量要反复调

太少容易漏掉正确答案,太多又会让 LLM 判断起来负担过重,这个数值需要结合 Skill 总量和相似程度反复调整。

07

EXAMPLES

几个实际跑过的例子

CASE 01问采购制度

走的是 SearchDocument,检索企业文档,拿到相关条款直接回答。

CASE 02帮着回复邮件

走的是 WriteEmail,理解邮件场景之后生成邮件初稿。

CASE 03要一份 Q2 业绩报表

这次不是单个 Skill 能搞定的,先是 SQLQuery 把数据库里的业绩数据查出来,再交给 GenerateReport 整理成报告格式,两个 Skill 接力完成。

CASE 04想看某个品类的走势

走的是 DrawFlowchart,把数据变成一张可视化的图。

💡 这几个案例里最值得说的是 Q2 报表——它说明 Skill 匹配很多时候不是“选中一个就完事了”,复杂任务需要 Agent 先规划出一条任务链,再按依赖关系一步步把各个 Skill 串起来执行。

08

REDESIGN

如果要重新设计一套 Skill 匹配系统,我们会怎么改

结合这段时间的踩坑经验,几个改进方向基本是明确的。

1

Skill 描述格式彻底标准化:name、description、use_cases、inputs、outputs、examples、tools、constraints 这些字段一个都不能少,靠这套 Schema 统一管理。

2

定期做 Skill 治理:把功能重叠的合并掉,给新加的 Skill 补齐示例,失效的及时下线,别让描述和实际能力对不上。

3

尝试分层检索:先按任务领域筛一轮,再按任务类型、输出格式、所需工具逐层收窄,最后落到具体的 Skill 上,而不是一上来就在几十个候选里硬比。

4

匹配结果可解释:Agent 最好能说清楚“为什么选这个 Skill”、“识别到了什么需求”、“还缺哪些参数”,这样出问题也好排查。

5

建一套评估指标:召回率、Top-K 命中率、最终选择准确率、任务完成率、响应延迟、单次成本,这些数字盯着看,才知道系统到底哪里在拖后腿。

09

PITFALLS

几个容易踩的坑

!踩坑提示 🕳

把 Skill 匹配当成关键词搜索来做,是最容易翻车的一种想法——同义表达、语义差异,关键词根本处理不了。

只看 Skill 名字不看描述和参数,也很危险,名字像不代表能力就一样,得结合输入输出和场景一起判断。

Skill 数量一多还硬要 LLM 面对全部候选,上下文越拉越长,出错概率也跟着涨。

以为一个用户请求只能对应一个 Skill,这个假设在稍微复杂点的任务面前基本站不住脚。

还有一点容易被忽视:用户给的信息不够的时候,宁可先问一句,也别硬着头皮往下执行。

THE END

写在最后

折腾下来最大的体会是,Skill 匹配这件事,本质上是 LLM 理解意图、向量检索召回候选、LLM 结合上下文做最终决策,这三步环环相扣。任务再复杂一点,还要考虑 Skill 组合、Tool 编排、执行过程中的监控和结果校验。

「Agent 的智能,不在于“能答出什么”,而在于知道该调用什么、什么时候调用、怎么把多个能力串起来完成一件事。」

这也是我们这次重新梳理下来,觉得最值得记住的一句话。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 18:05:08

AmplifyJS 源码解析:amplify.store 特性检测与 JSON 序列化设计

AmplifyJS 源码解析:amplify.store 特性检测与 JSON 序列化设计 【免费下载链接】amplify AmplifyJS 项目地址: https://gitcode.com/gh_mirrors/amp/amplify AmplifyJS 是一套专注数据管理与应用通信的轻量 JavaScript 组件库,其中 amplify.stor…

作者头像 李华
网站建设 2026/8/19 18:04:06

零基础打造ESP32无人机:5个关键步骤快速实现组装与首飞

零基础打造ESP32无人机:5个关键步骤快速实现组装与首飞 【免费下载链接】esp-drone Mini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs. 项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone 想亲手做一架无人机,却被&…

作者头像 李华