Saltar al contenido principal

Herramientas entrantes

El asistente de Zylon puede interactuar sin problemas con herramientas y funciones externas, ampliando significativamente sus capacidades y permitiéndole manejar una mayor variedad de tareas directamente dentro de las conversaciones. Las herramientas pueden invocarse y gestionarse en tiempo real dentro de los diálogos, permitiendo que el asistente las integre dinámicamente en sus respuestas. Dentro de este marco, las herramientas se dividen en dos categorías principales:
  • Herramientas integradas: Zylon proporciona cuatro herramientas listas para usar diseñadas para los escenarios más comunes.
  • Herramientas personalizadas: Puedes crear tus propias herramientas adaptadas a flujos de trabajo específicos, definiendo parámetros, operaciones admitidas y comportamientos únicos para satisfacer requisitos especializados.
Herramientas integradas vs personalizadas: Zylon te equipa con herramientas integradas flexibles para tareas cotidianas, mientras que también te da la libertad de diseñar soluciones personalizadas para necesidades avanzadas o específicas del dominio.

Campos de configuración principales

Al integrar herramientas con la API de mensajes, trabajarás con tres objetos de configuración principales:

tools - Array de especificaciones de herramientas

Define qué herramientas están disponibles para que la IA use durante la conversación.
interface ToolSpec {
  name: string;           // Required: Unique identifier
  type?: string;          // For built-in tools (e.g., "database_query_v1")
  description?: string;   // Necessary for custom tools
  inputSchema?: object;   // For custom tools - JSON Schema
}
El objeto toolspec define una sola herramienta y se usa dentro del parámetro tools, que acepta un array de objetos toolspec.

Requisitos de especificación de herramientas

  • Para herramientas integradas, es necesario especificar los campos name y type.
  • Para herramientas personalizadas, debes proporcionar al menos los siguientes campos:
    • name: identificador único para la herramienta
    • description: una explicación legible por humanos de lo que hace la herramienta
    • input_schema: define la estructura de los parámetros de entrada esperados por la herramienta, típicamente en formato JSON Schema.

tool_choice - Estrategia de selección

Controla cómo la IA decide cuándo y qué herramientas usar.
interface ToolChoice {
  type: "auto" | "tool" | "none";  // Default: "auto"
  name?: string;                   // Name of the tool
  disable_parallel_tool_use?: boolean;  // Default: false
  validation_mode?: "eager" | "lazy";   // Default: "lazy"
}
El parámetro tool_choice te permite controlar los criterios para seleccionar qué herramienta debe usar la IA y cuándo:
  • type (Por defecto: "auto"):
    • "auto": El sistema decide automáticamente qué herramienta(s) usar basándose en la lista proporcionada en tools.
    • "tool": Instruye al sistema para usar una herramienta específica.
    • "none": Instruye al sistema para no usar ninguna herramienta.
  • name (Requerido si type es "tool"): El nombre de la herramienta a invocar explícitamente.
  • disable_parallel_tool_use (Por defecto: false): Si se establece en true, previene llamar múltiples herramientas simultáneamente.
  • validation_mode (Por defecto: "lazy"):
    • "eager": Valida las llamadas de herramientas antes de la ejecución.
    • "lazy": Valida las llamadas de herramientas solo cuando se invocan realmente.

tool_context - Datos contextuales

Proporciona el contexto para las herramientas.
type ToolContext = Array< IngestedArtifact | SqlDatabaseArtifact>
El tipo de tool_context depende de la herramienta seleccionada, como se describe en la sección Artefactos de contexto de la documentación.

Cómo configurar el uso de herramientas

Usar herramientas integradas

Al trabajar con herramientas integradas:
  1. Define tu(s) herramienta(s) en el array tools usando los campos name y type.
  2. Proporciona el tool_context correspondiente con el tipo de artefacto apropiado que coincida con los requisitos de la herramienta (consulta Artefactos de contexto).
  3. Opcionalmente configura cómo se seleccionan las herramientas con tool_choice. Por defecto, esto se establece en "auto" para selección dinámica de herramientas.

Usar herramientas personalizadas

Para herramientas personalizadas:
  1. Especifica name, description y un input_schema válido en la especificación de la herramienta.
  2. Opcionalmente configura cómo se seleccionan las herramientas con tool_choice.

Artefactos de contexto

Diferentes herramientas requieren tipos de artefactos específicos dependiendo de la naturaleza de la tarea. Seleccionar el artefacto de contexto correcto es esencial para una ejecución adecuada.
ToolIngested ArtifactSqlDatabase ArtifactNotes
semantic_search_v1x
tabular_analysis_v1x
database_query_v1x
web_extract_v1xxWeb URL must be included in message content

Artefacto ingerido

Usado para contenido ya procesado o ingerido como documentos, hojas de cálculo o archivos HTML.
{
    "type": "ingested_artifact",
    "context_filter": {
        "collection": "pgpt_collection",
        "artifacts": ["artifact_id_1", "artifact_id_2"],
        "metadata_filter": [
            {
                "key": "file_id",
                "operator": "==",
                "value": "artifact_id_1"
            }
        ]
    }
}

Artefacto de base de datos SQL

Usado para conectar e interactuar con bases de datos SQL. Permite especificar cadenas de conexión, esquemas y configuración SSL.
{
    "type": "sql_database",
    "connection_string": "postgresql://user:pass@host:5432/db",
    "schema": "public"
}
Coincidencia de contexto: Asegúrate de que tu contexto de herramienta coincida con los requisitos de tus herramientas seleccionadas. Diferentes herramientas esperan diferentes tipos de artefactos.

Herramientas integradas

Zylon proporciona cuatro herramientas integradas disponibles para uso inmediato:
HerramientaPropósito
semantic_search_v1Realizar búsqueda semántica en documentosHerramienta de búsqueda semántica
tabular_analysis_v1Analizar datos estructurados (CSV, Excel)Herramienta de análisis tabular
web_extract_v1Extraer y analizar contenido webHerramienta de extracción web
database_query_v1Ejecutar operaciones de base de datos SQLHerramienta de consulta de base de datos

Herramientas personalizadas

Puedes crear herramientas personalizadas adaptadas a tu propia lógica empresarial, flujos de trabajo o requisitos específicos. Herramientas personalizadas