探索 Agentic 框架
原文:Microsoft AI Agents for Beginners · MIT 授權
▲ 點擊圖片觀看課程影片
什麼是 AI Agent 框架?
AI Agent 框架幫助開發者用標準化的方式解決 Agent 開發中的常見挑戰,提升系統的擴展性、可及性和開發效率。
傳統的 AI 框架能做到:
| 能力 | 說明 | 範例 |
|---|---|---|
| 個人化 | 分析使用者行為與偏好,提供個人化推薦 | Netflix 根據觀看紀錄推薦影片 |
| 自動化與效率 | 自動化重複任務、簡化工作流程 | 客服聊天機器人處理常見問題 |
| 更好的使用者體驗 | 語音辨識、自然語言處理、預測文字 | Siri / Google Assistant 語音互動 |
那為什麼還需要「Agent 專用框架」?
AI Agent 框架跟一般 AI 框架不同。它們是為了建立能與使用者、其他 Agent 和環境互動以達成特定目標的智慧型 Agent。這些 Agent 能展現自主行為、做決策,並適應變化中的環境。
- Agent 協作與協調:建立多個能互相溝通、協調完成複雜任務的 AI Agent
- 任務自動化與管理:提供多步驟工作流程自動化、任務委派和動態任務管理
- 情境理解與適應:讓 Agent 理解上下文、適應變化環境、根據即時資訊做決策
如何快速原型、迭代、改進 Agent?
雖然技術變化很快,但多數 AI Agent 框架有以下共同點可以幫助你快速開發:
1. 使用模組化元件
SDK(如 Microsoft Agent Framework)提供預建的 AI 連接器、工具定義、Prompt 模板等。團隊可以直接組裝這些元件來建立功能性原型,不需從零打造。
實際運作方式
用預建的解析器從使用者輸入中提取資訊,用記憶模組儲存和讀取資料,用 Prompt 產生器與使用者互動——全部不用從頭寫。
📝 Microsoft Agent Framework 範例 — 用 FoundryChatClient 建立旅遊訂票 Agent:
import asyncio
import os
from agent_framework import tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
# 定義工具函式:訂機票
@tool(approval_mode="never_require")
def book_flight(date: str, location: str) -> str:
"""根據日期和地點訂票"""
return f"已為您預訂 {date} 飛往 {location} 的航班"
async def main():
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
agent = provider.as_agent(
name="travel_agent",
instructions="幫助使用者訂票。準備好時使用 book_flight 工具。",
tools=[book_flight],
)
response = await agent.run("我想在 2025 年 1 月 1 日去紐約")
print(response)
if __name__ == "__main__":
asyncio.run(main())
2. 利用協作工具
像 Microsoft Agent Framework 這類框架能讓多個 Agent 一起工作。團隊可以為每個 Agent 設計專門的角色和任務,測試和改進協作流程。
實際運作方式
建立一組 Agent,每個有專門功能:資料擷取、分析、決策。這些 Agent 可以互相通訊、分享資訊來達成共同目標。
📝 多 Agent 協作範例:
import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
# 資料擷取 Agent
agent_retrieve = provider.as_agent(
name="dataretrieval",
instructions="使用可用工具擷取相關資料",
tools=[retrieve_tool],
)
# 資料分析 Agent
agent_analyze = provider.as_agent(
name="dataanalysis",
instructions="分析擷取到的資料並提供洞見",
tools=[analyze_tool],
)
# 循序執行
retrieval_result = await agent_retrieve.run("擷取 Q4 銷售數據")
analysis_result = await agent_analyze.run(f"分析這些數據:{retrieval_result}")
print(analysis_result)
3. 即時學習
進階框架提供即時情境理解和適應能力。團隊可以實作回饋迴圈,讓 Agent 從互動中學習、動態調整行為,持續改進。
Microsoft Agent Framework vs Microsoft Foundry Agent Service
這兩個工具互補,但設計目標不同。以下是核心差異:
Microsoft Agent Framework (MAF)
定位:精簡的 SDK,用 FoundryChatClient 建立 AI Agent。內建 tool calling、對話管理、Azure 身分驗證。
適用場景:建立生產級 AI Agent,含工具使用、多步驟工作流程、企業整合。
核心概念:
| 概念 | 說明 |
|---|---|
| Agent | 透過 FoundryChatClient 建立,設定名稱、指令和工具。能處理使用者訊息、自動呼叫工具、跨互動維護對話狀態。 |
| Tools | 框架支援將 Python 函式定義為 Agent 可自動調用的工具。例如 get_weather(location) 函式能在對話中被自動觸發。 |
| Multi-Agent Coordination | 建立多個不同專長的 Agent(如 planner + executor),協調分工完成複雜任務。 |
| Azure Identity | 使用 AzureCliCredential 或 DefaultAzureCredential,無需手動管理 API Key,安全無金鑰驗證。 |
Microsoft Foundry Agent Service
定位:平台與部署服務(2024 Ignite 推出),支援更彈性的模型選擇(Llama 3、Mistral、Cohere 等開源 LLM),提供更強的企業安全機制和資料儲存。
適用場景:需要安全、可擴展、靈活部署的企業級 AI Agent 應用。
目前為公開預覽版,支援 Python 和 C#。
核心概念:
| 概念 | 說明 |
|---|---|
| Agent | 在 Microsoft Foundry 中,AI Agent 作為「智慧微服務」,可用於回答問題(RAG)、執行動作、或完全自動化工作流程。結合生成式 AI 模型與工具來存取真實資料。 |
| Thread 與 Messages | Thread 代表 Agent 與使用者的對話/互動。可追蹤對話進度、儲存上下文、管理互動狀態。訊息可以是文字、圖片或檔案類型。 |
| 與 MAF 整合 | 無縫整合 Microsoft Agent Framework:用 FoundryChatClient 開發 Agent,再透過 Agent Service 部署到生產環境。 |
快速對照表
| 框架 | 定位 | 核心概念 | 適用場景 |
|---|---|---|---|
| Microsoft Agent Framework | 精簡 Agent SDK,含 tool calling | Agents、Tools、Azure Identity | 建立 AI Agent、工具使用、多步驟工作流程 |
| Microsoft Foundry Agent Service | 靈活模型、企業安全、程式碼生成、Tool calling | 模組化、協作、流程編排 | 安全、可擴展、靈活的 AI Agent 部署 |
我該選哪一個?常見問答
Q: 我要快速開始建立生產級 AI Agent 應用
A: 選 Microsoft Agent Framework。它提供簡潔的 Python API(透過 FoundryChatClient),幾行程式碼就能定義 Agent 的工具和指令。
Q: 我需要企業級部署,整合 Azure Search 和程式碼執行
A: 選 Microsoft Foundry Agent Service。它內建多模型支援、Azure AI Search、Bing Search 和 Azure Functions,可在 Foundry Portal 中建立並大規模部署。
Q: 我還是很困惑,給我一個簡單的建議
A: 先用 Microsoft Agent Framework 開發 Agent,到要部署和擴展時再用 Microsoft Foundry Agent Service。這樣可以快速迭代 Agent 邏輯,同時有清楚的企業部署路徑。
能否整合既有的 Azure 生態工具?
FoundryChatClient 和 Azure Identity 讓你能從 Agent 工具中直接呼叫 Azure 服務。
本課重點回顧
- AI Agent 框架 ≠ 一般 AI 框架:多了 Agent 協作、任務自動化、情境適應等關鍵能力
- 快速開發三招:模組化元件(用 SDK 預建組件)、協作工具(多 Agent 分工)、即時學習(回饋迴圈)
- MAF = SDK:用
FoundryChatClient簡潔開發,適合建立生產級 Agent - Foundry Agent Service = 平台:企業級部署、多模型支援、Azure 整合,適合上線和大規模營運
- 兩者互補:先用 MAF 開發迭代,再用 Foundry Agent Service 部署擴展
範例程式碼
- Python: Agent Framework (Microsoft Foundry)
- Python: Agent Framework (Azure OpenAI Responses API)
- .NET: Agent Framework