舟山市网站建设_网站建设公司_企业官网_seo优化
2025/12/27 14:55:36 网站建设 项目流程

纯大模型就像“思想的巨人,行动的矮子”——只会对话和生成文本,没法真正落地解决实际问题。但给它配上AI Agent(人工智能体)后,就能完成华丽蜕变:既能感知外部环境,又能调用各类工具,还能自主执行任务,摇身变成“万能助手”。

这一颠覆性转变,核心依赖三大关键技术协议:MCP(Agent与工具的通信协议)、Function Calling(Agent与大模型的协作协议)和A2A(Agent之间的协同协议)。很多新手容易误以为Agent是复杂的独立系统,其实它的本质是一套精心设计的Prompt,通过Context Engineering(上下文工程)让大模型获得真正的行动能力。

先给大家明确三个核心协议的核心定位,避免混淆:

  • MCP:AI Agent 与外部工具之间的“桥梁”,负责工具的发现、注册和调用,注意:MCP不直接和大模型交互,别被名字里的“Model”误导!
  • Function Calling:AI Agent 与大模型之间的“指令翻译官”,告诉大模型什么时候该用工具、用哪个工具、怎么传参数。
  • A2A:AI Agent 与其他Agent之间的“协作协议”,实现多Agent的发现、任务分配和协同工作。

本文会从新手视角,用“概念+实战+解析”的方式,把这三大协议的核心逻辑、工作流程讲透,还会补充AI Agent的基础认知和Context Engineering的关键作用,帮你真正理解“大模型+Agent”的工作原理,不管是学习研究还是项目开发都能直接用得上。

一、先搞懂:AI Agent到底是什么?

很多小白刚接触时会把Agent想复杂,其实一句话就能说清:AI Agent是能自主感知环境、规划任务、执行动作,最终完成目标的智能系统

这里有个超形象的比喻:大模型是AI Agent的“大脑”,负责思考和决策;AI Agent是大模型的“身体”,负责连接外部世界、执行具体动作。两者缺一不可:

  • 没有Agent的大模型:能力被局限在“文本交互”里,比如问它“杭州明天天气”,它只能基于训练数据猜,没法实时获取真实信息,更没法执行其他操作——这就是“思想的巨人,行动的矮子”。
  • 没有大模型的Agent:就是个僵硬的自动化脚本,只能按预设的“如果-那么”规则做事,遇到突发情况或模糊需求就歇菜,毫无灵活性。

可能有程序员朋友会问:这和传统的SOP(标准操作流程)有啥区别?核心差异在“自主性”:

传统SOP是“规则驱动”,必须提前定好所有步骤;而AI Agent是“目标驱动”,你只要告诉它“要做什么”,它会自己想“该怎么做”,还能根据环境变化动态调整策略,甚至处理模糊的需求(比如“整理本周工作文档并生成总结”)。这种灵活性,根源就是大模型的语言理解、推理和泛化能力。

一个完整的AI Agent,除了“大脑”(大模型),还需要这3个核心模块,新手可以记成“ Agent的三大器官 ”:

  • 感知模块:相当于“眼睛和耳朵”,通过API、搜索引擎、文件系统等获取外部信息(比如实时天气、文档内容)。
  • 工具集:相当于“手和脚”,通过调用函数、API、软件等影响现实世界(比如查天气、写文件、执行代码)——这就是MCP、Function Calling发挥作用的地方。
  • 记忆模块:相当于“工作日志”,通过向量数据库或记忆流记录历史交互和任务过程,供后续规划和参考(比如记住你之前的需求偏好)。

搞懂了AI Agent的基础逻辑,接下来我们逐个拆解三大核心协议——看它们是如何协同工作,让大模型从“只会说话”变成“能干活”的。

二、MCP协议:Agent如何“找到并使用”外部工具?

MCP的全称是Model Context Protocol(模型上下文协议),很多新手看到“Model”会误以为它直接和大模型交互——这里再次强调:MCP只负责Agent和外部工具的通信,和大模型没有直接交互

它的核心作用很简单:让AI Agent能用一种通用的方式,找到(发现)、登记(注册)并使用(调用)外部工具。比如你想让Agent查天气,MCP就负责让Agent“认识”天气查询工具,并正确调用它。

光说概念太抽象,我们用一个完整的实战案例,带大家亲手实现一个MCP Server,看它到底是怎么工作的。

2.1 实战:实现一个“查天气”的MCP Server

我们会搭建一个模拟天气查询的MCP Server,再通过Cline Agent(VS Code插件)调用它,最后通过日志分析MCP的通信过程。新手跟着步骤走就能完成,所需工具都列好了。

