Skip to main content

概览

LangChain 的 create_agent 底层运行在 LangGraph 的运行时之上。 LangGraph 暴露了一个 Runtime 对象,包含以下信息:
  1. 上下文:静态信息,如用户 ID、数据库连接或智能体调用的其他依赖项
  2. 存储:用于长期记忆BaseStore 实例
  3. 流写入器:用于通过 "custom" 流模式流式输出信息的对象
  4. 执行信息:当前执行的身份和重试信息(线程 ID、运行 ID、尝试次数)
  5. 服务器信息:在 LangGraph Server 上运行时的服务器特定元数据(助手 ID、图 ID、已认证用户)
运行时上下文为你的工具和中间件提供依赖注入。你可以在调用智能体时注入运行时依赖项(如数据库连接、用户 ID 或配置),而不是硬编码值或使用全局状态。这使你的工具更易于测试、复用且更灵活。
你可以在工具中间件中访问运行时信息。

访问

使用 create_agent 创建智能体时,你可以指定 context_schema 来定义存储在智能体 Runtime 中的 context 结构。 调用智能体时,传递 context 参数及本次运行的相关配置:

在工具中

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

在工具中访问执行信息和服务器信息

通过 runtime.execution_info 访问执行标识(线程 ID、运行 ID),在 LangGraph Server 上运行时通过 runtime.server_info 访问服务器特定元数据(助手 ID、已认证用户):
当不在 LangGraph Server 上运行时(例如,在本地开发期间),server_infoNone
需要 deepagents>=0.5.0(或 langgraph>=1.1.5)才能使用 runtime.execution_inforuntime.server_info

在中间件中

你可以在中间件中访问运行时信息,以创建动态提示词、修改消息或根据用户上下文控制智能体行为。 使用 Runtime 参数在节点式钩子中访问 Runtime 对象。对于包装式钩子Runtime 对象可在 ModelRequest 参数中获取。

在中间件中访问执行信息和服务器信息

中间件钩子也可以访问 runtime.execution_inforuntime.server_info
需要 deepagents>=0.5.0(或 langgraph>=1.1.5)。