ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

LangChain+MCP+LangGraph:从零搭建可控AI Agent工作流

LangChain+MCP+LangGraph:从零搭建可控AI Agent工作流 2026 年的 AI 应用开发已经不是“调 API、写 prompt”就能撑住的阶段了。项目中只要涉及多步骤决策、外部工具调用、多轮状态维护LangChain、MCP、LangGraph 这三个关键词就一定会出现。它们的关系并不复杂LangChain 负责把大模型和工具编排起来MCP 负责把外部工具接入标准化LangGraph 负责把多步骤流程变成可控状态图最后落地的形态就是 Agent。这篇文章的核心不是讲概念而是走一遍最小可运行链路环境配置、定义工具、写 Agent、接 MCP、用 LangGraph 搭一个多步工作流再把它封装成 API跑一个批量任务。整个过程会尽量贴工程实践不绕弯不堆术语。你跟着做完一遍至少能知道 Agent 项目从“能跑”到“能交付”之间到底隔了哪些关键节点。先交代硬件与门槛如果走纯 API 模式只需要 Python 3.10、一个模型 API Key 和网络完全没有显卡压力如果要本地模型推理硬件门槛取决于模型大小常见的 7B 量化模型建议 8G 以上显存没有独显也能用 CPU 跑但速度会明显下降。这看起来是现代 AI 项目里非常标准的门槛但真正卡住人的往往不是显卡而是依赖环境、状态管理和工具调用接口没有理顺。1. 核心能力速览先给一张规格表方便快速判断这个技术栈适不适合你。能力项说明技术栈LangChain MCP LangGraph Agent项目类型AI Agent 应用开发框架组合主要能力LLM 调用、工具构建、MCP 工具接入、图状态工作流、批量任务、API 封装运行方式Python 脚本 / CLI / FastAPI 服务硬件门槛纯 API 模式无 GPU 要求本地模型模式取决于模型大小建议 8G 以上显存接口 API支持需要自己封装 FastAPI 或类似服务批量任务支持可脚本循环、异步队列、LangGraph 批处理适合读者Python 开发者、AI 应用开发者、想从 Demo 走向工程化的团队部署复杂度中等难点在依赖兼容和工具调用链路调试这套组合最明显的优势是“分层清晰”。LangChain 负责模型与工具之间的胶水MCP 负责统一工具接入格式LangGraph 负责管理复杂流程的分支和状态。单独拆开每一个都够用但它们组合起来才是 2026 年 Agent 应用的主流骨架。2. 四个核心概念别再搞混 LangChain、MCP、LangGraph 和 Agent很多人第一次接触这套技术栈时最常问的问题是“它们之间到底有什么区别”。这里用一个表格先做出区分然后逐一说清楚。组件定位主要作用典型应用LangChain编排框架封装模型调用、Prompt 模板、工具调用、RAG 等基础能力把 LLM 和外部工具连起来MCP工具接入协议用统一协议让 Agent 调用文件、数据库、HTTP 服务等外部能力标准化工具接入避免为每个工具写适配代码LangGraph图状态工作流引擎用节点和边构建有状态、可分支、可恢复的 Agent 流程多步骤流程、条件分支、多智能体协作Agent产品形态根据用户目标自主决策循环调用模型和工具直到完成任务客服机器人、自动化助手、数据分析 Agent2.1 LangChain不是“一个库”而是一整套编排生态LangChain 最核心的贡献是让“模型调用”这件事变得更工程化。你可以用统一的接口对接不同模型供应商可以用 Prompt 模板复用提示词可以把一个普通函数包装成 Agent 可调用的工具也可以快速做 RAG 检索。但在 2026 年这个时间点LangChain 已经不适合当作“全部答案”。它更准确的定位是“基础工具箱”模型接口、输出解析、工具包装、记忆管理这些能力LangChain 都能给。真正复杂的状态流转和分支逻辑建议交给 LangGraph 处理。2.2 MCP把“工具接入”变成标准协议MCP 全称 Model Context Protocol解决的是“每一家服务都要写一套自定义工具接入”的问题。它把文件操作、数据库查询、HTTP 请求、浏览器操作、设计工具能力等封装成标准接口供 Agent 按统一格式调用。从热门生态来看MCP 已经延伸到很多方向游戏引擎工具链、UI 设计工具、数据平台、自动化和办公软件都在接入。它的存在让 Agent 的工具生态从“每个工具一套 SDK”变成了“一套协议访问所有工具”。2.3 LangGraph把流程从混沌循环变成可控状态图普通 Agent 是一个 while 循环让模型决定下一步调用什么工具然后重复直到任务完成。这种模式在简单场景下很自然但一旦需要固定流程、条件分支、人工审核、多角色协作单纯循环就会变得很难维护。LangGraph 用图的方式显式定义节点和边。每个节点是一个计算步骤每条边决定下一步走到哪里所有中间结果都存在状态对象里。这样 Agent 的每一步都是可观测、可回放、可中断恢复的。2.4 顺带说清Computer Use 与 MCP 不是一回事搜索里经常把 Computer Use 和 MCP 放在一起比较这里值得说明。Computer Use 是指让模型直接操作计算机界面比如移动鼠标、点击按钮、输入文字本质是“模拟人去操作系统”MCP 则是通过协议直接调用工具的编程接口比如查询数据库、写文件、调 HTTP API本质是“让程序之间标准化通信”。在实际项目中两者可以互补需要操作没有 API 的旧系统时Computer Use 更合适目标系统提供 API 时MCP 更快、更稳定。不要因为名字里都有“工具连接”就把它们混成同一个东西。2.5 适用场景与使用边界这套组合真正适合的场景是“目标明确但路径不固定”的任务。例如让 Agent 根据用户查询去查数据库、再写一份 Markdown 报告让 Agent 搜集多个数据源后做对比分析让 Agent 按照固定的质检流程逐项检查输入内容并输出结构化结果。这些场景里Agent 需要决策、需要调用多个工具、需要维护中间状态正是 LangChain MCP LangGraph 的强项。不适合的场景也很明显如果只是单轮问答、一次性文案生成、简单分类任务直接用大模型调用接口更轻快引入全套 Agent 编排反而增加复杂度和延迟。安全与合规边界一定要前置考虑。当 Agent 被允许调用外部工具时它就有了“行动能力”。所有工具调用必须限定在合法授权范围内访问数据库要确认账号权限抓取网页要遵守目标站点条款处理用户隐私数据要遵守相关法规。涉及人脸、声音、版权素材的场景更要确认授权链完整。任何工具接入上线前都应先在隔离环境做权限测试。3. 2026 年 LangChain MCP LangGraph 环境准备在写第一行代码之前先把环境准备好。下面是一个经过整理的通用检查清单适用于大多数 Windows / macOS / Linux 开发机。3.1 基础环境清单检查项建议要求操作系统Windows 10/11、macOS、Ubuntu 20.04Python 版本Python 3.10 或更高包管理工具pip 或 uv模型访问方式OpenAI 兼容 API Key或本地 Ollama / vLLM 服务网络能访问模型 API国内环境可用 OLLAMA 或国产模型平台需按实际服务地址配置磁盘空间纯 API 模式 2G 足够本地模型模式预留模型文件空间7B 量化模型约 4-8G端口预留 8080、8000 等端口给 API 服务3.2 创建虚拟环境并安装核心依赖建议所有项目都在虚拟环境里运行避免系统 Python 环境被污染。# 创建虚拟环境python 版本需要 3.10 python -m venv venv # 激活虚拟环境Windows 用 venv\Scripts\activatemacOS/Linux 用 source venv/bin/activate source venv/bin/activate # 升级 pip pip install --upgrade pip # 安装核心依赖 pip install langchain langgraph mcp openai fastapi uvicorn python-dotenv如果你在国内网络环境pip 安装失败时可以使用清华镜像源pip install -i https://pypi.tuna.tsinghua.edu.cn/simple langchain langgraph mcp openai fastapi uvicorn python-dotenv3.3 配置模型访问新建一个.env文件保存模型密钥和基础地址。OPENAI_API_KEY你的_key_或者_sk-xxx OPENAI_BASE_URLhttps://api.openai.com/v1 MODEL_NAMEgpt-4o-mini如果使用本地模型可以指向 Ollama 或其他 OpenAI 兼容服务OPENAI_API_KEYollama OPENAI_BASE_URLhttp://127.0.0.1:11434/v1 MODEL_NAMEqwen2.5:7b这里的关键是保持“OpenAI 兼容接口”这一层抽象。只要模型服务提供 OpenAI 兼容 APILangChain 就可以用同一套代码切换在线和本地模型。4. 最小 Agent 启动先跑通一条主链路第一次做 Agent 项目不要一上来就多智能体、图工作流、几十个工具。先把最小链路跑通一个模型、一个工具、一个 Agent。4.1 定义一个计算工具并创建 Agent下面代码中我定义了add和get_current_time两个工具然后创建了一个 ReAct 模式的 Agent。ReAct 的意思是模型会先推理Reason再决定调用什么工具Act然后根据工具结果继续推理。import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.agents import create_react_agent, AgentExecutor from langchain.tools import tool from langchain_core.prompts import PromptTemplate load_dotenv() # 初始化模型 llm ChatOpenAI( modelos.getenv(MODEL_NAME, gpt-4o-mini), temperature0, ) # 定义工具加法计算 tool def add(a: int, b: int) - int: 计算两个整数相加的结果。 return a b # 定义工具获取当前时间 tool def get_current_time() - str: 返回当前系统时间适合回答时间相关问题。 import datetime return datetime.datetime.now().strftime(%Y-%m-%d %H:%M:%S) tools [add, get_current_time] # ReAct Agent 提示词模板这里使用最简模板 prompt PromptTemplate.from_template(Answer the following questions as best you can. You have access to tools: {tools}. Use the following format:\nQuestion: the input question\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n\nQuestion: {input}\nThought: {agent_scratchpad}) agent create_react_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue)4.2 运行 Agent 并观察链路# 测试 1纯工具调用 result1 agent_executor.invoke({input: 请计算 12345 67890 等于多少}) print(结果1, result1[output]) # 测试 2混合问题 result2 agent_executor.invoke({input: 当前时间是什么并且计算 3 和 5 的和}) print(结果2, result2[output])预期输出不是最重要的重要的是verboseTrue时打印出的中间过程。你会看到模型先输出 Thought再输出 Action再拿到 Observation最后给出 Final Answer。这代表 Agent 的核心决策循环已经跑通了。4.3 判断成功与排查方向如果结果里出现工具返回值并且 Final Answer 引用该返回值说明链路成功。如果 Agent 直接给出答案但没有调用工具可能是模型选择跳过工具也可能是 prompt 中没有强调“必须使用工具”。如果报Could not parse LLM output通常是模型输出格式不符合 ReAct 模板可以开启handle_parsing_errorsTrue并检查 prompt。这一步跑通后再往里面加 MCP 和 LangGraph 就有了稳定的地基。5. MCP 实战让 Agent 通过标准协议接入外部工具MCP 的核心价值在“接入标准”。假设你想让 Agent 读取一个文件、查一次数据库、调一个 HTTP 接口传统做法是用 LangChain 的tool一个个封装。工具少还好工具一旦多了每个工具的入参、鉴权、错误处理都不一样代码很快就失控。MCP 的做法是定一个统一协议服务端暴露工具客户端负责发现和调用。Agent 不需要关心工具背后的实现语言和部署位置只要走 MCP 协议即可。5.1 用 Python 实现一个最简 MCP Server可以用mcp官方 Python SDK 写一个最简 Server。下面代码里我创建了一个“加法工具”和“文件读取工具”用来模拟真实工具服务。# server.py from mcp.server.fastmcp import FastMCP mcp FastMCP(demo-tools) mcp.tool() def add(a: int, b: int) - int: 计算两个整数相加的结果。 return a b mcp.tool() def read_txt_file(path: str) - str: 读取指定 txt 文件的文本内容。 with open(path, r, encodingutf-8) as f: return f.read() if __name__ __main__: mcp.run(transportstdio)运行这个服务python server.py注意当前示例使用stdio作为传输层这意味着 MCP Server 由父进程拉起并通过标准输入输出通信。如果是远程服务可以改成streamable-http或sse模式但最终配置方式要根据你使用的 MCP Client SDK 来确定。5.2 LangChain 接入 MCP 工具不同版本的 LangChain MCP 适配器 API 略有差异。下面给出一个思路性的通用流程实际代码以官方文档为准启动 MCP Server 进程。用langchain-mcp-adapters或其他适配器将 MCP 工具转换为 LangChain 工具列表。将工具列表传给 Agent 或 LangGraph 节点。# 伪代码示意实际 API 需要按你使用的适配器版本调整 # from langchain_mcp_adapters.client import load_mcp_tools # from mcp import ClientSession, StdioServerParameters # 创建会话并加载工具 mcp_tools await load_mcp_tools( server_paramsStdioServerParameters( commandpython, args[server.py], ) ) # 将 MCP 工具与 LangChain 工具合并 all_tools mcp_tools这个阶段最容易踩的坑是“工具名冲突”。MCP Server 里的工具名和本地tool函数名不能重复否则 Agent 调用时可能路由错误。5.3 MCP 使用的合规边界MCP 让 Agent 拥有了“执行能力”这既是优势也是风险。接入数据库前必须用只读账号测试接入文件系统时应限定在沙箱目录内接入 HTTP 服务时要确认目标服务的鉴权和调用频率限制。生产环境不要直接给 Agent 开放所有系统权限尽量按最小权限原则配置。6. LangGraph 实战把 Agent 变成可控状态工作流有了最小 Agent很多人以为就够了。但真实业务里“连续做三步其中第二步根据第一步结果走不同分支”是刚需。LangGraph 的价值在于把流程画成图每个步骤都能被观察和控制。6.1 一个最简单的 LangGraph 状态图先看一个最小示例一个状态对象经过两个节点最终输出。from langgraph.graph import StateGraph, START, END from typing import TypedDict class State(TypedDict): messages: list def node_setup(state: State): return {messages: state[messages] [已初始化上下文]} def node_summary(state: State): return {messages: state[messages] [已生成摘要]} # 构建图 graph StateGraph(State) graph.add_node(setup, node_setup) graph.add_node(summary, node_summary) graph.add_edge(START, setup) graph.add_edge(setup, summary) graph.add_edge(summary, END) app graph.compile() # 运行 result app.invoke({messages: []}) print(result[messages])预期输出是[已初始化上下文, 已生成摘要]这个示例虽然简单但已经体现了 LangGraph 和普通 Agent 的关键差异节点顺序是显式的状态是跨节点传递的流程是可追踪的。6.2 用 LangGraph 做“检索 工具调用 总结”工作流实际项目中更常见的需求是用户输入问题Agent 先决定是否检索资料再调用工具最后总结。这个流程如果写成普通 ReAct 循环每一步模型都有“自由发挥”的空间用 LangGraph 则可以把步骤固定下来。from langgraph.graph import StateGraph, START, END from typing import TypedDict, Optional class WorkflowState(TypedDict): question: str search_keyword: Optional[str] search_result: Optional[str] final_answer: str def decide_search(state: WorkflowState): # 这里可以调用模型判断是否需要检索简化处理只要包含“资料”就设置关键词 if 资料 in state[question]: return {search_keyword: state[question].replace(资料, ).strip()} return {search_keyword: None} def search_web(state: WorkflowState): if state[search_keyword] is None: return {search_result: 无需检索} # 实际项目里可以替换为搜索引擎 API 或内部知识库 return {search_result: f模拟检索结果{state[search_keyword]}} def generate_answer(state: WorkflowState): state[final_answer] f基于检索结果生成回答{state[search_result]} return state graph StateGraph(WorkflowState) graph.add_node(decide, decide_search) graph.add_node(search, search_web) graph.add_node(answer, generate_answer) graph.add_edge(START, decide) graph.add_conditional_edges( decide, lambda state: search if state[search_keyword] else answer, ) graph.add_edge(search, answer) graph.add_edge(answer, END) app graph.compile() result app.invoke({question: 请帮我查找 Python 资料}) print(result[final_answer])这里的核心在add_conditional_edges根据decide节点的结果决定走向。没有 LangGraph 时这种分支逻辑要在代码里手写if/else加循环管理状态多了之后很难维护。如果你需要多轮对话能力LangGraph 还支持Checkpointer保存状态。这样 Agent 请求中断后可以恢复上下文而不是每次重新构建历史。6.3 LangGraph 增加外部能力的思路关于“LangGraph 怎么增加 skill”本质上是两类操作增加工具节点或增加普通计算节点。工具节点可以加载前面定义的 MCP 工具普通计算节点则做数据清洗、格式转换、人工审核等业务逻辑。模型不是所有步骤都必须参与只有需要“理解力”的节点才接入 LLM这样既能节省 Token 又能提高流程稳定性。7. API 化与批量任务从脚本走向服务Agent 脚本跑通了还不够工程落地时通常需要暴露 HTTP 接口并支持批量执行。7.1 用 FastAPI 封装 Agent 接口下面用 FastAPI 写一个最简封装把 Agent 或 LangGraph 工作流暴露为 HTTP 服务。# api.py import os from dotenv import load_dotenv from fastapi import FastAPI from pydantic import BaseModel from langchain_openai import ChatOpenAI from langchain.agents import create_react_agent, AgentExecutor from langchain.tools import tool load_dotenv() app FastAPI(titleAgent API) # 初始化模型和 Agent llm ChatOpenAI(modelos.getenv(MODEL_NAME, gpt-4o-mini), temperature0) tool def add(a: int, b: int) - int: 计算两个整数相加的结果。 return a b # 简化示例这里省略 ReAct prompt 详细配置实际开发建议模块化 # from langchain.agents import initialize_agent # agent_executor initialize_agent(tools[add], llmllm, agentzero-shot-react-description) class AgentRequest(BaseModel): prompt: str app.post(/agent/run) def run_agent(req: AgentRequest): # 实际调用 agent_executor这里用简化逻辑说明结构 result {output: f模拟 Agent 输出{req.prompt}} return {status: ok, result: result[output]} # 健康检查 app.get(/health) def health(): return {status: alive}启动服务uvicorn api:app --host 127.0.0.1 --port 8000注意上面的示例中 Agent 部分做了简化标注。实际项目应该把 Agent 初始化逻辑提取成独立模块API 层只负责请求校验和结果返回避免每个请求都重复创建模型实例。7.2 curl 测试接口服务启动后用 curl 验证接口是否通curl -X POST http://127.0.0.1:8000/agent/run \ -H Content-Type: application/json \ -d {prompt: 请计算 2 和 3 的和}7.3 批量任务循环、并发与失败重试批量任务的实现不需要一开始就上 Celery。先用简单的顺序循环或线程池确认逻辑稳定后再升级队列。import json import time import requests # 读取任务配置 with open(batch_config.json, r, encodingutf-8) as f: config json.load(f) prompts config[prompts] output_dir config[output_dir] for idx, prompt in enumerate(prompts): try: resp requests.post(config[api_url], json{prompt: prompt}, timeout120) resp.raise_for_status() data resp.json() with open(f{output_dir}/result_{idx}.json, w, encodingutf-8) as f: json.dump(data, f, ensure_asciiFalse, indent2) print(f[OK] {idx}: {prompt[:20]}) except Exception as e: print(f[FAIL] {idx}: {e}) # 简单重试一次 time.sleep(2)配置文件示例{ api_url: http://127.0.0.1:8000/agent/run, prompts: [ 计算 1 加 1, 计算 10 加 20, 计算 100 加 200 ], output_dir: ./outputs }批量任务最容易出现的问题是“单条失败拖垮整个批”。建议每个任务独立捕获异常、独立写结果文件并记录失败原因。任务量大时再加上最大重试次数、超时控制和并发数上限。7.4 接口安全提醒FastAPI 服务启动后默认没有鉴权。如果只是本机调试绑定127.0.0.1就够了如果要部署到服务器至少加 API Key 校验并把服务放在内网网关之后。Agent 拥有工具调用能力接口暴露在公网等于把工具权限暴露在公网这是一条必须守住的底线。8. 资源占用与性能观察LangChain MCP LangGraph 这套技术栈的资源消耗和传统 Web 服务不同瓶颈往往不是 CPU 或显存而是 Token 消耗和工具调用耗时。8.1 不同运行模式的资源观察重点运行模式主要瓶颈观察方式纯 API 模式网络延迟、Token 消耗在代码里记录每次模型调用的输入/输出 Token本地模型GPU 推理显存占用、显存带宽nvidia-smi 实时观察本地模型CPU 推理CPU 占用、推理速度任务管理器或 top 命令混合模式API 本地工具工具响应时间、并发连接数日志记录每个节点的耗时如果走本地模型路线推荐先量化再部署。常见 7B 模型 4bit 量化后占用约 4-6G 显存有条件可以先用小模型验证整个链路再切到更大模型。显存占用需要以实际模型版本和推理参数为准不同量化方式差异很大。8.2 上下文长度是隐藏成本Agent 每次调用模型时都要把历史消息、系统提示词、工具定义、工具返回结果拼进上下文。上下文越长Token 消耗越大响应越慢。建议对工具返回结果做截断只返回必要字段多轮对话时定期裁剪历史消息或者用摘要替代完整历史。8.3 LangGraph 状态大小控制LangGraph 把所有节点中间结果都放到状态对象里状态字段设计得越宽内存压力和后续检索成本越高。建议只保存下一步需要的字段不要把大段原始数据堆在状态中。可以定期清理messages历史或写入外部存储。9. 常见问题与排查方法问题现象可能原因排查方式解决方案pip 安装依赖失败网络问题、Python 版本过低、依赖版本冲突查看完整报错确认 Python 版本使用镜像源升级 Python或逐个安装依赖Agent 不调用工具Prompt 未强调工具使用、工具描述不清晰、工具列表为空开启 verbose 查看推理过程加强 Prompt 约束优化工具描述Agent 报Could not parse LLM output模型输出格式不符合 ReAct 模板查看原始模型输出设置handle_parsing_errorsTrue或更换更强模型MCP 连接失败transport 类型不匹配、Server 启动报错、鉴权失败先单独运行 MCP Server确认工具可调用检查 StdioServerParameters 参数和 Server 日志LangGraph 节点未执行边的连接错误、条件边返回了不存在的节点名打印每个节点返回的 key检查add_conditional_edges返回值与节点名一致批量任务卡住单条请求无超时、工具调用死循环、服务端并发限制给请求设置 timeout查看服务端日志每条任务加超时和重试限制并发数上下文溢出超过模型 context 限制统计请求中 token 数裁剪历史、截断工具返回、用摘要压缩上下文agent execution terminated due to error工具步骤抛异常未捕获打开 verbose 或查看异常堆栈在工具函数内捕获异常返回友好错误信息API 请求超时模型推理太慢、工具响应慢、FastAPI 同步阻塞观察每个节点耗时改用异步接口设置更长 timeout或增加超时重试排查口诀是先看日志再拆链路最后查依赖。Agent 项目里大量问题不是模型不够聪明而是工具返回格式没处理好、状态字段对不上、依赖版本不一致。10. 最佳实践与使用建议第一先把最小链路跑通再扩展。第一次实验建议只用一个模型、两个工具、一个 Agent确认模型能正确调用工具后再引入 MCP 和 LangGraph。第二工具函数要“单一职责”。一个工具只做一件事描述里写清楚“什么时候用、参数代表什么、返回值是什么”。模型是靠描述决定是否调用工具的描述写得不清晰Agent 就会选择跳过。第三把配置和密钥外置。模型名、API Key、数据库地址都不要写死在代码里用.env或配置中心管理。密钥文件加入.gitignore。第四给批量任务加日志、超时和失败重试。上线前先跑一个 3-5 条的小批量样本确认输出格式稳定再跑全量。第五关注状态管理和上下文成本。LangGraph 的状态字段尽量精简历史消息按策略裁剪工具返回体做截断。Token 消耗要提前预估不要等月底账单出来再吃惊。第六从开发第一天就考虑合规。Agent 的所有工具调用都应该有权限边界和审计日志。谁在什么时间调用了哪个工具执行了哪些操作这些记录既是排查问题的依据也是合规审计的底稿。11. 总结与下一步这套技术栈里最值得优先尝试的是“最小 Agent MCP Server LangGraph 工作流”三件套。你先用 LangChain 跑通模型调工具再用 MCP 把外部能力接入标准化最后用 LangGraph 把流程固定成可控状态图整个过程约两小时就能完成首轮验证。最先要验证的是两件事工具是否真的被模型调用状态流转是否符合预期。如果这两个环节稳定后面的 API 封装和批量任务只是工程量问题不算技术风险。最容易踩的坑分别是依赖版本不齐、工具函数 schema 写错、线程阻塞导致接口超时。这三类问题都不会直接报出“你这里写错了”而是以启动失败、解析失败或超时的形式出现排查时要有耐心。后续可以继续扩展的方向包括接入 RAG 增强知识库能力、做多智能体协作流程、加上 LangSmith 或 Langfuse 做可观测性、把批量任务升级为独立消息队列。也可以尝试把当前链路接到本地模型上对比 Token 成本和响应速度找到适合自己业务的性价比方案。建议收藏备用。工具链还在快速演进但只要掌握了“模型 工具 状态图”这个核心骨架后续版本怎么变你都能很快跟上。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表