简介

本文提供一个简短教程,展示如何使用 LangGraphMCP(模型上下文协议)Ollama 创建多代理聊天机器人,构建适用于商业或个人使用的强大智能代理聊天机器人。

不久前,我制作了一段关于模型上下文协议(MCP)的视频。一些开发者将其比喻为“为AI打造的Zapier”,认为它仅为API使用增加了额外步骤。

“在MCP出现之前,开发者需要编写代码并通过API将AI工具连接到外部系统,这意味着每个集成都需要提前编码。” —— John Rush

尽管MCP于2024年11月发布,但近期突然流行,引发了关于其“繁荣期”持续时间的讨论。LangChain 在 X 平台上发起投票,结果显示:

•40.8% 认为 MCP 是未来标准;•25.8% 认为 MCP 只是昙花一现;•33.4% 选择观望。

MCP 虽新,但已支持 GitHub、Slack 和 PostgreSQL 等服务。作为开放标准,它可与任何大语言模型(LLM,如 Claude、OpenAI、Gemini 等)配合使用,令人惊讶。

接下来,我将通过实时聊天机器人演示展示其效果。

演示

我将向聊天机器人提出两个问题:

1.“你能写一份关于最新大语言模型的报告吗?”
您也可自由提问。

观察聊天机器人输出,代理通过 create_chatbot 函数使用结构化流程处理输入。该函数整合系统指令、用户消息和工具执行,形成流畅交互,并根据查询选择工具。

对于第一个问题,聊天机器人调用 Google 搜索工具获取最新信息并生成报告。对于第二个问题,“编写一个使用 Seaborn 创建带回归线的散点图的 Python 脚本”,聊天机器人处理请求并路由到适当工具(如 python_repldata_visualization),具体取决于查询结构。async_tool_executor 动态处理工具调用,确保同步和异步功能(如生成代码或可视化)正确执行。

StateGraph 管理对话状态,确保后续问题响应准确且具上下文相关性。get_tools 函数确保仅使用可用工具,维护系统稳定性。main 函数确保顺畅运行,实时处理用户输入、调用工具并处理输出。

通过本文,您将了解 MCP 与函数调用(Function Call)的区别、何时使用两者,以及如何使用 LangGraph、MCP 和开源工具创建强大的智能代理聊天机器人。

开始之前!🦸🏻‍♀️

如果您喜欢此主题并想支持我:

•为文章鼓掌50次,助力我前行!👏•在 Medium 上关注我并订阅,免费获取最新文章🫶•订阅我的 YouTube 频道,加入大家庭!

MCP 与函数调用的区别

函数调用中,AI 像遵循严格脚本的工人,仅能调用预定义工具,逐一执行,限制于已获取工具。而在 MCP 中,AI 像拥有工具箱的代理,可探索新工具、组合使用,处理更多任务,拥有更大自主性。

函数调用与模型提示紧密耦合,开发者需管理调用顺序,控制性强但灵活性有限。MCP 通过开放协议实现松耦合,灵活可扩展,但需精心设计以管理复杂性和确保安全性。下一节将探讨如何使用 MCP 构建代理并应对其灵活性挑战。

何时使用函数调用和 MCP

选择函数调用或 MCP 取决于用例:

函数调用:适用于明确定义的简单动作或单步查询,需高度结构化输出。适合可预测任务和轻量集成,MCP 的额外开销可能过重。若需结构化、狭窄任务和简单应用集成,选择函数调用。•MCP:适用于需灵活性、多功能工具或跨交互演变上下文的场景。适合复杂、多步骤工作流程,或 AI 需维护长期上下文并与多种系统交互(如跨内部系统的通用助手,调用多数据源)。

两者不互斥,可互补。例如,函数调用可在 MCP 客户端内处理模型结构化输出。概念上,函数调用将自然语言转化为可控的函数执行,而 MCP 为 AI 提供更广接口以探索和操作环境。

开始编码

让我们逐步探索如何创建 MCP 应用程序。首先安装支持模型的库:

pip install -r requirements.txt

接下来导入相关库,其重要性将在后续显现:

langchain_mcp_adapters:将 MCP 工具转为 LangChain 工具,供 LangGraph 代理使用,提供客户端实现,连接多个 MCP 服务器加载工具。•MCP:开放协议,标准化应用程序为大语言模型提供上下文。•googlesearch-python:便于 Google 搜索的包。

代码文件概览

agent.py

