Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la página anterior se mostró cómo los proveedores de contexto proporcionan memoria de agentes y conocimientos dinámicos, información que se inserta de forma proactiva antes de cada invocación. En este momento, tiene un único agente que puede usar herramientas, cargar habilidades, ejecutar a través del middleware y aprovechar el contexto enriquecido. Eso es potente, pero sigue siendo un único agente haciéndolo todo.
¿Qué ocurre cuando las responsabilidades del agente crecen más allá de lo que un único conjunto de instrucciones puede controlar bien? A medida que un agente acumula herramientas, la selección de herramientas se degrada , los modelos son mejores al elegir entre una serie de herramientas bien descritas que ordenar por docenas. A medida que se amplían las instrucciones, la atención se dispersa: un aviso del sistema que intenta cubrir la reserva de viajes, los informes de gastos y la administración del calendario le asigna al modelo demasiados roles para gestionar.
Los agentes como herramientas resuelven esto al permitirle crear agentes: un agente (el agente externo ) puede llamar a otro agente (el agente interno ) como si fuera una herramienta de función normal. Cada agente interno tiene un ámbito estricto, sus propias instrucciones, sus propias herramientas, su propia experiencia. El agente externo decide cuándo delegar y qué pedir, exactamente de la misma manera que decide cuándo llamar a cualquier otra herramienta.
Cuándo utilizar esto
Use agentes como herramientas cuando:
- Quiere delegar una subtarea especializada a un agente centrado, por ejemplo, un asistente general que llama a un "agente de reserva de viajes" dedicado cuando el usuario pregunta sobre los vuelos.
- El agente externo debe decidir cuándo y si se debe implicar al agente interno, en función de la conversación, la delegación está controlada por modelos, no codificada de forma rígida.
- No necesita un control explícito sobre el orden de ejecución entre agentes; le parece bien que el agente externo coordine las acciones a través de su propio razonamiento.
Sugerencia
Cada agente también puede usar un modelo diferente en función de su especialización y requisitos. Los agentes más complejos pueden usar modelos más grandes para el razonamiento, mientras que los agentes más sencillos pueden usar modelos más pequeños y más rápidos para mejorar la eficacia.
Consideraciones
| Consideración | Detalles |
|---|---|
| Simplicidad | Agent-as-tool es el patrón multiagente más ligero. Transforma un agente en una herramienta y entrégaselo a otro agente. Es el siguiente paso natural cuando un agente no es suficiente. |
| Latencia | Cada delegación es una invocación completa de un agente: el agente externo llama al agente interno, que llama al LLM, el cual puede llamar a sus propias herramientas. Las invocaciones anidadas se acumulan. Mantenga a los agentes internos enfocados para que resuelvan rápidamente. |
| El enrutamiento está controlado por modelos | LLM del agente externo decide cuándo llamar al agente interno, al igual que decide cuándo llamar a cualquier herramienta. Esto significa que el enrutamiento puede ser impredecible, si la descripción de la herramienta es imprecisa, el modelo puede llamar al agente incorrecto o omitirlo por completo. Las descripciones específicas claras son críticas. |
| Visibilidad limitada | El agente externo ve la respuesta de texto final del agente interno; no ve el razonamiento intermedio del agente interno, las llamadas a herramientas ni el contexto. Si necesita observabilidad en el comportamiento del agente interno, use el seguimiento. |
| Aislamiento de contexto | El agente interno se ejecuta con sus propias instrucciones y herramientas. No hereda automáticamente el contexto o el historial de conversaciones del agente externo. Se comunica con él a través de los argumentos de llamada de la herramienta, al igual que con cualquier otra herramienta de funciones. |
Cómo funciona
Los agentes como herramientas se basan en el bucle de llamada a herramientas que ya conoce. La única diferencia es que la "función" que se está llamando es en sí misma un agente.
┌──────────────────────────────────────────────────────────┐
│ User: "Book me a flight to Paris and file the expense" │
└──────────────┬───────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────┐
│ Outer agent reasons about the request │
│ → decides to call the travel-booking agent first │
└──────────────┬───────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────┐
│ Inner agent (travel-booking) runs as a tool: │
│ • receives: "Book a flight to Paris" │
│ • uses its own tools (search_flights, book_flight) │
│ • returns: "Booked Flight AF123, $450" │
└──────────────┬───────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────┐
│ Outer agent receives the tool result │
│ → decides to call the expense-filing agent next │
└──────────────┬───────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────┐
│ Inner agent (expense-filing) runs as a tool: │
│ • receives: "File expense for Flight AF123, $450" │
│ • uses its own tools (create_expense, attach_receipt) │
│ • returns: "Expense report filed" │
└──────────────┬───────────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────┐
│ Outer agent synthesizes both results: │
│ "Done! Booked Flight AF123 to Paris for $450 and filed │
│ expense report." │
└──────────────────────────────────────────────────────────┘
Puntos clave:
- El agente interno se asemeja a una herramienta funcional. Desde la perspectiva del agente externo, llamar a un agente interno no es diferente de llamar a
get_weather()osearch_database(). El marco controla la conversión del agente en una herramienta con un nombre, una descripción y un parámetro de entrada. - El agente interno se ejecuta de forma independiente. Tiene sus propias instrucciones, herramientas y invocaciones de LLM. No puede ver la conversación completa del agente externo, solo la entrada que se transmite a través de la llamada a la herramienta.
- El agente externo solo ve el resultado final. Los pasos intermedios del agente interno (llamadas a herramientas, razonamiento, reintentos) son invisibles para el agente externo. Recibe una respuesta de texto, al igual que cualquier resultado de la herramienta.
Pasos siguientes
Ahora que puede componer agentes dentro de un único proceso, el siguiente paso es Agent-to-Agent (A2A), lo que permite a los agentes comunicarse entre los límites de servicio y organización mediante un protocolo estándar.
Vaya más profundamente:
- información general de Tools: uso de un agente como una herramienta de funciones: ejemplos de código para C# y Python
- Herramientas de funciones : el tipo de herramienta en el que se basa el agente como herramienta
- Observabilidad : seguimiento del comportamiento del agente interno