Skip to content

AI概率汇总

  • LLM
  • Agent
  • Token
  • Context
  • Prompt
  • MCP

LLM 是服务员的大脑,代表其核心的理解与思考能力;

Token 是你和服务员沟通的字数单位;

Context/Context Window 是服务员的记忆容量,决定它能够记住多少你的需求;

Prompt 是你向服务员下达的指令,包含规则与具体需求;

Tool/MCP 是服务员可以调用的各类工具,例如计算器、后厨、外卖系统等;

Agent/Agent Skill 则对应服务员的角色定位与专业技能,比如专业点餐员搭配智能推荐菜品的能力。

LLM

什么是 LLM

LLM,全称 Large Language Model,翻译过来就是 大语言模型

LLM 的工作原理基本上就是依据极其庞大的数据量的学习来进行「预测下一个字」。

LLM 其实有点像一个"有嘴没手" 的顾问。

LLM 有什么缺点

  • 只会「说」不会「做」。

    LLM 的能力被困在对话框里,它没法跟外部世界互动,没法操作任何系统。让他修改代码BUG,它没办法去操作编辑器去改文件、跑测试。

  • 没有「记忆」

    LLM 的记忆只限于当前这轮对话的上下文窗口,对话一结束,一切归零。

  • 不会用「工具」

    LLM 本身不能上网搜索、不能查数据库、不能调 API,所有回答都来自它「脑子里」已有的知识,这些知识不仅有截止日期,还可能是错的,也就是常说的「幻觉」问题。

  • 不会「规划」。

    LLM 是「被动响应型」的,你问一句它答一句,没法自主拆解任务、制定计划、分步执行。

那么有没有一种方式,能让 LLM 不仅会「说」,还能「做」呢?这就是 Agent 要解决的问题。

Agent

什么是Agent

Agent,翻译过来叫智能体

Agent 就是 LLM 在循环中自主使用工具的系统。

「LLM」说明 Agent 的核心大脑还是大模型,「工具」说明它能调用外部能力,「循环」说明它不是一问一答就结束,而是会不断地思考、行动、观察结果、再思考,直到任务完成。

Agent 怎么解决 LLM 的弊端?

  • 针对"只会说不会做",Agent 引入了工具调用能力,可以调用搜索引擎、数据库、API、代码执行器等各种外部工具来真正执行操作。

  • 针对"没有记忆",Agent 配备了记忆系统,包括记住当前任务上下文的短期记忆,和存储在外部数据库中、可以跨对话保留的长期记忆。

  • 针对"不会用工具",业界推出了 MCP 等标准化协议来统一工具接入方式。

  • 针对"不会规划",Agent 具备了任务拆解和规划能力,能把一个大目标分解成多个小步骤,然后逐步执行。

Agent 的核心组成

一个完整的 Agent 应该是以下四个模块的组合

第一个是大脑,也就是 LLM,负责理解意图、推理判断、决定下一步行动。

第二个是规划模块,负责把复杂任务拆解成可执行的步骤。

第三个是记忆模块,负责存储和检索信息,让 Agent 能在长时间任务中保持连贯。

第四个是工具模块,是 Agent 的「手和脚」,让它能跟外部世界互动。

image-20260330135022006

Agent 和 Workflow 有什么区别?

两者的定义

Workflow 是指 LLM 和工具通过预定义的代码路径进行编排的系统,而 Agent 是指 LLM 动态主导自身流程与工具调用的系统,由 LLM 自主决定如何完成任务

image-20260330135022000

Workflow 是「我(开发者)告诉你每一步该做什么」,Agent 是「我告诉你目标,你自己决定怎么做」。

Workflow 就像一条工厂流水线,每个工位做什么、零件从哪来到哪去,全都是提前设计好的。工人(LLM)只需要在自己的工位上完成指定动作。

而 Agent 更像一个自主工作的项目经理,老板只告诉他"把这件事搞定",然后他自己去调研、制定计划、协调资源、推进执行。

核心区别

两者最核心的区别在于**「谁在控制流程」**

Workflow 的控制权在代码手里,流程是确定的、可预测的、可复现的,但灵活性比较差。

Agent 的控制权在 LLM 手里,行为是动态的、灵活的、能适应变化的,但相应地也带来了不确定性。

在实际生产环境中,最常见的其实是混合架构,Workflow 和 Agent 的结合。正如 LangChain 说的:"大多数生产中的 Agent 系统其实是 Workflow 和 Agent 的组合。"

Agent有什么工作模式

模式一:ReAct(边想边做)

ReAct 是目前最经典、最基础的 Agent 工作模式,名字来源于 Reasoning + Acting 的缩写,也就是「推理 + 行动」。几乎所有主流的 Agent 框架底层都在用它。

