用途:管理 NVIDIA OO 智能体每轮可见与可记忆的内容。每个智能体默认隐藏两个管理器:agent.context_manager(渲染进系统提示的命名上下文块)与 agent.event_manager(任务、消息、代码执行、LLM 调用等事件历史),对应面向智能体的 API 为 self.context 与 self.events。
主要能力:上下文块以带标签的 SYSTEM 段落呈现,按实例生效,子智能体不继承;支持静态赋值 self.context["plan"]=...、动态表达式 set_dynamic(每轮重新求值)、删除 del/pop,以及类级默认块 DynamicContext。事件可按 limit、type、query 文本或正则查询,用 EventQuery.current_call()/by_type()/last_n() 过滤某方法可见的历史,可订阅事件,也可用 collapse 把区间归档为一行摘要。历史摘要提供 TokenBudgetSummarizer(超预算压缩最旧事件)与 MethodSummarizer(按方法调用压缩),可用 context_budget(llm, percent=0.8) 按模型窗口设定预算,agent.context_stats 报告用量。持久化用 SQLiteStorageManager 保存快照并恢复,序列化事件、上下文块、LLM 定义方法与用户属性,可用 nosnapshot 排除字段;长期语义记忆为可选子系统 nooa_memory 的 MemoryManager 与 MemoryToolsMixin。
使用方式:默认隐藏,需在子类中用 spec(self, "context", hidden=False) 或 spec(self, "events", hidden=False) 显式开放,不要用类注解重新声明。方法级可用 ScopedContext(events=EventQuery.current_call()) 覆盖。
限制:上下文块与事件按实例隔离,子智能体从空开始,需显式传参;动态表达式每轮求值,应保持轻量;赋 None 会存为 None,删除需用 del/pop;self.context["k"]=v 落入易变分区,稳定内容用 set_static 以利提示缓存。该持久化是智能体状态存储,与查看器的 traces.db 追踪存储无关。