2026 最火 AI Agent 智能体开发实战:用 LangChain + LangGraph 从零构建企业级多智能体协作系统

📅 2026/7/21 8:11:04
2026 最火 AI Agent 智能体开发实战:用 LangChain + LangGraph 从零构建企业级多智能体协作系统
2026 最火 AI Agent 智能体开发实战用 LangChain LangGraph 从零构建企业级多智能体协作系统![AI Agent 智能体开发](cover.jpg)**摘要**2026 年 WAIC 现场AI Agent智能体成为绝对主角——从能说到会干AI 正在迈入真正的智能协作时代。本文将从零开始带你手把手构建一个支持任务拆解、工具调用、多 Agent 协同的企业级智能体系统全部基于 LangChain LangGraph 最新框架实现。---一、为什么 2026 年是 AI Agent 元年2026 年 7 月 17 日上海 WAIC 2026 现场释放出一个清晰的信号AI 正从能聊迈向会干。Gartner 预测到 2026 年底40% 的企业应用将内置 AI Agent远高于前几年的个位数水平。与传统的 Chatbot 不同AI Agent智能体能够自主拆解任务、调用工具、规划执行路径最终交付完整的业务成果。印奇在 WAIC 主论坛演讲中指出2026 年模型能力正在跨越关键临界点AI 已从只能连续执行数秒任务进阶到能够独立工作数十小时。那么对于开发者来说如何快速搭建一个生产级的 AI Agent 系统本文选择业界最主流的LangChain LangGraph技术栈带你实战构建一个多 Agent 协作系统——它能够自动处理客户工单包括查询订单、退换货、生成报告等复杂任务。---二、技术选型LangChain LangGraph 为何成为黄金组合在 2026 年的 AI Agent 开发领域LangChain 和 LangGraph 已经成为事实标准| 组件 | 职责 | 2026 年最新特性 ||------|------|----------------||LangChain| 模型调用、Prompt 管理、工具集成 | 原生支持 GPT-5.6 / DeepSeek-V4 / Claude Fable-5 ||LangGraph| 工作流编排、状态管理、多 Agent 协作 | 支持 Graph Recursion、Human-in-the-Loop Checkpoint ||LangSmith| 可观测性、调试、评估 | 支持 Agent 全链路 Trace | **核心优势**LangGraph 将 Agent 工作流建模为有向图DAG每个节点是一个 Agent 或工具调用清晰可控非常适合生产环境。---三、环境准备5 分钟搭建开发环境首先安装必要的依赖包# 创建项目目录 mkdir ai-agent-demo cd ai-agent-demo # 使用 Python 3.112026 年推荐版本 python3 -m venv .venv source .venv/bin/activate # 安装核心依赖 pip install langchain0.5.0 langgraph0.6.0 langchain-openai pip install langchain-community chromadb tiktoken pip install python-dotenv httpx # 安装开发工具 pip install black isort mypy配置环境变量.env 文件# 选择你偏好的模型2026 年主流选项 OPENAI_API_KEYsk-xxx # 支持 GPT-5.6 Sol/Terra DEEPSEEK_API_KEYsk-xxx # DeepSeek-V4 正式版 ANTHROPIC_API_KEYsk-xxx # Claude Fable-5---四、核心实战构建多智能体客服系统我们将构建一个三级 Agent 协作系统1.Router Agent路由智能体判断用户意图分派任务2.Tool Agent工具智能体调用内部 API / 数据库3.Report Agent报告智能体汇总结果生成结构化报告4.1 定义工具集合首先定义 Agent 可以调用的工具from langchain.tools import tool from datetime import datetime from typing import Dict, Optional import httpx tool def query_order(order_id: str) - Dict: 根据订单 ID 查询订单状态和详情 # 模拟数据库查询 orders_db { ORD-20260701: { status: 已发货, amount: 299.00, tracking: SF1234567890, items: AI编程鼠标 x1 }, ORD-20260715: { status: 已签收, amount: 1599.00, tracking: SF9876543210, items: 机械键盘 x1 显示器支架 x1 }, } return orders_db.get(order_id, {error: 订单未找到}) tool def check_refund_policy(order_id: str) - str: 查询退款退货政策 return ( 7天无理由退换货未拆封\n 15天内质量问题包退包换\n 30天内有偿维修\n 注生鲜/定制产品不支持无理由退货 ) tool def get_weather(city: str) - str: 查询指定城市今日天气 # 2026 年集成天气 API 示例 return f{city} 今日天气晴28-34°C东南风3级适宜出行。 tool def search_product(keyword: str, limit: int 3) - str: 搜索商品信息 products { 机械键盘: [ RK100 三模机械键盘 299元, Keychron Q1 Pro 899元, 罗技 MX Mechanical 1499元, ], 显示器: [ Dell U2724D 27寸 4K 2599元, 小米 27寸 4K 1599元, ], } for k, items in products.items(): if k in keyword: return \n.join(items[:limit]) return f未找到{keyword}相关商品 # 工具注册 tools [query_order, check_refund_policy, get_weather, search_product]4.2 构建 Router Agent路由层路由 Agent 负责分析用户消息并决定交由哪个子 Agent 处理from langchain_openai import ChatOpenAI from langgraph.graph import StateGraph, MessagesState from langgraph.prebuilt import ToolNode from langgraph.checkpoint import MemorySaver # 初始化 LLM2026 年推荐 GPT-5.6 Terra 或 DeepSeek-V4 llm ChatOpenAI( modelgpt-5.6-terra, # 或 deepseek-v4 temperature0.1, max_tokens4096, ) # 路由系统提示词 ROUTER_SYSTEM_PROMPT 你是一个智能路由 Agent。分析用户输入将其归类为以下之一 - order: 订单查询、退换货、物流相关问题 - product: 商品搜索、推荐、对比 - general: 通用问答、闲聊 - weather: 天气查询 仅输出分类名称不要额外解释。 def router_node(state: MessagesState) - MessagesState: 路由节点判断用户意图 messages [ {role: system, content: ROUTER_SYSTEM_PROMPT}, *state[messages] ] response llm.invoke(messages) category response.content.strip().lower() # 将分类信息注入 state state[route] category return state4.3 构建 Tool Agent执行层Tool Agent 根据路由结果调用相应工具# 绑定工具到 LLM tool_llm llm.bind_tools(tools) TOOL_AGENT_PROMPT 你是一个专业的客服工具调用 Agent。 根据用户问题选择正确的工具并按顺序调用。 调用完成后用简洁的中文总结结果给用户。 注意一次只调用一个工具等待结果后再决定下一步。 def tool_agent_node(state: MessagesState) - MessagesState: 工具执行节点 route state.get(route, general) # 根据路由选择执行策略 if route weather: # 天气查询直接走工具 messages [ {role: system, content: TOOL_AGENT_PROMPT}, *state[messages] ] result tool_llm.invoke(messages) elif route order: messages [ {role: system, content: TOOL_AGENT_PROMPT}, *state[messages] ] result tool_llm.invoke(messages) elif route product: messages [ {role: system, content: TOOL_AGENT_PROMPT}, *state[messages] ] result tool_llm.invoke(messages) else: # 通用问答直接回复 result llm.invoke(state[messages]) state[messages].append(result) return state # 创建工具调用节点 tool_executor ToolNode(tools)4.4 构建图工作流LangGraph 核心这是整个系统的灵魂——用 LangGraph 组装所有节点from langgraph.graph import END def build_agent_graph() - StateGraph: 构建多 Agent 协作图 # 1. 定义状态图 graph StateGraph(MessagesState) # 2. 注册节点 graph.add_node(router, router_node) graph.add_node(tool_agent, tool_agent_node) graph.add_node(tools, tool_executor) # 3. 定义条件边根据路由结果分流 def route_decision(state: MessagesState) - str: route state.get(route, general) if route in (order, product, weather): return tool_agent return general # 4. 构建连接 graph.set_entry_point(router) graph.add_conditional_edges( router, route_decision, { tool_agent: tool_agent, general: END, } ) # 5. 工具调用循环如果 Agent 决定调用工具进入工具节点 graph.add_edge(tool_agent, tools) # 工具返回后回到 tool_agent形成循环 graph.add_edge(tools, tool_agent) # 6. 编译图 return graph.compile( checkpointerMemorySaver(), # 支持记忆和状态恢复 ) # 构建并测试 agent_app build_agent_graph()4.5 运行测试# 测试 1订单查询 config {configurable: {thread_id: test-001}} result agent_app.invoke( {messages: [{role: user, content: 帮我查一下 ORD-20260701 的订单状态}]}, config ) print(result[messages][-1].content) # 输出查到订单 ORD-20260701 状态为【已发货】含商品 AI编程鼠标 x1金额 299.00 元。 # 快递单号SF1234567890您可以在这两天注意查收哦 # 测试 2商品搜索 config2 {configurable: {thread_id: test-002}} result agent_app.invoke( {messages: [{role: user, content: 有什么好用的机械键盘推荐}]}, config2 ) print(result[messages][-1].content) # 输出为您推荐以下几款机械键盘 # 1. RK100 三模机械键盘 299元入门性价比之选 # 2. Keychron Q1 Pro 899元客制化用户最爱 # 3. 罗技 MX Mechanical 1499元办公旗舰款 # 测试 3天气查询 config3 {configurable: {thread_id: test-003}} result agent_app.invoke( {messages: [{role: user, content: 上海今天天气怎么样}]}, config3 ) print(result[messages][-1].content) # 输出上海今日天气晴28-34°C东南风3级适宜出行。建议做好防晒哦---五、进阶技巧Human-in-the-Loop 与 Graph Recursion生产环境中我们需要引入人工审核和循环限制防止 Agent 死循环from langgraph.checkpoint import MemorySaver from langgraph.types import Command class HumanInputNode: 人工介入节点在关键操作前暂停等待人类确认 def __call__(self, state: MessagesState) - Command: # 检查是否需要人工审核 last_msg state[messages][-1].content if state[messages] else if any(kw in last_msg for kw in [退款, 取消订单, 投诉]): return Command( update{messages: [{role: assistant, content: ⚠️ 该操作需要人工审核已创建工单 #TK-20260720-001}]}, gotohuman_review ) return Command(gototool_agent) # 添加人工审核节点到图 graph.add_node(human_review, human_input_node) # 限制递归深度防止死循环 MAX_RECURSION 10 def limited_recursion(state: MessagesState) - str: 递归次数限制 recursion_count state.get(recursion_count, 0) 1 state[recursion_count] recursion_count if recursion_count MAX_RECURSION: return max_depth return continue---六、生产部署建议将 Agent 部署为 FastAPI 服务from fastapi import FastAPI, HTTPException from pydantic import BaseModel app FastAPI(titleAI Agent Service 2026) class ChatRequest(BaseModel): message: str session_id: str default class ChatResponse(BaseModel): reply: str session_id: str app.post(/api/chat, response_modelChatResponse) async def chat(req: ChatRequest): 多 Agent 对话接口 config {configurable: {thread_id: req.session_id}} try: result agent_app.invoke( {messages: [{role: user, content: req.message}]}, config ) return ChatResponse( replyresult[messages][-1].content, session_idreq.session_id ) except Exception as e: raise HTTPException(status_code500, detailstr(e)) app.get(/health) async def health(): return {status: ok, timestamp: datetime.now().isoformat()} # 启动命令uvicorn main:app --host 0.0.0.0 --port 8000---七、总结与展望本文从WAIC 2026 的 AI Agent 热潮出发基于LangChain LangGraph技术栈从零构建了一个支持路由分发、工具调用、多 Agent 协作的企业级智能体系统。 关键要点| 维度 | 要点 ||------|------||路由设计| 使用 Router Agent 实现意图分类和任务分发 ||工具集成| 通过 tool 装饰器快速接入任意 API / 数据库 ||工作流编排| LangGraph 有向图模型清晰可控 ||安全机制| Human-in-the-Loop 递归深度限制 ||部署方案| FastAPI 容器化部署支持水平扩展 | 2026 下半年趋势预测• **多 Agent 协作集群**将成为企业默认架构模式• **Agent 安全框架**权限隔离、审计日志会变成刚需• **Vibe Coding Agent** 让非程序员也能构建 AI 工作流• **物理 Agent**具身智能将在仓储、制造场景大规模试用 **文章配套代码已上传 GitHub**关注「人间凡尔赛」获取完整项目源码---本文发布于 2026 年 7 月 20 日内容基于 WAIC 2026 最新趋势与开源技术栈编写。