Base de Conocimientos
Cada agente tiene una colección de entradas de conocimiento — fragmentos de información que el agente puede consultar en tiempo de ejecución para responder con datos específicos de tu negocio (manuales, políticas, FAQs, fichas de producto, etc.).
Cuando subes un archivo o ingieres una URL, Platica se encarga del procesamiento automático: extrae el contenido, genera un título y descripción si no los proveíste, lo divide en fragmentos si es muy largo, deduplica si el archivo ya existía, e indexa todo para que el agente pueda buscarlo.
Listar Entradas
GET https://api.platica.mx/v1/agents/{agentId}/knowledge Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
Parámetros de query
| Parámetro | Tipo | Descripción | Default |
|---|---|---|---|
status | string | Lista separada por comas: active, draft, inactive, training, failed | (todas) |
limit | integer | Máximo de entradas a devolver | (sin límite) |
Respuesta
{
"count": 1,
"knowledge": [
{
"id": "FXjQXMr3...",
"name": "get_politicas_devolucion_a1b2c3",
"topic": "Políticas de devolución",
"description": "Documento oficial v2.3 con plazos, condiciones y excepciones.",
"status": "active",
"fileType": "pdf",
"fileName": "manual.pdf",
"lastUpdate": "2026-05-28T06:14:21.000Z"
}
]
} Obtener Entrada
GET https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId} Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
knowledgeId | string | Identificador de la entrada | ✓ |
Respuesta
Devuelve la entrada completa, incluyendo el contenido ya procesado.
Crear desde URLs
Cuando el archivo ya está alojado públicamente (Firebase Storage, S3, etc.), referencialo por URL y Platica lo descarga y procesa.
POST https://api.platica.mx/v1/agents/{agentId}/knowledge Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
Cuerpo de la solicitud
{
"files": [
{
"fileUrl": "https://storage.googleapis.com/.../manual.pdf",
"fileName": "manual.pdf",
"fileType": "pdf",
"fileSize": 481923,
"topic": "Manual del producto",
"description": "Manual oficial v2.3"
}
],
"setActive": true
} | Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
files | array | Lista de archivos a procesar (al menos uno) | ✓ |
files[].fileUrl | string | URL pública del archivo | ✓ |
files[].fileName | string | Nombre del archivo (con extensión) | ✓ |
files[].fileType | string | Tipo ("pdf", "docx", "txt", etc.) | ✓ |
files[].fileSize | integer | Tamaño en bytes (informativo) | — |
files[].topic | string | Título corto (≤ 30 chars). Si se omite, se genera automáticamente. | — |
files[].description | string | Descripción (≤ 900 chars). Si se omite, se genera automáticamente. | — |
setActive | boolean | Marcar las entradas como active al terminar (en lugar de draft) | true |
Respuesta
{
"status": "success",
"message": "Knowledge entries created",
"data": {
"totalFiles": 1,
"successful": 1,
"failed": { "count": 0, "files": [] }
}
} Subir Archivos
Para subir el binario directamente sin pre-hostear, manda multipart al endpoint de upload. Platica lo guarda, lo hace accesible vía URL pública y te devuelve esa URL para que la pases a crear desde URLs .
POST https://api.platica.mx/v1/agents/{agentId}/knowledge/upload Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
Cuerpo de la solicitud
Content-Type: multipart/form-data con uno o más campos files:
curl -X POST https://api.platica.mx/v1/agents/{agentId}/knowledge/upload \
-H "Authorization: Bearer pl_key_..." \
-F "files=@manual.pdf" \
-F "files=@politicas.docx" Límite: 20 MB por request multipart.
Respuesta
{
"status": "success",
"message": "Files uploaded",
"data": {
"success": true,
"uploaded": [
{
"fileName": "manual.pdf",
"fileUrl": "https://storage.googleapis.com/.../manual.pdf",
"fileType": "pdf",
"fileSize": 481923
}
]
}
} Invalid note type. Should be either "note", "tip", "important", "warning", "caution"
Ingerir URLs Web
Ingesta el contenido de páginas web, lo convierte a texto y crea entradas de conocimiento con título y descripción generados automáticamente.
POST https://api.platica.mx/v1/agents/{agentId}/knowledge/web Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
Cuerpo de la solicitud
{
"urls": [
"https://docs.miempresa.com/faq",
"https://miempresa.com/politicas/devoluciones"
]
} | Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
urls | array de strings | URLs HTTP(S) a ingerir (al menos una) | ✓ |
Respuesta
{
"status": "success",
"message": "Web pages ingested",
"data": {
"totalUrls": 2,
"successful": 2,
"failed": { "count": 0, "details": [] }
}
} Actualizar Entrada
Cambia el estado, edita el contenido (mismo patrón que el prompt — match exacto, fuzzy o regex), o re-procesa la fuente original.
PATCH https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId} Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
knowledgeId | string | Identificador de la entrada | ✓ |
Cuerpo de la solicitud
Cambiar status:
{ "status": "active" } Editar contenido por reemplazo de texto:
{ "oldText": "viejo", "newText": "nuevo", "useRegex": false } Re-procesar la fuente original (re-extrae y re-genera metadata):
{ "reprocess": true } | Parámetro | Tipo | Descripción |
|---|---|---|
status | string | "active", "draft", "inactive", "training", "failed" |
oldText | string | Texto a reemplazar dentro del contenido |
newText | string | Texto de reemplazo |
useRegex | boolean | Si es true, oldText se interpreta como expresión regular |
reprocess | boolean | Volver a procesar el archivo o URL original |
skipParsing | boolean | Saltar el procesamiento automático cuando se reprocesa |
updates | objeto | Campos crudos de la entrada (avanzado — sobreescribe las shorthand) |
Respuesta
{
"status": "success",
"message": "Knowledge entry updated"
} Eliminar Entrada
Elimina una entrada de la base de conocimientos del agente. El agente deja de poder consultarla.
DELETE https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId} Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
knowledgeId | string | Identificador de la entrada | ✓ |
Respuesta
{
"status": "success",
"message": "Knowledge entry deleted"
} Re-procesar Entrada
Vuelve a procesar la fuente original de una entrada (descarga el archivo o URL otra vez, re-extrae el contenido y regenera la metadata).
POST https://api.platica.mx/v1/agents/{agentId}/knowledge/{knowledgeId}/reparse Parámetros de URL
| Parámetro | Tipo | Descripción | Requerido |
|---|---|---|---|
agentId | string | Identificador único del agente | ✓ |
knowledgeId | string | Identificador de la entrada | ✓ |
Cuerpo de la solicitud
{ "web": false } | Parámetro | Tipo | Descripción | Default |
|---|---|---|---|
web | boolean | true si la entrada vino de una URL web, false si vino de un archivo | false |
También se acepta { "source": "web" } como alias.
Respuesta
{
"status": "success",
"message": "Knowledge entry reparse queued"
} Notas
- Si subes un archivo idéntico al de una entrada existente (mismo contenido), el sistema deduplica y no crea una nueva.
- Para archivos muy largos, el contenido se divide en varias entradas relacionadas para mantener una buena calidad de búsqueda.