#1572·OpenMAIC

[功能]: 面向 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)连续无人关注时间. 用户看到重复的通用故障,没有暗示会话是无法恢复的,新的会话是出路.

建议的解决办法

飞行前背景警卫在运行开始, 在任何型号呼叫前:

  1. ** 检查位置**:在 " 模型Messages " 之后的跑道(后为 " PlanResume " /修复,前为 " 建设代理 " )——每次检查一次,而不是LLM呼叫一次,因此,我们从未在飞行工具中拨打。 大型工具成果的中期增长仍然超出v1的范围,并像今天一样在网关上失败.
  2. 估计:pi的估计数Contexttokens'与全零使用回落(模式与lib/chat/pi/distruction-compaction.ts'相同),涵盖系统即时+完整历史+本次运行的待发用户信息+保留产出允许,与'driver.piModel.context Window'(route pin > catalog > 128k回落,已在运行中解决)相比。
  3. ** 关于违约——单一、不可偿还的终点结算**:
  • 专用终端状态(例如context limit'),而不是通用的失效';
  • 未交付的再排队'/未交付的再排队 ' 必须 重新排队,以便在这一差错类别上进行未参与的再试;
  • 待交用户电文被收讫后消耗,因此不会永远无法交付;
  • 工作本位 UI 使“ 为本会话达到的文本限制 —— 请开始一个新会话 ” 而不是通用错误 。
  1. Gate条件 ="不活跃于此跑步的竞技",不是"未执行的竞技":当"OPENMAIC AGENT COMPACTION-ENABLED"没有被设定/虚构时,后期——一旦收缩跑道着陆后——也当收缩功能被启用而未能减少上下文时,由警卫运行,因此这仍然是最后的后退站而不是退役.

已知的取舍(对于警卫来说是不错的):估计是大致的. 假阳性结束会话稍早;假阴性保持了今天的行为(门道400).

  • 接受标准
  • [ 估计上下文超过窗口的会话 ** 准确一次** 在一个专门的终端状态下解决 — 没有自动重试, 没有重复的网关 400 为相同的超大小的快取
  • [ . . . . . . .

内容来源: THU-MAIC/OpenMAIC