diff --git a/backend/ai-core/internal/background/thinker.go b/backend/ai-core/internal/background/thinker.go index f17e3d2..d242232 100644 --- a/backend/ai-core/internal/background/thinker.go +++ b/backend/ai-core/internal/background/thinker.go @@ -1064,6 +1064,17 @@ func (t *Thinker) performThink(triggerReason string) { log.Printf("[后台思考] 开始思考周期 (触发原因=%s, 计数=%d)...", triggerReason, currentCount) + // 0. 让步于前台——如果用户最近有活动(非post_chat),跳过本次思考。 + if triggerReason != "post_chat" { + t.mu.Lock() + sinceLastUser := time.Since(t.lastUserMessage) + t.mu.Unlock() + if sinceLastUser < 10*time.Second { + log.Printf("[后台思考] 用户 %v 前有活动,让步于前台回复,跳过思考", sinceLastUser.Round(time.Second)) + return + } + } + // 1. 加载人格配置 personaConfig, err := t.personaLoader.Get("cyrene") if err != nil {