🧠 图解记忆: Skill 是做事方法,Tool 是执行动作;Skill 可编排多个 Tool 完成目标。
💡 答案要点
背景:Skills 是 2026 年 Agent 架构的新关键词
2026 年,随着多 Agent 系统成熟,"Skills" 作为独立概念从 "Tools" 中分离出来。Skills = 知识 + 行为模式 + 示例 + SOP,比 Tools 的粒度更粗、更面向业务。
Tools vs Skills 本质区别:
┌─────────────────────────────────────────────────────┐
│ Tools vs Skills 核心区别 │
├─────────────────────────────────────────────────────┤
│ │
│ Tools(原子操作) │
│ ├─ 本质:可执行的函数/API │
│ ├─ 粒度:原子级别(如"发送邮件"、"查询天气") │
│ ├─ 包含:输入/输出 Schema │
│ ├─ 无状态:每次调用独立 │
│ └─ 示例:send_email(to, subject, body) │
│ │
│ Skills(复合能力) │
│ ├─ 本质:知识 + 行为模式 │
│ ├─ 粒度:复合能力(如"撰写商务邮件") │
│ ├─ 包含:示例、SOP、风格指南、依赖工具集 │
│ ├─ 有状态:包含上下文理解 │
│ └─ 示例:compose_business_email(context, tone) │
│ → 调用 send_email + lookup_contact + ... │
└─────────────────────────────────────────────────────┘Skills 的核心组成:
展开 Yaml 代码示例(31 行)
yaml
# Skill 定义示例:撰写商务邮件
skill:
name: "compose_business_email"
description: "撰写符合公司规范的商务邮件"
# 知识:邮件写作规范
knowledge:
- 签名格式规范
- 称呼礼仪
- 公司品牌调性
# 示例:少量参考
examples:
- input: "客户投诉产品质量"
output: "确认收到 → 表达歉意 → 解决方案 → 跟进计划"
- input: "项目进度汇报"
output: "结论先行 → 细节支撑 → 下一步行动"
# 依赖的工具
dependencies:
- send_email
- lookup_contact
- get_customer_context
# 标准操作流程
sop:
- step1: 理解邮件目的和收件人
- step2: 检索相关信息(客户历史、项目背景)
- step3: 生成初稿
- step4: 按公司规范格式化
- step5: 发送并记录到 CRM为什么 Skills 在 2026 年变得重要:
1. 多Agent协作需要"技能包"而非"工具箱"
- 单个工具太细,Agent 需要更高层次的抽象
- Skills 提供了业务语义层的封装
2. 知识沉淀从个人到组织
- 专家经验 → Skills 定义 → 可复用资产
- 新 Agent 通过加载 Skills 快速具备能力
3. MCP 协议成熟后,Skills 成为下一层抽象
- MCP = 工具标准化(USB-C)
- Skills = 能力标准化(技能包)Dify Nacos A2A 插件:解决 Agent 发现难题
"Dify 通过 Nacos A2A 插件实现双向多智能体协作,解决协议不兼容与智能体发现难题。"
解决的问题:
| 问题 | 传统方案 | Nacos A2A 方案 |
|---|---|---|
| Agent 发现 | 硬编码地址,静态配置 | Nacos 服务注册与发现,动态 |
| 协议不兼容 | 每个 Agent 自定义协议 | A2A 标准协议,统一通信 |
| 扩缩容 | 手动配置 | 服务自动注册/注销,弹性 |
| 监控 | 无统一视图 | Nacos 提供注册状态监控 |
Nacos A2A 架构:
┌─────────────────────────────────────────────────────┐
│ Dify + Nacos A2A 架构 │
├─────────────────────────────────────────────────────┤
│ │
│ Agent 注册层(Nacos) │
│ ├── Agent A(客服)注册到 Nacos │
│ ├── Agent B(SRE)注册到 Nacos │
│ └── Agent Card 自动同步 │
│ │
│ A2A 通信层 │
│ ├── Agent A 发现 Agent B(通过 Nacos) │
│ ├── A2A 协议标准化通信 │
│ └── Gateway 做路由和鉴权 │
│ │
│ Dify 工作流编排层 │
│ ├── 多 Agent 协作流程可视化 │
│ └── 定时/事件触发 │
└─────────────────────────────────────────────────────┘生产级 Skills 部署示例:
python
# 用 LangGraph 加载和使用 Skills
from langgraph.prebuilt import SkillExecutor
# 定义 Skill(复合能力)
skill = Skill(
name="customer_complaint_handler",
description="处理客户投诉的完整流程",
# Skills 包含多个 Tools 和 SOP
tools=["lookup_customer", "send_email", "create_ticket"],
sop=[
{"step": 1, "action": "lookup_customer", "input": "customer_id"},
{"step": 2, "action": "analyze_complaint", "context": "complaint_type"},
{"step": 3, "action": "decide_response", "rules": "complaint_routing_rules"},
{"step": 4, "action": "send_email", "template": "complaint_response"},
{"step": 5, "action": "create_ticket", "if": "severity > high"}
],
examples=[
{"input": "产品质量问题", "output": "道歉 + 退款 + 跟进"},
{"input": "服务态度投诉", "output": "道歉 + 调查 + 反馈"}
]
)
# Agent 加载 Skill
agent = ReActAgent(skills=[skill])
result = agent.run("客户张先生反映最近订单发货延迟")
# Skill 自动执行完整流程,无需手动调用每个 ToolSkills 选型决策树:
需要的能力?
├── 原子操作(发送邮件、查天气)→ Tools(MCP 协议)
└── 复合能力(撰写邮件、处理投诉)→ Skills(自研或 Skills 框架)
场景?
├── 单 Agent 调用工具 → MCP + Tools
└── 多 Agent 协作 + 知识复用 → Skills + A2A
团队规模?
├── 小团队 → 用 Skills 框架自带的管理
└── 企业级 → Dify Nacos A2A / 自建 Skills Registry面试话术:
"2026 年 Skills 和 Tools 的区别是高频考点。核心理解是:Tools 是原子操作(做一件事),Skills 是复合能力(做好一件事)。Tools 解决'能不能调用'的问题,Skills 解决'会不会调用'的问题。就像餐厅里,Tools 是厨师会切菜,Skills 是厨师会根据客人口味做出一道完整的菜。生产环境中,我把 Skills 定义成企业的'数字员工培训包'——专家经验固化在 Skills 里,新 Agent 加载后立刻具备能力,不需要每个 Agent 都从零学习。Dify 的 Nacos A2A 插件解决了多 Agent 发现的问题,让 Agent 可以动态注册和发现,不需要硬编码。"
延伸阅读:
- Dify Nacos A2A: https://www.53ai.com/news/dify/2026012605289
- LangChain Skills: https://langchain-ai.github.io/langgraph/
版本: v2.9 | 更新: 2026-05-09 | by 二狗子 🐕
