Skip to main content

概述

LangChain 的 createAgent 底层运行在 LangGraph 的运行时上。 LangGraph 暴露了一个 Runtime 对象,包含以下信息:
  1. 上下文:静态信息,如用户ID、数据库连接或代理调用的其他依赖项
  2. 存储:一个 BaseStore 实例,用于长期记忆
  3. 流写入器:一个用于通过 "custom" 流模式传输信息的对象
  4. 执行信息:当前执行的身份和重试信息(线程ID、运行ID、尝试次数)
  5. 服务器信息:在 LangGraph Server 上运行时的特定元数据(助手ID、图ID、已认证用户)
运行时上下文是您在代理中传递数据的方式。您无需将内容存储在全局状态中,而是可以将值(如数据库连接、用户会话或配置)附加到上下文,并在工具和中间件中访问它们。这使得内容保持无状态、可测试和可重用。
您可以在工具中间件中访问运行时信息。

访问方式

使用 createAgent 创建代理时,您可以指定 contextSchema 来定义存储在代理 Runtime 中的 context 的结构。 调用代理时,传递 context 参数并包含运行的相关配置:

工具内部

您可以在工具内部访问运行时信息,以:
  • 访问上下文
  • 读取或写入长期记忆
  • 写入自定义流(例如,工具进度/更新)
使用 runtime 参数在工具内部访问 Runtime 对象。

工具内部的执行信息和服务器信息

通过 runtime.executionInfo 访问执行身份(线程ID、运行ID),在 LangGraph Server 上运行时通过 runtime.serverInfo 访问服务器特定元数据(助手ID、已认证用户):
当不在 LangGraph Server 上运行时(例如,在本地开发期间),serverInfonull
需要 deepagents>=1.9.0(或 @langchain/langgraph>=1.2.8)才能使用 runtime.executionInforuntime.serverInfo

中间件内部

您可以在中间件中访问运行时信息,以创建动态提示、修改消息或根据用户上下文控制代理行为。 使用 runtime 参数在中间件内部访问 Runtime 对象。

中间件内部的执行信息和服务器信息

中间件钩子也可以访问 runtime.executionInforuntime.serverInfo
需要 deepagents>=1.9.0(或 @langchain/langgraph>=1.2.8)。