[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699H8WFRKK0CJSA9W624R3Z":3,"skill-same:01M699H8WFRKK0CJSA9W624R3Z":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},"01M699H8WFRKK0CJSA9W624R3Z","deploying-scalable-agents",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79567,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fid\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# Mendeploy Agen Skala Besar dengan Microsoft Foundry\n\n> Keterampilan pendamping untuk [Lesson 16 – Mendeploy Agen Skala Besar](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Gunakan ini untuk membantu pembelajar memindahkan agen dari prototipe ke deploy produksi yang skalabel dan dapat diamati.\n> Dasarkan setiap rekomendasi pada konten pelajaran dan\n> notebook yang dapat dijalankan; jangan buat API Foundry.\n\n## Pemicu\n\nAktifkan keterampilan ini ketika pembelajar ingin:\n- Mendeploy agen ke Microsoft Foundry sebagai **agen yang dihosting** dan membuatnya versi\u002Fterobservasi.\n- Memilih antara pola deploy **client-hosted, hosted-agent, dan agent-workflow**.\n- Menambahkan **routing model**, **penyimpanan respons (response caching)**, atau **konkurensi terbatas** untuk mengontrol latensi dan biaya.\n- Menambahkan **gerbang evaluasi** supaya versi agen yang buruk tidak dikirim.\n- Menambahkan langkah **persetujuan manusia dalam proses (human-in-the-loop)** untuk tindakan berisiko tinggi.\n- Menginstrumentasi agen dengan **OpenTelemetry** untuk pelacakan observabilitas produksi.\n- **Smoke-test** agen yang dideploy sebagai gerbang cepat pasca deploy.\n\n## Model mental inti\n\nAgen produksi sebagian besar adalah kerangka operasional *di sekitar* model (~80%),\nbukan model itu sendiri. Peta setiap rekomendasi ke salah satu perhatian ini:\n\n| Perhatian | Prototipe → Produksi |\n|---------|------------------------|\n| Hosting | notebook → layanan hosted versi |\n| Identitas | `az login` Anda → managed identity + RBAC terperinci |\n| Status | di memori → penyimpanan thread\u002Fmemori eksternal |\n| Kegagalan | jejak kesalahan → pengulangan, fallback, peringatan |\n| Biaya | \"beberapa sen\" → dilacak, diarahkan, disimpan, dianggarkan |\n| Kualitas | penilaian manual → gerbang evaluasi otomatis |\n| Kepercayaan | Anda setuju → kebijakan + manusia dalam proses |\n\n## Pola deploy (pilih satu, atau gabungkan)\n\n1. **Client-hosted** — loop penalaran berjalan di proses Anda. Kontrol maksimal; Anda mengelola skala\u002Fstatus.\n2. **Hosted agent (Foundry Agent Service)** — Foundry menghosting loop, menyimpan thread, menerapkan RBAC\u002Fkeamanan konten, menampilkan agen di portal. Kontrol lebih sedikit, permukaan operasional jauh lebih kecil.\n3. **Agent workflow** — beberapa agen\u002Falat disusun dalam graf dengan cabang, node persetujuan, dan checkpoint tahan lama.\n\n## Siklus hidup (loop yang mengirim agen)\n\n`create → version → evaluate (gate) → deploy hosted → observe online → collect failures → repeat`.\n**Evaluasi offline adalah gerbang, bukan pikiran terakhir** — versi tidak dikirim\nkecuali melewati ambang batas. Observasi online mengembalikan kegagalan nyata\nke set pengujian offline.\n\n## Tuas skala dan biaya (urutan prioritas)\n\n1. **Sesuaikan ukuran model** — gunakan model terkecil yang lolos gerbang evaluasi.\n2. **Routing berdasarkan kompleksitas** — model kecil\u002Fcepat untuk permintaan sederhana, model besar untuk penalaran nyata (klasifikasi DIY atau Foundry Model Router).\n3. **Cache** — layani permintaan hampir duplikat tanpa panggilan model.\n4. **Desain tanpa status + konkurensi terbatas** — eksternalisasi status; ulangi dengan penundaan kembali.\n\n## Pola kunci untuk direproduksi\n\nArahkan pembelajar ke ini dari notebook\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Penangan permintaan**: cache → route berdasarkan kompleksitas → span jejak → jalankan → cache.\n- **Gerbang evaluasi**: beri skor set pengujian offline; kembalikan `pass_rate >= threshold` dan hanya deploy jika benar.\n- **Persetujuan manusia**: `@tool(approval_mode=\"always_require\")` untuk tindakan seperti pengembalian dana besar.\n- **Pelacakan**: bungkus setiap permintaan dalam `tracer.start_as_current_span(...)` dan atur atribut seperti `routed.model`, `customer.id`.\n\n## Smoke-test agen yang sudah dideploy\n\nSetelah deploy, verifikasi endpoint benar-benar menjawab (deploy hijau masih bisa\ndiam). Gunakan aksi [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nmelalui [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ndengan katalog di [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Runner meng-POST setiap\nprompt ke `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\ndan memeriksa teks balasan. Identitas membutuhkan peran **Azure AI User** di\nlingkup proyek Foundry; audiens token harus `https:\u002F\u002Fai.azure.com\u002F`.\n\nLapisi gerbang: **smoke test** (terjangkau\u002Fmerespon, setiap deploy) → **evaluasi offline**\n(cukup baik untuk dikirim, sebelum promosi) → **evaluasi online** (bagaimana\nperformanya di dunia nyata, berkelanjutan).\n\n## Kontrol perusahaan\n\n- **RBAC**: berikan setiap agen hosted sebuah managed identity dengan hak minimum.\n- **MCP di produksi**: perlakukan setiap server MCP sebagai batas yang tidak dipercaya — pin versinya, batasi identitasnya, validasi keluaran, batasi tingkat, jangan pernah ekspose rahasia.\n\n## Pedoman untuk asisten\n\n- Prefer pola kanonik `FoundryChatClient(...)` + `provider.as_agent(...)` yang digunakan di seluruh kursus.\n- Jangan menjanjikan hasil live-Azure yang belum Anda verifikasi; rekomendasikan alur kerja smoke-test untuk mengonfirmasi deploy.\n- Jaga evaluasi dan saran biaya agar tetap terkait: evaluasi menetapkan batas kualitas, routing\u002Fcaching menjaga biaya dekat batas tersebut.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Penafian**:\nDokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sah. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Mendeploy Agen Skala Besar dengan Microsoft Foundry\n\n> Keterampilan pendamping untuk [Lesson 16 – Mendeploy Agen Skala Besar](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md).\n> Gunakan ini untuk membantu pembelajar memindahkan agen dari prototipe ke deploy produksi yang skalabel dan dapat diamati.\n> Dasarkan setiap rekomendasi pada konten pelajaran dan\n> notebook yang dapat dijalankan; jangan buat API Foundry.\n\n## Pemicu\n\nAktifkan keterampilan ini ketika pembelajar ingin:\n- Mendeploy agen ke Microsoft Foundry sebagai **agen yang dihosting** dan membuatnya versi\u002Fterobservasi.\n- Memilih antara pola deploy **client-hosted, hosted-agent, dan agent-workflow**.\n- Menambahkan **routing model**, **penyimpanan respons (response caching)**, atau **konkurensi terbatas** untuk mengontrol latensi dan biaya.\n- Menambahkan **gerbang evaluasi** supaya versi agen yang buruk tidak dikirim.\n- Menambahkan langkah **persetujuan manusia dalam proses (human-in-the-loop)** untuk tindakan berisiko tinggi.\n- Menginstrumentasi agen dengan **OpenTelemetry** untuk pelacakan observabilitas produksi.\n- **Smoke-test** agen yang dideploy sebagai gerbang cepat pasca deploy.\n\n## Model mental inti\n\nAgen produksi sebagian besar adalah kerangka operasional *di sekitar* model (~80%),\nbukan model itu sendiri. Peta setiap rekomendasi ke salah satu perhatian ini:\n\n| Perhatian | Prototipe → Produksi |\n|---------|------------------------|\n| Hosting | notebook → layanan hosted versi |\n| Identitas | `az login` Anda → managed identity + RBAC terperinci |\n| Status | di memori → penyimpanan thread\u002Fmemori eksternal |\n| Kegagalan | jejak kesalahan → pengulangan, fallback, peringatan |\n| Biaya | \"beberapa sen\" → dilacak, diarahkan, disimpan, dianggarkan |\n| Kualitas | penilaian manual → gerbang evaluasi otomatis |\n| Kepercayaan | Anda setuju → kebijakan + manusia dalam proses |\n\n## Pola deploy (pilih satu, atau gabungkan)\n\n1. **Client-hosted** — loop penalaran berjalan di proses Anda. Kontrol maksimal; Anda mengelola skala\u002Fstatus.\n2. **Hosted agent (Foundry Agent Service)** — Foundry menghosting loop, menyimpan thread, menerapkan RBAC\u002Fkeamanan konten, menampilkan agen di portal. Kontrol lebih sedikit, permukaan operasional jauh lebih kecil.\n3. **Agent workflow** — beberapa agen\u002Falat disusun dalam graf dengan cabang, node persetujuan, dan checkpoint tahan lama.\n\n## Siklus hidup (loop yang mengirim agen)\n\n`create → version → evaluate (gate) → deploy hosted → observe online → collect failures → repeat`.\n**Evaluasi offline adalah gerbang, bukan pikiran terakhir** — versi tidak dikirim\nkecuali melewati ambang batas. Observasi online mengembalikan kegagalan nyata\nke set pengujian offline.\n\n## Tuas skala dan biaya (urutan prioritas)\n\n1. **Sesuaikan ukuran model** — gunakan model terkecil yang lolos gerbang evaluasi.\n2. **Routing berdasarkan kompleksitas** — model kecil\u002Fcepat untuk permintaan sederhana, model besar untuk penalaran nyata (klasifikasi DIY atau Foundry Model Router).\n3. **Cache** — layani permintaan hampir duplikat tanpa panggilan model.\n4. **Desain tanpa status + konkurensi terbatas** — eksternalisasi status; ulangi dengan penundaan kembali.\n\n## Pola kunci untuk direproduksi\n\nArahkan pembelajar ke ini dari notebook\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- **Penangan permintaan**: cache → route berdasarkan kompleksitas → span jejak → jalankan → cache.\n- **Gerbang evaluasi**: beri skor set pengujian offline; kembalikan `pass_rate >= threshold` dan hanya deploy jika benar.\n- **Persetujuan manusia**: `@tool(approval_mode=\"always_require\")` untuk tindakan seperti pengembalian dana besar.\n- **Pelacakan**: bungkus setiap permintaan dalam `tracer.start_as_current_span(...)` dan atur atribut seperti `routed.model`, `customer.id`.\n\n## Smoke-test agen yang sudah dideploy\n\nSetelah deploy, verifikasi endpoint benar-benar menjawab (deploy hijau masih bisa\ndiam). Gunakan aksi [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\nmelalui [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\ndengan katalog di [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md). Runner meng-POST setiap\nprompt ke `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\ndan memeriksa teks balasan. Identitas membutuhkan peran **Azure AI User** di\nlingkup proyek Foundry; audiens token harus `https:\u002F\u002Fai.azure.com\u002F`.\n\nLapisi gerbang: **smoke test** (terjangkau\u002Fmerespon, setiap deploy) → **evaluasi offline**\n(cukup baik untuk dikirim, sebelum promosi) → **evaluasi online** (bagaimana\nperformanya di dunia nyata, berkelanjutan).\n\n## Kontrol perusahaan\n\n- **RBAC**: berikan setiap agen hosted sebuah managed identity dengan hak minimum.\n- **MCP di produksi**: perlakukan setiap server MCP sebagai batas yang tidak dipercaya — pin versinya, batasi identitasnya, validasi keluaran, batasi tingkat, jangan pernah ekspose rahasia.\n\n## Pedoman untuk asisten\n\n- Prefer pola kanonik `FoundryChatClient(...)` + `provider.as_agent(...)` yang digunakan di seluruh kursus.\n- Jangan menjanjikan hasil live-Azure yang belum Anda verifikasi; rekomendasikan alur kerja smoke-test untuk mengonfirmasi deploy.\n- Jaga evaluasi dan saran biaya agar tetap terkait: evaluasi menetapkan batas kualitas, routing\u002Fcaching menjaga biaya dekat batas tersebut.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Penafian**:\nDokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Meskipun kami berupaya untuk mencapai akurasi, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sah. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fid\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents",26057,"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\u002Fid\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"]