package runtime import ( "context" "strings" "testing" core "git-ssh.u1680832.nyat.app/weichen/Agent-System-Core.git" ) // P4:计划提醒常开——没有任何计划/待办而任务变长时,给一次可忽略的轻提醒; // 已有计划但停滞的旧提醒行为不变。 func TestPlanlessNudgeFiresOnce(t *testing.T) { rc := &fakeRunCtx{ ctx: context.Background(), prof: core.AgentProfile{Model: core.ModelRoute{Chat: "test-model"}}, } quiet := textDeltaTurn("", toolCall("make_report", "{}")) turns := [][]interface{}{} _ = turns st := &directRun{l: &LLMRunner{}, rc: rc, eff: core.EffectiveSettings{}} var seen []string emitReminder := func(turn int) []string { // 模拟连续工具轮推进。 st.closedToolTurn = true st.toolTurnsSince++ return st.reminders(turn) } for i := 0; i < 3; i++ { seen = append(seen, emitReminder(i)...) } if len(seen) != 1 || !strings.Contains(seen[0], "update_plan") { t.Fatalf("planless nudge should fire exactly once, got %v", seen) } for i := 0; i < 6; i++ { seen = append(seen, emitReminder(i)...) } if len(seen) != 1 { t.Fatalf("planless nudge must not repeat, got %v", seen) } _ = quiet }