fix: 后台思考身份混淆 + 静默模式视觉理解 + QQ卡片解析 + 仪表盘状态修复

- 后台思考对话历史增加标签说明,严格区分群聊中不同发送者
- 静默观察模式传入图片URL并预处理,供后台思考参考
- 视觉+OCR双模型结果合并格式优化,避免LLM误认为多张图片
- QQ卡片消息(CQ:json)正确解析标题/类型,不再丢失为[JSON]
- 进程管理器stop()在进程为null时重置pid/startTime,消除矛盾状态

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-31 21:07:25 +08:00
parent a9c79d7887
commit b085e58031
7 changed files with 179 additions and 33 deletions
+12 -2
View File
@@ -841,9 +841,19 @@ func handleChat(
if thinker != nil {
thinker.RecordUserMessage(req.SessionID)
}
ctxBuilder.CacheMessage(req.SessionID, model.RoleUser, req.Message)
// 图片预处理:静默观察时也分析图片内容,供后台思考使用
message := req.Message
if len(req.Images) > 0 {
startTime := time.Now()
augmented := orch.PreprocessImages(r.Context(), message, req.Images)
if augmented != message {
message = augmented
log.Printf("[silent] 图片预处理耗时: %%v", time.Since(startTime))
}
}
ctxBuilder.CacheMessage(req.SessionID, model.RoleUser, message)
// 从观察到的群聊消息中提取记忆。
orch.ExtractMemoriesOnly(r.Context(), req.UserID, req.SessionID, req.Message)
orch.ExtractMemoriesOnly(r.Context(), req.UserID, req.SessionID, message)
if thinker != nil {
thinker.TriggerPostChatThink()
}