用途:为 AG2 Agent 提供跨运行的持久化状态、按轮次组装 LLM 可见内容,并限制事件历史以适配上下文窗口。三部分协作:ag2.knowledge 的 KnowledgeStore 做基于路径的持久存储;ag2.policies 的组装策略在 LLM 调用前塑造提示与事件;ag2.aggregate / .compact 将结构化知识写入存储或裁剪历史。通过 Agent 的 knowledge=KnowledgeConfig 与 assembly= 参数接线。
主要能力:KnowledgeStore 实现含 MemoryKnowledgeStore(测试/临时)、SqliteKnowledgeStore(单进程持久,务实默认)、DiskKnowledgeStore(磁盘可读,需 watchdog 额外依赖)、RedisKnowledgeStore(多进程/跨主机)、LockedKnowledgeStore(串行化并发写入)。API 全异步:write、read、list、delete、exists、append、read_range、on_change。组装策略分注入类(WorkingMemoryPolicy、EpisodicMemoryPolicy、AlertPolicy)与裁剪类(ConversationPolicy、SlidingWindowPolicy、TokenBudgetPolicy),可用 AssemblerMiddleware.validate_order 校验顺序。聚合策略 WorkingMemoryAggregate 写 /memory/working.md,ConversationSummaryAggregate 写 /memory/conversations/;AggregateTrigger 控制触发时机(every_n_turns、every_n_events、on_end)。压缩策略 TailWindowCompact(零 LLM 调用)与 SummarizeCompact(每次一次 LLM 调用),由 CompactTrigger 触发。
使用方式:装配 store、aggregate、trigger 到 KnowledgeConfig,传入 assembly=[...]。示例命令与代码以资料原文为准,此处不重复。
限制与注意:KnowledgeConfig(store=...) 会额外注入 knowledge 工具、写入 SKILL.md 并转储事件到 /log/,可用 expose_tool=False、write_event_log=False 关闭,或改用 dependencies={KnowledgeStore: store} 最小接线。策略顺序须先注入后裁剪,否则注入不计入预算。聚合每次触发消耗一次 LLM 调用。read_range 按字节偏移。WorkingMemoryAggregate 会覆盖文件。未提供部分:具体收费与价格暂未提供。