Saltar al contenido principal

Cómo funciona

Cuando añades una herramienta personalizada a tu solicitud de API, Zylon sigue estos pasos:
  1. Analiza la intención del usuario: Zylon determina si tu herramienta personalizada es apropiada para responder a la consulta del usuario.
  2. Espera la implementación: Devuelve la llamada de herramienta para que la proceses e implementes la funcionalidad real.

Notas importantes

  • Las herramientas personalizadas requieren que definas name, description e input_schema.
  • El input_schema sigue la especificación JSON Schema.
  • No se requiere tool_context para herramientas personalizadas.

Ejemplo de uso

En este ejemplo práctico, creamos una herramienta de calculadora simple que realiza operaciones aritméticas básicas.
1

Definir herramienta personalizada

Crea tu herramienta personalizada definiendo su nombre, descripción y esquema de entrada. Luego llama a la API con tu definición de herramienta personalizada.
curl --location 'https://<your-host>/api/gpt/v1/messages' \
--header 'Authorization: Bearer <your-token>' \
--header 'x-org: default' \
--header 'Content-Type: application/json' \
--data '{
  "messages": [
    {
      "role": "user",
      "content": "Calculate the sum of 5 and 7"
    }
  ],
  "tools": [
    {
      "name": "simple_calculator",
      "description": "Performs basic arithmetic operations like addition",
      "input_schema": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "enum": ["add"]
          },
          "operands": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 2,
            "maxItems": 2
          }
        },
        "required": ["operation", "operands"]
      }
    }
  ],
  "tool_choice": {
    "type": "tool",
    "name": "simple_calculator"
  }
}'
2

Respuesta

El sistema responde con la llamada de herramienta estructurada que coincide con tu esquema de entrada. Luego necesitas implementar la funcionalidad real:
 {
   "id": "msg_2a8d92b196344ce79027913550999b44",
   "type": "message",
   "role": "assistant",
   "content": [
       {
           "type": "tool_use",
           "start_timestamp": "2025-09-24T14:28:52.825850Z",
           "stop_timestamp": "2025-09-24T14:28:54.230904Z",
           "id": "toolu_01997c208fd97f2f9ba7c374eadad060",
           "name": "simple_calculator",
           "input": {
               "operation": "add",
               "operands": [
                   5,
                   7
               ]
           }
       }
   ],
   "model": "private-gpt",
   "stop_reason": "tool_use",
   "stop_sequence": null,
   "usage": {
       "input_tokens": null,
       "output_tokens": null
   }
}