EN

Skill vs Agent vs Model:三者关系一张图看懂

积木、建造者、大脑的关系

返回教程列表🌐 Read in English
入门5 分钟

Skill vs Agent vs Model:三者关系一张图看懂

积木、建造者、大脑的关系

厘清 AI 里 Model / Agent / Skill 的区别与关系:模型是底座能力、Agent 是能自主决策调用工具的系统、Skill 是可复用能力单元,附对比表与实例。

在 AI 开发中,Model(模型)、Agent(智能体)、Skill(技能)是三个常被混淆但本质不同的概念。它们构成了从底层能力到上层应用的递进关系:模型是底座,技能是工具,Agent 是调度者。理解这三者的区别与组合方式,是构建可靠 AI 系统的关键。

核心定义

  • Model(模型):一个经过训练的神经网络,具备特定能力(如文本生成、图像识别、语音转文字)。它是“大脑”,但不具备自主行动能力。例如 GPT-4、Claude 3、Stable Diffusion 等。模型本身只是静态的参数集合,需要输入才能产生输出。
  • Agent(智能体):一个自主系统,能感知环境、制定计划、调用工具、执行动作并观察结果。它“拥有”一个或多个模型作为推理核心,并管理技能的执行。典型例子是 AutoGPT、LangChain Agent、CrewAI 中的角色。
  • Skill(技能):一个可复用的能力单元,通常封装为函数、API 或工具。它执行具体任务(如搜索网页、计算数学、发送邮件),Agent 通过调用技能来扩展自身能力。Claude Skills、OpenAI Function Calling 中的函数定义、LangChain 的 Tool 都属于技能。
  • 关系图(文字版)

    
    ┌─────────────────────────────────────────────┐
    │                  Agent                       │
    │  (感知 → 规划 → 调用技能 → 执行 → 反馈)     │
    │                                              │
    │  ┌──────────┐   ┌──────────┐   ┌──────────┐ │
    │  │  Model   │   │  Skill 1 │   │  Skill 2 │ │
    │  │ (推理核) │   │ (搜索)   │   │ (计算)   │ │
    │  └──────────┘   └──────────┘   └──────────┘ │
    │                                              │
    │  ┌──────────┐   ┌──────────┐                │
    │  │  Skill 3 │   │  Skill 4 │                │
    │  │ (数据库) │   │ (邮件)   │                │
    │  └──────────┘   └──────────┘                │
    └─────────────────────────────────────────────┘
    

  • Model 是 Agent 的“大脑”,提供推理和生成能力。
  • Skill 是 Agent 的“手脚”,提供执行具体操作的能力。
  • Agent 是协调者,决定何时调用哪个模型、哪个技能,并处理结果。
  • 对比表

    维度ModelAgentSkill

    本质静态能力动态系统可复用工具 输入提示词/数据任务目标参数 输出文本/图像/向量动作序列/最终结果结构化结果 状态无状态(每次独立)有状态(记忆上下文)无状态(通常) 自主性无高(自主决策)无(被动调用) 复用性可被多个 Agent 共用通常独立运行可被多个 Agent 共用 典型例子GPT-4, Claude 3AutoGPT, LangChain Agent搜索函数, 计算器, 数据库查询

    真实例子:一个客服 Agent 的组成

    假设你要构建一个客服 Agent,处理用户退款请求:

  • Model:使用 GPT-4 作为推理核心,理解用户意图、生成回复。
  • Skill
  • - search_order(order_id):查询订单数据库 - calculate_refund(amount, policy):计算退款金额 - send_email(to, subject, body):发送确认邮件 - check_policy(policy_id):查询退款政策
  • Agent
  • - 接收用户消息:“我想退单号 12345 的订单” - 调用 Model 解析意图 → 识别为退款请求 - 调用 search_order(12345) 获取订单信息 - 调用 check_policy("refund") 获取政策 - 调用 calculate_refund(99.99, policy) 计算金额 - 调用 send_email(user@example.com, "退款确认", "...") - 返回结果给用户

    如何组合三者

    在实际开发中,组合方式遵循“模型为核心、技能为扩展、Agent 为调度”的原则:

  • 定义技能:将外部能力封装为函数,每个函数有清晰的输入输出 schema(如 JSON Schema)。例如:
  • python
       def search_web(query: str) -> list[dict]:
           """搜索互联网并返回结果列表"""
           # 实际调用搜索 API
           return results
       

  • 配置模型:选择适合任务的模型(如 Claude 3 适合长上下文,GPT-4 适合复杂推理)。模型通常通过 API 调用,Agent 负责管理对话历史和上下文窗口。
  • 构建 Agent:Agent 循环执行以下步骤:
  • - 感知:接收用户输入或环境反馈 - 规划:使用 Model 分析当前状态,决定下一步动作(如调用哪个 Skill) - 调用:执行选中的 Skill,传入参数 - 观察:获取 Skill 返回结果 - 循环:直到任务完成或达到终止条件

    python
       class CustomerServiceAgent:
           def __init__(self, model, skills):
               self.model = model
               self.skills = {s.name: s for s in skills}
           
           def run(self, user_input):
               messages = [{"role": "user", "content": user_input}]
               while True:
                   # 1. 模型决定下一步
                   response = self.model.chat(messages, tools=list(self.skills.values()))
                   if response.finish_reason == "stop":
                       return response.content
                   # 2. 执行技能
                   tool_call = response.tool_calls[0]
                   skill = self.skills[tool_call.function.name]
                   result = skill(**tool_call.function.arguments)
                   # 3. 反馈结果
                   messages.append({"role": "tool", "content": str(result)})
       

    常见坑与最佳实践

  • 坑 1:把模型当 Agent 用。直接让模型“帮我搜索”而不提供搜索技能,模型只能编造结果。解决方案:始终为 Agent 配备真实可执行的技能。
  • 坑 2:技能定义过于模糊。技能输入输出 schema 不明确,导致模型调用时参数错误。解决方案:使用严格的 JSON Schema 定义,并包含清晰的描述。
  • 坑 3:Agent 循环失控。没有设置最大步骤数或终止条件,导致无限循环。解决方案:始终设置 max_iterations 和明确的终止逻辑。
  • 坑 4:上下文窗口溢出。Agent 将每次技能调用结果都塞入对话历史,很快超过模型上下文限制。解决方案:实现摘要机制或滑动窗口。
  • 总结关系

  • Model 是“能做什么”(能力)
  • Skill 是“能做什么具体事”(工具)
  • Agent 是“决定做什么并执行”(调度)
  • 三者缺一不可:没有 Model,Agent 无法推理;没有 Skill,Agent 只能空谈;没有 Agent,Model 和 Skill 只是孤立的组件。

    FAQ

    Q1:Agent 必须使用多个模型吗? A:不一定。一个 Agent 可以只使用一个模型作为推理核心,但也可以根据任务切换模型(如复杂推理用 GPT-4,简单任务用轻量模型)。多模型策略通常用于成本优化或能力互补。

    Q2:Skill 和 Function Calling 是什么关系? A:Function Calling 是 OpenAI 等模型提供的一种 API 机制,允许模型输出结构化函数调用请求。Skill 是更上层的概念,Function Calling 是实现 Skill 调用的一种具体方式。其他实现方式包括 ReAct 模式、Toolformer 等。

    Q3:如何决定哪些功能应该封装为 Skill? A:遵循“原子性”和“复用性”原则:每个 Skill 只做一件事(如搜索、计算、发邮件),且该功能可能被多个 Agent 或多次调用。避免将整个业务流程封装为一个 Skill。

    Q4:Agent 和 RAG(检索增强生成)有什么区别? A:RAG 是一种特定模式:检索文档 → 生成回答。Agent 是更通用的框架,可以包含 RAG 作为其中一个 Skill。Agent 能主动决定何时检索、检索什么、如何组合结果,而 RAG 通常是固定流程。

    Q5:Skill 可以调用其他 Skill 吗? A:理论上可以,但实践中建议由 Agent 统一调度,避免技能间产生循环依赖。如果必须嵌套,应确保调用链深度有限,并记录调用日志以便调试。

    *最后更新:2026 年 7 月。请以各工具官方文档为准。*

    相关工具