[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699D9J2B77JZFZ1WS6JB36H":3,"skill-same:01M699D9J2B77JZFZ1WS6JB36H":54},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M699D9J2B77JZFZ1WS6JB36H","deploying-scalable-agents",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79423,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fes\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[18],"deploying scalable agents","2026-11-10 10:12:30",false,"---\nname: deploying-scalable-agents\nlicense: MIT\n---\n# Desplegando Agentes Escalables con Microsoft Foundry\n\n> Habilidad complementaria para [Lección 16 – Desplegando Agentes Escalables](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Úsala para ayudar a un aprendiz a mover un agente desde el prototipo hasta un despliegue de producción escalable y observable.\n> Fundamenta cada recomendación en el contenido de la lección y\n> el cuaderno ejecutable; no inventes APIs de Foundry.\n\n## Desencadenantes\n\nActiva esta habilidad cuando un aprendiz quiera:\n- Desplegar un agente en Microsoft Foundry como un **agente alojado** y hacerlo versionado\u002Fobservable.\n- Elegir entre los patrones de despliegue **cliente-alojado, agente alojado y flujo de trabajo de agentes**.\n- Añadir **enrutamiento de modelo**, **caché de respuestas** o **concurrencia limitada** para controlar la latencia y el coste.\n- Añadir una **puerta de evaluación** para que una versión mala del agente no se despliegue.\n- Añadir un paso de **aprobación humana en el ciclo** para acciones de alto riesgo.\n- Instrumentar un agente con **OpenTelemetry** para trazabilidad y observabilidad en producción.\n- **Prueba rápida** (smoke-test) a un agente desplegado como una puerta rápida tras el despliegue.\n\n## Modelo mental central\n\nUn agente en producción es mayormente el esqueleto operativo *alrededor* del modelo (~80%),\nno el modelo en sí. Mapear cada recomendación a una de estas preocupaciones:\n\n| Preocupación | Prototipo → Producción |\n|------------|------------------------|\n| Alojamiento | cuaderno → servicio alojado versionado |\n| Identidad | tu `az login` → identidad administrada + RBAC con alcance |\n| Estado | en memoria → almacén externo de hilos\u002Fmemoria |\n| Fallos | rastreo de errores → reintentos, respaldos, alertas |\n| Coste | \"unos pocos centavos\" → seguimiento, enrutamiento, caché, presupuesto |\n| Calidad | revisión visual → puerta de evaluación automatizada |\n| Confianza | aprobación tuya → política + humano en el ciclo |\n\n## Patrones de despliegue (elige uno o combina)\n\n1. **Cliente-alojado** — el ciclo de razonamiento se ejecuta en tu proceso. Control máximo; tú gestionas escalado\u002Festado.\n2. **Agente alojado (Foundry Agent Service)** — Foundry aloja el ciclo, almacena hilos, aplica RBAC\u002Fseguridad de contenido, muestra el agente en el portal. Menos control, mucho menos superficie operativa.\n3. **Flujo de trabajo de agentes** — múltiples agentes\u002Fherramientas compuestos en un grafo con ramificaciones, nodos de aprobación y puntos de control duraderos.\n\n## Ciclo de vida (el ciclo que despliega un agente)\n\n`crear → versionar → evaluar (puerta) → desplegar alojado → observar en línea → recopilar fallos → repetir`.\n**La evaluación offline es una puerta, no un pensamiento secundario** — una versión no se despliega\nsalvo que supere el umbral. La observabilidad online retroalimenta\nlos fallos reales al conjunto de pruebas offline.\n\n## Palancas para escala y coste (en orden de prioridad)\n\n1. **Ajustar el tamaño del modelo** — usar el modelo más pequeño que pase la puerta de evaluación.\n2. **Enrutar según complejidad** — modelo pequeño\u002Frápido para peticiones simples, modelo grande para razonamiento real (clasificador DIY o Foundry Model Router).\n3. **Caché** — servir peticiones casi idénticas sin llamar al modelo.\n4. **Diseño sin estado + concurrencia limitada** — externalizar estado; reintentar con retroceso exponencial.\n\n## Patrones clave para reproducir\n\nDirige al aprendiz hacia estos desde el cuaderno\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Manejador de solicitudes**: caché → enrutar según complejidad → trazar span → ejecutar → caché.\n- **Puerta de evaluación**: puntuar un conjunto de pruebas offline; devolver `pass_rate >= threshold` y solo desplegar si es verdadero.\n- **Aprobación humana**: `@tool(approval_mode=\"always_require\")` para acciones como grandes reembolsos.\n- **Trazabilidad**: envolver cada solicitud en `tracer.start_as_current_span(...)` y establecer atributos como `routed.model`, `customer.id`.\n\n## Prueba rápida (smoke-test) a un agente desplegado\n\nTras desplegar, verifica que el endpoint realmente responde (un despliegue exitoso puede aún estar\nsilencioso). Usa la acción [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nvía [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ncon el catálogo en [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). El ejecutor envía mediante POST cada\nprompt a `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\ny comprueba el texto de la respuesta. La identidad necesita el rol de **Azure AI User** en\nel ámbito del proyecto Foundry; la audiencia del token debe ser `https:\u002F\u002Fai.azure.com\u002F`.\n\nSuperpone las puertas: **prueba rápida** (accesible\u002Frespondiente, en cada despliegue) → **evaluación offline** (lo suficientemente bueno para desplegar, antes de promoción) → **evaluación online** (cómo está funcionando en producción, continuo).\n\n\n\n## Controles empresariales\n\n- **RBAC**: asigna a cada agente alojado una identidad administrada con privilegios mínimos.\n- **MCP en producción**: trata cada servidor MCP como un límite no confiable — fija la versión, limita su identidad, valida salidas, limita tasa, nunca expongas secretos.\n\n## Barreras para el asistente\n\n- Prefiere el patrón canónico `FoundryChatClient(...)` + `provider.as_agent(...)` usado en todo el curso.\n- No prometas resultados en vivo de Azure que no hayas verificado; recomienda el flujo de trabajo de prueba rápida para confirmar un despliegue.\n- Mantén la evaluación y el consejo de coste ligados: la evaluación fija el suelo de calidad, el enrutamiento\u002Fcaché mantiene el coste cerca de ese suelo.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Descargo de responsabilidad**:\nEste documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional humana. No somos responsables de cualquier malentendido o interpretación errónea que surja del uso de esta traducción.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Desplegando Agentes Escalables con Microsoft Foundry\n\n> Habilidad complementaria para [Lección 16 – Desplegando Agentes Escalables](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Úsala para ayudar a un aprendiz a mover un agente desde el prototipo hasta un despliegue de producción escalable y observable.\n> Fundamenta cada recomendación en el contenido de la lección y\n> el cuaderno ejecutable; no inventes APIs de Foundry.\n\n## Desencadenantes\n\nActiva esta habilidad cuando un aprendiz quiera:\n- Desplegar un agente en Microsoft Foundry como un **agente alojado** y hacerlo versionado\u002Fobservable.\n- Elegir entre los patrones de despliegue **cliente-alojado, agente alojado y flujo de trabajo de agentes**.\n- Añadir **enrutamiento de modelo**, **caché de respuestas** o **concurrencia limitada** para controlar la latencia y el coste.\n- Añadir una **puerta de evaluación** para que una versión mala del agente no se despliegue.\n- Añadir un paso de **aprobación humana en el ciclo** para acciones de alto riesgo.\n- Instrumentar un agente con **OpenTelemetry** para trazabilidad y observabilidad en producción.\n- **Prueba rápida** (smoke-test) a un agente desplegado como una puerta rápida tras el despliegue.\n\n## Modelo mental central\n\nUn agente en producción es mayormente el esqueleto operativo *alrededor* del modelo (~80%),\nno el modelo en sí. Mapear cada recomendación a una de estas preocupaciones:\n\n| Preocupación | Prototipo → Producción |\n|------------|------------------------|\n| Alojamiento | cuaderno → servicio alojado versionado |\n| Identidad | tu `az login` → identidad administrada + RBAC con alcance |\n| Estado | en memoria → almacén externo de hilos\u002Fmemoria |\n| Fallos | rastreo de errores → reintentos, respaldos, alertas |\n| Coste | \"unos pocos centavos\" → seguimiento, enrutamiento, caché, presupuesto |\n| Calidad | revisión visual → puerta de evaluación automatizada |\n| Confianza | aprobación tuya → política + humano en el ciclo |\n\n## Patrones de despliegue (elige uno o combina)\n\n1. **Cliente-alojado** — el ciclo de razonamiento se ejecuta en tu proceso. Control máximo; tú gestionas escalado\u002Festado.\n2. **Agente alojado (Foundry Agent Service)** — Foundry aloja el ciclo, almacena hilos, aplica RBAC\u002Fseguridad de contenido, muestra el agente en el portal. Menos control, mucho menos superficie operativa.\n3. **Flujo de trabajo de agentes** — múltiples agentes\u002Fherramientas compuestos en un grafo con ramificaciones, nodos de aprobación y puntos de control duraderos.\n\n## Ciclo de vida (el ciclo que despliega un agente)\n\n`crear → versionar → evaluar (puerta) → desplegar alojado → observar en línea → recopilar fallos → repetir`.\n**La evaluación offline es una puerta, no un pensamiento secundario** — una versión no se despliega\nsalvo que supere el umbral. La observabilidad online retroalimenta\nlos fallos reales al conjunto de pruebas offline.\n\n## Palancas para escala y coste (en orden de prioridad)\n\n1. **Ajustar el tamaño del modelo** — usar el modelo más pequeño que pase la puerta de evaluación.\n2. **Enrutar según complejidad** — modelo pequeño\u002Frápido para peticiones simples, modelo grande para razonamiento real (clasificador DIY o Foundry Model Router).\n3. **Caché** — servir peticiones casi idénticas sin llamar al modelo.\n4. **Diseño sin estado + concurrencia limitada** — externalizar estado; reintentar con retroceso exponencial.\n\n## Patrones clave para reproducir\n\nDirige al aprendiz hacia estos desde el cuaderno\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Manejador de solicitudes**: caché → enrutar según complejidad → trazar span → ejecutar → caché.\n- **Puerta de evaluación**: puntuar un conjunto de pruebas offline; devolver `pass_rate >= threshold` y solo desplegar si es verdadero.\n- **Aprobación humana**: `@tool(approval_mode=\"always_require\")` para acciones como grandes reembolsos.\n- **Trazabilidad**: envolver cada solicitud en `tracer.start_as_current_span(...)` y establecer atributos como `routed.model`, `customer.id`.\n\n## Prueba rápida (smoke-test) a un agente desplegado\n\nTras desplegar, verifica que el endpoint realmente responde (un despliegue exitoso puede aún estar\nsilencioso). Usa la acción [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nvía [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ncon el catálogo en [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). El ejecutor envía mediante POST cada\nprompt a `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\ny comprueba el texto de la respuesta. La identidad necesita el rol de **Azure AI User** en\nel ámbito del proyecto Foundry; la audiencia del token debe ser `https:\u002F\u002Fai.azure.com\u002F`.\n\nSuperpone las puertas: **prueba rápida** (accesible\u002Frespondiente, en cada despliegue) → **evaluación offline** (lo suficientemente bueno para desplegar, antes de promoción) → **evaluación online** (cómo está funcionando en producción, continuo).\n\n\n\n## Controles empresariales\n\n- **RBAC**: asigna a cada agente alojado una identidad administrada con privilegios mínimos.\n- **MCP en producción**: trata cada servidor MCP como un límite no confiable — fija la versión, limita su identidad, valida salidas, limita tasa, nunca expongas secretos.\n\n## Barreras para el asistente\n\n- Prefiere el patrón canónico `FoundryChatClient(...)` + `provider.as_agent(...)` usado en todo el curso.\n- No prometas resultados en vivo de Azure que no hayas verificado; recomienda el flujo de trabajo de prueba rápida para confirmar un despliegue.\n- Mantén la evaluación y el consejo de coste ligados: la evaluación fija el suelo de calidad, el enrutamiento\u002Fcaché mantiene el coste cerca de ese suelo.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Descargo de responsabilidad**:\nEste documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional humana. No somos responsables de cualquier malentendido o interpretación errónea que surja del uso de esta traducción.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fes\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents",26019,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners","https:\u002F\u002Faka.ms\u002Fai-agents-beginners","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-07 12:51:12",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill deploying-scalable-agents",{"tool":40,"command":41},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill deploying-scalable-agents",{"tool":43,"command":44},"pnpm","pnpm dlx skills add microsoft\u002Fai-agents-for-beginners --skill deploying-scalable-agents","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fes\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",true,[48],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"agents\u002Fopenai.yaml","REFERENCE","参考文档",100,"https:\u002F\u002Fgithub.com\u002Fnichee\u002Fdotfiles\u002Fblob\u002Fmain\u002Fclaude\u002Fskills\u002Fcode-review\u002Fagents\u002Fopenai.yaml",[55,73,84,92,100,105],{"skillNo":56,"name":57,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":70,"publishedAt":19},"01M69A206TRZ8KK0CW0HYJF5V5","testing-course-samples","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[60,65],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[71,72],"testing","testing course samples",{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":81,"publishedAt":19},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[78],{"categoryNo":79,"categoryName":80,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000023","Skill与智能体开发",[82,8,83],"docs","microsoft docs",{"skillNo":85,"name":86,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M69A1VPZFJQ1HNGTZQ5P3WSC","local-ai-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[90,91],"ai agents","local ai agents",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":19},"01M69A1S947N7MM6V9JF85S2E7","jupyter-notebook","當使用者要求建立、搭建或編輯 Jupyter 筆記本（`.ipynb`）用於實驗、探索或教學時使用；優先使用隨附範本並執行輔助腳本 `new_notebook.py` 來產生一個乾淨的起始筆記本。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fjupyter-notebook\u002FSKILL.md",[],[99],"jupyter notebook",{"skillNo":101,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":19},"01M69A1Q8EXPWKZSQK69V6WF22","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[18],{"skillNo":106,"name":107,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":19},"01M69A1MHZTH3RH9N8VYSYG74X","azure-openai-to-responses","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fazure-openai-to-responses\u002FSKILL.md",[],[111],"azure openai to responses"]