mirror of
https://github.com/RuoJi6/ARTEX.git
synced 2026-10-27 17:03:49 +08:00
feat(planner): 心跳唤醒时若无 open/running 意图则强制补出新意图
停摆兜底:心跳/无变动唤醒且全图已无任何 open 或 running 意图时, 开场白改为停摆告警,明确告知 planner 无 worker 在跑、无排队方向, 本轮必须产出一个或多个与既有意图互不重复的新意图(不得产出 0 意图)。
This commit is contained in:
1 parent
d728e509dc
commit
801160930b
1 file changed
+5
@@ -412,6 +412,11 @@ func (p *Planner) Plan(ctx context.Context, taskID int64, as *db.AssetStore, ts
|
||||
lead := "刚有具体变动(见下面的【本次触发本轮的实际变动】),据此规划下一步:"
|
||||
if len(triggers) == 0 {
|
||||
lead = "本轮是**定时巡检(心跳到点)/无具体变动信号**的唤醒——图不一定有新变动。顺带复查在跑意图:长时间无进展或跑偏的用 steer_work 纠偏、方向整个错的用 kill_work 止损;再判定目标、决定是否补方向:"
|
||||
// 心跳/无变动唤醒时,若全图已无任何 open 或 running 意图 → 探索已停摆(没 worker 在跑、
|
||||
// 也没排队方向)。明确告知 planner 并强制其本轮补出新方向,别只复查在跑意图后空转一轮。
|
||||
if active, err := ts.HasActiveIntent(); err == nil && !active {
|
||||
lead = "本轮是**定时巡检(心跳到点)**的唤醒,且当前**已没有任何 open 或 running 的意图**——没有 worker 在跑、也没有排队中的方向,探索已停摆。你**必须**在本轮产出一个或多个向目标推进、且与图中既有意图**互不重复**的新意图(不得产出 0 意图);先据下面的态势判定目标是否已达成,未达成则立即补方向:"
|
||||
}
|
||||
}
|
||||
input := lead + situational + "\n\n据上面的态势,判定目标。目标已【真正达成】(已拿到目标成果/已确认目标漏洞)时用 prove_goal 逐个标记。**硬底线:只要目标尚未达成、且当前没有任何 open 或 running 意图(frontier_open=0 且 running_intents 为空),本轮就必须产出至少一个向目标推进的意图——此时没有在跑的 work 可等、也没有在排队的方向,产出 0 意图=任务停摆。仅当已有 open/running 意图在推进、或目标已达成时,本轮才可以不产出新意图。**" +
|
||||
renderPlannerTodos(opts.Todos.List())
|
||||
|
||||
Reference in new issue
Block a user