Context Engineering第 18 篇

02 Runtime context:每次调用的静态配置

它是什么

本站只展示教学文档和静态源码。不会执行示例、启动服务、访问模型、数据库或其他外部系统。

约 237 字·预计阅读 1 分钟
本页目录

它是什么

Runtime context 是 invoke 时传入的每轮固定配置,比如用户 ID、角色、租户、连接信息或 API key。它默认不会进入模型 prompt,只有工具或 middleware 读取后才会产生影响。它解决的问题是:工具需要知道“当前是谁、有什么权限”,但不应该把敏感值直接塞进对话文本。

最小代码

文件:deepagent_src/context_engineering_teach/02_runtime_context.py

@dataclass
class RunContext:
    user_id: str
    role: str


@tool
def current_user_note(query: str, runtime: ToolRuntime[RunContext]) -> str:
    """Return a note scoped to the invoking user."""
    return f"{runtime.context.user_id}:{runtime.context.role}:{query}"

运行

uv run python deepagent_src/context_engineering_teach/02_runtime_context.py

预期输出:

runtime context real agent ok

验证方式

脚本会真实调用 Agent,并要求 Agent 调用 current_user_note 工具,断言工具输出里包含从 runtime.context 读到的 user_id 和 role。

常见误区

别把 runtime context 当成长期记忆。它只属于本次运行;跨 thread、跨会话要用 long-term memory 或外部存储。

参考资源与示例代码