如何在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截图供参考:
内容的提问来源于stack exchange,提问作者Alpha
相关产品推荐
相关产品推荐

