langgraph加上“循环”和“记忆”

第六章:加上"循环"和"记忆"

6.1 为什么需要循环?

线性流程只能走一遍就结束。但真实 Agent 需要"思考 → 行动 → 观察 → 再思考"的循环。比如模型先决定搜索,搜索完再看结果决定是否再搜。

6.2 条件边:控制"下一步去哪"

python

python 复制代码
from typing import TypedDict
from langgraph.graph import StateGraph, START, END

class State(TypedDict):
    count: int

def increment(state: State):
    return {"count": state["count"] + 1}

def should_continue(state: State):
    if state["count"] < 3:
        return "keep_going"
    return "stop"

builder = StateGraph(State)
builder.add_node("increment", increment)

builder.add_edge(START, "increment")

# 条件边:根据 should_continue 的返回值决定去向
builder.add_conditional_edges(
    "increment",
    should_continue,
    {
        "keep_going": "increment",  # 回到自己,形成循环
        "stop": END
    }
)

graph = builder.compile()
result = graph.invoke({"count": 0})
print(result)  # 输出 {'count': 3}

add_conditional_edges 的第三个参数是一个映射字典 :should_continue 返回 "keep_going" 就跳回 "increment",返回 "stop" 就结束。这样 count 从 0 累加到 3 才停。

6.3 记忆:让 Agent 记住上下文

默认情况下,每次 invoke() 都是全新的开始。加上 Checkpointer 后,Agent 就能记住之前的对话。

python

python 复制代码
from langgraph.checkpoint.memory import MemorySaver

checkpointer = MemorySaver()
graph = builder.compile(checkpointer=checkpointer)

# 用 thread_id 区分不同用户的对话
config = {"configurable": {"thread_id": "user_001"}}

# 第一轮
graph.invoke({"question": "我叫小明"}, config)
# 第二轮
result = graph.invoke({"question": "我叫什么?"}, config)
# Agent 能记住"小明"

thread_id 就像会话 ID,同一个 ID 的多次调用会共享状态。

相关推荐
Martina_03211 小时前
AI生成的盔甲换动作后漂移?用6步检查挂点、骨架映射与 Bind Pose
人工智能·游戏·3d·ai·自然语言处理·aigc·游戏策划
ZzT2 小时前
拆开 Claude Code、Codex 等 11 个 coding agent:没有一个用 LangChain,也没有一个用向量检索代码
人工智能·ai编程·claude
云卷云舒___________2 小时前
Astra-lite疑似GPT-6.1 Terra? Haiku 5.5 与 Gemini 4 Argon 灰测? | 10月5日 AI日报
ai·anthropic·ai日报·terra·gemini4·gpt61·haiku55
ZzT2 小时前
Agent-Reach 是什么:一句话让 AI agent 读推特、Reddit、B 站和小红书
人工智能·ai编程·claude
howdoyoudo2026062 小时前
当新案例冲击旧框架:分类系统的宿命与修正路径
大数据·网络·数据库·人工智能·安全·ai·分类
工作10年+,存储芯片行业2 小时前
存储芯片产业全景:从产品矩阵到技术优势与质量体系
ai·nvme·芯片·数据中心·存储·pcie·半导体
袖清暮雨2 小时前
机器学习之逻辑回归
人工智能·机器学习·ai
愚公搬代码3 小时前
【愚公系列】《微信小程序项目实战(AI编程+视频图解)》014-莫凡商城小程序项目视图容器组件的应用
微信小程序·小程序·ai编程
玫瑰互动GEO11 小时前
GEO优化学习九级模型:开发者从认知层切入
人工智能·ai·ai搜索·gem·生成式引擎优化·gem优化