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

相关推荐
LucianaiB6 分钟前
【元宝搜索开发者征文大赛】AI时代,学得慢就不用学?用元宝搜索打造一个教程保质期,确保每一个教程符合你的现状
前端·人工智能·ai编程
我是大猴子41 分钟前
redis
数据库·redis·缓存
冬奇Lab2 小时前
一天一个开源项目(第256篇):Anatomy —— 让 Claude 为技术概念「发明一台机器」,画成可交互的等距插画
人工智能·开源
孟郎郎2 小时前
打造一切(Craft Anything)——克隆构造世间万物
人工智能·ai·github·软件构建·开源软件
Martina_03212 小时前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光
人工智能·3d·ai·自然语言处理·游戏引擎·材质·贴图
master3362 小时前
AI领域常用名词的系统梳理
人工智能·ai
Spidermanbaout2 小时前
Prompt-Engineering实战-2026年11月2日
人工智能·机器学习·ai·chatgpt·ai编程
苏宸啊3 小时前
MySQL(一)
数据库·mysql
阿里云大数据AI技术3 小时前
EMR Serverless StarRocks + DLF Paimon 多模态数据湖检索
人工智能