Un servicio backend debe llamar a modelos y agents definidos en un proyecto de Foundry.
→Utilizar el SDK de Azure AI Foundry (AIProjectClient) con la cadena de conexión del proyecto y una DefaultAzureCredential para obtener clientes de modelos y agents.
Por qué: El cliente de proyecto resuelve conexiones e implementaciones de forma centralizada; codificar los endpoints y claves de cada modelo elude la gobernanza del proyecto.
Referencia↗
Construir una aplicación de preguntas y respuestas basada en documentos de política.
→Incrustar e indexar los documentos, recuperar top-k chunks por consulta y pasarlos como contexto a la completion de chat con una instrucción de citar las fuentes.
Por qué: RAG mantiene el conocimiento actualizado y citable sin volver a entrenar; pasar el corpus completo al prompt agota la ventana de contexto y aumenta el costo.
El modelo debe consultar el estado de un pedido en vivo durante una conversación.
→Definir una tool con un JSON schema, permitir que el modelo emita una tool call, ejecutarla en el servidor y devolver el resultado para que el modelo lo resuma.
Por qué: La function-calling/tool calling permite que el modelo invoque sistemas reales de forma determinista; pedirle que "adivine" el estado produce fabricaciones.
Referencia↗
Una tarea necesita varias tool calls dependientes antes de una respuesta final.
→Ejecutar un bucle de uso de tools: devolver cada resultado de la tool al modelo e iterar hasta que devuelva un mensaje final, con un límite máximo de iteraciones.
Por qué: Los bucles de tool iterativos soportan el razonamiento multifase; un solo viaje de ida y vuelta no puede encadenar búsquedas dependientes, y un bucle sin límite puede descontrolarse.
Antes de la publicación, cuantificar con qué frecuencia una aplicación RAG "alucina" o se desvía del tema.
→Ejecutar evaluadores de Foundry para groundedness, relevancia y coherencia sobre un conjunto de pruebas etiquetado y restringir la publicación en función de las puntuaciones umbral.
Por qué: Los evaluadores incorporados proporcionan señales medibles de calidad y seguridad; revisar unos pocos ejemplos a ojo no detecta la fabricación sistemática.
Referencia↗
Definir un agent de soporte con una persona, objetivos y límites claros.
→Establecer las instrucciones del sistema del agent (rol, objetivos, reglas de rechazo) y adjuntar solo las tools que necesita para su alcance.
Por qué: Las instrucciones estrictas más el acceso mínimo a las tools mantienen al agent en su tarea; las instrucciones amplias y todas las tools invitan a la expansión del alcance y a acciones inseguras.
Un agent debe recordar el contexto a lo largo de las interacciones dentro de una sesión.
→Utilizar los threads del Servicio de Agent de Foundry, que persisten el historial de mensajes por conversación para que cada ejecución vea las interacciones anteriores.
Por qué: Los threads proporcionan memoria de conversación gestionada; reenviar toda la transcripción manualmente en cada llamada es frágil y fácil de truncar incorrectamente.
Referencia↗
Un agent necesita web grounding y ejecución de código sin una implementación personalizada.
→Adjuntar tools de agent de Foundry incorporadas como Grounding con Bing Search y el Code Interpreter en lugar de implementar integraciones manualmente.
Por qué: Las tools gestionadas se gobiernan y soportan de forma predeterminada; las reimplementaciones personalizadas añaden mantenimiento y omiten los controles de seguridad de la plataforma.
Un agent primario debe delegar preguntas de facturación a un agent de facturación especializado.
→Utilizar connected agents: exponer el agent de facturación como una tool que el agent principal puede llamar, de modo que enrute las subtareas a especialistas.
Por qué: Los connected agents permiten la delegación jerárquica; meter todos los dominios en un solo mega-agent hincha las instrucciones y degrada la precisión.
Referencia↗
Un flujo de trabajo necesita un planificador, un investigador y un escritor colaborando con un estado compartido.
→Orquestarlos con un framework multi-agent (Semantic Kernel / AutoGen en Foundry) utilizando un patrón de orquestación definido y contexto compartido.
Por qué: Los frameworks gestionan los turnos, el estado y la terminación; el paso ad-hoc de cadenas entre agents no tiene coordinación ni condición de parada.
Un agent se ejecuta sin supervisión durante la noche y no debe realizar acciones arriesgadas por sí solo.
→Limitarlo con tools permitidas, presupuestos por acción, filtros de contenido y un punto de control que eleve los pasos de alto impacto para su aprobación.
Por qué: Las salvaguardias en capas mantienen la autonomía segura; un bucle autónomo con acceso completo a las tools y sin puerta de aprobación puede causar daños irreversibles.
Un agent falla intermitentemente a mitad de una tarea y debe encontrar el paso fallido.
→Inspeccionar los pasos trazados y las entradas/salidas de tool-call de la ejecución en Foundry para localizar la tool fallida o el argumento malformado.
Por qué: Los traces a nivel de paso señalan dónde falló una ejecución; un único mensaje de error final oculta qué tool call o paso de razonamiento falló realmente.
Las salidas son inconsistentes e ignoran las instrucciones de formato.
→Utilizar un mensaje de sistema claro, ejemplos few-shot y restricciones de salida explícitas; para una forma estricta, habilitar structured outputs / JSON schema.
Por qué: El prompting estructurado y las salidas forzadas por esquema hacen que los resultados sean fiables; aumentar la temperature o reintentar a ciegas no corrige el seguimiento de instrucciones.
Referencia↗
Una tarea de copia creativa se siente demasiado repetitiva; una tarea de extracción de datos es demasiado aleatoria.
→Aumentar temperature/top-p para la tarea creativa y reducirlos hacia 0 para la extracción para hacerla determinista.
Por qué: Los parámetros de muestreo intercambian diversidad por determinismo; cambiar de modelo es excesivo cuando la configuración del parámetro es la causa real.
Un reasoning agent comete errores lógicos evitables en tareas difíciles.
→Añadir un paso de reflexión / autocrítica donde el agent revise y corrija su borrador, o utilizar un modelo de razonamiento para el paso.
Por qué: Chain-of-thought y la autocrítica mejoran la precisión en tareas difíciles; un único paso hacia adelante no tiene oportunidad de detectar su propio error.
Operaciones necesita el gasto de tokens, la latencia y las señales de seguridad por solicitud en producción.
→Emitir traces y métricas de OpenTelemetry desde la aplicación a Azure Monitor / Application Insights, capturando tokens, latencia y banderas de content-safety.
Por qué: La observabilidad unificada relaciona el costo, el rendimiento y la seguridad; el raspado manual de logs no puede correlacionar una interacción lenta con su uso de tokens.
Referencia↗
Una aplicación mezcla clasificación económica con razonamiento complejo ocasional.
→Orquestar múltiples implementaciones: enrutar interacciones simples a un SLM y escalar interacciones difíciles a un LLM de vanguardia detrás de una capa de aplicación.
Por qué: El enrutamiento de modelos optimiza el costo y la calidad por interacción; usar un modelo premium para todo es un sobrepago para la mayoría fácil.