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!

相关推荐
iAm_Ike6 小时前
Go 中自定义类型与基础类型间的显式类型转换详解
jvm·数据库·python
iuvtsrt6 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python
牧子川6 小时前
009-Transformer-Architecture
人工智能·深度学习·transformer
covco6 小时前
矩阵管理系统指南:拆解星链引擎的架构设计与全链路落地实践
大数据·人工智能·矩阵
沪漂阿龙6 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机
lifewange6 小时前
AI编写测试用例工具介绍
人工智能·测试用例
陕西字符6 小时前
2026 西安 豆包获客优化技术深度解析:企来客科技 AI 全域获客系统测评
大数据·人工智能
掘金安东尼6 小时前
GGUF、GPTQ、AWQ、EXL2、MLX、VMLX...运行大模型,为什么会有这么多格式?
人工智能
新知图书6 小时前
市场分析报告自动化生成(使用千问)
人工智能·ai助手·千问·高效办公
无心水6 小时前
【Hermes:安全、权限与生产环境】38、Hermes Agent 安全四层纵深:最小权限原则从理论到落地的完全指南
人工智能·安全·mcp协议·openclaw·养龙虾·hermes·honcho