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"。

相关推荐
ZGIAI6 分钟前
ZGI 迭代节点:批量资料的逐项处理
人工智能·架构
2601_9620664913 分钟前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
ZGIAI15 分钟前
ZGI 知识检索:让业务回答有据可查
人工智能·架构
Asize15 分钟前
框架的说明书是写给 AI 看的:我用 Next.js 搭了个博客
人工智能·代码规范·next.js
2601_9556624629 分钟前
AI 配音工具 7 款实测:短视频、影视解说、小说推文音质横向对比
人工智能·音视频·语音识别·视频
AI创界者39 分钟前
PinkCherry-MiniMax-H3 全能AI视频整合包:8G显存开箱即用,支持首尾帧/超分补帧/自动提示词
人工智能·aigc
罗西的思考44 分钟前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习
Mr数据杨1 小时前
GNSS伪距误差预测实战案例 从Kaggle回归任务到城市定位误差补偿
人工智能·数据分析·kaggle竞赛
冬奇Lab1 小时前
Code Agent 解剖(15):Harness 设计之五——可观测性
人工智能·开源