第一步:准备工作

  • 安装VS Code,并安装Cline Agent插件(目前仅支持VS Code)。
  • 安装Python(3.8+),以及uv工具(Python包管理工具,比pip更高效):安装后设置镜像源加速,在环境变量中添加UV_INDEX_URL=https://repo.huaweicloud.com/repository/pypi/simple/
  • 准备一个可用的大模型服务(比如OpenAI、DeepSeek、OpenRouter等,不需要本地部署,有API密钥即可)。

第二步:创建Python项目并初始化

# 创建项目文件夹并进入mkdirmcpserver&&cdmcpserver# 用uv初始化项目uv init# 创建并激活虚拟环境(Windows系统)uvsync.venv\Scripts\activate# 安装mcp依赖包uvaddmcp

第三步:编写MCP Server代码(模拟天气查询)

创建文件mcp_weather_server.py,代码如下(含详细注释,新手能看懂):

frommcp.server.fastmcpimportFastMCP# 1. 初始化FastMCP类,指定服务名称(用于识别)mcp=FastMCP("获取天气信息服务")# 2. 定义工具函数:获取指定城市的天气@mcp.tool("获取天气信息")# 标记为MCP工具,名称会被Agent识别defget_forecast(city)->str:""" 工具功能描述:获取指定城市的天气信息 参数: city (str):城市名称(必填) 返回: str:包含城市和天气的文本信息 """# 这里用Mock数据模拟(真实场景需调用第三方天气API,比如高德、百度天气API)returnf"{city}明天有大暴雨!请提前做好防护~"# 3. 启动MCP Server(采用stdio传输方式,方便日志捕获)if__name__=='__main__':print("MCP Server 启动成功,等待Agent连接...")mcp.run(transport='stdio')print("MCP Server 退出")

第四步:添加日志工具(捕获通信内容)

为了看清Agent和MCP Server的通信细节,我们需要一个日志工具来截获交互数据。直接下载现成工具:mcp_logger.py(将文件放到项目根目录)。

这个工具的作用:捕获stdio方式下MCP Client(Agent内置组件)和Server之间的所有通信,并存到当前目录的mcp_io.log文件中。

第五步:在Cline Agent中配置并测试MCP Server

  1. 打开VS Code,点击左侧Cline Agent插件图标,选择“Configure MCP Servers”(配置MCP服务)。
  2. 在配置文件中添加启动命令:python mcp_logger.py uv run mcp_weather_server.py(意思是:通过日志工具启动我们写的MCP Server)。
  3. 保存配置后,若看到“获取天气信息”工具显示为绿色,说明配置成功、Server已启动。
  4. 测试:在Cline Agent的任务窗口输入“杭州明天的天气如何?”,观察结果——Agent会自动调用我们写的get_forecast工具,返回天气信息。

2.2 解析MCP协议:通信的3个核心阶段

打开项目根目录的mcp_io.log文件,就能看到完整的通信内容。MCP基于JSON-RPC协议(一种简洁的远程调用协议),整个过程分为3个阶段,新手看日志就能秒懂:

1. 初始化阶段:Client与Server“握手”

Agent内置的MCP Client先向Server发送初始化请求,确认协议版本、双方能力等信息;Server返回确认信息,完成“握手”。

// Client发送初始化请求{"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"CodeMate","version":"25.2.200"}},"jsonrpc":"2.0","id":0}// Server返回确认{"jsonrpc":"2.0","id":0,"result":{"protocolVersion":"2025-06-18","capabilities":{"experimental":{},"prompts":{"listChanged":false}},"serverInfo":{"name":"获取天气信息服务","version":"1.16.0"}}}

2. 工具注册阶段:Client“询问”可用工具

握手完成后,Client会主动询问Server:“你有哪些可用的工具、资源?”;Server会把我们定义的get_forecast工具信息(名称、描述、参数要求、返回格式)返回给Client。

// Client询问工具列表{"method":"tools/list","jsonrpc":"2.0","id":1}// Server返回工具详情{"jsonrpc":"2.0","id":1,"result":{"tools":[{"name":"获取天气信息","description":"获取指定城市的天气信息...","inputSchema":{"properties":{"city":{"type":"string"}},"required":["city"]}}]}}

3. 工具调用阶段:Client“下达”调用指令

当大模型判断需要调用工具时,会通过Agent让MCP Client发送调用请求(含工具名称和参数,比如“城市=杭州”);Server执行工具函数后,返回结果。

// Client发送调用请求(调用“获取天气信息”工具,参数city=杭州){"method":"tools/call","params":{"name":"获取天气信息","arguments":{"city":"杭州"}},"jsonrpc":"2.0","id":4}// Server返回结果{"jsonrpc":"2.0","id":4,"result":{"content":[{"type":"text","text":"杭州 明天有大暴雨!请提前做好防护~"}]}}

