You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LangGraph运行时从Runtime中获取user_id及元数据?

🧩 简言之,如何在图运行时检索user_id?

LangGraph从v0.6.0版本开始引入Runtime类,以替代RunnableConfig。

那么在图或中间件内部,从Runtime中访问user_id(及其他元数据)的正确方式是什么?

以下示例改编自1.0.0+版本的官方文档:

from dataclasses import dataclass

from langchain.agents import create_agent, AgentState
from langchain.agents.middleware import after_model
from langgraph.runtime import Runtime

@dataclass
class Context:
    user_id: str
    thread_id: str

@after_model
def log_after_model(state: AgentState, runtime: Runtime[Context]) -> dict | None:
    print(f"Completed request for user: {runtime.context.user_id}")
    return None

agent = create_agent(
    model="deepseek-chat",
    tools=[],
    middleware=[log_after_model],
    context_schema=Context,
)

使用langgraph dev(API v1.0.1)运行该图,并通过SDK调用代理(而非invoke方法)时,会出现如下错误:

Context.__init__() missing 2 required positional arguments: 'user_id' and 'thread_id'

在v0.6.0版本之前,可通过RunnableConfig访问这些数据,但新版本文档中未给出通过Runtime实现的明确示例。

在LangSmith中,user_id和thread_id均显示在Metadata栏目下,说明它们确实存在于运行时上下文中,但目前不清楚如何通过编程方式检索这些数据。

附上LangSmith截图供参考:
LangSmith Metadata 截图

内容的提问来源于stack exchange,提问作者Alpha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:02:46