[功能]: 面向 Pro 代理会话的启动前上下文窗口保护 (快速失败,建议新会话)
作者: cosarah创建于 2026年9月17日更新于 2026年9月17日
标签enhancement
问题或动机
Pro workbench agent sessions 重放 ** 完整入行- 树历史 ** 在每次运行时没有上下文变化 :
lib/server/agent-runtime/runner.ts'通过load Session History'装入整个分行,并将其作为history'传递给Building Agent'不变;`transform Context' (pi'唯一的收缩钩)从未接通。.env.example'将OPENMAIC AGENT COMPACTION- *'指代为惰性占位符(可重复使用的收缩运行时间尚未实施-在以后的一分工地上着陆')。
当一个长会话的上下文超过驱动模型的窗口时,超大小的提示仍然被发送到网关并失败——并且由于一个失败的解析会保留尝试计数("重置:状态! =='失败''")和未交付的用户消息被重排,跑者可以重试同大小的超大小提示到'最大尝试' (5)连续无人关注时间. 用户看到重复的通用故障,没有暗示会话是无法恢复的,新的会话是出路.
建议的解决办法
飞行前背景警卫在运行开始, 在任何型号呼叫前:
- ** 检查位置**:在 " 模型Messages " 之后的跑道(后为 " PlanResume " /修复,前为 " 建设代理 " )——每次检查一次,而不是LLM呼叫一次,因此,我们从未在飞行工具中拨打。 大型工具成果的中期增长仍然超出v1的范围,并像今天一样在网关上失败.
- 估计:pi的
估计数Contexttokens'与全零使用回落(模式与lib/chat/pi/distruction-compaction.ts'相同),涵盖系统即时+完整历史+本次运行的待发用户信息+保留产出允许,与'driver.piModel.context Window'(route pin > catalog > 128k回落,已在运行中解决)相比。 - ** 关于违约——单一、不可偿还的终点结算**:
- 专用终端状态(例如
context limit'),而不是通用的失效'; 未交付的再排队'/未交付的再排队 ' 必须不 重新排队,以便在这一差错类别上进行未参与的再试;- 待交用户电文被收讫后消耗,因此不会永远无法交付;
- 工作本位 UI 使“ 为本会话达到的文本限制 —— 请开始一个新会话 ” 而不是通用错误 。
- Gate条件 ="不活跃于此跑步的竞技",不是"未执行的竞技":当"OPENMAIC AGENT COMPACTION-ENABLED"没有被设定/虚构时,后期——一旦收缩跑道着陆后——也当收缩功能被启用而未能减少上下文时,由警卫运行,因此这仍然是最后的后退站而不是退役.
已知的取舍(对于警卫来说是不错的):估计是大致的. 假阳性结束会话稍早;假阴性保持了今天的行为(门道400).
- 接受标准
- [ 估计上下文超过窗口的会话 ** 准确一次** 在一个专门的终端状态下解决 — 没有自动重试, 没有重复的网关 400 为相同的超大小的快取
- [ . . . . . . .
内容来源: THU-MAIC/OpenMAIC