Saltar al contenido principal
Un artefacto es una pieza de información o herramienta que le entregas a Zylon para usarla como contexto en consultas y operaciones. La Workspace API agrupa los artefactos en documentos, agent flows y otros artefactos.

Requisitos previos

  • Un token de API. Ver Gestión de tokens.
  • El nombre de host de Zylon (sustituye {BASE_URL} en los ejemplos).

Artefactos

CategoríaIncluyeCuándo usar
Artefactos de documentoDocumentos, carpetas, enlacesGuardar u organizar contenido en un proyecto.
Agent flowsSummary, composición, extracciónEjecutar flujos sobre artefactos para producir resultados.
Otros artefactosServidores MCP, bases de datos SQLConectar herramientas o fuentes externas.

Artefactos de documento

Los documentos contienen contenido, los enlaces referencian artefactos existentes y las carpetas organizan artefactos dentro de un proyecto.
curl -X POST "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "InlineText",
    "source": "User",
    "name": "Q1 Support Summary",
    "description": "Weekly summary notes.",
    "props": {
      "content": "Ticket volume rose 12% week-over-week. Billing issues drove 38% of cases."
    }
  }'
{
  "id": "artifact_doc_q1",
  "project_id": "proj_7a5c3e1b9d2f4a6c",
  "name": "Q1 Support Summary",
  "type": "InlineText",
  "source": "User",
  "state": "Published",
  "ingest_status": "NotApplicable",
  "props": {
    "content": "Ticket volume rose 12% week-over-week. Billing issues drove 38% of cases."
  },
  "created_at": "2026-02-08T14:30:12Z",
  "updated_at": "2026-02-08T14:31:02Z"
}

Agent flows

Los agent flows ejecutan un flujo de trabajo de Zylon sobre uno o más artefactos para producir un resultado estructurado.
curl -X POST "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "Summary",
    "source": "User",
    "name": "Q1 Support Summary (auto)",
    "props": {
      "artifact_ids": ["{artifactID}"],
      "style": "Neutral",
      "detail": "KeyPoints",
      "instructions": ["Focus on billing and onboarding trends."]
    }
  }'
{
  "id": "artifact_summary_q1",
  "project_id": "proj_7a5c3e1b9d2f4a6c",
  "type": "Summary",
  "state": "Processing",
  "ingest_status": "Processing",
  "props": {
    "artifact_ids": ["artifact_doc_q1"],
    "style": "Neutral",
    "detail": "KeyPoints",
    "instructions": ["Focus on billing and onboarding trends."]
  },
  "created_at": "2026-02-08T15:10:00Z"
}

Otros artefactos

Los artefactos de conector almacenan integraciones para herramientas. private_props solo se usa en artefactos MCP y SqlDatabase.
curl -X POST "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "SqlDatabase",
    "source": "User",
    "name": "Sales database",
    "description": "Read-only reporting database.",
    "props": {
      "schemas": ["public", "analytics"],
      "tables": ["orders", "customers"],
      "ssl": true,
      "enable_tables": true,
      "enable_views": true,
      "enable_procedures": false,
      "enable_functions": false
    },
    "private_props": {
      "connection_string": "postgresql://readonly:***@db.example.com:5432/sales"
    }
  }'
{
  "id": "artifact_db_sales",
  "project_id": "proj_7a5c3e1b9d2f4a6c",
  "type": "SqlDatabase",
  "state": "Ready",
  "ingest_status": "NotApplicable",
  "props": {
    "schemas": ["public", "analytics"],
    "tables": ["orders", "customers"],
    "ssl": true,
    "enable_tables": true,
    "enable_views": true,
    "enable_procedures": false,
    "enable_functions": false
  },
  "created_at": "2026-02-08T15:20:05Z"
}
Para recuperar los detalles privados de estos artefactos: GET /api/v1/app/project/{projectId}/artifact/{artifactId}/private Solo el creador del artefacto puede acceder a los detalles privados.

