ADK Context design thesis: context as a compiled view
https://youtu.be/DdTtiWoMa3E?si=doyNXiEYM8y2RyhZ
别再往你 Agent 的 LLM 里塞乱七八糟的上下文了。
“追加一切”的策略是导致延迟激增和“迷失在中间 (Lost in the middle)”幻觉的单程票。Google ADK 改变了这一模式,将上下文视为编译视图 (Compiled view),而非一串巨大的字符串。ADK 不再将原始历史记录生搬硬套地塞进窗口,而是通过一系列处理器从结构化、持久化的会话状态中动态过滤、压缩并格式化出简洁的“工作上下文”。作为开发者,你可以控制这个处理流水线,按需定制行为。
真正的工程化需要粒度化的控制,而不仅仅是更大的上下文窗口。
ADK 的分层架构将“存储”与“展示”分离,允许你通过“句柄模式 (Handle pattern)”将大文件外部化为 Artifacts(工件),并仅在绝对必要时通过可搜索的 Memory(记忆) 检索长期数据。无论你是在管理严谨的多 Agent 移交,还是在调试工具交互,ToolContext 等专用对象都能确保你的 Agent 仅访问其所需的作用域——不多不少,恰到好处。
利用优化模型能力的模式,为生产规模而构建。
ADK 通过强制分离“静态指令”(不变的策略和 Schema)与“轮次指令”(动态的、由控制器拥有的引导),让 Context Caching(上下文缓存) 得以工程化运行。这种设计保持了沉重的系统头部信息稳定,从而大幅削减成本和延迟,同时确保每一轮的指令在逻辑上与用户输入分离,从而获得更好的安全性和验证效果。
正如我们在 Kaggle 5 天强化课程的第 3 天 中所提到的:Agent 在很大程度上就是“上下文管理”。
而这,就是实现它的方式。