LangGraph

LangGraph 核心模型就是:节点 (Node) + 边 (Edge)

  • 节点 Node:就是一段要执行的代码 / 函数(可以调用 AI、可以调用接口、可以调用外部程序)
  • 边 Edge:规定:跑完 A 节点之后,下一步跑哪个节点
    • 普通边:A 跑完固定去 B
    • 条件边:A 跑完,看数据状态,选不同下一站(if‑else 分支)

你只画好 "流程图",它不会自己跑;你调用 graph.invoke(数据),它才开始顺着边跑节点。

cpp 复制代码
# ---------------------- 搭建LangGraph流程图(棋盘) ----------------------
builder = StateGraph(MyState)

# 把上面写好的函数注册成图里面的节点(棋盘上的格子)
builder.add_node("ai_think_node", ai_think)
builder.add_node("tool_node", mock_tool)
builder.add_node("answer_node", ai_make_answer)

# 设置流程起点:一开始先跑 ai_think_node
builder.set_entry_point("ai_think_node")

# 条件分支:AI思考完,判断走哪条路
def route_after_think(state: MyState):
    if state["ai_thought"] == "需要调用工具":
        return "go_tool"    # 去调用工具
    else:
        return "go_end"     # 直接结束

builder.add_conditional_edges(
    source="ai_think_node",
    path=route_after_think,
    path_map={
        "go_tool": "tool_node",
        "go_end": END
    }
)

# 工具跑完之后,走到ai整理答案,整理完结束
builder.add_edge("tool_node", "answer_node")
builder.add_edge("answer_node", END)

# 把整个棋盘编译好,得到可运行的对象
graph = builder.compile()

如果没有 LangGraph,你自己手写代码要这么写:

cpp 复制代码
# 没有LangGraph,自己写
result = ai_think(...)
if result["ai_thought"] == "需要调用工具":
    result = mock_tool(result)
    result = ai_make_answer(result)
# 如果以后要加循环、加分支、中途暂停,你就要自己写大量if、while,自己传递变量state

LangGraph 就是帮你把:节点注册、跳转逻辑、状态数据传递、分支判断全部封装好了。你只需要定义节点函数,然后告诉它 "A 之后,如果 XX 条件就去 B,否则去 C"。

相关推荐
品牌测评5 小时前
Token Plan平台分享|七条算力订阅路径拆解
大数据·人工智能·架构
油丶酸萝卜别吃5 小时前
MySQL B+ 树查询全过程详解
数据库·mysql
leisoo80975 小时前
股票数据本地化存储实战:JSON、数据库与列式存储的方案对比
jvm·数据库·json
大模型码小白5 小时前
【AI】一文讲清 RAG:从大模型局限到企业级知识库落地流程
人工智能·深度学习·学习
Exclusive_Cat5 小时前
MySQL回表机制解析与优化策略
数据库·sql
MomentYY5 小时前
RAG 图检索&多跳推理:有些答案需要“顺藤摸瓜”
人工智能·agent·ai编程
戴维南5 小时前
Ragas核心优势是各种难度的测数据集自动生成,与无标准答案的评测
人工智能
circuitsosk5 小时前
向量数据库选型与性能压测:Milvus、Pinecone、Chroma在真实业务下的对比
数据库·python·pinecone·milvus·向量数据库·chroma
迪康Defender5 小时前
终端邮件安全全覆盖:规则、关键词、附件白名单配置大全
大数据·人工智能·安全
影寂ldy5 小时前
SQL 索引(Index)完整笔记
数据库·笔记·sql