Azure Foundry Hosted Agents 實戰入門:讓子 Agent 化身為工具

原始來源與檔名:20260512_2026-05-06T095712+0800-Getting Started with Foundry Hosted Agents.md

來源:[[Valentina Alto]] / Medium — 2026-05-03 原始檔名:2026-05-06T095712+0800-Getting Started with Foundry Hosted Agents.md


NAPKIN | 餐巾紙

餐巾紙公式

Agent Orchestration: Multi-Agent Handoff vs. Agents as Tools. Agents as Tools Pattern = 1 Concierge (Face) + N Specialists (Wrapped as functions via agent.as_tool()). Foundry Hosted Agents = Dockerfile + agent.yaml + Port 8088 (OpenAI Responses Protocol).

這是一篇關於如何在 Microsoft Azure Foundry 環境中部署 AI Agent 的實戰教學。作者延續了之前的「AI 旅行社」範例,但這次她拋棄了傳統的「Multi-agent Handoff (多代理交接)」模式,改用語法更簡潔、對話體驗更一致的「Agents as Tools (將代理作為工具)」模式:客戶只與一位「前台禮賓員 (Concierge)」對話,而「航班專家」與「飯店專家」則被包裝成普通的 Function Tool 供禮賓員隨時呼叫。最後,文章展示了如何透過簡單的 Dockerfile 與 agent.yaml,將這個 MAF (Microsoft Agent Framework) 應用程式部署為標準的 Hosted Agent API。

一句話

不要讓你的 Agent 互相把客戶「踢皮球」。如果你有一個前台 Agent 和幾個後端專家 Agent,最好的設計模式是把專家 Agent 包裝成「工具 (Tools)」:前台決定何時呼叫專家,專家在背景查完資料後交給前台,由前台統一回覆客戶,這樣能保證對話語氣的一致性。在微軟的架構下,只需一行代碼 agent.as_tool() 就能搞定。寫好後,加上一個監聽 8088 埠的 Dockerfile,你就能把它一鍵部署到 Azure Foundry,自動享有完整的企業級權限控管與監控追蹤。

餐巾紙草圖

[ Agents as Tools Pattern ]

Instead of Hand-offs: (User -> Concierge -> FlightAgent -> HotelAgent -> User)

Use Tools Topology:
[ USER ] <---> [ Concierge Agent ]
                     │ (Calls tools when needed)
                     ├──> Tool: flight_assistant.as_tool()
                     └──> Tool: hotel_assistant.as_tool()

[ Foundry Deployment ]
Code + Dockerfile (EXPOSE 8088) + agent.yaml --> Azure Foundry Agent Service

ROUND 1: SKELETON | 骨架掃描

“這篇文章在說什麼”

ROUND 2: DISSECTION | 血肉解剖

“憑什麼這麼說”

核心論證鏈

  1. Handoff vs Tools 的抉擇: 在多代理系統中,Handoff 容易讓對話失去上下文,且一旦進入死循環(Agent A 把任務丟給 B,B 又丟回 A)很難除錯。將 Sub-agents 降級為 Tools,讓主 Agent 保留對狀態和對話語氣的絕對控制權,是一種更強健的架構選擇。
  2. 標準化協定的力量: Foundry 並不綁定 MAF。只要你的 Docker 容器能在 8088 埠上說出標準的 OpenAI Responses Protocol,裡面裝的是 LangGraph、AutoGen 還是你自己寫的 while True 迴圈都無所謂。這種解耦設計才是企業級 PaaS 該有的樣子。

關鍵證據

邊界條件

ROUND 3: SOUL | 靈魂提取

“還能怎么用”