image-20260330141403165

核心思想非常简单:Agent 在思考和行动之间不断交替。具体来说就是一个三步循环,先是思考(Thought),分析当前情况决定下一步做什么;然后是行动(Action),调用一个工具来执行;接着是观察(Observation),查看工具返回的结果。然后回到思考,如此循环,直到任务完成。

模式二:Plan-and-Execute(先想好再做)

它把 Agent 的工作分成两个阶段:第一阶段是规划,Agent 先把完整的执行计划想清楚;第二阶段是执行,按计划逐步完成,不用每步都重新思考全局。

image-20260330143845413

这种模式最大的优势是规划只做一次,执行阶段不用反复推理。

但缺点是不够灵活,如果执行到第 3 步发现情况变了,原来的计划可能就不适用了。所以也有这么个做法是在执行过程中加入「重新规划检查点」,每隔几步检查一下计划是否还靠谱。

模式三:Reflection(做完再检查)

反思模式的核心思想是 Agent 完成任务后不急着交付,而是先自我检查一遍,就像你写完文章不会直接发出去,而是再通读一遍、改一改、润色一下。

image-20260330144105863

实现方法有两种

  • 自我反思,同一个 Agent 完成任务后切换到「审查者」角色来审视自己的输出,发现问题就修改,然后再审查,直到满意
  • 双 Agent 对话,一个 Agent 负责生成,另一个负责评审,两者来回迭代直到评审方满意,就像代码的 Code Review 过程。这种模式特别适合对质量要求高的场景,比如代码生成、法律文书、学术论文等

模式四:Multi-Agent(团队协作)

Multi-Agent 模式让多个专业化的 Agent 各司其职,比如一个负责规划、一个负责搜集信息、一个负责写代码、一个负责测试,通过协作来完成复杂任务

image-20260330144241995

Anthropic 提醒过:不要过早引入多 Agent 架构。很多时候,一个强大的单 Agent 就够用了。只有任务确实需要拆分成多个并行子任务时,多 Agent 才值得引入。

这几种模式不是互斥的,实际中往往是组合使用的。一个多 Agent 系统中,每个 Agent 内部可能用的是 ReAct 模式,整体协作用的是 Multi-Agent 模式,最后还有一个 Reflection 环节来检查质量。

Function Call(函数调用)

「工具调用」,Agent 能查天气、能搜索信息、能操作数据库,这些能力是怎么实现的?

—— Function Call(函数调用)

从「只会说话」到「能做事情」

Function Call 的工作原理

image-20260330144946799

  • 第一步,定义函数

  • 第二步,模型判断

  • 第三步,执行函数

    LLM 自己并不执行函数。它只是输出了「我想调用这个函数,参数是这些」的结构化指令。真正执行函数的是你的应用程序。

  • 第四步,生成回答

Function Call 解决了两个核心问题

  • 第一个是**"什么时候调用"的判断问题**,LLM 能根据用户的自然语言意图,自动判断需不需要调用工具、调用哪个工具。你不需要写复杂的条件判断逻辑,LLM 自己会推理。

  • 第二个是**"传什么参数"的提取问题**,LLM 能从用户的自然语言中提取出结构化的参数。用户说"帮我查一下北京后天的天气",LLM 能自动提取出 city=北京date=后天

Function Call 就是 Agent 能力的最底层技术基础

Function Call 和 Agent 的关系

Function Call 是一次性的「单步调用」,LLM 判断需要调用一个函数,调用完就结束了。

Agent 是「循环调用」,Agent 在一个循环中反复使用 Function Call,每次调用后观察结果,再决定下一步要不要继续调用其他函数。

image-20260330145426398

Function Call 是 Agent 的「原子操作」,Agent 是 Function Call 的「高级编排」。一个 Agent 完成一个复杂任务,可能需要连续进行十几次 Function Call。

MCP

Function Call 让 LLM 能调用工具。但随着 Agent 越来越强大,需要连接的工具和服务越来越多,一个新问题浮出水面了,集成太麻烦了

Function Call 的集成困境

image-20260330145805042

用 Function Call 的方式,你需要为每一个服务单独写适配代码,为 Slack 写一套函数定义和调用逻辑、为 Google Drive 写一套、为 GitHub 写一套、为数据库又写一套。

如果你有 N 个 AI 应用,要对接 M 个外部服务,就需要写 N × M 个定制集成。

MCP 的诞生

Anthropic 在 2024 年 11 月开源了 MCP(Model Context Protocol,模型上下文协议)。可以把 MCP 理解为**「AI 界的 USB-C 接口」**

image-20260330150134623

它提供了一个统一的标准,让任何 AI 应用都能用同一种方式连接任何外部工具和数据源。

