From e0c2f77f8cf68777605e4160e27195bf5ae77ec0 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 12 Aug 2026 22:10:40 -0500 Subject: [PATCH] perf: achica la ventana de historial de uMind (10 -> 6 mensajes) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ese historial se reenvía completo en cada turno junto con el system prompt y las tools — con Gemini como proveedor principal, sin acceso fácil a caching de contexto (su API de caching no pasa por la capa de compatibilidad OpenAI que usamos), la forma más directa de bajar el costo por mensaje en charlas largas es mandar menos historial repetido. Co-Authored-By: Claude Sonnet 5 --- pkg/services/umind_agent_service.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/services/umind_agent_service.go b/pkg/services/umind_agent_service.go index 9f21a90..c051f0f 100644 --- a/pkg/services/umind_agent_service.go +++ b/pkg/services/umind_agent_service.go @@ -244,7 +244,11 @@ func ProcessWidgetMessage(tenant *models.UmindTenant, sessionID, userText string return "", fmt.Errorf("configuración de IA del tenant no encontrada: %w", err) } - historial, _ := models.GetUmindHistorial(tenant.ID, sessionID, 10) + // Ventana chica a propósito: en cada turno se reenvía este historial + // completo al modelo junto con el system prompt y las tools — cuanto más + // larga la ventana, más tokens se repiten en cada mensaje de una charla + // larga. 6 alcanza para mantener contexto en un chat de soporte típico. + historial, _ := models.GetUmindHistorial(tenant.ID, sessionID, 6) messages := []agentMessage{{Role: "system", Content: umindSystemPrompt(tenant)}} for _, h := range historial { messages = append(messages, agentMessage{Role: h.Role, Content: h.Content})