现在位置: 首页 > Skills 教程 > 正文

Skills 工作原理

你可能会好奇:智能体又不是人,它怎么知道某个 Skill 能做什么、该怎么做?

答案很简单——靠读文件。

每个 Skill 背后,都有一个描述文件,通常叫 SKILL.md,就像一份说明书。

Skills 的工作原理

Skills 使用渐进式披露(Progressive Disclosure)的方式,让代理在不同的阶段加载不同详细程度的信息。这种设计使得代理可以同时管理大量技能,而不会耗尽上下文空间。

三个阶段

代理加载技能分为以下三个阶段:

  • 1. 发现阶段(Discovery):当对话开始时,代理会扫描所有可用的技能文件夹,只读取每个技能的名称(name)和描述(description)。这是最轻量的信息,足以让代理判断某个技能是否可能与当前任务相关。

  • 2. 激活阶段(Activation):当代理判断某个技能的描述与用户请求相匹配时,会将完整的 SKILL.md 文件内容加载到上下文中。这时代理会读取完整的指令和说明。

  • 3. 执行阶段(Execution):代理按照 SKILL.md 中的指令执行任务。在这个过程中,代理可能会调用技能附带的脚本、读取参考资料或使用其他资源。

渐进式加载的优势

阶段 加载内容 典型大小
发现阶段 name + description 约 100 tokens
激活阶段 完整 SKILL.md 建议不超过 5000 tokens
执行阶段 脚本、参考资料等 按需加载

智能体在执行任务之前,会先读这份说明书,搞清楚三件事:

  • 这个 Skill 能干什么?(能力描述)
  • 要用它,我需要提供什么?(输入参数)
  • 做这件事有什么规矩?(环境约束和注意事项)

读完之后,智能体就知道:哦,这个 Skill 适合用来解决当前的问题,我来调用它。

下面这张图展示了这个过程:

智能体如何"读懂"一个 Skill? 🧠 智能体大脑 "我需要找一个能完成任务的技能" 读取 📄 SKILL.md ① 能做什么(描述) ② 需要什么(参数) ③ 有什么规矩(约束) ↓ 读完就全懂了 理解 懂了! 可以调用了 💡 打个比方 想象你新入职一家公司,拿到一本《岗位操作手册》: 📖 岗位说明 "你是客服,负责处理退款" 📋 操作流程 "先核实订单号,再提交退款" ⚠️ 注意事项 "超过500元需主管审批" 读完手册,你就知道自己该干什么、怎么干、什么不能干了。 SKILL.md 对智能体来说,就是这本"操作手册"。

Skill 执行流程

  • 从用户指令开始,先进行 Skill 意图识别,决定是否进入受控执行路径。

  • 命中 Skill 后,系统加载 SKILL.md,建立工具权限与行为边界,再结合上下文进行推理。

  • 只有在确实需要时才调用被允许的外部工具,否则在规则内完成逻辑。

  • 最终结果经过约束整合后输出,用户的下一次输入触发新一轮完整流程。


Skills 工作过程

用户提出需求后,Agent 首先理解任务内容,然后分析应该使用哪些能力(Skills)完成工作。

Skill 可以理解为一个独立能力模块或插件,例如天气查询、搜索、文件处理、数据库访问等。

Agent 负责思考和决策,Skill 负责执行动作,执行完成后结果再返回给 Agent,由 Agent 整理成用户容易理解的结果并输出。

整个流程形成一个完整闭环:理解 → 决策 → 执行 → 返回结果。

步骤 阶段 Agent 内部动作 示例
用户发起请求 接收自然语言任务 "帮我查询北京今天的天气"
理解用户意图 分析用户真正想做什么,并提取参数 动作:查询;类型:天气;地点:北京
制定执行计划 拆分任务步骤 找天气服务 → 获取天气数据 → 整理结果
选择 Skill 匹配最适合的能力模块 选择 Weather Skill
执行 Skill 调用外部工具或 API 请求天气接口
获取执行结果 接收 Skill 返回的数据 温度、湿度、空气质量
生成最终回复 整理并转换为自然语言 "北京今天晴,18℃~30℃"
返回给用户 输出最终结果 用户看到完整回复

Skill 类型:

Skill 类型 功能说明 常见场景
搜索 Skill 查询外部信息 搜索新闻、知识问答
天气 Skill 获取天气数据 天气查询
文件 Skill 读取文件内容 PDF、Word、Excel
数据分析 Skill 数据计算和统计 报表分析
数据库 Skill 查询数据库 MySQL、PostgreSQL
浏览器 Skill 自动操作网页 自动登录、爬取内容
代码 Skill 执行代码 Python、Node.js
图像 Skill 图像处理能力 OCR、图片生成