MCP 是怎么工作的?

image-20260330150659636

MCP 的架构主要有三个角色。

  • MCP Host(宿主),就是你使用的 AI 应用,比如 Claude Desktop、Cursor 编辑器、你自己开发的 Agent 应用。它是整个交互的发起方。
  • MCP Client(客户端),它住在 Host 里面,负责跟 MCP Server 通信。你可以把它理解为"翻译官",Host 想要什么能力,Client 就去跟对应的 Server 沟通。
  • MCP Server(服务端),它负责对外暴露具体的工具能力和数据资源。比如有一个 GitHub MCP Server,它能提供"搜索代码""创建 Issue""查看 PR"等工具。一个 Slack MCP Server 能提供"发送消息""搜索频道"等工具。

用户在 AI 应用中提问 → AI 应用(Host)通过 MCP Client 发现有哪些可用工具 → AI 决定调用某个工具 → MCP Client 向对应的 MCP Server 发送请求 → Server 执行操作返回结果 → AI 基于结果生成回答。

image-20260330151104223

MCP 解决了什么问题?

最核心的就是把 N × M 的集成问题变成了 N + M 的问题。

以前每个 AI 应用要跟每个服务单独对接,现在每个 AI 应用只要支持 MCP 协议(实现一次 Client),每个服务只要提供一个 MCP Server(实现一次 Server),双方就能自动对接。

新增一个服务不需要改任何 AI 应用的代码,新增一个 AI 应用也不需要改任何服务的代码。

而且 MCP Server 暴露的工具是可发现的,AI 应用启动时能自动查询有哪些 MCP Server 可用、每个 Server 提供哪些工具、每个工具的参数是什么。

这意味着 Agent 可以在运行时动态发现新的能力,而不是只能用开发者写死的那些函数

Skills(技能)

Function Call 让 Agent 能调用函数,MCP 让 Agent 用统一标准连接工具

Agent 知道怎么调用工具了,但它知道在什么场景下该用什么方法来解决问题吗?

Skills 是什么

Skills 是一种自然语言指令文件,通常是 Markdown 格式,用来教 Agent"在什么场景下、按照什么方法、遵循什么规范来完成特定任务"。

在 Claude Code、Cursor 等 AI 工具中,Skills 通常以 SKILL.md 文件的形式存在。

image-20260330151824623

Skills 的结构很简单:顶部有一段 YAML 格式的元数据,声明这个 Skill 什么时候应该被激活(比如"当用户要求代码审查时");下面是具体的行为指令,用自然语言写成。

md
---
name: Code_Review_Expert
description: 当用户要求进行代码审查时,自动触发此技能。
triggers:
  - "帮我 review 一下这段代码"
  - "代码审查"
---

# 身份设定
你是一个拥有 10 年开发经验的资深后端架构师,你极其看重代码的可读性、性能和安全性。

# 审查工作流
当你进行代码审查时,你必须严格按照以下步骤进行排查:
1. 看结构:检查代码是否符合单一职责原则,有没有超过 100 行的超长方法。
2. 查漏洞:重点检查是否存在 SQL 注入风险、越权访问风险或空指针异常风险。
3. 审性能:是否有在 for 循环里查数据库的愚蠢操作?是否有流对象没有及时 close 释放?
4. 给方案:你绝对不能只挑毛病,必须针对每个问题给出具体的修改建议,并且附带优化后的代码片段。

# 输出规范
语气要专业、极其直接,不要说废话。直接输出一份 Markdown 格式的审查报告,分点列出问题和修改方案。

MCP 解决的是"能做什么"的问题,Skills 解决的是"该怎么做"的问题

Skills 的工作方式

Skills 的工作方式跟 Function Call 和 MCP 有本质不同。

Function Call 和 MCP 都是让 Agent "执行外部操作",调用 API、查询数据库、发送消息,这些操作发生在 Agent 外部。

而 Skills 完全在 Agent 内部运行,它不调用任何外部服务,而是被加载到 Agent 的上下文窗口中,改变 Agent 的思考和行为方式。

具体来说,当 Agent 启动时,它会扫描可用的 Skills 列表。当用户提出请求时,Agent 判断有没有匹配的 Skill。如果有,Agent 就把这个 Skill 的内容加载到上下文中,然后按照 Skill 中的指令来思考和行动。

这就像给 Agent 「临时注入了一段专业经验」。没加载 Skill 之前,Agent 只有通用能力;加载了特定 Skill 之后,Agent 在这个领域就变成了专家。

Skills 有什么价值?

Skills 的核心价值在于将专业知识和最佳实践编码成可复用的模块

image-20260330152144809

Function Call、MCP、Skills 有什么区别?

Agent 是一个新入职的员工。