我设计了 create_agent 函数作为异步过程构建 AI 代理,接受可选参数 docs_info 提供聊天机器人数据。MultiServerMCPClient 集成到异步上下文管理器,确保与 MCP 服务器(http://localhost:8000/sse)通过服务器发送事件(SSE)无缝通信,超时30秒。

调用 client.get_tools() 获取 MCP 工具,启用高级功能。使用 MessagesState 构建 StateGraph 管理对话状态,通过 create_chatbot(docs_info) 创建聊天机器人节点,处理和交互文档。

from langchain_core.messages importAIMessage,ToolMessage,HumanMessage

async_tool_executor 动态处理工具调用,输入为包含对话消息列表的 state。提取最后消息(messages[-1])检查工具调用,从 tool_callsadditional_kwargs 获取。若无工具调用,返回未更改消息。

为处理工具调用,复制消息到 new_messages,遍历每个工具调用,提取 tool_nametool_argstool_id,支持字典和对象格式。匹配 tool_name 查找工具;若未找到,生成错误消息列出有效工具。

若工具存在,使用 asyncio.iscoroutinefunction() 判断是否异步函数——若异步,执行 await tool.coroutine(**tool_args);否则,调用 tool.func(**tool_args)tool(**tool_args)。通过捕获异常处理错误,附加详细错误消息到 new_messages

asyncdefasync_tool_executor(state):

通过集成异步工具执行节点和路由函数,设计了结构化对话流程。添加 async_tool_executor 作为“tools”节点,动态处理工具调用。创建路由函数,根据最后消息决定下一步:若 AI 消息含工具调用,路由到“tools”;否则,结束对话。

为图添加边:从“chatbot”开始,条件路由到“tools”或“end”,并将“tools”循环回“chatbot”,支持多次工具交互。

graph_builder.add_node("tools", async_tool_executor)
nodes.py

get_system_prompt 函数动态生成 AI 助手系统提示,确保明确指导和上下文感知。使用 datetime.now().strftime("%Y-%m-%d") 格式化当前日期嵌入提示,提供实时参考。

定义助手角色和能力,列出三个工具:generate_image(DALL-E 生成图像)、data_visualization(matplotlib 生成图表)、python_repl(Python 执行环境)。

from server import get_tools

create_chatbot 函数处理用户输入并生成 AI 响应,使用 ChatPromptTemplate 结合系统指令(来自 get_system_prompt)和用户消息。通过管道(|)将提示传递到 LLM,创建无缝处理链。

函数将字符串转为 HumanMessage 对象,确保消息格式一致。聊天机器人调用 LLM 处理用户消息并附加响应,维护结构化对话历史。助手遵循规则,适应查询,保持工具无关性,提供灵活响应,确保互动动态体验。🚀

defcreate_chatbot(docs_info=None):
server.py

开发了一套工具,用于生成图像、可视化数据和执行 Python 代码。generate_image 工具使用 DALL-E 根据提示生成图像,验证提示有效后,异步调用 OpenAI API,成功返回图像 URL,失败返回错误消息。

data_visualization 工具使用 matplotlib 执行 Python 代码创建图表,保存为 base64 编码的 PNG 图像。python_repl 工具在 REPL 环境运行 Python 代码,提供动态执行。工具均设计为处理错误并返回有意义响应。

from mcp.server.fastmcp importFastMCP

get_tools 函数返回可用工具列表,确保仅包含功能性工具,包括 generate_imagepython_repldata_visualization。若提供 retriever_tool,则加入列表。脚本通过 mcp.run(transport="sse") 运行 MCP 服务器,确保工具可用。

defget_tools(retriever_tool=None):
main.py

main 函数运行异步代理,动态处理用户输入和工具交互。通过 await create_agent() 创建代理和客户端,通过命令行获取用户输入,构造 HumanMessage

通过 agent.ainvoke() 异步调用代理处理请求,打印用户输入或工具结果(若为图像生成,提取 URL)。捕获异常并打印。客户端保持活跃,脚本通过 asyncio.run(main()) 异步执行。

import streamlit as st

结论

MCP 不仅是工具调用协议的升级,而是范式变革。它提供通用开放标准,使 AI 系统以标准化方式连接数据源、工具和服务,减少单独连接器需求,简化集成。

非智能服务可通过 MCP 暴露功能为“工具”,供大语言模型调用,无需大幅修改现有系统即可交互和执行任务。

学习是持续的过程,充满挑战。天道酬勤,愈努力愈优秀。

想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年 AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享

👇👇扫码免费领取全部内容👇👇

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势

想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI

1. 100+本大模型方向电子书

在这里插入图片描述

2. 26 份行业研究报告:覆盖多领域实践与趋势

报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:

  • 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
  • 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
  • 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
  • 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。

3. 600+套技术大会 PPT:听行业大咖讲实战

PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

在这里插入图片描述

  • 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
  • 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
  • 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
  • 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。

二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走

想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位

面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析

2. 102 道 AI 大模型真题:直击大模型核心考点

针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题

专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:


三、路线必明: AI 大模型学习路线图,1 张图理清核心内容

刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

在这里插入图片描述

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

img

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

img

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

img

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

img

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

img

L5阶段:专题集丨特训篇 【录播课】

img
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