claudio.cool
CCAR-FLecciones

CCAR-F · Diseño de herramientas y MCP

Pocas herramientas por agente y tool_choice

⏱ 3 min de lecturaBorrador

Darle a un agente todas las herramientas “por si acaso” parece prudente y sale caro: con 15 o 18 opciones, la elección se degrada, y un agente con herramientas ajenas a su rol tiende a usarlas mal. Un agente de síntesis que puede buscar en la web termina buscando en lugar de sintetizar.

Cuántas y cuáles

  • Pocas por agente: 4 o 5 herramientas de su rol. Si un generalista tiene 15 de investigación, facturación y agenda, conviene un coordinador con tres subagentes especializados.
  • Acceso acotado por rol (scoped tool access): cada subagente recibe solo lo que necesita para su trabajo.
  • Una herramienta cruzada para el caso frecuente: si el agente de síntesis devuelve el control al coordinador para cada verificación y el 85% son chequeos simples (una fecha, un nombre), dale una verify_fact acotada. Las verificaciones complejas siguen pasando por el coordinador. Darle todas las herramientas de búsqueda sería pasarse; dejar todo como está, pagar la latencia.

Con pocas herramientas que eligen mal, el primer paso sigue siendo mejorar las descripciones. Con 18, ni la mejor descripción compensa la cantidad.

Mínimo privilegio en la interfaz

El mínimo privilegio (least privilege) va en el diseño de la herramienta, no en el prompt:

  • cambiar fetch_url, que acepta cualquier URL, por una herramienta restringida (constrained tool) como load_document, que valida que sea un documento y rechaza el resto;
  • cambiar execute_sql, que también puede escribir, por get_sales_report(start_date, end_date, region), una consulta fija de solo lectura.

Una instrucción en el prompt orienta, pero no impide; un registro detecta el mal uso después de que pasó.

Los tres modos de tool_choice

La elección de herramienta (tool_choice) define si el modelo puede responder con texto en ese turno:

Modo Qué obliga Cuándo
"auto" Nada: puede responder en texto o llamar a la herramienta que quiera Conversaciones donde muchos turnos son texto (saludos, preguntas frecuentes)
"any" Llamar a alguna herramienta, y el modelo elige cuál Pipelines donde el texto rompe todo y no sabés cuál corresponde (tipo de documento desconocido)
{"type": "tool", "name": "..."} Llamar a esa herramienta Un paso obligatorio y conocido

La pregunta que ordena todo: ¿es válido que en este turno el modelo responda solo con texto? Sí: auto. No, y hay que elegir entre varias: any. No, y sabés cuál: selección forzada (forced tool selection).

Forzar solo el paso obligatorio

Si extract_metadata tiene que correr antes que cualquier enriquecimiento, forzala en la primera llamada y volvé a auto después. Forzar una herramienta en todos los pedidos impide responder y deja al agente en un bucle: el caso típico es search_kb forzada siempre, con un agente que nunca contesta.

Las trampas típicas

  • Pasar a any “para que use más las herramientas” en un asistente que también conversa: obliga a llamar a algo hasta para un “Hola”.
  • Usar any cuando sabés cuál: deja elegir otra herramienta en el paso que no admite otra.
  • Confiar en el orden del array de herramientas para imponer una secuencia.
  • Arreglar con tool_choice una descripción pobre: si el asistente no busca noticias recientes, la solución es decir en la descripción de web_search que es obligatoria para hechos que cambian con el tiempo.

En el examen

Buscá en el escenario si el texto está permitido y si se sabe qué herramienta corresponde. Para problemas de cantidad o de permisos, la respuesta es repartir y restringir, no instruir.

Pregunta rápida

Una pregunta del simulacro sobre este dominio. Cuenta para tu progreso.

A logistics company has hired a new solutions architect, who inherits an internal operations agent with 12 tools: shipment search, depot lookups, driver schedules, invoices and several more. All of them have one-line descriptions, most of them written two years ago when the agent was a proof of concept.

The operations team complains that the agent often picks the wrong tool. The architect reviews a month of logs and finds that misrouting is spread across many tool pairs, with no single keyword or phrasing pattern behind it. The system prompt is short and contains no tool-related instructions.

The previous owner had started building a separate dashboard for tool metrics, which is half finished. The architect has a budget of one sprint before the next quarterly review.

Which plan is the most proportionate first step?

Practicá este dominio en el simulacro →