Function Call 就是"打电话的能力"MCP 就是"公司的通讯录和电话系统"Skills 就是"岗位培训手册"

image-20260330152817661

三者的区别体现在几个维度上

image-20260330152924464

解决的问题来看

  • Function Call 解决的是"LLM 怎么跟外部函数交互"这个最基础的问题。

    • MCP 解决的是"怎么用统一标准管理大量工具"的集成问题。
    • Skills 解决的是"Agent 怎么获得领域专业知识"的知识问题。

运行位置来看

  • Function Call 的函数在你的应用程序中执行。
  • MCP 的工具在外部的 MCP Server 中执行。
  • Skills 完全在 Agent 的上下文窗口内生效,不涉及任何外部调用。

技术本质来看

  • Function Call 是一种 API 协议,LLM 输出结构化的调用请求,应用程序执行后返回结果。
  • MCP 是一种通信标准,定义了 Client 和 Server 之间如何发现和调用工具。
  • Skills 是一种提示词扩展,用自然语言编写的行为指令,加载到 Agent 的上下文中。

标准化程度来看

  • Function Call 在各 LLM 厂商之间格式不统一(OpenAI 和 Anthropic 的格式就不一样)。
  • MCP 是统一的开放标准,跨厂商通用。
  • Skills 目前还没有统一标准,各个 Agent 平台有自己的 Skill 格式。

三者是什么关系?

image-20260330153155233

Function Call 是底层基础。MCP 建立在 Function Call 之上,提供了标准化的包装。当你的 Agent 通过 MCP 调用一个工具时,底层其实还是在做 Function Call,只不过格式和通信方式被 MCP 统一了。

A2A

如果有多个 Agent 需要互相协作,它们之间怎么通信?

为什么需要 A2A?

当一个新员工入职时,需要 HR Agent 处理入职手续、IT Agent 配置工作电脑和账号、财务 Agent 设置薪资账户。这三个 Agent 需要协作,但它们互相不认识,也不知道对方会什么、怎么沟通。

MCP 解决不了这个问题,因为 MCP 是给 Agent 连接"工具"用的,它处理的是"Agent 调用数据库""Agent 发送邮件"这类 Agent 与工具之间的交互。

但 Agent 与 Agent 之间的协作,需要一个全新的协议。

image-20260330153600541

什么是 A2A 协议?

A2A 是 Google 在 2025 年 4 月的 Google Cloud Next 大会上发布的一个开放协议,全称 Agent-to-Agent Protocol,顾名思义就是"Agent 对 Agent"的通信协议。它联合了超过 50 家合作伙伴共同推出,包括 Atlassian、Salesforce、SAP、MongoDB、LangChain 等业界大玩家。

A2A 定义了一套标准,让不同的 AI Agent 能够互相发现、互相通信、互相委派任务,不管这些 Agent 是用什么框架开发的、运行在什么平台上。

A2A 的核心概念

image-20260330153800069

  • Agent Card(智能体名片)

    每个支持 A2A 的 Agent 都会发布一个 JSON 格式的"名片",描述自己的身份、能力、擅长的领域、支持的交互方式、认证要求等信息。其他 Agent 通过读取这个名片来了解"这个 Agent 会什么,我能请它帮什么忙"。这就像你在 LinkedIn 上看到一个人的简历,知道他的技能和经验后,才决定要不要跟他合作。

  • 任务(Task)

    A2A 中的所有协作都围绕"任务"展开。一个 Client Agent(发起方)创建一个任务,发送给一个 Remote Agent(执行方)。任务有完整的生命周期,从创建、处理中、到完成或失败,每个状态变化都有明确的定义。这让双方能清楚地跟踪任务进展。

  • 消息和制品(Message & Artifact)

    Agent 之间通过消息来沟通过程中的信息,通过制品来传递最终结果。比如一个研究 Agent 完成分析后,会把分析报告作为制品返回给请求方。

**A2A 和 MCP 是什么关系?

MCP 是「竖向」的,处理 Agent 到工具的连接;A2A 是「横向」的,处理 Agent 到 Agent 的协作。

Google 的官方设计中,两者是互补的关系,被明确设计为可以共同使用。在一个典型的多 Agent 系统中,一个编排 Agent 通过 A2A 协议把任务委派给不同的专业 Agent,而每个专业 Agent 内部通过 MCP 来连接它自己需要的工具。

协议的边界很清晰:Agent 之间的通信走 A2A,Agent 调用工具走 MCP。

image-20260330154055073

目前整个 Agent 协议生态正在形成一个清晰的分层格局:Function Call 提供底层调用能力,MCP 标准化 Agent 与工具的连接,A2A 标准化 Agent 与 Agent 的协作


Agent 相关的核心概念-万字长文图解