- 按 可变性:
- 静态上下文:在执行期间不会改变的不可变数据(例如用户元数据、数据库连接、工具)
- 动态上下文:随应用运行而不断变化的可变数据(例如对话历史、中间结果、工具调用观察)
- 按 生命周期:
- 运行时上下文:作用域限定于单次运行或调用的数据
- 跨会话上下文:在多个对话或会话间持续存在的数据
静态运行时上下文
静态运行时上下文 表示通过invoke/stream 方法的 context 参数在运行开始时传入的不可变数据,如用户元数据、工具和数据库连接。这些数据在执行过程中不会发生变化。
- 这是代理或图的调用。
invoke方法使用提供的输入运行底层图。 - 此示例使用消息作为输入,这是常见做法,但您的应用程序可能采用不同的输入结构。
- 在此处传入运行时数据。
context参数允许您提供代理在执行期间可以使用的额外依赖项。
- 代理提示词
- 工作流节点
- 在工具中
- 有关详细信息,请参阅 代理。
动态运行时上下文
动态运行时上下文 表示在单次运行期间可演变的可变数据,通过 LangGraph 状态对象进行管理。这包括对话历史、中间结果以及从工具或 LLM 输出派生的值。在 LangGraph 中,状态对象在运行期间充当短期记忆。- 在代理中
- 在工作流中
示例展示了如何将状态整合进代理的提示词中。状态也可由代理的工具访问,工具可根据需要读取或更新状态。详情请参阅 工具调用指南。
- 定义一个扩展
AgentState或MessagesState的自定义状态模式。 - 将自定义状态模式传递给代理。这样代理便可在执行期间访问并修改状态。