fix(digest): 给 per-task planner 接上 Compactor,修复冷节点压缩从不触发
引擎经权威解析器实际驱动的是 agentsForTask 构建的 per-task planner,但 cold-digest 落地时只在 buildPlannerWorker(全局 fallback pair)接了 SetCompactor,而该 pair 被解析器旁路、从不跑规划轮。结果 per-task planner 的 compactor 恒为 nil,OnPlannerRound 每轮直接 no-op —— round_no 不递增、 cold_since_round 从不盖章、digest 从不生成,与阈值无关。 在 agentsForTask 补上 SetCompactor,provider 用 plannerRuntime、model 用 task-router,与该 planner 实际运行所用模型一致(§4)。
This commit is contained in:
1 parent
357ef6a5ab
commit
96ff07579e
1 file changed
+5
@@ -582,6 +582,11 @@ func (s *Server) agentsForTask(t *Task) *taskAgentBundle {
|
||||
pl.SetProxy(s.m.ProxyAddr(), s.m.ProxyCACert())
|
||||
pl.SetWebSearch(s.webSearchFor("planner"))
|
||||
pl.SetConstraintInject(s.constraintInjectPlanner) // 操作约束注入 planner(可配置,默认开)
|
||||
// cold-digest §7: 冷节点后台压缩。引擎经权威解析器实际驱动的就是这套 per-task planner
|
||||
// (agentsForTask),所以 Compactor 必须接在这里;buildPlannerWorker 那套全局 pair 被解析器
|
||||
// 旁路、从不跑规划轮,接在那里等于不生效。走任务路由的 planner provider(§4:与 agent 同模型),
|
||||
// 压缩用 Complete 一次性生成 body。
|
||||
pl.SetCompactor(agent.NewCompactor(plannerRuntime, "task-router"))
|
||||
main := agent.NewMainAgent(mainRuntime, "task-router", s.m.dir, tx, mainRuntime.CompactionWindow(), s.agentMaxTurns("mainagent"))
|
||||
main.SetFindingRecorder(s.evidenceStore())
|
||||
main.SetCompactionWindowResolver(mainRuntime.CompactionWindow)
|
||||
|
||||
Reference in new issue
Block a user