Skip to main content

ThaliqConfig

import { Thaliq } from '@thaliq/sdk';

const thaliq = new Thaliq({
  // --- Requerido ---
  apiKey: 'tq_live_xxx',

  // --- Opcionales ---
  baseUrl: 'https://api.thaliq.com',
  timeout: 30000,
  maxRetries: 2,
  integrationType: 'sdk',
  defaultHeaders: {},
  logger: console,
});

Opciones

OpcionTipoDefaultDescripcion
apiKeystringrequeridoAPI Key de tu tenant (tq_live_xxx)
baseUrlstringhttps://api.thaliq.comURL base de la API
agentIdstring(resuelto por API key)Agente default para todas las requests del cliente. Si la API key ya apunta a un agente, este campo lo sobreescribe
timeoutnumber30000Timeout para requests HTTP (ms)
maxRetriesnumber2Maximo de reintentos automaticos
integrationType'sdk' | 'widget''sdk'Tipo de integracion (controla que tools/MCP servers estan disponibles segun requiresAuth)
defaultHeadersRecord<string, string>{}Headers custom en cada request
loggerLoggerconsoleLogger personalizado
providerProviderThaliqNativeProviderProvider custom (avanzado)
Override por request: ademas de pasar agentId al constructor, podes pasarlo en cada llamada via chat({ message, agentId }) o stream({ message, agentId }) para forzar un agente puntual sin cambiar la config global del cliente. Util cuando una sola integracion necesita rutear a varios agentes segun el caso.

Retry

El SDK reintenta automaticamente requests que fallan por errores transitorios: Se reintentan:
  • Status 500, 502, 503, 504 (errores de servidor)
  • Errores de red (connection reset, timeout)
No se reintentan:
  • Status 400 (request invalido)
  • Status 401, 403 (autenticacion)
  • Status 429 (rate limit)
El backoff es exponencial: baseDelay * 2^attempt con jitter aleatorio, hasta un maximo de 10 segundos.

Logger personalizado

Puedes pasar un logger custom que implemente la interfaz Logger:
interface Logger {
  debug(message: string, ...args: unknown[]): void;
  info(message: string, ...args: unknown[]): void;
  warn(message: string, ...args: unknown[]): void;
  error(message: string, ...args: unknown[]): void;
}
Ejemplo con un logger que solo muestra errores:
const thaliq = new Thaliq({
  apiKey: 'tq_live_xxx',
  logger: {
    debug: () => {},
    info: () => {},
    warn: () => {},
    error: (msg, ...args) => console.error('[Thaliq]', msg, ...args),
  },
});

Provider personalizado

Para casos avanzados, puedes implementar tu propio provider:
import { Thaliq, type Provider } from '@thaliq/sdk';

class MyProvider implements Provider {
  readonly name = 'my-custom';

  async chat(request) {
    // Tu implementacion
  }

  async *stream(request) {
    // Tu implementacion con AsyncIterable
  }
}

const thaliq = new Thaliq({
  apiKey: 'tq_live_xxx',
  provider: new MyProvider(),
});
En v1.x, el unico provider disponible es ThaliqNativeProvider (que se comunica con la API de Thaliq). En versiones futuras se anadiran providers directos para Anthropic, OpenAI y otros.

Siguiente paso

Streaming

Aprende sobre los 12 tipos de eventos SSE.

Feedback e Insights

Califica respuestas y consume insights.

Changelog

Ver cambios de v1.1 y guia de migracion.