作者按:最近两个月,AI Agent 领域的新名词层出不穷。很多文章要么太学术,要么直接贴代码。看完之后的感觉就是:“好像都懂了,又好像什么都没懂。” 这篇文章,我用工程师的语言,结合实际案例,把这些概念一次性讲透。

一、先给结论(1 分钟速读版)

如果把 AI Agent 比作一个"智能员工":

  • Agent 是"这个人"
  • Skills 是"他会的手艺"
  • MCP 是"工具的使用规范"
  • Workflow 是"工作流程 SOP"

剩下的内容,都是在回答一个核心问题:为什么这些东西要被拆成不同的概念?


二、为什么 Prompt 已经不够用了?

在 Agent 出现之前,我们解决问题的方式很简单:

用户 → Prompt → 大模型 → 输出

这在一次性问题里没问题。比如:

  • “帮我写一封邮件”
  • “总结这篇文章”
  • “翻译这段话”

但一旦你想做下面这些事,就开始崩:

❌ 让 AI 反复做同一类事(每次都要重新写 Prompt)
❌ 让 AI 调用代码/系统能力(模型只会"说",不会"做")
❌ 让 AI 给非技术人员稳定交付结果(结果不稳定)
❌ 让 AI 参与一个多步骤流程(没有状态管理)

于是,Prompt 被迫"进化"。


三、Skills:Prompt 的工程化形态

1️⃣ Skills 到底是什么?

一句话版本:
Skill = 被封装、可复用、可调用的"做事方法"

它不是一句 Prompt,而是:

  • ✅ 有明确职责
  • ✅ 有稳定输入
  • ✅ 有稳定输出
  • ✅ 可以被 Agent 调用
  • ✅ 可以长期维护

你可以把它理解成:AI 世界里的"函数/服务"

2️⃣ 为什么要有 Skills?

因为你迟早会遇到这类需求:

  • “每天都要生成同类型内容”
  • “不同人用,但结果要一致”
  • “不能每次都复制一大段 Prompt”

这时候你要的不是"再写一句 Prompt",而是:把 Prompt 固化成能力

3️⃣ 案例:房产推荐系统中的 Skills

以我的 house_demo 为例,我们可以把它拆解成几个典型的 Skills:

Skill 1: search_houses
# 元信息
name: "房源搜索"
description: "根据用户需求检索相关房源"

# 行动指南
steps:
  1. 理解用户的地理位置偏好
  2. 提取价格区间
  3. 识别特殊需求(学区、地铁等)
  4. 调用混合检索引擎

# 资源
resources:
  - hybrid_searcher.py
  - embedding_engine.py
  - bm25_searcher.py
Skill 2: generate_recommendation
# 元信息
name: "推荐理由生成"
description: "为检索到的房源生成个性化推荐理由"

# 行动指南
steps:
  1. 读取用户历史偏好(Memory)
  2. 分析房源特征
  3. 匹配用户需求点
  4. 生成自然语言推荐

# 资源
  - answer_generator_v3.py
  - prompt_optimizer.py
  - memory_manager.py
Skill 3: rerank_results
# 元信息
name: "结果重排序"
description: "根据用户反馈动态调整推荐顺序"

# 行动指南
steps:
  1. 收集用户点击/收藏行为
  2. 更新偏好权重
  3. 重新计算相关性得分
  4. 返回优化后的排序

# 资源
  - reranker.py
  - bias_memory.py

4️⃣ 一个典型 Skill 的结构

从工程角度看,一个 Skill 通常包含三层:

层级 内容 示例
元信息 这个技能是干嘛的 name, description, version
行动指南 AI 应该按什么步骤思考和执行 Prompt 模板、决策树
资源 Python 代码/API/文件/脚本 reranker.py, embedding_engine.py

这一步,AI 才真正有了"手"。


四、MCP:让 AI 知道"工具怎么用"

1️⃣ MCP 是什么?

MCP(Model Context Protocol) 解决的是一个很现实的问题:

模型怎么"安全、规范、可控"地调用外部能力?

你可以把 MCP 理解成:AI 调用工具的"标准接口协议"

2️⃣ MCP 和 Skills 的关系

这是很多人最容易混淆的地方:

概念 职责 类比
Skill 做什么、怎么做(能力) 会做菜
MCP 用什么方式调用外部系统(接口规范) 插座规格

一个非常直观的类比:

  • Skill 是"会做菜"
  • MCP 是"插座规格"

你可以用不同电器,但插头要统一。

3️⃣ 案例:房产系统中的 MCP 应用

假设我的房产推荐系统需要调用外部服务:

# MCP 定义:调用地图 API
{
  "tool_name": "get_nearby_facilities",
  "protocol": "MCP",
  "endpoint": "https://api.map.com/v1/nearby",
  "auth": "Bearer TOKEN",
  "input_schema": {
    "latitude": "float",
    "longitude": "float",
    "radius": "int"
  },
  "output_schema": {
    "schools": "list",
    "subways": "list",
    "hospitals": "list"
  }
}

Agent 不需要知道地图 API 的具体实现,只需要:

  1. 知道这个工具叫什么
  2. 知道输入什么
  3. 知道会返回什么

这就是 MCP 的价值:标准化工具调用


五、Agent:真正"会干活"的 AI

1️⃣ Agent 不是模型

这是第一个要纠正的误解:

  • 模型负责"想"
  • Agent负责"干"

Agent 至少要具备几件事:

  • ✅ 能理解目标
  • ✅ 能选择 Skill
  • ✅ 能决定下一步
  • ✅ 能处理失败

一句话说完:
Agent = 大模型 + 决策逻辑 + 状态

2️⃣ 为什么一定要有 Agent?

