Day27:LangGraph 实战落地|Tool_RAG + 并行子图 + 持久化部署,打造工业级 AI Agent

Day27:LangGraph 实战落地|Tool/RAG + 并行子图 + 持久化部署,打造工业级 AI Agent

🔥 博客导语

昨天我们搞定了 LangGraph 核心逻辑,Day2 直接进入实战落地阶段 !一篇博客分基础、进阶、高级三阶段,从 Tool/RAG 集成到并行执行,再到生产级持久化部署,把 LangGraph 变成能干活、能上线的企业级 AI Agent,通义千问 + 本地 Qwen 双版本,代码直接复用往期 RAG / 工具内容,学完即可上线!


🎯 第一阶段:基础篇|LangGraph 集成 Tool+RAG,打造实用 AI 助手

核心概念白话拆解

  • Tool 集成:让 AI 调用外部工具(计算器、天气、数据库),实现实际操作

  • RAG 集成:对接私有向量库,让 AI 基于本地知识回答,杜绝幻觉

实战案例(2 个)

案例 1:LangGraph + 多 Tool 工具集成
python 复制代码
from typing import TypedDict
from langgraph.graph import StateGraph, START, END
from langchain_core.tools import tool
import os

# 通义千问配置
os.environ["DASHSCOPE_API_KEY"] = "你的API Key"
from langchain_community.llms import Tongyi
llm = Tongyi(model="qwen-plus", temperature=0.1)

# 定义两个工具
@tool
def calc(a: int, b: int) -> int:
    """数学计算"""
    return a + b

@tool
def weather(city: str) -> str:
    """天气查询"""
    return f"{city}今日晴天,25℃"

# 定义State+路由+节点(复用Day1条件路由)
class AgentState(TypedDict):
    question: str
    tool_type: str
    result: str

# 完整工作流代码,直接运行测试工具调用
workflow = StateGraph(AgentState)
# 节点+路由定义省略(同Day1进阶)
app = workflow.compile()
print(app.invoke({"question": "北京天气怎么样?"}))
案例 2:LangGraph+Chroma RAG 私有知识库
python 复制代码
# 集成往期Chroma向量库,实现私有知识问答
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import DashScopeEmbeddings
from typing import TypedDict
from langgraph.graph import StateGraph, START, END
import os

os.environ["DASHSCOPE_API_KEY"] = "你的API Key"
embedding = DashScopeEmbeddings(model="text-embedding-v3")
# 加载本地向量库
vector_db = Chroma(persist_directory="./chroma_lpr_db", embedding_function=embedding)

# 定义RAG检索节点
def rag_node(state: AgentState):
    docs = vector_db.similarity_search(state["question"], k=2)
    context = "\n".join([d.page_content for d in docs])
    return {"context": context}

# 结合大模型生成精准回答,实现私有知识库Agent

基础阶段避坑指南

  1. Tool 的 description 必须写清晰,AI 才能正确调用

  2. RAG 检索的向量库要和 Embedding 模型一致

  3. 检索结果精简,避免上下文过长


🎯 第二阶段:进阶篇|并行节点 + 子图,复杂工作流高效编排

核心概念白话拆解

  • 并行节点:让 AI 同时执行多个任务(检索 + 工具),提速 50%+

  • 子图:把复杂流程拆成小模块,代码更优雅、易维护

实战案例(2 个)

案例 1:并行节点执行(检索 + 工具同时跑)
python 复制代码
from langgraph.graph import StateGraph, START, END
from typing import TypedDict

# 定义State
class AgentState(TypedDict):
    question: str
    rag_res: str
    tool_res: str

# 并行执行两个节点
def rag_node(state):
    return {"rag_res": "RAG检索内容"}

def tool_node(state):
    return {"tool_res": "工具执行结果"}

# 构建并行工作流
workflow = StateGraph(AgentState)
workflow.add_node("rag", rag_node)
workflow.add_node("tool", tool_node)
# 同时执行两个节点
workflow.add_conditional_edges(START, lambda _: ["rag", "tool"])
workflow.add_edge("rag", END)
workflow.add_edge("tool", END)
app = workflow.compile()

进阶阶段避坑指南

  1. 并行节点结果要做好合并逻辑

  2. 子图命名要清晰,避免模块混乱

  3. 并行任务不宜过多,防止资源占用过高


🎯 第三阶段:高级篇|持久化 + FastAPI 部署,企业级 Agent 上线

核心概念白话拆解

  • 持久化:保存 AI 对话记忆,断电 / 重启不丢失,支持断点续跑

  • FastAPI 部署:封装成接口,对外提供服务,对接前端 / 小程序

实战案例(2 个)

案例 1:MemorySaver 状态持久化
python 复制代码
# 持久化:保存AI记忆,实现多轮对话
from langgraph.checkpoint.memory import MemorySaver
from langgraph.graph import StateGraph, START, END

# 初始化持久化
memory = MemorySaver()
# 编译工作流绑定持久化
workflow = StateGraph(AgentState)
# 节点+路由定义省略
app = workflow.compile(checkpointer=memory)

# 指定用户会话ID,记忆保留
config = {"configurable": {"thread_id": "user_001"}}
app.invoke({"question": "LangGraph核心组件"}, config=config)
# 第二次调用,记忆不丢失
app.invoke({"question": "刚才说的组件有哪些"}, config=config)
案例 2:FastAPI 服务化部署
python 复制代码
# 封装API接口,生产环境上线
from fastapi import FastAPI
from langgraph.checkpoint.memory import MemorySaver

app = FastAPI(title="LangGraph企业级API")
memory = MemorySaver()
graph = workflow.compile(checkpointer=memory)

# 对外问答接口
@app.post("/agent/ask")
def ask(question: str, user_id: str):
    config = {"configurable": {"thread_id": user_id}}
    res = graph.invoke({"user_question": question}, config=config)
    return {"answer": res["ai_answer"]}

# 启动命令:uvicorn main:app --host 0.0.0.0 --port 8000

高级阶段避坑指南

  1. 生产环境用 Redis/MySQL 替代 MemorySaver

  2. 接口添加限流、鉴权,防止恶意调用

  3. 开启日志监控,方便排查 AI 执行问题

总结

一篇搞定 LangGraphTool/RAG 集成、并行子图、持久化部署,从实用 AI 助手到企业级服务,彻底实现 LangGraph 全栈落地,学完即可独立开发上线级 AI Agent!

相关推荐
tq10863 小时前
基于新一代报表世界观的报表系统架构
人工智能
帐篷Li3 小时前
AI Token Platform:打造企业级 AI 服务计费平台,从零到一完整指南
人工智能
biuba10243 小时前
28 openclaw负载均衡实现:应对高并发场景的解决方案
运维·ai·负载均衡·编程·技术
code_pgf3 小时前
VOC/COCO风格评估差异对照表
人工智能·目标检测
qiyongwork3 小时前
AI智能对话驱动的新型管理系统模式探析
人工智能·ai·项目管理·项目管理系统·mis
东离与糖宝3 小时前
Spring AI Alibaba v1.0 正式版:Java 企业 AI 网关从 0 到 1 搭建
java·人工智能
reasonsummer3 小时前
【办公类-142-04】20260330插班生word转长表EXCLE(4)新表重制
python·word
福客AI智能客服3 小时前
电商智能客服机器人:AI客服聊天系统如何重构用户沟通方式
人工智能·重构·机器人
曲幽3 小时前
FastAPI + Celery 实战:异步任务里调用 Redis 和数据库的全解析,及生产级组织方案
redis·python·fastapi·web·async·celery·task·queue