Improvements
- Worker 撞上下文窗口时换下一档继续,不再整轮重跑。 此前的链路是「撞窗 → 压缩 →
压完还超 → 抛错」,然后由调用方用大模型从头再跑一遍,前面几十轮全丢。现在在抛错
之前多一手:换下一档模型接着跑,已经跑完的轮次原样保留。
- 客户反馈的现象是「前期慢、后期还行」,诊断日志里对应的是一条 614 秒、24.9 万
prompt token 的 run,标着 escalated from someim-32b——先用小模型赌一把,撞窗后
整轮重来。
- 刻意不引入 token 阈值:触发条件是真实撞窗,不是预设数字。这个仓库的模型上下文
窗口本身是按模型名匹配猜的(实测 9 个上报值里 6 个偏小),拿猜来的分母做阈值并不
可靠;而且小活永远撞不到窗,也就永远不会误升档、不涨成本。
- 另外,「派发前按 prompt 大小预判」这条路拦不住上述那条 run:promptTokens 是
多轮累计的,它首轮并不大,是跑着跑着涨上去的。
- 两条限制:一次 run 只换一次档(下一档还撑不住说明任务本身超出这条链);下一档窗口
不比当前大就不换(换了也过不了同一道校验)。
What's new
- timing 日志新增换档观测:midRunEscalationPromptTokens(换档那一刻的累计 prompt)
与 midRunEscalatedFromModel(换档前的模型),独立字段而非塞进自由文本的 note
(那里已被 escalated from X 占用,混在一起无法统计)。
- 目的是回答一个目前答不出来的问题:小模型究竟在多少 token 上撑不住。此前日志里
只看得到升级之后的最终数字,与失败点无关,阈值也就无从定起。攒够真实样本再谈
要不要加预判。