正在打开每日关注
正在打开每日关注
拆解 Pi Agent 的 cut point 压缩流程,以及摘要回写 JSONL 的可回溯设计。
Pi Agent 是怎么做上下文压缩的?尝试使用 @Remotion 和 @raft_hq 类似的新粗野风格做了一个拆解视频: 主线逻辑其实不复杂: 1. 超过「上下文窗口 − 16K」这条线,触发压缩。当然也有一些 OOM 的处理。 2. 找一个 cut point,切点之前的消息交给 LLM 写成结构化摘要,摘要本身也作为新记录写回 JSONL 3. 新 input = 摘要 + 切点之后的所有消息 这一步是有损的,旧细节只剩摘要,但 JSONL 的设计让你随时可以回溯。 看起来虽然 Pi Agent 本身的实现并不复杂,但由于强大的 Extension 机制,使用者完全可以自定义自己的压缩策略。 我想社区插件里应该有很多优秀的实现,有没有推荐的可以学习学习。
是什么 这条内容把 Pi Agent 的上下文压缩机制还原成清晰的三段式流程:当历史消息接近“上下文窗口−16K”阈值时触发 compact;系统先选择 cut point,将此前消息交给 summarizer LLM 生成结构化摘要,再把摘要写回 JSONL,并与切点后的原始消息拼成下一次 input。OOM 处理是额外兜底,而不是主流程。
核心设计 关键不是简单截断,而是“摘要替代旧历史、原始记录继续保留”的双层策略。摘要控制 token 成本,JSONL 保留可回溯性;代价是压缩有损,模型无法自动恢复摘要遗漏的细节。Extension 机制则把压缩策略暴露为可定制的工程扩展点,使用者可以按任务类型调整切点、摘要格式和触发条件。
关键洞察 它将长会话管理转化为可观察的流水线:预算监控→切分→摘要→重组。视频用连续消息卡片展示“每次全量输入”与“历史压缩”的差异,降低了理解门槛。
边界与风险 “上下文窗口−16K”是该实现的经验阈值,不应直接当作通用标准;摘要质量、切点选择和异常恢复会直接影响后续任务连贯性。若任务依赖精确代码、隐含约束或工具结果,应保留关键原文或提供检索机制。