Entwickeln eines KI-Agents in Visual Studio Code
Tip
Weitere Details finden Sie auf der Registerkarte "Text und Bilder ".
Visual Studio Code bietet eine vertraute Entwicklungsumgebung für Gebäudeagenten, die Microsoft Foundry verwenden. Sie können visuell mit der Foundry Toolkit-Erweiterung arbeiten, Agent-Code mit dem Foundry SDK oder Microsoft Agent Framework schreiben und GitHub Copilot verwenden, um Ihre Lösung zu entwickeln und zu testen.
Verwenden des Foundry Toolkits
Die Foundry Toolkit-Erweiterung verbindet Visual Studio Code mit Ihren Foundry-Projekten und -Ressourcen. Es bietet Tools zum Erstellen, Verwalten, Testen und Bereitstellen von Agents, ohne dass Sie den Editor verlassen müssen.
Der Agent-Generator stellt eine visuelle Schnittstelle bereit, über die Sie das Modell, anweisungen und Tools eines Agents konfigurieren können. Sie können dann Eingabeaufforderungen im Chatbereich eingeben und die Antworten überprüfen, während Sie den Agent verfeinern.
Für codebasierte Agents und Workflows kann das Toolkit Ihnen auch dabei helfen, Projekte aus Vorlagen zu erstellen, sie lokal zu testen und zu debuggen, Ablaufverfolgungen zu prüfen und als gehostete Agents in Foundry bereitzustellen.
Entwickeln von Agents mit Code
Durch die Entwicklung eines Agents im Code können Sie die Definition und den Lebenszyklus direkt steuern. Zwei gängige Ansätze sind das Erstellen eines Eingabeaufforderungs-Agents mit dem Foundry Agent Service oder das Erstellen eines Agents mit einem SDK wie dem Microsoft Agent Framework und das Hosten in einem Container in Foundry.
Erstellen eines Prompt-Agents mit dem Foundry Agent Service
Das Foundry-SDK bietet einen AIProjectClient zum Arbeiten mit den Ressourcen in einem Foundry-Projekt. Sie können die Agent-Operationen des Clients verwenden, um einen benannten, versionierten Prompt-Agenten zu erstellen, der im Foundry Agent Service dauerhaft gespeichert wird.
Das folgende Beispiel authentifiziert sich mit Microsoft Entra ID, stellt eine Verbindung mit einem Foundry-Projekt her und erstellt eine Version eines Agents. Die Agentdefinition gibt ein bereitgestelltes Modell, anweisungen und ein Websuchtool an. Der Code ruft dann einen openAI-kompatiblen Client ab, der an den Agent gebunden ist, und verwendet ihn zum Senden einer Eingabeaufforderung.
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)
Da der Agent als versionsgesteuerte Ressource in Foundry gespeichert wird, können andere Anwendungen anhand des Namens auf den Agent verweisen und seine verwaltete Definition verwenden. Änderungen an seinem Modell, den Anweisungen oder Werkzeugen können in späteren Versionen erfasst werden.
Erstellen eines Agents mit Microsoft Agent Framework
Microsoft Agent Framework ist ein Open-Source-Entwicklungsframework zum Erstellen von Agents und Workflows mit mehreren Agents in Python oder .NET. Es bietet konsistente Abstraktionen zur Definition von Agenten, zum Hinzufügen von Werkzeugen, zum Verwalten von Konversationen und zur Orchestrierung komplexeren Agentenverhaltens.
Im nächsten Beispiel wird FoundryChatClient verwendet, um eine Verbindung mit einem in einem Foundry-Projekt bereitgestellten Modell herzustellen. Die Anwendung definiert die Anweisungen und Tools des Agents, und Das Agent-Framework behandelt die Interaktion mit dem Foundry Responses-Endpunkt.
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())
Bei diesem Ansatz ist die Agentdefinition in der Anwendung vorhanden und wird erstellt, wenn der Code ausgeführt wird. Dieses kurzlebige Agentmuster ist nützlich, wenn Sie möchten, dass die Definition und deren Lebenszyklus mit Ihrem Anwendungscode verbleiben. Um einen codebasierten Agent über einen persistenten, verwalteten Endpunkt in Foundry verfügbar zu machen, können Sie ihn als gehosteten Agent packen und bereitstellen. Das Foundry Toolkit bietet Entwicklungs- und Bereitstellungsunterstützung für diesen Workflow.
Entwickeln mit GitHub Copilot
Visual Studio Code ist auch in GitHub Copilot integriert, die Ihnen helfen können, Ihren Agentcode zu verstehen, zu erstellen und zu ändern. In Copilot Chat können Sie mit Codierungs-Agents zusammenarbeiten, die Ihren Arbeitsbereich überprüfen, einen Ansatz vorschlagen, Dateien bearbeiten, Befehle ausführen und auf Build- oder Testergebnisse reagieren.
Sie können z. B. Copilot bitten, einem Agent ein Tool hinzuzufügen, seine Anweisungen zu verbessern, Tests zu erstellen oder eine unerwartete Antwort zu untersuchen. Copilot zeigt die vorgenommenen Änderungen an, damit Sie sie überprüfen, den Agent ausführen und seine Antworten testen können, bevor Sie die Änderungen an Ihrer Codebasis akzeptieren. Sie bleiben dafür verantwortlich, zu überprüfen, dass sich der resultierende Agent sicher und wie beabsichtigt verhält.