因为你一旦进入这种场景:

  • 多步骤任务
  • 有条件分支
  • 有中间结果
  • 需要回溯

Prompt 就彻底不够用了。

Agent 出现的本质原因是:AI 开始需要"过程管理能力"

3️⃣ 案例:房产推荐 Agent 的工作流程

假设用户问:“我想在朝阳区找一个 500 万以内的两居室,最好靠近地铁”

一个完整的 Agent 执行过程:

[Agent 启动]
  ↓
[理解意图] → 提取:地区=朝阳区,价格≤500万,户型=两居室,需求=地铁
  ↓
[选择 Skill] → 调用 search_houses
  ↓
[执行检索] → 返回 20 条候选房源
  ↓
[选择 Skill] → 调用 rerank_results
  ↓
[重排序] → 根据用户历史偏好调整顺序
  ↓
[选择 Skill] → 调用 generate_recommendation
  ↓
[生成推荐] → 为 Top 5 房源生成推荐理由
  ↓
[返回结果] → 展示给用户
  ↓
[更新 Memory] → 记录用户本次查询偏好

在这个过程中:

  • Agent 负责决策(下一步该干什么)
  • Skills 负责执行(具体怎么干)
  • Memory 负责记忆(之前发生了什么)

六、Agent Workflow:把"会干活"变成"干得有章法"

1️⃣ Workflow 是什么?

Workflow 解决的是:先干什么,后干什么,什么时候停

它本质是:

  • DAG(有向无环图)
  • 状态机
  • 任务编排

你可以理解成:Agent 的 SOP(标准作业流程)

2️⃣ Workflow 和 Skills 的分工

这是一个非常重要的工程边界:

模块 负责什么
Skill 怎么做
Agent 现在做什么
Workflow 下一步做什么

如果你把这三者混在一起,系统一定会失控。

3️⃣ 案例:房产推荐的 Workflow 设计

workflow_name: "房产智能推荐流程"

steps:
  - id: "intent_understanding"
    skill: "parse_user_query"
    next:
      - condition: "has_location"
        goto: "search"
      - condition: "no_location"
        goto: "ask_location"
  
  - id: "ask_location"
    skill: "clarify_requirements"
    next: "search"
  
  - id: "search"
    skill: "search_houses"
    next:
      - condition: "results > 0"
        goto: "rerank"
      - condition: "results == 0"
        goto: "expand_search"
  
  - id: "expand_search"
    skill: "relax_constraints"
    next: "search"
  
  - id: "rerank"
    skill: "rerank_results"
    next: "generate"
  
  - id: "generate"
    skill: "generate_recommendation"
    next: "end"
  
  - id: "end"
    action: "return_results"

这个 Workflow 定义了:

  • 什么情况下该问用户
  • 什么情况下该扩大搜索范围
  • 什么情况下该结束流程

七、再把几个常见名词一次放清楚

Tool / Function

概念 含义
Tool 外部能力(API、代码)
Function 一种早期、轻量的调用形式

👉 本质都是:模型能不能"动手"

在项目里:

  • embedding_engine.py 是一个 Tool
  • bm25_searcher.py 是一个 Tool
  • reranker.py 是一个 Tool

Planner / Executor

角色 职责
Planner 负责拆任务、定计划
Executor 负责具体执行

👉 是 Agent 内部的一种角色拆分方式

Memory

类型 内容
短期 当前上下文
长期 历史偏好、经验、结果

👉 没有 Memory,Agent 永远是"失忆打工人"

在项目里:

  • memory_manager.py 管理对话历史
  • bias_memory.py 记录用户偏好

八、一张"工程视角"的总览图

用户目标
   ↓
Agent(理解 + 决策)
   ↓
Workflow(流程控制)
   ↓
Skills(具体能力)
   ↓
MCP / Tools(外部执行)
   ↓
结果 + Memory

用房产推荐系统举例

用户:"我想在朝阳区找房子"
   ↓
Agent: 理解意图 → 决策下一步
   ↓
Workflow: 执行"房产推荐流程"
   ↓
Skill 1: search_houses(调用 hybrid_searcher)
   ↓
Skill 2: rerank_results(调用 reranker)
   ↓
Skill 3: generate_recommendation(调用 answer_generator_v3)
   ↓
MCP: 调用地图 API 获取周边设施
   ↓
返回结果 + 更新 Memory(记录用户偏好)

九、实战建议:如何在项目中应用这些概念

1️⃣ 从 Skills 开始

不要一上来就想着构建完整的 Agent 系统。先问自己:

  • 我的系统里有哪些"可复用的能力"?
  • 这些能力的输入输出是什么?
  • 它们依赖哪些外部资源?

把这些整理成 Skills。

2️⃣ 用 Workflow 串联

当你有了 3-5 个 Skills 之后,开始思考:

  • 这些 Skills 的执行顺序是什么?
  • 什么情况下需要分支?
  • 什么情况下需要重试?

用 Workflow 把它们串起来。

3️⃣ 让 Agent 做决策

最后,给 Agent 加上决策能力:

  • 根据用户输入选择合适的 Workflow
  • 根据中间结果调整执行路径
  • 根据失败情况进行重试或降级

4️⃣ 用 Memory 提升体验

别忘了加上 Memory:

  • 记录用户的历史查询
  • 记录用户的偏好
  • 记录失败的尝试

这样 Agent 才能越用越聪明。


十、总结

如果你只记住一句话:

Agent 是人,Skills 是手艺,MCP 是工具规范,Workflow 是工作流程。

如果你记住两句话:

不要把所有逻辑都塞进 Prompt,要学会拆分职责。

如果你记住三句话:

从 Skills 开始,用 Workflow 串联,让 Agent 做决策,用 Memory 提升体验。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