ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【agent篇】agent进阶之runtime易错点

2026/8/16 22:11:42 拓冰建站 浏览量
【agent篇】agent进阶之runtime易错点 1.InMemoryStore 数据无法持久化进程结束就丢失的问题。from langgraph.store.memory import InMemoryStore # 原写法数据只存在内存中脚本退出就丢失 memory_store InMemoryStore() memory_store.put((user_info,), user_001, {name: 张三, age: 18})InMemoryStore 本身不跨运行持久化 —— 它只存在于当前进程内存中。脚本一退出数据就没了。下次再跑又是空的。InMemoryStore只是内存中的临时存储进程一结束数据就消失。要真正的长期记忆需要换成 SQLite 或 Postgres 等持久化存储。解决方法改用持久化 StoreLangGraph 提供了 SqliteStore数据会保存到本地 SQLite 数据库文件中下次运行仍然存在。from langgraph.store.sqlite import SqliteStore # 数据保存到本地文件跨运行持久化 memory_store SqliteStore.from_conn_string(checkpoints.sqlite) # 第一次运行会创建表之后数据一直保留 memory_store.put((user_info,), user_001, {name: 张三, age: 18}) # 下次再运行脚本get 仍然能查到 info memory_store.get((user_info,), user_001) print(info.value) # 仍有数据Store 类型持久化适用场景InMemoryStore❌ 进程结束即丢失开发调试、单次运行内的状态共享数据库 Store如 SQLite/Postgres✅ 跨运行持久化真正的长期记忆2.数据已经存入为什么显示用户不存在memory_store.put((user_info,), user_001, {name: 张三, age: 18})#原代码 res agent.invoke({messages: [(user, 请获取用户信息)]})用户消息里没指定要查哪个用户 IDLLM 不知道传什么 user_id 给 get_user_info 工具随便传了一个不存在的 ID导致工具返回用户不存在。#修改后的代码 res agent.invoke({messages: [(user, 请获取用户user_001的信息)]})3.store和context传入方式错误#原代码 result agent.invoke( {messages: [(user, 查询所有用户信息)]}, config{ configurable: { store: store, # ❌ 错误store 不能通过 configurable 传 context: admin_context # ❌ 错误context 不能通过 configurable 传 } }store 通过create_agent(storestore)传入context 通过agent.invoke(..., contextxxx)传入# store → create_agent() 创建时传入 agent create_agent( modelmodel, toolstools, storestore, # ✅ 正确 context_schemaUserContext, ) # context → invoke() 时作为独立参数传入 result agent.invoke( {messages: [(user, 查询所有用户信息)]}, contextadmin_context, # ✅ 正确 )4.state和store对比维度State状态Store存储作用单次会话内的短期记忆跨会话的长期记忆生命周期一次agent.invoke()范围内独立于 agent 调用可持久化典型内容当前消息列表、调用次数、中间结果用户档案、偏好设置、知识库访问方式runtime.state在 tool 中runtime.store在 tool 中跨调用❌ 每次 invoke 独立不共享✅ 数据保留所有调用共享实现类AgentState可自定义扩展InMemoryStore/SqliteStore数据操作读.get(key)写通过Command(update...)put() / get() / search() / delete()类比一次对话的草稿纸一个系统的数据库