[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699GCHTP4FPDXCC92SQKAFZ":3,"skill-same:01M699GCHTP4FPDXCC92SQKAFZ":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},"01M699GCHTP4FPDXCC92SQKAFZ","deploying-scalable-agents",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79374,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fhr\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# Postavljanje skalabilnih agenata s Microsoft Foundryjem\n\n> Prateća vještina za [Lekcija 16 – Postavljanje skalabilnih agenata](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Koristite je da pomognete učeniku da premjesti agenta iz prototipa u skalabilnu, promatrivu\n> produkcijsku implementaciju. Svaku preporuku utemeljite na sadržaju lekcije i\n> izvršivoj bilježnici; ne izmišljajte Foundry API-je.\n\n## Okidači\n\nAktivirajte ovu vještinu kada učenik želi:\n- Implementirati agenta u Microsoft Foundry kao **hostanog agenta** i učiniti ga verzioniranim\u002Fpromatrivim.\n- Izabrati između obrazaca implementacije **client-hosted, hosted-agent i agent-workflow**.\n- Dodati **usmjeravanje modela**, **keširanje odgovora** ili **ograničenu konkurentnost** za kontrolu latencije i troškova.\n- Dodati **vratilo za evaluaciju** tako da se loša verzija agenta ne može isporučiti.\n- Dodati korak **odobrenja čovjeka u petlji** za radnje visokog rizika.\n- Instrumentirati agenta s **OpenTelemetry** praćenjem za produkcijsku promatrivost.\n- **Smoke-testirati** implementiranog agenta kao brzu provjeru nakon implementacije.\n\n## Osnovni mentalni model\n\nProdukcijski agent je uglavnom operativni okvir *oko* modela (~80%),\nne sam model. Svaku preporuku povezujte s jednom od ovih briga:\n\n| Briga | Prototip → Produkcija |\n|---------|------------------------|\n| Hosting | bilježnica → verzionirana hostana usluga |\n| Identitet | vaš `az login` → upravljani identitet + ograničeni RBAC |\n| Stanje | u memoriji → eksternalizirano spremište dretvi\u002Fmemorije |\n| Pogreške | praćenje staza → ponovni pokušaji, povratne opcije, upozorenja |\n| Trošak | \"nekoliko centi\" → praćeno, usmjereno, keširano, planirano |\n| Kvaliteta | procjena golim okom → automatizirani evaluacijski prag |\n| Povjerenje | vaše odobrenje → politika + čovjek u petlji |\n\n## Obrasci implementacije (izaberite jedan ili kombinirajte)\n\n1. **Client-hosted** — petlja rezoniranja radi u vašem procesu. Maksimalna kontrola; vi upravljate skaliranjem\u002Fstanjem.\n2. **Hosted agent (Foundry Agent Service)** — Foundry hosta petlju, pohranjuje dretve, provodi RBAC\u002Fsigurnost sadržaja, prikazuje agenta u portalu. Manje kontrole, znatno manja operativna složenost.\n3. **Agent workflow** — više agenata\u002Falata sastavljeno u graf s razgranatostima, odobrenjima i trajnim kontrolnim točkama.\n\n## Životni ciklus (petlja koja isporučuje agenta)\n\n`create → version → evaluate (vratilo) → deploy hosted → observe online → collect failures → repeat`.\n**Offline evaluacija je vratilo, nije naknadna misao** — verzija se ne isporučuje\nosim ako ne prođe prag. Online promatrivost vraća stvarne pogreške\nnatrag u offline testni skup.\n\n## Poluge skaliranja i troškova (po prioritetu)\n\n1. **Prilagodite veličinu modela** — koristite najmanji model koji prolazi evaluacijski prag.\n2. **Usmjeravanje prema složenosti** — mali\u002Fbrzi modeli za jednostavne zahtjeve, veliki modeli za stvarno rezoniranje (DIY klasifikator ili Foundry Model Router).\n3. **Keširanje** — uslužite gotovo-identične zahtjeve bez poziva modelu.\n4. **Bezustvni dizajn + ograničena konkurentnost** — eksternalizirajte stanje; pokušajte ponovo s odgodom.\n\n## Ključni obrasci za reprodukciju\n\nUputite učenika na sljedeće iz bilježnice\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Obrada zahtjeva**: keš → usmjeri prema složenosti → pratite opseg → izvrši → keš.\n- **Evaluacijsko vratilo**: ocijenite offline testni skup; vratite `pass_rate >= threshold` i implementirajte samo ako je točno.\n- **Ljudsko odobrenje**: `@tool(approval_mode=\"always_require\")` za radnje poput velikih povrata.\n- **Praćenje**: obavijte svaki zahtjev s `tracer.start_as_current_span(...)` i postavite atribute poput `routed.model`, `customer.id`.\n\n## Smoke-testiranje implementiranog agenta\n\nNakon implementacije provjerite da endpoint zaista odgovara (zelena implementacija može biti\ntiha). Koristite [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nakciju putem [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ns katalogom u [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Izvršitelj šalje svaki\nprompt na `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\ni provjerava tekst odgovora. Identitet treba ulogu **Azure AI User** u\nFoundry obuhvatu projekta; token publika mora biti `https:\u002F\u002Fai.azure.com\u002F`.\n\nSlojite vratila: **smoke test** (dostupno\u002Fodgovara, svaka implementacija) → **offline\nevaluacija** (dovoljno dobra za isporuku, prije promocije) → **online evaluacija** (kako\nse ponaša u divljini, kontinuirana).\n\n## Enterprise kontrole\n\n- **RBAC**: dodijelite svakom hostanom agentu upravljani identitet s minimalnim privilegijama.\n- **MCP u produkciji**: tretirajte svaki MCP poslužitelj kao nepouzdanu granicu — zaključajte verziju, ograničite identitet, provjerite izlaze, ograničite brzinu, nikada ne izlažite tajne.\n\n## Zaštitne mjere za asistenta\n\n- Preferirajte kanonski obrazac `FoundryChatClient(...)` + `provider.as_agent(...)` korišten kroz cijeli tečaj.\n- Nemojte obećavati rezultate uživo iz Azurea koje niste provjerili; preporučite smoke-test workflow za potvrdu implementacije.\n- Držite savjete o evaluaciji i troškovima povezanim: evaluacija postavlja kvalitetni prag, usmjeravanje\u002Fkeširanje drži trošak blizu tog praga.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Napomena**:\nOvaj dokument je preveden korištenjem AI prevoditeljskog servisa [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati greške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za važne informacije preporuča se profesionalni ljudski prijevod. Nismo odgovorni za bilo kakva nesporazumevanja ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Postavljanje skalabilnih agenata s Microsoft Foundryjem\n\n> Prateća vještina za [Lekcija 16 – Postavljanje skalabilnih agenata](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Koristite je da pomognete učeniku da premjesti agenta iz prototipa u skalabilnu, promatrivu\n> produkcijsku implementaciju. Svaku preporuku utemeljite na sadržaju lekcije i\n> izvršivoj bilježnici; ne izmišljajte Foundry API-je.\n\n## Okidači\n\nAktivirajte ovu vještinu kada učenik želi:\n- Implementirati agenta u Microsoft Foundry kao **hostanog agenta** i učiniti ga verzioniranim\u002Fpromatrivim.\n- Izabrati između obrazaca implementacije **client-hosted, hosted-agent i agent-workflow**.\n- Dodati **usmjeravanje modela**, **keširanje odgovora** ili **ograničenu konkurentnost** za kontrolu latencije i troškova.\n- Dodati **vratilo za evaluaciju** tako da se loša verzija agenta ne može isporučiti.\n- Dodati korak **odobrenja čovjeka u petlji** za radnje visokog rizika.\n- Instrumentirati agenta s **OpenTelemetry** praćenjem za produkcijsku promatrivost.\n- **Smoke-testirati** implementiranog agenta kao brzu provjeru nakon implementacije.\n\n## Osnovni mentalni model\n\nProdukcijski agent je uglavnom operativni okvir *oko* modela (~80%),\nne sam model. Svaku preporuku povezujte s jednom od ovih briga:\n\n| Briga | Prototip → Produkcija |\n|---------|------------------------|\n| Hosting | bilježnica → verzionirana hostana usluga |\n| Identitet | vaš `az login` → upravljani identitet + ograničeni RBAC |\n| Stanje | u memoriji → eksternalizirano spremište dretvi\u002Fmemorije |\n| Pogreške | praćenje staza → ponovni pokušaji, povratne opcije, upozorenja |\n| Trošak | \"nekoliko centi\" → praćeno, usmjereno, keširano, planirano |\n| Kvaliteta | procjena golim okom → automatizirani evaluacijski prag |\n| Povjerenje | vaše odobrenje → politika + čovjek u petlji |\n\n## Obrasci implementacije (izaberite jedan ili kombinirajte)\n\n1. **Client-hosted** — petlja rezoniranja radi u vašem procesu. Maksimalna kontrola; vi upravljate skaliranjem\u002Fstanjem.\n2. **Hosted agent (Foundry Agent Service)** — Foundry hosta petlju, pohranjuje dretve, provodi RBAC\u002Fsigurnost sadržaja, prikazuje agenta u portalu. Manje kontrole, znatno manja operativna složenost.\n3. **Agent workflow** — više agenata\u002Falata sastavljeno u graf s razgranatostima, odobrenjima i trajnim kontrolnim točkama.\n\n## Životni ciklus (petlja koja isporučuje agenta)\n\n`create → version → evaluate (vratilo) → deploy hosted → observe online → collect failures → repeat`.\n**Offline evaluacija je vratilo, nije naknadna misao** — verzija se ne isporučuje\nosim ako ne prođe prag. Online promatrivost vraća stvarne pogreške\nnatrag u offline testni skup.\n\n## Poluge skaliranja i troškova (po prioritetu)\n\n1. **Prilagodite veličinu modela** — koristite najmanji model koji prolazi evaluacijski prag.\n2. **Usmjeravanje prema složenosti** — mali\u002Fbrzi modeli za jednostavne zahtjeve, veliki modeli za stvarno rezoniranje (DIY klasifikator ili Foundry Model Router).\n3. **Keširanje** — uslužite gotovo-identične zahtjeve bez poziva modelu.\n4. **Bezustvni dizajn + ograničena konkurentnost** — eksternalizirajte stanje; pokušajte ponovo s odgodom.\n\n## Ključni obrasci za reprodukciju\n\nUputite učenika na sljedeće iz bilježnice\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Obrada zahtjeva**: keš → usmjeri prema složenosti → pratite opseg → izvrši → keš.\n- **Evaluacijsko vratilo**: ocijenite offline testni skup; vratite `pass_rate >= threshold` i implementirajte samo ako je točno.\n- **Ljudsko odobrenje**: `@tool(approval_mode=\"always_require\")` za radnje poput velikih povrata.\n- **Praćenje**: obavijte svaki zahtjev s `tracer.start_as_current_span(...)` i postavite atribute poput `routed.model`, `customer.id`.\n\n## Smoke-testiranje implementiranog agenta\n\nNakon implementacije provjerite da endpoint zaista odgovara (zelena implementacija može biti\ntiha). Koristite [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nakciju putem [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ns katalogom u [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Izvršitelj šalje svaki\nprompt na `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\ni provjerava tekst odgovora. Identitet treba ulogu **Azure AI User** u\nFoundry obuhvatu projekta; token publika mora biti `https:\u002F\u002Fai.azure.com\u002F`.\n\nSlojite vratila: **smoke test** (dostupno\u002Fodgovara, svaka implementacija) → **offline\nevaluacija** (dovoljno dobra za isporuku, prije promocije) → **online evaluacija** (kako\nse ponaša u divljini, kontinuirana).\n\n## Enterprise kontrole\n\n- **RBAC**: dodijelite svakom hostanom agentu upravljani identitet s minimalnim privilegijama.\n- **MCP u produkciji**: tretirajte svaki MCP poslužitelj kao nepouzdanu granicu — zaključajte verziju, ograničite identitet, provjerite izlaze, ograničite brzinu, nikada ne izlažite tajne.\n\n## Zaštitne mjere za asistenta\n\n- Preferirajte kanonski obrazac `FoundryChatClient(...)` + `provider.as_agent(...)` korišten kroz cijeli tečaj.\n- Nemojte obećavati rezultate uživo iz Azurea koje niste provjerili; preporučite smoke-test workflow za potvrdu implementacije.\n- Držite savjete o evaluaciji i troškovima povezanim: evaluacija postavlja kvalitetni prag, usmjeravanje\u002Fkeširanje drži trošak blizu tog praga.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Napomena**:\nOvaj dokument je preveden korištenjem AI prevoditeljskog servisa [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati greške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati autoritativnim izvorom. Za važne informacije preporuča se profesionalni ljudski prijevod. Nismo odgovorni za bilo kakva nesporazumevanja ili pogrešne interpretacije koje proizlaze iz korištenja ovog prijevoda.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fhr\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents",25989,"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\u002Fhr\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"]