Skip to main content
Las conversaciones permiten mantener contexto entre mensajes. El SDK gestiona conversationId automaticamente, o puedes controlarlo manualmente.

Auto-tracking

Por defecto, el SDK trackea la conversacion activa automaticamente:
// Primer mensaje — se crea una conversacion nueva
const stream1 = thaliq.agent.stream('Hola, necesito ayuda');
for await (const event of stream1) { /* ... */ }

// El conversationId se guarda automaticamente
console.log(stream1.conversationId); // 'abc-123-...'

Conversaciones manuales

Crea y gestiona conversaciones explicitamente:
// Crear una nueva conversacion
const conv = thaliq.conversations.create();

// Primer mensaje
const stream1 = thaliq.agent.stream('Hola', {
  conversationId: conv.id,
});
const response1 = await stream1.finalResponse();

// Segundo mensaje (misma conversacion, mantiene contexto)
const stream2 = thaliq.agent.stream('Dame mas detalles', {
  conversationId: conv.id,
});
const response2 = await stream2.finalResponse();

ConversationManager

El SDK expone thaliq.conversations para gestionar conversaciones:
// Crear nueva conversacion
const conv = thaliq.conversations.create();
console.log(conv.id);        // UUID generado
console.log(conv.createdAt); // Date

// Ver conversacion activa
console.log(thaliq.conversations.active); // ConversationRef | null

// Cambiar conversacion activa
thaliq.conversations.setActive(conv.id);

// Historial de conversaciones (esta sesion)
console.log(thaliq.conversations.history); // ConversationRef[]

// Limpiar historial
thaliq.conversations.clear();

Nueva conversacion vs continuacion

EscenarioComportamiento
stream('Hola') sin conversationIdCrea conversacion nueva
stream('Hola', { conversationId: 'xxx' })Continua conversacion existente
Despues de thaliq.reset()Limpia conversacion activa

Session timeout

Las conversaciones tienen un session timeout configurable por agente (default: 30 minutos). Si la ultima interaccion fue hace mas de 30 minutos, el backend crea una conversacion nueva automaticamente.

Persistencia

Las conversaciones se persisten en el backend con TTL segun tu plan:
PlanRetencion
Starter7 dias
Growth30 dias
Enterprise90+ dias
El ConversationManager del SDK solo trackea conversaciones en memoria (de la sesion actual). Los datos se persisten en el backend automaticamente.

Feedback en conversaciones

Puedes enviar feedback sobre mensajes individuales dentro de una conversacion:
const stream = thaliq.agent.stream('Analiza mis datos', {
  conversationId: 'conv-123',
});

const response = await stream.finalResponse();

// El messageId viene en la metadata
if (response.metadata.messageId) {
  await thaliq.agent.feedback({
    conversationId: 'conv-123',
    messageId: response.metadata.messageId,
    feedback: 'positive',
  });
}
Ver Feedback e Insights para mas detalles.