Read in English · Lire en français · Auf Deutsch lesen
Sección 12.4 de 12.8 · Avanzado · 32 min de lectura
Agentes, uso de herramientas y orquestación
Videolección
5 min · narrado en inglés, con subtítulosSolo escuchar (audio)
Leer la transcripción
Hasta ahora, el modelo ha producido texto. Muchos sistemas útiles también deben actuar: consultar un pedido, emitir un reembolso, ejecutar una prueba. Esta lección trata de cómo hacerlo de forma segura.
Imagina a un nuevo asistente capaz en su primer día. Puede leer los archivos que le das y sugerir qué hacer. Pero no tiene llaves propias. Para consultar algo o enviar un reembolso, rellena una hoja de solicitud. Un supervisor revisa la hoja, la ejecuta y le devuelve el resultado. Le das un límite de tiempo y una regla: todo lo que sea caro necesita una firma. Un agente funciona igual: el modelo propone acciones, y un software normal las comprueba y las realiza.
Con la llamada a herramientas, el modelo puede responder con una solicitud estructurada para usar una herramienta, en lugar de con prosa. Así, la tarea del usuario va a una llamada al modelo, que devuelve una respuesta final o una llamada a una herramienta. Cada llamada a una herramienta se valida en código: frente a su esquema, las reglas de negocio y los propios derechos del usuario. Si está permitida, el código ejecuta la herramienta, con un timeout y una clave de idempotencia. El resultado se añade al contexto como una observación, se comprueban los límites de pasos, tiempo y tokens, y el bucle vuelve a empezar. Razonar, actuar, observar: ese bucle es lo que hace que algo sea un agente. Las herramientas de lectura, como las consultas de pedidos, pueden ejecutarse libremente. Las herramientas de escritura, como proponer un reembolso, pasan por aprobación humana cuando importa. Todo lo que está fuera del cuadro del modelo es software normal. El modelo solo propone, y de ahí vienen la fiabilidad y la seguridad de un agente.
Los flujos de trabajo ejecutan modelos y herramientas por rutas de código predefinidas; los agentes dejan que el modelo dirija su propio proceso. Empieza por lo sencillo. El encadenamiento de prompts ejecuta pasos fijos: extraer la queja, clasificarla y después redactar una respuesta. El enrutamiento clasifica la entrada y la envía a su propio gestor, como los de pedidos con retraso o preguntas sobre alergias. La paralelización ejecuta comprobaciones independientes al mismo tiempo, o vota varias veces sobre una misma pregunta. Con orquestador y trabajadores, un modelo divide una tarea en subtareas en tiempo de ejecución. Y en evaluador y optimizador, una llamada redacta y otra revisa el borrador. El costo y los fallos de un flujo de trabajo pueden predecirse, así que usa un agente autónomo solo cuando los pasos no puedan conocerse de antemano.
Sin un estándar, cada asistente necesitaría su propia integración con cada sistema. El Model Context Protocol, o MCP, sustituye eso por un único protocolo abierto. Una aplicación host ejecuta un cliente MCP por cada conexión. Cada cliente se comunica con un servidor MCP. Aquí, un servidor local envuelve archivos, y unos servidores remotos envuelven un servicio de tickets y el servicio de pedidos. Los servidores ofrecen herramientas, recursos y prompts, y los servidores remotos autorizan a los clientes con OAuth. Un servidor puede leer tus datos y actuar por ti, así que trátalo como una dependencia. Aprueba y fija los servidores permitidos, da a cada uno el mínimo privilegio y recuerda que los resultados de las herramientas pueden llevar instrucciones inyectadas.
Sigamos un reembolso. Un cliente escribe que su pedido llegó sin las dos limonadas. El agente se ejecuta con límites de ocho pasos, treinta segundos y veinte mil tokens. Primero, el modelo llama a una herramienta de lectura para obtener los artículos del pedido. El código comprueba que el pedido pertenece al cliente que ha iniciado sesión y después devuelve dos limonadas a dos libras con veinte cada una. Después, el modelo propone un reembolso, pero no indica ningún importe. El servicio de reembolsos calcula cuatro libras con cuarenta y aplica la política en código, incluido el límite automático de quince libras. El cliente confirma. Entonces la respuesta supera el tiempo de espera. El orquestador reintenta con la misma clave de idempotencia, y el servicio devuelve el resultado original. Así que el cliente recibe el reembolso una vez, no dos. Si la reclamación hubiera sido de veintidós libras, el servicio habría dicho que necesita aprobación, y el caso habría pasado a un agente humano con las pruebas. Mantén las ejecuciones cortas. Con un noventa y cinco por ciento de aciertos por paso, una ejecución de tres pasos tiene éxito alrededor del ochenta y seis por ciento de las veces, y una de veinte pasos solo alrededor del treinta y seis.
Los agentes fallan de formas nuevas: entran en bucle, divagan o afirman un éxito que no consiguieron. Así que limita los pasos, el tiempo y los tokens, y detente cuando la misma llamada no deje de repetirse. Valida cada llamada a herramienta en código, y ejecuta las herramientas con los derechos de la persona a la que sirve el agente, no con una cuenta de servicio con amplios poderes. Haz que cada escritura sea idempotente, y guarda un punto de control después de cada paso, para que una caída reanude la ejecución en lugar de repetirla. Exige aprobación humana para los efectos secundarios con consecuencias, mostrando la acción exacta y sus pruebas. Y traza cada llamada al modelo y a herramientas, aísla en un sandbox cualquier código que escriba el agente y ten una forma rápida de desactivarlo.
La sección completa también trata la memoria y el estado, y el debate sobre los sistemas multiagente. A continuación, en la sección doce punto cinco, vemos cómo probar algo probabilístico. Nos vemos allí.
Lo que necesitas saber
- Con la llamada a herramientas, el modelo devuelve una solicitud estructurada para llamar a una función descrita; la aplicación la valida, la autoriza y la ejecuta, de modo que cada efecto pasa por código que tú controlas.
- Un agente repite un bucle de razonar, actuar y observar (ReAct, Yao et al., 2022) hasta cumplir el objetivo o hasta que un límite lo detiene; cada paso hacia la autonomía cambia previsibilidad por flexibilidad.
- Los patrones de flujo de trabajo (encadenamiento de prompts, enrutamiento, paralelización, orquestador-trabajadores, evaluador-optimizador) tienen formas previsibles y normalmente deberían probarse antes que un agente autónomo.
- Las herramientas son interfaces para modelos: descripciones claras, pocos parámetros tipados, resultados concisos, errores que indiquen qué hacer, lectura y escritura separadas y el menor número posible de herramientas a la vez.
- El Model Context Protocol (Anthropic, noviembre de 2024; gobernado desde diciembre de 2025 por la Agentic AI Foundation, dentro de la Linux Foundation) estandariza cómo se conectan los hosts a servidores que exponen herramientas, recursos y prompts; los servidores son dependencias que hay que aprobar, fijar y restringir.
- La memoria y el estado de ejecución del agente viven fuera del modelo; los puntos de control (checkpoints) o la ejecución duradera permiten reanudar las ejecuciones sin repetir los efectos secundarios.
- Los agentes fiables necesitan límites de pasos, tiempo y tokens, detección de bucles, validación en código, los propios derechos del usuario, escrituras idempotentes, aprobación humana para las acciones con consecuencias, sandboxing y trazado completo.
De responder a actuar
Los sistemas de las secciones anteriores producen texto. Muchos sistemas útiles también deben actuar: consultar un pedido, buscar en una base de conocimiento, emitir un reembolso, reservar una mesa, ejecutar una batería de pruebas. La llamada a herramientas (tool calling, también conocida como llamada a funciones o function calling) es el mecanismo. La aplicación describe las herramientas disponibles, cada una con un nombre, una descripción y un JSON Schema para sus parámetros. En lugar de responder en prosa, el modelo puede devolver una solicitud estructurada para llamar a una o varias de ellas con argumentos concretos. Es la aplicación, no el modelo, la que decide si ejecuta la llamada, la ejecuta y devuelve el resultado al modelo, que entonces continúa. El modelo nunca toca por sí mismo una base de datos ni una API; cada efecto en el mundo pasa por código que escribiste tú.
Un agente es un sistema en el que el modelo elige sus acciones de forma repetida: llama a una herramienta, lee el resultado, decide qué hacer a continuación y sigue hasta alcanzar el objetivo o hasta que un límite lo detiene. La autonomía es un espectro. En un extremo, el código llama una vez al modelo para rellenar un formulario; en el otro, un modelo planifica y ejecuta una tarea larga con decenas de llamadas a herramientas y poca supervisión. Desde el punto de vista arquitectónico, lo importante es que cada paso hacia la autonomía traslada decisiones desde un código determinista y revisable a un componente probabilístico, lo que aumenta la flexibilidad y reduce la previsibilidad, la capacidad de prueba y el control. Ese compromiso debe asumirse de forma deliberada, y tan tarde y en tan poca medida como exija el problema.
{
"name": "get_order_status",
"description": "Look up the current status of one order placed by the signed-in customer. Use when the customer asks where an order is. Returns status, estimated arrival and courier position. Changes nothing.",
"input_schema": {
"type": "object",
"properties": {
"order_id": {
"type": "string",
"pattern": "^ORD-[0-9]{6}$",
"description": "Order number, for example ORD-104233"
}
},
"required": ["order_id"],
"additionalProperties": false
}
}El bucle del agente: razonar, actuar, observar
El bucle que hay detrás de casi todos los agentes lo describieron Shunyu Yao y sus colegas en ReAct: Synergizing Reasoning and Acting in Language Models (2022). ReAct intercala razonamiento (el modelo escribe lo que intenta hacer), acciones (llama a una herramienta) y observaciones (el resultado de la herramienta se añade a su contexto), de modo que cada paso se basa en lo que encontró el anterior. Antes de ReAct, los modelos o bien razonaban sin acceso a los datos, y alucinaban, o bien actuaban sin razonar, y se desviaban. Las interfaces actuales de llamada a herramientas y los modelos de razonamiento incorporan este bucle, pero su estructura sigue siendo aquella en torno a la cual hay que diseñar.
En código, el bucle es corto. Construye el contexto (instrucciones, objetivo, historial, definiciones de herramientas, resultados hasta el momento); llama al modelo; si devuelve una respuesta final, detente; si devuelve llamadas a herramientas, valida cada una frente a su esquema y las reglas de negocio, comprueba que el usuario tiene derecho a ella, ejecútala con un timeout, añade el resultado (o un mensaje de error claro) al contexto, comprueba los límites y vuelve a empezar. El diagrama siguiente muestra dónde rodea el código determinista al modelo. Todo lo que está fuera del cuadro del modelo es software normal que puede probarse, revisarse y hacerse cumplir; de ahí vienen la fiabilidad y la seguridad de un agente.
Un bucle de agente con herramientas
Flujos de trabajo frente a agentes
En Building effective agents (diciembre de 2024), Erik Schluntz y Barry Zhang, de Anthropic, establecieron una distinción que desde entonces se ha convertido en vocabulario común. Los flujos de trabajo (workflows) orquestan modelos y herramientas mediante rutas de código predefinidas; los agentes dejan que el modelo dirija su propio proceso y su uso de herramientas. Describieron un pequeño conjunto de patrones de flujo de trabajo, todos construidos a partir de un LLM aumentado (un modelo con recuperación, herramientas y memoria), y aconsejaron empezar con el diseño más sencillo que funcione, a menudo una única llamada con un buen prompt y recuperación, y añadir comportamiento agéntico solo cuando mejore los resultados de forma demostrable.
El consejo coincide con la posición general de este curso sobre la simplicidad. Un flujo de trabajo tiene una forma conocida, así que su costo, su latencia y sus modos de fallo pueden predecirse y sus pasos pueden probarse uno a uno. Un agente puede abordar tareas abiertas cuyos pasos no pueden conocerse de antemano, como investigar un bug desconocido o documentarse sobre una pregunta en muchas fuentes, a cambio de un costo variable, pruebas más difíciles y más formas de que algo salga mal. Muchos sistemas descritos como agentes estarían mejor como flujos de trabajo, y muchos buenos agentes contienen flujos de trabajo.
Patrones de flujo de trabajo y agentes autónomos
| Patrón | Cómo funciona | Ejemplo de reparto de comida | Cuándo usarlo |
|---|---|---|---|
| Encadenamiento de prompts | Una secuencia fija de llamadas al modelo, cada una con la salida de la anterior, con comprobaciones en código entre los pasos | Extraer la queja, después clasificarla y después redactar una respuesta en el idioma del cliente | La tarea se divide limpiamente en pasos fijos; cada paso es más fácil que el conjunto |
| Enrutamiento | Clasificar la entrada y después enviarla a un prompt, modelo o gestor especializado | El pedido con retraso, el artículo que falta, la pregunta sobre alergias y el problema de cuenta van cada uno a su propio gestor | Las entradas se dividen en categorías distintas que necesitan un tratamiento diferente |
| Paralelización | Ejecutar llamadas al mismo tiempo: la división en secciones reparte una tarea en partes independientes; la votación ejecuta la misma tarea varias veces y combina los resultados | Revisar en paralelo una carta nueva en busca de alérgenos, errores de precio y productos prohibidos; votar tres veces si una reseña es ofensiva | Las partes son independientes, o varias opiniones aumentan la confianza |
| Orquestador-trabajadores | Un modelo divide la tarea en subtareas en tiempo de ejecución, las delega en llamadas trabajadoras y después combina los resultados | Investigar por qué subieron los tiempos de reparto en una ciudad: analizar el clima, la plantilla y los retrasos de los restaurantes | Las subtareas no pueden conocerse de antemano |
| Evaluador-optimizador | Una llamada produce un resultado y otra lo evalúa según unos criterios y le da retroalimentación, en un bucle | Redactar un correo electrónico de incorporación para un restaurante; una segunda llamada revisa el tono y la política y pide cambios | Existen criterios de evaluación claros y la iteración ayuda de forma medible |
| Agente autónomo | El modelo planifica y actúa en un bucle con herramientas hasta terminar o hasta que se le detiene | Resolver un caso de soporte complejo que abarca pedidos, pagos y repartidores | Tareas abiertas con pasos impredecibles, en un entorno donde los errores quedan contenidos |
Diseñar herramientas para modelos
Las herramientas son una interfaz cuyo usuario es un modelo, y merecen el cuidado que se da a cualquier API. Schluntz y Zhang lo llaman la interfaz agente-computadora. Da a cada herramienta un único propósito claro y un nombre y una descripción que digan cuándo usarla, cuándo no y qué devuelve; los modelos eligen las herramientas sobre todo por sus descripciones. Usa pocos parámetros y con tipo, enumeraciones en lugar de texto libre, y rechaza los campos desconocidos. Haz que los errores sean difíciles de cometer, por ejemplo exigiendo identificadores absolutos en lugar de posiciones en una lista. Devuelve resultados concisos y relevantes, porque cada token del resultado de una herramienta se paga y ocupa la ventana de contexto; pagina y resume los resultados grandes. Devuelve errores sobre los que el modelo pueda actuar (pedido no encontrado; pide al cliente que compruebe el número
) en lugar de trazas de pila.
Separa la lectura de la escritura. Las herramientas de lectura normalmente pueden ejecutarse libremente; las de escritura cambian el mundo y necesitan validación, autorización, idempotencia y, a veces, aprobación. Mantén pequeño el número de herramientas disponibles en cada momento, porque los conjuntos grandes de herramientas confunden a los modelos y amplían la superficie de ataque; enruta a un subconjunto o carga las definiciones de herramientas bajo demanda. Pide salida estructurada siempre que el resultado lo vaya a consumir código: muchas API pueden restringir la generación a un JSON Schema, lo que elimina los fallos de análisis sintáctico, pero no los valores erróneos, así que sigue siendo necesario validar el contenido.
El Model Context Protocol
De otro modo, cualquier asistente que quisiera llegar a cualquier fuente de datos o herramienta necesitaría una integración a medida para cada par: N aplicaciones por M sistemas. El Model Context Protocol (MCP), presentado por Anthropic como estándar abierto en noviembre de 2024, sustituye eso por un único protocolo, igual que hizo el Language Server Protocol con los editores de código. Una aplicación host (un asistente de chat, un IDE, un agente) ejecuta un cliente MCP por cada conexión a un servidor MCP. Los servidores exponen herramientas (funciones que el modelo puede llamar), recursos (datos que la aplicación puede leer e incorporar al contexto) y prompts (plantillas reutilizables). Los mensajes usan JSON-RPC 2.0, sobre la entrada y la salida estándar en los servidores locales o sobre HTTP en los remotos, y los servidores remotos usan una autorización basada en OAuth.
La adopción fue rápida. En diciembre de 2025, Anthropic informó de más de 10 000 servidores MCP públicos activos y de su compatibilidad con productos como ChatGPT, Cursor, Gemini, Microsoft Copilot y Visual Studio Code. El 9 de diciembre de 2025, Anthropic donó MCP a la recién creada Agentic AI Foundation, un fondo dirigido (directed fund) de la Linux Foundation cofundado por Anthropic, Block y OpenAI, de modo que el protocolo se gobierna ahora en un espacio neutral respecto a los proveedores. La especificación se versiona por fecha. La revisión 2026-07-28 hizo que el protocolo central fuera sin estado, para que los servidores remotos puedan ejecutarse detrás de balanceadores de carga normales sin sesiones persistentes; añadió soporte para extensiones opcionales y sacó del núcleo las tareas de larga duración para llevarlas a una extensión oficial; endureció la autorización; y declaró obsoletas funciones más antiguas (roots, sampling y logging) con un periodo de transición de al menos un año. Para la comunicación entre agentes independientes, y no entre una aplicación y sus herramientas, Google presentó el protocolo Agent2Agent (A2A) en abril de 2025; se cedió a la Linux Foundation en junio de 2025 y, en agosto de 2026, sus patrocinadores anunciaron que también pasaría a la Agentic AI Foundation.
Desde el punto de vista arquitectónico, un servidor MCP es una dependencia que puede leer tus datos y actuar en tu nombre, así que trátalo como tal. Aprueba y fija las versiones de los servidores que pueden usarse, como parte de la seguridad de la cadena de suministro; prefiere los servidores que operas tú o un proveedor de confianza; da a las credenciales de cada servidor el mínimo privilegio que necesitan sus herramientas; recuerda que las descripciones y los resultados de las herramientas entran en el contexto del modelo y pueden llevar instrucciones inyectadas; y encamina el tráfico MCP remoto a través de los mismos controles de gateway, logging y políticas que el resto del tráfico de modelos. El protocolo estandariza la fontanería; no decide qué debería poder hacer un agente.
Hosts, clientes y servidores MCP
Memoria y estado
Los modelos no tienen estado, así que la memoria de un agente es lo que el sistema que lo rodea almacena y vuelve a poner en el contexto. La memoria a corto plazo es la conversación y los resultados de las llamadas a herramientas hasta el momento. Crece con cada paso, lo que aumenta el costo y la latencia y acaba superando la ventana, así que los agentes de larga duración la gestionan: descartan o acortan los resultados antiguos de herramientas, resumen los turnos anteriores (compactación) y mantienen un plan en curso o un archivo de notas que el modelo actualiza. La memoria a largo plazo es la información que se conserva entre sesiones, como las preferencias alimentarias de un cliente o los datos que un asistente aprendió sobre un proyecto, almacenada en una base de datos y recuperada cuando es relevante, lo que la convierte en un pequeño sistema RAG con las mismas cuestiones de relevancia, actualidad y control de acceso.
El estado de ejecución es lo que más importa para la fiabilidad. Si un agente está a mitad de una tarea de veinte pasos cuando su proceso se reinicia, debe reanudarla, no empezar de nuevo y repetir efectos secundarios. Persiste el estado después de cada paso (el contexto, el plan, qué llamadas a herramientas se completaron y sus resultados) como un punto de control (checkpoint), o ejecuta el agente en un motor de ejecución duradera que lo haga por ti, igual que se ejecutan los procesos de negocio de larga duración y las sagas. La memoria también son datos personales: decide qué se recuerda, durante cuánto tiempo, si los usuarios pueden verlo y borrarlo, y mantén la memoria de un cliente fuera del contexto de otro (consulta privacidad desde el diseño).
Sistemas multiagente
Un sistema multiagente reparte el trabajo entre varios agentes dirigidos por modelos, normalmente un agente principal que planifica y delega en subagentes, cada uno con sus propias instrucciones, herramientas y ventana de contexto, y cuyos resultados combina el principal. Las ventajas son el paralelismo, la especialización y, sobre todo, la separación del contexto: cada subagente puede explorar una gran cantidad de material y devolver solo un breve resumen. Anthropic informó en junio de 2025 de que su sistema de investigación multiagente superaba claramente a un único agente en su evaluación interna de investigación, pero también de que esos sistemas usaban unas 15 veces más tokens que los chats normales, y de que se adaptan mejor a tareas amplias y paralelizables que a tareas muy acopladas, como la mayor parte de la programación.
Los profesionales no se ponen de acuerdo sobre hasta dónde llegar. Ese mismo mes, Walden Yan, de Cognition, sostuvo en Don't Build Multi-Agents que los subagentes que trabajan con un contexto parcial hacen suposiciones contradictorias, y recomendó como opción por defecto un agente de un solo hilo con una gestión cuidadosa del contexto. Ambas posiciones coinciden en la causa de fondo: la coordinación entre agentes es una comunicación con pérdidas entre componentes que no comparten estado. Ese es el problema central de los sistemas distribuidos, y se aplica el mismo consejo. No distribuyas sin un motivo; mantén las interfaces entre agentes explícitas y estrechas; prefiere subtareas independientes; traza cada salto; y espera que el costo, la latencia y los modos de fallo se multipliquen con el número de agentes.
Ejemplo práctico
Ejemplo práctico: un reembolso gestionado por el agente de soporte
Un cliente escribe: El pedido ORD-104233 llegó sin las dos limonadas.
El asistente de soporte de la sección 12.2 ejecuta un bucle de agente corto con un límite de 8 pasos, 30 segundos y 20 000 tokens.
| Paso 1: leer | El modelo llama a get_order_items("ORD-104233"). El código comprueba que el pedido pertenece al cliente que ha iniciado sesión y después devuelve los artículos, entre ellos 2 × limonada a £2.20, entregados a las 19:42. |
|---|---|
| Paso 2: escribir | El modelo llama a propose_refund para las dos limonadas, con el motivo artículo que falta; no indica ningún importe. El servicio de reembolsos, no el modelo, calcula £4.40 a partir del pedido y aplica la política en código: artículos que figuran en el pedido, reclamación dentro de las 48 horas, £4.40 por debajo del límite automático de £15, ningún reembolso anterior en el pedido y menos de tres reembolsos en 30 días. El cliente confirma el reembolso en una tarjeta de la app (sección 12.6), y el servicio lo registra con una clave de idempotencia derivada de la conversación, el pedido y los artículos. |
| Fallo gestionado | La respuesta al paso 2 supera el tiempo de espera. El orquestador reintenta con la misma clave de idempotencia; el servicio de reembolsos devuelve el resultado original, así que el cliente recibe el reembolso una vez, no dos. |
| Paso 3: responder | El modelo responde con el importe y cuándo aparecerá, y la conversación se cierra con su traza registrada. |
| Regla de escalamiento | Si la reclamación hubiera sido de £22, el servicio de reembolsos habría devuelto necesita aprobacióny el caso habría pasado a la consola de agentes con la acción propuesta y las pruebas. |
| Por qué importan las ejecuciones cortas | Si cada paso acierta el 95% de las veces de forma independiente, una ejecución de 3 pasos tiene éxito alrededor del 86% de las veces (0.953), una de 10 pasos alrededor del 60% y una de 20 pasos alrededor del 36%. Mantén las ejecuciones cortas, comprueba después de cada paso y haz en código todo lo que pueda hacerse en código. |
El modelo eligió qué hacer; el código determinista decidió si estaba permitido e hizo que fuera seguro reintentarlo.
Los límites de la política viven en el servicio de reembolsos, donde se prueban y se auditan, no en el prompt, donde solo son sugerencias.
Ingeniería de fiabilidad para agentes
Los agentes fallan de formas nuevas: entran en bucle, llamando a la misma herramienta con los mismos argumentos; divagan, persiguiendo una cuestión secundaria hasta que se agota el presupuesto; se rinden antes de tiempo o afirman un éxito que no consiguieron; y realizan acciones que sus diseñadores no previeron. Los remedios son los patrones del Capítulo 9 y del Capítulo 6, aplicados en cada paso en lugar de una vez por solicitud, más una regla firme: los efectos secundarios con consecuencias necesitan algo más que la palabra del modelo. La sección 12.6 trata en profundidad el lado de la seguridad, la agencia excesiva; la lista de comprobación siguiente cubre la fiabilidad.
Lista de comprobación: hacer que un agente sea fiable
- Límites de pasos, tiempo y tokensLimita las iteraciones, el tiempo real transcurrido y los tokens (o el costo) por ejecución, y detente con un resultado claro cuando se alcance un límite, nunca en silencio.
- Detección de buclesDetén o interviene cuando se llame repetidamente a la misma herramienta con los mismos argumentos, o cuando no haya avances durante varios pasos.
- Valida cada llamada a herramienta en códigoComprueba los argumentos frente al esquema y las reglas de negocio antes de ejecutarla; devuelve al modelo un error útil cuando se rechace una llamada.
- Actúa con los derechos del usuarioLas herramientas se ejecutan con los permisos de la persona a la que sirve el agente, no con una cuenta de servicio con amplios poderes, para que el agente no pueda convertirse en un delegado confundido (confused deputy).
- Herramientas de escritura idempotentesCada escritura lleva una clave de idempotencia para que los reintentos tras un timeout no puedan duplicar reembolsos, reservas ni mensajes.
- Aprobación humana para los efectos secundarios con consecuenciasMuestra la acción exacta y sus pruebas antes de que ocurra; define los umbrales (importe, reversibilidad, audiencia) en código.
- Puntos de control y reanudaciónPersiste el estado después de cada paso, o usa la ejecución duradera, para que una caída reanude la ejecución en lugar de repetirla.
- Compensaciones para cambios de varios pasosCuando cambian varios sistemas, diseña acciones compensatorias como en una saga y registra lo que se ha hecho.
- Aísla en un sandbox el código y el acceso a la redEjecuta cualquier código que escriba el agente en un entorno aislado, sin secretos y con una lista de destinos de red permitidos.
- Traza y evalúa las trayectoriasRegistra cada llamada al modelo y cada llamada a herramientas con sus entradas, salidas, tiempos y costo; evalúa el camino seguido, no solo la respuesta final.
- Interruptor de apagado y despliegue progresivoPon las capacidades del agente detrás de feature flags, lánzalas primero a una pequeña parte del tráfico y ten una forma rápida de desactivarlas.
Comprueba lo que has entendido
¿Qué estandariza el Model Context Protocol y qué te deja a ti?
Estandariza cómo se conectan las aplicaciones host a servidores que exponen herramientas, recursos y prompts; no decide en qué servidores confiar ni qué puede hacer un agente con ellos.
¿Por qué separar las herramientas de lectura de las de escritura?
Las lecturas normalmente pueden ejecutarse libremente, mientras que las escrituras cambian el mundo y necesitan validación, autorización, idempotencia y, a veces, aprobación humana.
¿Para qué sirve un punto de control en una ejecución larga de un agente?
Registra el contexto, el plan y las llamadas a herramientas completadas después de cada paso, para que una ejecución que se ha caído pueda reanudarse sin repetir efectos secundarios.
Da un argumento a favor y otro en contra de los diseños multiagente.
A favor: los subagentes trabajan en paralelo con contextos separados y devuelven resúmenes breves. En contra: hacen suposiciones contradictorias a partir de un contexto parcial y multiplican el costo en tokens y los modos de fallo.
Fuentes y lecturas recomendadas
- Yao et al.: ReAct: Synergizing Reasoning and Acting in Language Models (2022)
- Erik Schluntz and Barry Zhang: Building effective agents (Anthropic, 2024)
- Model Context Protocol specification, version 2026-07-28
- Anthropic: Donating the Model Context Protocol and establishing the Agentic AI Foundation (2025)
- Walden Yan: Don't Build Multi-Agents (Cognition, 2025)
¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.
Pregunta: “¿Cómo evito que un agente de IA emita el mismo reembolso dos veces si una llamada a una herramienta supera el tiempo de espera?”