在 Visual Studio Code 中開發 AI 代理

已完成

Tip

有關更多詳細信息,請參閱 文本和圖像 選項卡!

Visual Studio Code 提供熟悉的開發環境,讓您能夠建置使用 Microsoft Foundry 的代理程式。 你可以視覺化地使用 Foundry Toolkit 擴充功能,使用 Foundry SDK 或 Microsoft Agent Framework 撰寫代理程式,並使用 GitHub Copilot 協助開發與測試解決方案。

使用 Foundry 工具包

Foundry 工具包擴充功能將 Visual Studio Code 與你的 Foundry 專案及資源連結起來。 它提供建立、管理、測試及部署代理的工具,無需離開編輯器。

代理建構器提供一個視覺化介面,讓你能設定代理的模型、指令和工具。 接著你可以在聊天視窗輸入提示,並在優化代理人時查看回應。

Visual Studio Code 中 Foundry Toolkit 代理建構介面的截圖。

對於基於程式碼的代理與工作流程,工具包也能協助你從範本建立專案、在本地測試與除錯、檢查追蹤,並在 Foundry 中部署為託管代理。

用程式碼開發代理

用程式碼開發代理,讓你直接掌控它的定義和生命週期。 兩種常見方式是使用 Foundry Agent Service 建立提示代理,或是使用 SDK 如 Microsoft Agent Framework 建置代理程式,並將其架設於 Foundry 容器中。

使用 Foundry Agent Service 建立即時代理

Foundry SDK 提供了 AIProjectClient 一個工具,用於處理 Foundry 專案中的資產。 你可以使用用戶端的代理作業來建立具名且已版本化的提示代理,並將其儲存在 Foundry Agent Service 中。

以下範例使用 Microsoft Entra ID 認證,連接 Foundry 專案,並建立代理程式的版本。 代理定義規定已部署的模型、指令及網頁搜尋工具。 程式碼接著取得一個與代理綁定的 OpenAI 相容客戶端,並利用它發送提示。

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition, WebSearchTool

# Create client to call Foundry API
project = AIProjectClient(
    endpoint="https://ai-resrce.services.ai.azure.com/api/projects/ai-project", # Project endpoint
    credential=DefaultAzureCredential())

# Create an agent with a web search tool
agent = project.agents.create_version(
    agent_name="computinghistorycode",
    definition=PromptAgentDefinition(
        model="gpt-5-mini",
        instructions="You are a helpful expert on computing history",
        tools=[WebSearchTool()]))

# Test the agent with a prompt
openai_client = project.get_openai_client(agent_name="computinghistorycode")
response = openai_client.responses.create(input="Who was Ada Lovelace?")
print(response.output_text)

由於代理在 Foundry 中是以版本資產形式儲存,其他應用程式可以以名稱來稱呼代理並使用其管理定義。 其模型、指令或工具的變更可在後續版本中被擷取。

使用 Microsoft Agent Framework 建立代理程式

Microsoft Agent Framework 是一個開源開發框架,用於使用 Python 或 .NET 建構代理程式及多代理工作流程。 它提供一致的抽象,用於定義代理、新增工具、管理對話,以及協調更複雜的代理行為。

下一個範例會使用 FoundryChatClient 連線到 Foundry 專案中部署的模型。 應用程式定義代理的指令與工具,代理框架則負責與 Foundry 回應端點的互動。

import asyncio
from azure.identity import AzureCliCredential
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient

# Create client for a FoundryChat agent
foundry_client = FoundryChatClient(
    project_endpoint="https://ai-resrce.services.ai.azure.com/api/projects/ai-project", # Project endpoint
    model="gpt-5-mini",
    credential=AzureCliCredential()
 )

# Create an agent with a web search tool
agent = Agent(
        client=foundry_client,
        instructions="You are a helpful expert on computing history",
        tools=[FoundryChatClient.get_web_search_tool()]

 )

# Test the agent with a prompt
async def main():
    result = await agent.run("Who was Ada Lovelace?")
    print(f"Agent: {result}")

asyncio.run(main())

在此方法中,代理定義存在於應用程式中,並在程式碼執行時產生。 當你希望定義及其生命週期保留在應用程式代碼中時,這種 短暫代理 模式非常有用。 若要透過 Foundry 中持久且受管理的端點提供基於程式碼的代理程式,您可以將其打包並部署為 託管代理。 Foundry Toolkit 提供此工作流程的開發與部署支援。

使用 GitHub Copilot 開發

Visual Studio Code 也能與 GitHub Copilot 整合,協助你理解、建立並修改代理程式碼。 在 Copilot Chat 中,你可以與程式代理協作,他們會檢查你的工作區、提出方法、編輯檔案、執行指令,並回應建置或測試結果。

Visual Studio Code 中 GitHub Copilot 的螢幕快照。

例如,你可以請 Copilot 為代理新增工具、改進指令、建立測試,或調查意外反應。 Copilot 會顯示它所做的變更,讓你可以檢視、執行代理程式並測試其回應,然後再接受修改到你的程式碼庫。 您仍需負責驗證所產生的代理人是否安全且符合預期。