Trabajar con artefactos

Listar artefactos

curl "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact?page=1&page_size=20" \
  -H "Authorization: Bearer {API_TOKEN}"
{
  "data": [
    {
      "id": "artifact_doc_q1",
      "project_id": "proj_7a5c3e1b9d2f4a6c",
      "name": "Q1 Support Summary",
      "type": "Document",
      "source": "User",
      "state": "Ready",
      "ingest_status": "Done",
      "has_content": true,
      "created_at": "2026-02-08T14:30:12Z",
      "updated_at": "2026-02-08T14:31:02Z"
    }
  ],
  "has_next_page": false,
  "has_previous_page": false,
  "total_count": 1
}

Obtener un artefacto

curl "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact/{artifactID}" \
  -H "Authorization: Bearer {API_TOKEN}"
{
  "id": "artifact_doc_q1",
  "project_id": "proj_7a5c3e1b9d2f4a6c",
  "name": "Q1 Support Summary",
  "type": "Document",
  "source": "User",
  "state": "Ready",
  "ingest_status": "Done",
  "has_content": true,
  "created_at": "2026-02-08T14:30:12Z",
  "updated_at": "2026-02-08T14:31:02Z"
}

Actualizar un artefacto

curl -X PUT "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact/{artifactID}" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q1 Support Summary (final)",
    "description": "Finalized weekly summary notes.",
    "plain_text_content": "Ticket volume rose 12% week-over-week..."
  }'
{
  "id": "artifact_doc_q1",
  "name": "Q1 Support Summary (final)",
  "description": "Finalized weekly summary notes.",
  "type": "Document",
  "source": "User",
  "ingest_status": "Done",
  "updated_at": "2026-02-08T14:45:21Z"
}

Eliminar un artefacto

curl -X DELETE "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact/{artifactID}" \
  -H "Authorization: Bearer {API_TOKEN}"
{
  "id": "artifact_doc_q1",
  "state": "Deleted"
}

Metadatos privados del artefacto

curl "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact/{artifactID}/private" \
  -H "Authorization: Bearer {API_TOKEN}"
{
  "connection_string": "postgresql://readonly:***@db.example.com:5432/sales"
}

Descargar contenido sin procesar

curl "https://{BASE_URL}/api/v1/app/project/{projectID}/artifact/{artifactID}/download" \
  -H "Authorization: Bearer {API_TOKEN}"
Ticket volume rose 12% week-over-week. Billing issues drove 38% of cases.

Obtener contenido procesado

Este endpoint solo está disponible cuando el artefacto tiene un índice vectorial inicializado. En la práctica, esto suele implicar documentos de conectores o artefactos con indexación ya completada.

Sincronizar un artefacto

Este endpoint se utiliza principalmente con artefactos de integración (SharePoint, Confluence, Claromentis o FileSystem).

Errores y casos límite

  • Códigos de error de artefacto: el campo error refleja fallos de ingesta:
valor errorSignificado
InvalidExtensionExtensión de archivo no admitida.
MismatchedTypeEl tipo de archivo no coincide con el tipo declarado.
MalformedArchivo corrupto o ilegible.
EncryptedArchivo protegido con contraseña.
ParsingFailureEl extractor no pudo analizar el archivo.
MaxNodesDocumento demasiado grande o complejo para el análisis.
NoValidFileNo se encontró un archivo válido.
NoValidNodesNo se pudo extraer contenido analizable.
InternalErrorFallo inesperado en la ingesta.
UnknownFallo no clasificado.
Si ingest_status es Error, corrige el archivo (o conviértelo) y re‑sincroniza.
  • Advertencias: ingest_warnings puede incluir valores como BigSize, UnprocessableContent o NoContent para indicar problemas no fatales.
  • 401/403: token ausente o permisos insuficientes.
  • 404: artefacto o proyecto no encontrado.
  • 409: artefacto ya en proceso.
  • 413: el contenido supera el tamaño recomendado (250 MB).