总结MCP的本质:就是一套“Agent找工具、认工具、用工具”的通用规则,让Agent能无缝对接各类外部工具,不用为每个工具单独开发适配代码。

这里留一个疑问:大模型是怎么知道“需要调用工具”的?比如问“杭州天气”,它为什么不直接猜,而是让Agent调用天气工具?这就需要第二个核心协议——Function Calling。

三、Function Calling:大模型“学会用工具”的关键

Function Calling(函数调用)的核心作用:通过Prompt指导大模型,让它知道“什么时候该用工具、用哪个工具、怎么传参数”。这也是大模型区别于传统自动化脚本的关键——用“柔性的Prompt指导”替代“刚性的规则编写”,能处理更多不确定场景。

很多新手以为Function Calling是大模型的“内置功能”,其实不然:大模型本身并不知道“工具”是什么,是Agent通过一段精心设计的Prompt,把工具的用法“教”给了它。我们可以通过查看Cline Agent的源码(Cline的system prompt),直观理解这个过程。

注:Cline的system prompt有600多行、近5万个字符,会消耗5000多个tokens——这也是很多人吐槽Cline Agent“费Token”的原因~ 我们截取核心部分拆解:

3.1 4部分核心Prompt:教大模型用工具

1. 身份声明:给大模型“定角色”

先明确大模型的身份,激活它对应的能力(类似“角色扮演”)。比如Cline是编程Agent,就会这样声明:

You are Cline, a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.

作用:让大模型快速进入“软件工程师”角色,更精准地处理编程相关的工具调用需求。

2. 能力声明:告诉大模型“能做什么”

明确告知大模型:你可以使用工具,并且要按指定格式和Agent沟通(比如XML标签),还要遵循“思考+行动”(ReAct)模式。

TOOL USE You have access to a set of tools that are executed upon the user's approval. You can use one tool per message, and will receive the result of that tool use in the user's response. You use tools step-by-step to accomplish a given task, with each tool use informed by the result of the previous tool use. # Tool Use Formatting Tool use is formatted using XML-style tags. The tool name is enclosed in opening and closing tags, and each parameter is similarly enclosed within its own set of tags. Here's the structure: <tool_name> <parameter1_name>value1</parameter1_name> <parameter2_name>value2</parameter2_name> ... </tool_name>

作用:给大模型定好“使用工具的规则”,避免它乱调用或格式错误。

3. 工具列表:给大模型“列工具说明书”

这是最核心的部分:把所有可用工具(包括Cline内置工具和我们通过MCP注册的自定义工具)的信息,详细告诉大模型——包括工具名称、功能描述、参数要求、输入输出格式。

比如我们之前注册的“获取天气信息”工具,会以这样的形式出现在Prompt中:

# Connected MCP Servers When a server is connected, you can use the server's tools via the `use_mcp_tool` tool. ## weather (python mcp_logger.py uv run mcp_weather_server.py) ### Available Tools - get_forecast: 获取天气信息 Args: city: 城市名称(必填) Input Schema: { "type": "object", "properties": { "city": {"title": "city", "type": "string"} }, "required": ["city"] }

作用:让大模型清楚“有哪些工具可用”“调用这个工具需要传什么参数”。比如用户问“杭州天气”,大模型看到这段Prompt,就知道要调用get_forecast工具,且必须传city="杭州"参数。

4. 任务完成规则:告诉大模型“什么时候收尾”

明确任务完成的条件和反馈格式:当所有工具调用完成、确认结果正确后,用<attempt_completion>标签返回最终结果。

## attempt_completion Description: Once you've received the results of tool uses and can confirm that the task is complete, use this tool to present the result of your work to the user. Parameters: - result: (required) The result of the task. Formulate this result in a way that is final. - command: (optional) A CLI command to demonstrate the result. Usage: <attempt_completion> <result>最终结果描述</result> <command>可选演示命令</command> </attempt_completion>

3.2 Function Calling的本质:用Prompt实现“柔性指导”

看完上面的拆解,相信大家能明白:Function Calling不是什么复杂的底层技术,而是通过“详细的Prompt指导”,让大模型学会“根据用户需求选择并调用工具”

这种方式的优势很明显:传统自动化脚本需要为每个场景写死规则(比如“如果用户问天气,就调用XX接口”),而大模型通过Prompt能处理模糊需求(比如“帮我查下周末去杭州要不要带伞”)——它会先推理出“需要查杭州周末天气”,再调用对应的工具,最后根据结果给出建议。

四、Context Engineering:Agent的核心是“做好上下文”

通过前面的分析,我们能得出一个关键结论:Agent的本质是一套精心设计的Prompt,而Prompt的核心是“上下文(Context)”

