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

相关推荐
IT_陈寒11 分钟前
Java线程池这破玩意,差点让我周末加班排查到凌晨
前端·人工智能·后端
广州山泉婚姻13 分钟前
Go微服务落地:服务通信、注册发现完整实现分享
人工智能·深度学习·微服务
数据工匠老o17 分钟前
"能用应用层解决的不用存储过程",十年数据库经验总结
数据库·架构
W***259217 分钟前
2026 企业 AI 办公工具选型指南:适合团队使用的 AI 办公产品有哪些
大数据·人工智能
码农59926 分钟前
让 Agent 替你看 Bug:简单示例读懂 MCP 服务
人工智能
AC赳赳老秦26 分钟前
公开音频转写信息提取:OpenClaw 处理发布会与听证会文本并提取核心决策信息
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw
四六的六29 分钟前
Agent 长会话设计实战:从对话上下文到持久状态,把记忆写进检查清单
人工智能·个人开发·ai编程·ai产品·长上下文·ai代码生成·ai会话
u13013034 分钟前
GitHub 热榜项目:周榜(2026-09-27)
人工智能·github
AI搅拌机40 分钟前
MiniMax H3导演台Bug修复指南:二采、首尾帧生视频和图生视频优化!全能工作流分享~
人工智能
老纪的技术唠嗑局44 分钟前
异步索引特性解析:OceanBase 如何提升持续写入场景下的索引检索性能
数据库