Day 19|智能体的可插拔技能系统

109 阅读4分钟

1.为什么智能体 必须拥有“技能系统”?

随着智能体能力增强,业务越来越复杂,Prompt 写死逻辑已经无法满足可维护性、扩展性、复用性需求。

你会遇到这些痛点:

  • 不同场景重复写相似 Prompt
  • 每个场景都需要新的工作流
  • 智能体行为难以复用、难升级
  • 能力耦合在一个大 Prompt中,不可维护
  • 新需求要推倒重建

解决方案就是: 将智能体的能力抽象为“可插拔技能(Skills)”,像乐高积木一样组合。

Skill System 是 Agent 架构的关键。

2. 什么是 Skill?

Skill = 一段可复用的、独立封装的“行为能力”。

一个 Skill 必须包含:

组件解释
Skill 定义(skill manifest)作用、输入、输出
触发条件(trigger condition)什么时候该被调用
Prompt 模块(prompt template)技能内部的推理逻辑
函数或工具(可选)是否需要 API、计算、检索
返回 schema输出必须结构化,否则无法组合

Skill 是行为模块化,不是代码模块化。

3. Skill 的三种类型

① 纯语言技能(Language Skill)——最常见

比如:

  • 观点分析
  • 文本润色
  • 任务拆解
  • 内容生成
  • 样式转换(正式 → 口语)

这类 Skill 完全基于 Prompt。

② 工具型技能(Tool-enabled Skill)

依赖外部工具:

  • 搜索(SearchSkill)
  • 数据库查询(DBSkill)
  • PDF 生成(PDFSkill)
  • 图表绘制(ChartSkill)

Skill 内部要定义工具调用顺序。

③ 工作流级技能(Workflow Skill)

多个步骤组合成一个大 Skill,比如:

  • “写一篇文章”
  • “生成 PPT”
  • “制作视频脚本”
  • “从模糊需求到可执行计划”

本质上是“技能树(skill tree)”。

4. Skill 需要满足的七条设计原则

① 单一能力原则(Single Responsibility)

一个 Skill 只能做一件事。

② 清晰输入输出(明确 schema)

Skill 不是黑箱。

必须有:

{
  "input_schema": {...},
  "output_schema": {...}
}
③ 可组合性(Composable)

所有 Skill 可像积木一样组合:

Skill A 输出 → Skill B 输入
④ 可解释性(Explainability)

Skill 内部要能 log 出推理链路。

⑤ 可替换性(Pluggable)

可以动态替换:

  • 不同模型
  • 不同工具
  • 不同 Prompt 版本
⑥ 可升级版本(Versioning)

Skill 必须有版本号:

v1.0 → v1.1 → v2.0
⑦ 可调度性(Invocable by Agent)

智能体能根据任务自动判断:

  • 调用哪个 Skill?
  • 顺序是什么?
  • 是否需要回滚?

5. Skill 的标准结构

下面是一个标准 Skill Manifest:

name: SummarizeSkill
version: 1.0.0
description: 提供针对任意文本的结构化总结能力

input_schema:
  type: object
  properties:
    text:
      type: string

output_schema:
  type: object
  properties:
    summary:
      type: string
    keywords:
      type: array

trigger:
  detect_by:
    - "帮我总结"
    - "概括一下"
  confidence_threshold: 0.5

type: language_skill

prompt_template: |
  你是总结助手,请用结构化方式总结以下文本:
  {{text}}
  1. 如何让智能体使用 Skill?

智能体必须有一个 “Skill Selector(技能选择器)”。

流程:

用户输入 → 意图识别 → 匹配技能 → 调用技能 → 返回结果

Selector 的实现有三类:

① 关键词匹配(最轻量)

用类似 router 的方式匹配触发句。

② embedding + 最近邻搜索(最常用)

用户需求向量化

Skill 描述向量化

做向量召回

取 top-1/top-3

③ 大模型推理(最精准)

让 LLM 决定调用哪个 Skill:

用户需求是什么?
应该使用哪个 Skill?
为什么?
  1. Skill 调度流程

下面是 Skill 调用流程图:

┌────────────────────┐
│ User Input         │
└───────────┬────────┘
            ▼
┌────────────────────┐
│ Intent Recognition │
└───────────┬────────┘
            ▼
┌────────────────────┐
│ Skill Selector     │
└───────────┬────────┘
            ▼
┌────────────────────┐
│ Skill Execution    │
│ - prompt           │
│ - tool             │
│ - workflow         │
└───────────┬────────┘
            ▼
┌────────────────────┐
│ Response Builder   │
└────────────────────┘

Skill System = 可插拔、可组合、可调度、可扩展的 Agent 能力体系。

8. Skill 示例

(1)任务拆解技能:TaskDecomposeSkill

输入:

{
 "task": "帮我写一个 AI 周报"
}

输出:

{
 "steps": [
   {"step": "信息搜集"},
   {"step": "内容总结"},
   {"step": "结构设计"},
   {"step": "文案生成"}
 ]
}
(2)搜索技能:SearchSkill(Tool-enabled)

定义:

type: tool_skill
tool: bing_search
prompt: |
  将用户需求转为搜索关键词:{{query}}
(3)文章生成技能:ArticleSkill(workflow skill)

内部自动拆分流程:

  1. 获取需求 →
  2. 生成结构 →
  3. 填充内容 →
  4. 校对 →
  5. 输出最终文章

9. Skill System + Workflow + Memory → 智能体完整架构

一个成熟智能体必须包含:

模块作用
Persona System角色/风格
Memory System用户长期记忆
Tooling System调用外部工具
Skill System行为模块化
Workflow Engine任务级执行
State Machine行为状态控制

Skill System 是承上启下的关键核心层。