大模型是“上下文学习者”——它没有长期记忆,每次交互的判断都只基于当前收到的上下文。所以,要让大模型具备Agent的能力,必须把“正确的信息”整理成上下文传递给它。这个“整理上下文”的工作,就是Context Engineering(上下文工程)。

一个完整的Agent上下文,除了前面说的“工具说明Prompt”,还包括这些内容:

  • System Prompt:大模型的身份、能力、工作规则(就是我们上一节拆解的内容)。
  • User Message:用户的原始需求(比如“查杭州明天天气”)。
  • 领域知识(Docs):和任务相关的专业知识、工作对象信息(比如编程Agent需要的编程语言规范、项目文档)。
  • 工作记忆(Message History):之前的交互记录、工具调用结果(比如Agent之前调用过天气工具,结果需要存在记忆里供后续参考)。

这里再呼应前面的知识点:为什么MCP和大模型无关?因为MCP的核心作用是“为上下文提供工具信息”——它把外部工具的详情传递给Agent,Agent再把这些信息整理到上下文中,最后传递给大模型。MCP本身不参与和大模型的直接交互,只是上下文工程的“信息供应商”。

补充:Context Engineering和Prompt Engineering的区别——前者更侧重“整理多源信息,构建完整的上下文环境”,后者更侧重“优化单条Prompt的表述”。Agent的实现,核心依赖Context Engineering。

五、A2A协议:多Agent协同的“沟通规则”

前面讲的都是“单个Agent+单个大模型”的场景,但实际应用中,很多复杂任务需要多个Agent协同完成(比如“整理项目文档+生成总结+制作PPT”)。这时候就需要A2A协议。

A2A的全称是Agent to Agent Protocol(智能体间协议),是Google开源的一套开放协议,核心作用:让多个Agent之间能互相发现、分配任务、协同工作

为什么需要A2A?因为单个Agent的上下文窗口有限——如果把所有工具、知识都塞进一个Agent的上下文,很容易超出窗口限制,还会导致“Context Rot”(上下文偏移,大模型抓不住重点)。就像我们人类做复杂任务需要分工合作一样,多Agent通过A2A协议分工,能大幅提升效率和准确性。

5.1 A2A的核心概念(新手快速理解)

A2A协议定义了几个关键概念,确保多Agent能顺畅沟通,用表格总结如下:

核心概念通俗解释
Agent Card(智能体卡片)每个Agent的“身份证”,存在于/.well-known/agent.json文件中,包含Agent的能力、技能、通信地址、认证要求等,供其他Agent发现。
A2A Server(服务器)Agent的“通信中枢”,负责处理其他Agent的请求、管理任务执行。
A2A Client(客户端)Agent的“请求发送器”,负责向其他Agent发送任务请求、接收结果。
Task(任务)协同工作的“最小单位”,有唯一ID和状态(如“已提交”“处理中”“已完成”)。
Message(消息)Agent之间的“沟通内容”,包含发送者角色(用户/Agent)和具体信息。
Artifacts(工件)任务的“输出结果”,比如文档、数据、总结报告等。

5.2 A2A的工作流程(简化版)

A2A和MCP一样基于JSON-RPC协议,工作流程很简单,核心分为5步:

  1. 发现:Agent通过读取其他Agent的 Agent Card,了解其能力和通信地址。
  2. 启动:发起协同的Agent(Client)向目标Agent(Server)发送任务请求。
  3. 处理:目标Agent接收任务后,执行并通过流式传输(SSE)实时更新任务状态。
  4. 交互(可选):如果需要补充信息,目标Agent会向发起Agent请求输入。
  5. 完成:任务执行完成(或失败、取消),目标Agent返回结果(Artifacts)。

六、总结:三大协议的协同逻辑

最后用一张图和一段话,帮大家梳理清楚三大协议的核心价值和协同关系:

纯大模型是“思想巨人,行动矮子”,AI Agent通过Context Engineering(上下文工程)给大模型装上“身体”和“智慧”,而MCP、Function Calling、A2A三大协议是Agent的“核心骨架”:

  • Function Calling:负责“大脑(大模型)”和“身体(Agent)”的协同,让大模型知道“怎么用工具”。
  • MCP:负责“身体(Agent)”和“外部工具”的连接,让Agent能“找到并使用工具”。
  • A2A:负责“多个身体(多Agent)”的协同,让复杂任务能“分工完成”。

这三大协议不是互相替代的关系,而是互补协同的——它们共同让大模型从“文本交互”走向“实际落地”,为AGI(通用人工智能)的实现奠定了基础。

那么,如何系统的去学习大模型LLM?

作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~

为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

👉大模型学习指南+路线汇总👈

我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询