[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699SQ4KJC7DH8WQK43JWWMF":3,"skill-same:01M699SQ4KJC7DH8WQK43JWWMF":48},{"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},"01M699SQ4KJC7DH8WQK43JWWMF","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\u002Fro\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# Implementarea agenților scalabili cu Microsoft Foundry\n\n> Competență complementară pentru [Lecția 16 – Implementarea agenților scalabili](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Folosește-o pentru a ajuta un cursant să treacă un agent de la prototip la o implementare de producție scalabilă, observabilă.\n> Fundamentează fiecare recomandare pe conținutul lecției și\n> pe notebook-ul executabil; nu inventa API-uri Foundry.\n\n## Declanșatoare\n\nActivează această competență când un cursant dorește să:\n- Implementeze un agent în Microsoft Foundry ca **agent găzduit** și să-l facă versionat\u002Fobservabil.\n- Aleagă între modele de implementare **client-hosted, hosted-agent și agent-workflow**.\n- Adauge **routare de model**, **stocare în cache a răspunsurilor**, sau **concurență limitată** pentru a controla latența și costul.\n- Adauge o **poartă de evaluare** pentru ca o versiune proastă a agentului să nu fie livrată.\n- Adauge un pas de **aprobarea umană în buclă** pentru acțiuni cu risc ridicat.\n- Instrumentează un agent cu trasare **OpenTelemetry** pentru observabilitate în producție.\n- **Testare rapidă** (smoke-test) a unui agent implementat ca o poartă post-implementare rapidă.\n\n## Model mental de bază\n\nUn agent de producție este în cea mai mare parte scheletul operațional *în jurul* modelului (~80%),\nnu modelul în sine. Mapează fiecare recomandare la unul dintre aceste aspecte:\n\n| Aspect | Prototip → Producție |\n|---------|------------------------|\n| Găzduire | notebook → serviciu găzduit versionat |\n| Identitate | `az login` → identitate gestionată + RBAC cu scop limitat |\n| Stare | în memorie → depozit de fire\u002Fmemorie externalizat |\n| Eșec | traceback → retrieri, fallback-uri, alerte |\n| Cost | „câțiva cenți” → urmărit, rutat, cache-uit, bugetat |\n| Calitate | evaluare vizuală → poartă de evaluare automată |\n| Încredere | aprobare manuală → politică + om în buclă |\n\n## Modele de implementare (alege unul sau combină)\n\n1. **Client-hosted** — bucla de raționament rulează în procesul tău. Control maxim; deții scalarea\u002Fgestionarea stării.\n2. **Agent găzduit (Foundry Agent Service)** — Foundry găzduiește bucla, stochează firele, impune RBAC\u002Fsiguranța conținutului, afișează agentul în portal. Mai puțin control, suprafață operațională mult mai mică.\n3. **Flux de lucru agent** — mai mulți agenți\u002Funelte compuse într-un graf cu ramificații, noduri de aprobare și puncte de verificare durabile.\n\n## Ciclu de viață (bucla care livrează un agent)\n\n`creare → versionare → evaluare (poartă) → implementare găzduită → observare online → colectare eșecuri → repetare`.\n**Evaluarea offline este o poartă, nu o idee secundară** — o versiune nu se livrează\ndecât dacă trece pragul. Observabilitatea online alimentează eșecurile reale\nîn setul de teste offline.\n\n## Pârghii de scalare și cost (în ordine de prioritate)\n\n1. **Dimensionează corect modelul** — folosește cel mai mic model care trece poarta de evaluare.\n2. **Rutează după complexitate** — model mic\u002Frapid pentru cereri simple, model mare pentru raționament real (clasificator DIY sau Foundry Model Router).\n3. **Cache-uiește** — servește cererile aproape duplicate fără apel la model.\n4. **Design fără stare + concurență limitată** — externalizează starea; încearcă retrieri cu backoff.\n\n## Modele cheie de reprodus\n\nIndică cursantului acestea din notebook-ul\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Handler-ul de cereri**: cache → rutare după complexitate → span de trasare → rulare → cache.\n- **Poarta de evaluare**: acordă un scor unui set de teste offline; returnează `pass_rate >= threshold` și implementează doar dacă este adevărat.\n- **Aprobare umană**: `@tool(approval_mode=\"always_require\")` pentru acțiuni precum rambursări mari.\n- **Trasare**: învelește fiecare cerere în `tracer.start_as_current_span(...)` și setează atribute precum `routed.model`, `customer.id`.\n\n## Testare rapidă a unui agent implementat\n\nDupă implementare, verifică dacă endpointul răspunde efectiv (o implementare verde poate fi încă\ntăcută). Folosește acțiunea [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nprin [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ncu catalogul din [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Runner-ul face POST la fiecare\nprompt către `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\nși verifică textul răspunsului. Identitatea are nevoie de rolul **Azure AI User** la\nnivelul proiectului Foundry; audiența token-ului trebuie să fie `https:\u002F\u002Fai.azure.com\u002F`.\n\nStratifică porțile: **smoke test** (accesibil\u002Frăspunzător, la fiecare implementare) → **evaluare offline**\n(suficient de bun pentru a fi livrat, înainte de promovare) → **evaluare online** (cum\nse comportă în mediul real, continuu).\n\n## Controale în întreprinderi\n\n- **RBAC**: oferă fiecărui agent găzduit o identitate gestionată cu cele mai mici privilegii.\n- **MCP în producție**: tratează fiecare server MCP ca o limită neîncredere — fixează versiunea, limitează identitatea, validează rezultatele, limitează rata, nu expune niciodată secrete.\n\n## Bariere de siguranță pentru asistent\n\n- Preferă modelul canonic `FoundryChatClient(...)` + `provider.as_agent(...)` folosit în tot cursul.\n- Nu promite rezultate live Azure pe care nu le-ai verificat; recomandă workflow-ul de testare rapidă pentru confirmarea unei implementări.\n- Păstrează sfatul privind evaluarea și costurile legate împreună: evaluarea stabilește nivelul de calitate, rutarea\u002Fcache-ul mențin costul aproape de acel nivel.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Declinare a responsabilității**:\nAcest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). În timp ce ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un om. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care decurg din utilizarea acestei traduceri.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Implementarea agenților scalabili cu Microsoft Foundry\n\n> Competență complementară pentru [Lecția 16 – Implementarea agenților scalabili](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Folosește-o pentru a ajuta un cursant să treacă un agent de la prototip la o implementare de producție scalabilă, observabilă.\n> Fundamentează fiecare recomandare pe conținutul lecției și\n> pe notebook-ul executabil; nu inventa API-uri Foundry.\n\n## Declanșatoare\n\nActivează această competență când un cursant dorește să:\n- Implementeze un agent în Microsoft Foundry ca **agent găzduit** și să-l facă versionat\u002Fobservabil.\n- Aleagă între modele de implementare **client-hosted, hosted-agent și agent-workflow**.\n- Adauge **routare de model**, **stocare în cache a răspunsurilor**, sau **concurență limitată** pentru a controla latența și costul.\n- Adauge o **poartă de evaluare** pentru ca o versiune proastă a agentului să nu fie livrată.\n- Adauge un pas de **aprobarea umană în buclă** pentru acțiuni cu risc ridicat.\n- Instrumentează un agent cu trasare **OpenTelemetry** pentru observabilitate în producție.\n- **Testare rapidă** (smoke-test) a unui agent implementat ca o poartă post-implementare rapidă.\n\n## Model mental de bază\n\nUn agent de producție este în cea mai mare parte scheletul operațional *în jurul* modelului (~80%),\nnu modelul în sine. Mapează fiecare recomandare la unul dintre aceste aspecte:\n\n| Aspect | Prototip → Producție |\n|---------|------------------------|\n| Găzduire | notebook → serviciu găzduit versionat |\n| Identitate | `az login` → identitate gestionată + RBAC cu scop limitat |\n| Stare | în memorie → depozit de fire\u002Fmemorie externalizat |\n| Eșec | traceback → retrieri, fallback-uri, alerte |\n| Cost | „câțiva cenți” → urmărit, rutat, cache-uit, bugetat |\n| Calitate | evaluare vizuală → poartă de evaluare automată |\n| Încredere | aprobare manuală → politică + om în buclă |\n\n## Modele de implementare (alege unul sau combină)\n\n1. **Client-hosted** — bucla de raționament rulează în procesul tău. Control maxim; deții scalarea\u002Fgestionarea stării.\n2. **Agent găzduit (Foundry Agent Service)** — Foundry găzduiește bucla, stochează firele, impune RBAC\u002Fsiguranța conținutului, afișează agentul în portal. Mai puțin control, suprafață operațională mult mai mică.\n3. **Flux de lucru agent** — mai mulți agenți\u002Funelte compuse într-un graf cu ramificații, noduri de aprobare și puncte de verificare durabile.\n\n## Ciclu de viață (bucla care livrează un agent)\n\n`creare → versionare → evaluare (poartă) → implementare găzduită → observare online → colectare eșecuri → repetare`.\n**Evaluarea offline este o poartă, nu o idee secundară** — o versiune nu se livrează\ndecât dacă trece pragul. Observabilitatea online alimentează eșecurile reale\nîn setul de teste offline.\n\n## Pârghii de scalare și cost (în ordine de prioritate)\n\n1. **Dimensionează corect modelul** — folosește cel mai mic model care trece poarta de evaluare.\n2. **Rutează după complexitate** — model mic\u002Frapid pentru cereri simple, model mare pentru raționament real (clasificator DIY sau Foundry Model Router).\n3. **Cache-uiește** — servește cererile aproape duplicate fără apel la model.\n4. **Design fără stare + concurență limitată** — externalizează starea; încearcă retrieri cu backoff.\n\n## Modele cheie de reprodus\n\nIndică cursantului acestea din notebook-ul\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Handler-ul de cereri**: cache → rutare după complexitate → span de trasare → rulare → cache.\n- **Poarta de evaluare**: acordă un scor unui set de teste offline; returnează `pass_rate >= threshold` și implementează doar dacă este adevărat.\n- **Aprobare umană**: `@tool(approval_mode=\"always_require\")` pentru acțiuni precum rambursări mari.\n- **Trasare**: învelește fiecare cerere în `tracer.start_as_current_span(...)` și setează atribute precum `routed.model`, `customer.id`.\n\n## Testare rapidă a unui agent implementat\n\nDupă implementare, verifică dacă endpointul răspunde efectiv (o implementare verde poate fi încă\ntăcută). Folosește acțiunea [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nprin [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ncu catalogul din [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Runner-ul face POST la fiecare\nprompt către `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\nși verifică textul răspunsului. Identitatea are nevoie de rolul **Azure AI User** la\nnivelul proiectului Foundry; audiența token-ului trebuie să fie `https:\u002F\u002Fai.azure.com\u002F`.\n\nStratifică porțile: **smoke test** (accesibil\u002Frăspunzător, la fiecare implementare) → **evaluare offline**\n(suficient de bun pentru a fi livrat, înainte de promovare) → **evaluare online** (cum\nse comportă în mediul real, continuu).\n\n## Controale în întreprinderi\n\n- **RBAC**: oferă fiecărui agent găzduit o identitate gestionată cu cele mai mici privilegii.\n- **MCP în producție**: tratează fiecare server MCP ca o limită neîncredere — fixează versiunea, limitează identitatea, validează rezultatele, limitează rata, nu expune niciodată secrete.\n\n## Bariere de siguranță pentru asistent\n\n- Preferă modelul canonic `FoundryChatClient(...)` + `provider.as_agent(...)` folosit în tot cursul.\n- Nu promite rezultate live Azure pe care nu le-ai verificat; recomandă workflow-ul de testare rapidă pentru confirmarea unei implementări.\n- Păstrează sfatul privind evaluarea și costurile legate împreună: evaluarea stabilește nivelul de calitate, rutarea\u002Fcache-ul mențin costul aproape de acel nivel.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Declinare a responsabilității**:\nAcest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). În timp ce ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un om. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care decurg din utilizarea acestei traduceri.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fro\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\u002Fro\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",true,[],[49,67,78,86,94,99],{"skillNo":50,"name":51,"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":52,"categories":53,"keywords":64,"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",[54,59],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":60,"categoryName":61,"taxonomyType":62,"taxonomyTypeDesc":63},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[65,66],"testing","testing course samples",{"skillNo":68,"name":69,"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":70,"categories":71,"keywords":75,"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",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000023","Skill与智能体开发",[76,8,77],"docs","microsoft docs",{"skillNo":79,"name":80,"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":81,"categories":82,"keywords":83,"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",[],[84,85],"ai agents","local ai agents",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"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",[],[93],"jupyter notebook",{"skillNo":95,"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":96,"categories":97,"keywords":98,"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":100,"name":101,"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},"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",[],[105],"azure openai to responses"]