[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69A0STDMX706J62EK9WCZXR":3,"skill-same:01M69A0STDMX706J62EK9WCZXR":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},"01M69A0STDMX706J62EK9WCZXR","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\u002Fzh-HK\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# 使用 Microsoft Foundry 部署可擴展代理\n\n> [課程 16 – 部署可擴展代理](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md) 的輔助技能。\n> 用於協助學習者將代理從原型移動到可擴展、可觀察的\n> 生產部署。所有建議均基於課程內容和\n> 可執行的筆記本；不要憑空捏造 Foundry API。\n\n## 觸發條件\n\n當學習者希望：\n- 將代理部署到 Microsoft Foundry 作為\u003Cstrong>託管代理\u003C\u002Fstrong>，並使其具備版本控制／可觀察性。\n- 在\u003Cstrong>用戶端主機、託管代理和代理工作流\u003C\u002Fstrong>部署模式間做選擇。\n- 添加\u003Cstrong>模型路由\u003C\u002Fstrong>、\u003Cstrong>響應緩存\u003C\u002Fstrong>或\u003Cstrong>有界併發性\u003C\u002Fstrong>來控制延遲和成本。\n- 添加\u003Cstrong>評估門檻\u003C\u002Fstrong>，防止不良代理版本上線。\n- 為高風險操作添加\u003Cstrong>人工審核批准\u003C\u002Fstrong>步驟。\n- 使用\u003Cstrong>OpenTelemetry\u003C\u002Fstrong>追踪為生產環境儀表化代理。\n- 部署後以\u003Cstrong>煙霧測試\u003C\u002Fstrong>快速檢驗代理。\n\n## 核心心智模型\n\n生產代理主要是模型（約 80%）\u003Cem>之外的\u003C\u002Fem>運行骨架，\n而不是模型本身。將每個建議對應到以下某個關注點：\n\n| 關注點 | 原型 → 生產 |\n|---------|------------------------|\n| 託管 | 筆記本 → 版本化託管服務 |\n| 身份 | 你的 `az login` → 管理身份 + 範圍 RBAC |\n| 狀態 | 內存中 → 外部線程\u002F記憶體存儲 |\n| 錯誤 | 堆疊追蹤 → 重試、回退、警報 |\n| 成本 | \"幾分錢\" → 追蹤、路由、緩存、預算控制 |\n| 質量 | 目測 → 自動化評估門檻 |\n| 信任 | 你批准 → 政策 + 人工審核 |\n\n## 部署模式（選一或組合使用）\n\n1. \u003Cstrong>用戶端主機\u003C\u002Fstrong> — 推理迴圈運行於你的進程中。最大控制權；你掌握擴展與狀態。\n2. **託管代理 (Foundry Agent Service)** — Foundry 托管推理迴圈，存儲線程，執行 RBAC\u002F內容安全，並在入口網站顯示代理。控制較少，運維面積大幅縮減。\n3. \u003Cstrong>代理工作流\u003C\u002Fstrong> — 多個代理／工具組成有分支、批准節點及持久檢查點的工作圖。\n\n## 生命周期（代理部署迴圈）\n\n`建立 → 版本化 → 評估（門檻）→ 託管部署 → 在線觀察 → 收集失敗 → 重複。`\n**離線評估是一個門檻，不是事後補充** — 未達標版本不會上線，\n在線可觀察性會將實際失敗反饋\n回離線測試集。\n\n## 擴展與成本調節桿（優先順序）\n\n1. \u003Cstrong>模型尺寸適配\u003C\u002Fstrong> — 使用通過評估門檻的最小模型。\n2. \u003Cstrong>按複雜度路由\u003C\u002Fstrong> — 簡單請求用小而快模型，複雜推理用大模型（DIY 分類器或 Foundry 模型路由器）。\n3. \u003Cstrong>緩存\u003C\u002Fstrong> — 服務近似重複請求，無需模型調用。\n4. **無狀態設計 + 有界併發** — 狀態外部化；帶回退的重試。\n\n## 主要範例可複製\n\n從筆記本指引學習者觀看\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- \u003Cstrong>請求處理器\u003C\u002Fstrong>：緩存 → 按複雜度路由 → 追踪 span → 執行 → 緩存。\n- \u003Cstrong>評估門檻\u003C\u002Fstrong>：對離線測試集打分；返回 `pass_rate >= threshold`，僅在符合時部署。\n- \u003Cstrong>人工批准\u003C\u002Fstrong>：`@tool(approval_mode=\"always_require\")` 用於大額退款等操作。\n- \u003Cstrong>追踪\u003C\u002Fstrong>：用 `tracer.start_as_current_span(...)` 包裹每個請求，並設置屬性如 `routed.model`、`customer.id`。\n\n## 已部署代理的煙霧測試\n\n部署後，確認端點確實有回應（綠色部署仍可能\n沒有響應）。通過 [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\n行動，使用 [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\n和 [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md) 中的目錄。執行者將每條\n提示 POST 到 `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\n並檢查回覆文字。身份需要在\nFoundry 專案範圍內擁有 **Azure AI User** 角色；令牌受眾必須是 `https:\u002F\u002Fai.azure.com\u002F`。\n\n分層關卡：\u003Cstrong>煙霧測試\u003C\u002Fstrong>（可到達、有回應，每次部署）→ \u003Cstrong>離線評估\u003C\u002Fstrong>（達標才可發布，升級前）→ \u003Cstrong>在線評估\u003C\u002Fstrong>（持續追蹤運行情況）。\n\n\n\n## 企業安全控管\n\n- **RBAC**：給每個託管代理分配一個具最低權限的管理身份。\n- **生產中的 MCP**：將每台 MCP 伺服器視為不受信任邊界 — 鎖定版本、範圍身份、驗證輸出、限速，絕不曝光機密。\n\n## 助手的保護措施\n\n- 優先使用課程中通用的 `FoundryChatClient(...)` + `provider.as_agent(...)` 模式。\n- 不要承諾未驗證的即時 Azure 結果；建議使用煙霧測試工作流確認部署。\n- 評估與成本建議需綁定：評估設定品質底線，路由／緩存則將成本限制於該底線附近。\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**：\n本文件由 AI 翻譯服務 [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator) 翻譯而成。雖然我們致力於確保準確性，但請注意，機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊，建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# 使用 Microsoft Foundry 部署可擴展代理\n\n> [課程 16 – 部署可擴展代理](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002FREADME.md) 的輔助技能。\n> 用於協助學習者將代理從原型移動到可擴展、可觀察的\n> 生產部署。所有建議均基於課程內容和\n> 可執行的筆記本；不要憑空捏造 Foundry API。\n\n## 觸發條件\n\n當學習者希望：\n- 將代理部署到 Microsoft Foundry 作為\u003Cstrong>託管代理\u003C\u002Fstrong>，並使其具備版本控制／可觀察性。\n- 在\u003Cstrong>用戶端主機、託管代理和代理工作流\u003C\u002Fstrong>部署模式間做選擇。\n- 添加\u003Cstrong>模型路由\u003C\u002Fstrong>、\u003Cstrong>響應緩存\u003C\u002Fstrong>或\u003Cstrong>有界併發性\u003C\u002Fstrong>來控制延遲和成本。\n- 添加\u003Cstrong>評估門檻\u003C\u002Fstrong>，防止不良代理版本上線。\n- 為高風險操作添加\u003Cstrong>人工審核批准\u003C\u002Fstrong>步驟。\n- 使用\u003Cstrong>OpenTelemetry\u003C\u002Fstrong>追踪為生產環境儀表化代理。\n- 部署後以\u003Cstrong>煙霧測試\u003C\u002Fstrong>快速檢驗代理。\n\n## 核心心智模型\n\n生產代理主要是模型（約 80%）\u003Cem>之外的\u003C\u002Fem>運行骨架，\n而不是模型本身。將每個建議對應到以下某個關注點：\n\n| 關注點 | 原型 → 生產 |\n|---------|------------------------|\n| 託管 | 筆記本 → 版本化託管服務 |\n| 身份 | 你的 `az login` → 管理身份 + 範圍 RBAC |\n| 狀態 | 內存中 → 外部線程\u002F記憶體存儲 |\n| 錯誤 | 堆疊追蹤 → 重試、回退、警報 |\n| 成本 | \"幾分錢\" → 追蹤、路由、緩存、預算控制 |\n| 質量 | 目測 → 自動化評估門檻 |\n| 信任 | 你批准 → 政策 + 人工審核 |\n\n## 部署模式（選一或組合使用）\n\n1. \u003Cstrong>用戶端主機\u003C\u002Fstrong> — 推理迴圈運行於你的進程中。最大控制權；你掌握擴展與狀態。\n2. **託管代理 (Foundry Agent Service)** — Foundry 托管推理迴圈，存儲線程，執行 RBAC\u002F內容安全，並在入口網站顯示代理。控制較少，運維面積大幅縮減。\n3. \u003Cstrong>代理工作流\u003C\u002Fstrong> — 多個代理／工具組成有分支、批准節點及持久檢查點的工作圖。\n\n## 生命周期（代理部署迴圈）\n\n`建立 → 版本化 → 評估（門檻）→ 託管部署 → 在線觀察 → 收集失敗 → 重複。`\n**離線評估是一個門檻，不是事後補充** — 未達標版本不會上線，\n在線可觀察性會將實際失敗反饋\n回離線測試集。\n\n## 擴展與成本調節桿（優先順序）\n\n1. \u003Cstrong>模型尺寸適配\u003C\u002Fstrong> — 使用通過評估門檻的最小模型。\n2. \u003Cstrong>按複雜度路由\u003C\u002Fstrong> — 簡單請求用小而快模型，複雜推理用大模型（DIY 分類器或 Foundry 模型路由器）。\n3. \u003Cstrong>緩存\u003C\u002Fstrong> — 服務近似重複請求，無需模型調用。\n4. **無狀態設計 + 有界併發** — 狀態外部化；帶回退的重試。\n\n## 主要範例可複製\n\n從筆記本指引學習者觀看\n[`16-python-agent-framework.ipynb`](..\u002F..\u002F..\u002F16-deploying-scalable-agents\u002Fcode_samples\u002F16-python-agent-framework.ipynb):\n\n- \u003Cstrong>請求處理器\u003C\u002Fstrong>：緩存 → 按複雜度路由 → 追踪 span → 執行 → 緩存。\n- \u003Cstrong>評估門檻\u003C\u002Fstrong>：對離線測試集打分；返回 `pass_rate >= threshold`，僅在符合時部署。\n- \u003Cstrong>人工批准\u003C\u002Fstrong>：`@tool(approval_mode=\"always_require\")` 用於大額退款等操作。\n- \u003Cstrong>追踪\u003C\u002Fstrong>：用 `tracer.start_as_current_span(...)` 包裹每個請求，並設置屬性如 `routed.model`、`customer.id`。\n\n## 已部署代理的煙霧測試\n\n部署後，確認端點確實有回應（綠色部署仍可能\n沒有響應）。通過 [AI Smoke Test](https:\u002F\u002Fgithub.com\u002Fmarketplace\u002Factions\u002Fai-smoke-test)\n行動，使用 [`.github\u002Fworkflows\u002Fsmoke-test.yml`](..\u002F..\u002F..\u002F..\u002F..\u002F.github\u002Fworkflows\u002Fsmoke-test.yml)\n和 [`tests\u002F`](..\u002F..\u002F..\u002Ftests\u002FREADME.md) 中的目錄。執行者將每條\n提示 POST 到 `POST {project_endpoint}\u002Fagents\u002F{agent_name}\u002Fendpoint\u002Fprotocols\u002Fopenai\u002Fresponses`\n並檢查回覆文字。身份需要在\nFoundry 專案範圍內擁有 **Azure AI User** 角色；令牌受眾必須是 `https:\u002F\u002Fai.azure.com\u002F`。\n\n分層關卡：\u003Cstrong>煙霧測試\u003C\u002Fstrong>（可到達、有回應，每次部署）→ \u003Cstrong>離線評估\u003C\u002Fstrong>（達標才可發布，升級前）→ \u003Cstrong>在線評估\u003C\u002Fstrong>（持續追蹤運行情況）。\n\n\n\n## 企業安全控管\n\n- **RBAC**：給每個託管代理分配一個具最低權限的管理身份。\n- **生產中的 MCP**：將每台 MCP 伺服器視為不受信任邊界 — 鎖定版本、範圍身份、驗證輸出、限速，絕不曝光機密。\n\n## 助手的保護措施\n\n- 優先使用課程中通用的 `FoundryChatClient(...)` + `provider.as_agent(...)` 模式。\n- 不要承諾未驗證的即時 Azure 結果；建議使用煙霧測試工作流確認部署。\n- 評估與成本建議需綁定：評估設定品質底線，路由／緩存則將成本限制於該底線附近。\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**：\n本文件由 AI 翻譯服務 [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator) 翻譯而成。雖然我們致力於確保準確性，但請注意，機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊，建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5,"license":14},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fzh-HK\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\u002Fzh-HK\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"]