0Pricing
AI Agents · Lección

Elegir herramientas en tiempo de ejecución

Permita que el modelo decida qué herramienta llamar, fuerce una herramienta específica o exponga solo las herramientas pertinentes al estado actual.

Elegir herramientas en tiempo de ejecución es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

Dejar que el modelo elija

De forma predeterminada, proporciona al modelo una lista de herramientas y este decide cuál llamar (o no llamar ninguna). Es el modo estándar y funciona bien cuando:

  • Tiene entre 5 y 15 herramientas
  • Las herramientas tienen descripciones claras y diferenciadas
  • La herramienta adecuada depende de los datos introducidos por el usuario

tool_choice: auto

El valor predeterminado: el modelo decide:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='auto',  # default; can be omitted
)

tool_choice: required

Obliga al modelo a llamar a ALGUNA herramienta (cualquiera de ellas):

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='required',
)
# Model must return a tool_call, never a free-form answer

Obligar a usar una herramienta específica

Para obligar a usar una herramienta concreta, indique su nombre:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'extract_entities'}},
)

tool_choice: none

Desactive las herramientas durante un turno:

# After a tool result, you might want a pure text response:
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='none',
)

Reducir las listas de herramientas según el contexto

Los modelos eligen peor cuando los conjuntos de herramientas son grandes. Exponga únicamente las herramientas relevantes para el estado actual:

def relevant_tools(state):
    if state == 'authenticated':
        return [search_orders, refund_order, escalate]
    elif state == 'guest':
        return [search_products, contact_support]
    return []

Selección de herramientas en dos fases

Para más de 50 herramientas, use una jerarquía:

  1. El agente externo elige un dominio (pedidos / facturación / envíos)
  2. El agente interno elige la herramienta específica dentro de ese dominio

Cada llamada solo ve unas 10 herramientas.

Búsqueda vectorial entre herramientas

Genere un embedding de la descripción de cada herramienta; en tiempo de ejecución, genere un embedding de la consulta del usuario y recupere las herramientas top-K que se expondrán:

from openai import OpenAI
import numpy as np

query_emb = embed(user_query)
sims = [cosine(query_emb, tool.emb) for tool in all_tools]
top = [t for _, t in sorted(zip(sims, all_tools), reverse=True)[:10]]
# Send only these 10 to the model

tool_choice de Anthropic

Anthropic usa el mismo concepto con una estructura diferente:

tool_choice = {'type': 'auto'}
print("auto:", tool_choice)
tool_choice = {'type': 'any'}                              # required
print("any (required):", tool_choice)
tool_choice = {'type': 'tool', 'name': 'get_weather'}      # specific
print("specific tool:", tool_choice)
tool_choice = {'type': 'none'}
print("none:", tool_choice)

¿Por qué obligar a usar una herramienta específica?

Es útil para:

  • Validación: extraer un campo estructurado específico
  • Enrutamiento: el usuario ha hecho clic en «reembolso», así que se llama a refund_order
  • Salida estructurada: aprovechar las llamadas a herramientas para obtener JSON

Listas de herramientas vacías

Si pasa tools=[] pero tool_choice="required", obtendrá un error. Valide siempre la lista de herramientas antes de enviarla.

Forzar una salida JSON

¿Por qué podría obligar a realizar una llamada a una herramienta específica?

Repaso

Use auto en la mayoría de los casos. Obligue a usar herramientas para el enrutamiento y la extracción estructurada. Reduzca la lista de herramientas según el estado para mantener la selección precisa.

Preguntas frecuentes

¿La lección «Elegir herramientas en tiempo de ejecución» es gratis?

Sí — el texto completo de «Elegir herramientas en tiempo de ejecución» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Elegir herramientas en tiempo de ejecución»?

Permita que el modelo decida qué herramienta llamar, fuerce una herramienta específica o exponga solo las herramientas pertinentes al estado actual. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Elegir herramientas en tiempo de ejecución»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Cómo funciona la llamada a funciones
  2. Definir esquemas de herramientas (JSON Schema)
  3. Elegir herramientas en tiempo de ejecución
  4. Devolver resultados al modelo
← Volver a AI Agents