Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erforschung des semantischen Kerns
Von Bedeutung
Dieses Feature befindet sich in der experimentellen Phase. Features in dieser Phase befinden sich in der Entwicklung und können sich ändern, bevor Sie zur Vorschau- oder Veröffentlichungskandidatenstufe wechseln.
Das Feature ist derzeit in Java nicht verfügbar.
Was ist eine AzureAIAgent?
Ein AzureAIAgent ist ein spezialisierter Agent im Semantic Kernel Framework, der entwickelt wurde, um erweiterte Unterhaltungsfunktionen mit nahtloser Toolintegration bereitzustellen. Sie automatisiert das Aufrufen von Tools, ohne dass manuelle Analyse und Aufruf erforderlich sind. Der Agent verwaltet auch den Unterhaltungsverlauf sicher mithilfe von Threads, wodurch der Mehraufwand für die Statusverwaltung reduziert wird. Darüber hinaus unterstützt die AzureAIAgent eine Vielzahl integrierter Tools, einschließlich Dateiabruf, Codeausführung und Dateninteraktion über Bing, Azure AI Search, Azure Functions und OpenAPI.
Um AzureAIAgentzu verwenden, muss ein Azure AI Foundry-Projekt genutzt werden. Die folgenden Artikel enthalten eine Übersicht über die Azure AI Foundry, das Erstellen und Konfigurieren eines Projekts und den Agentdienst:
- Was ist Azure AI Foundry?
- Das Azure AI Foundry SDK
- Was ist der Azure AI Agent Service
- Schnellstart: Erstellen eines neuen Agent-
So bereiten Sie Ihre Entwicklungsumgebung vor
Um mit der Entwicklung einer AzureAIAgentfortzufahren, konfigurieren Sie Ihre Entwicklungsumgebung mit den entsprechenden Paketen.
Fügen Sie dem Projekt das Microsoft.SemanticKernel.Agents.AzureAI-Paket hinzu:
dotnet add package Microsoft.SemanticKernel.Agents.AzureAI --prerelease
Möglicherweise möchten Sie auch das Azure.Identity Paket einschließen:
dotnet add package Azure.Identity
Installieren Sie das Paket semantic-kernel:
pip install semantic-kernel
Das Feature ist derzeit in Java nicht verfügbar.
Konfigurieren des KI-Projektclients
Um auf ein erstes AzureAIAgent zugreifen zu können, muss zunächst ein Client erstellt werden, der für ein spezifisches Foundry-Projekt eingerichtet wird. Am besten wird dies erreicht, indem Sie Ihren Projektendpunkt bereitstellen (Das Azure AI Foundry SDK: Erste Schritte mit Projekten).
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
Ändern Sie die .env Datei im Stammverzeichnis, um Folgendes einzuschließen:
AZURE_AI_AGENT_ENDPOINT = "<example-endpoint>"
AZURE_AI_AGENT_MODEL_DEPLOYMENT_NAME = "<example-model-deployment-name>"
Nachdem die Konfiguration definiert wurde, kann der Client erstellt werden:
from semantic_kernel.agents import AzureAIAgent
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
# Your operational code here
Die zugrunde liegende endpoint wird von den Pydantic Settings aufgenommen, falls konfiguriert. Andernfalls können Sie sie explizit an die create_client() Methode übergeben:
from semantic_kernel.agents import AzureAIAgent
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds, endpoint="<your-endpoint>") as client,
):
# Your operational code here
Das Feature ist derzeit in Java nicht verfügbar.
Erstellen eines AzureAIAgent
Um ein AzureAIAgentProjekt zu erstellen, konfigurieren und initialisieren Sie zunächst das Foundry-Projekt über den Azure-Agent-Dienst und integrieren es dann in den semantischen Kernel:
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
// 1. Define an agent on the Azure AI agent service
PersistentAgent definition = await agentsClient.Administration.CreateAgentAsync(
"<name of the the model used by the agent>",
name: "<agent name>",
description: "<agent description>",
instructions: "<agent instructions>");
// 2. Create a Semantic Kernel agent based on the agent definition
AzureAIAgent agent = new(definition, agentsClient);
from azure.identity.aio import DefaultAzureCredential
from semantic_kernel.agents import AzureAIAgent, AzureAIAgentSettings
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
# 1. Define an agent on the Azure AI agent service
agent_definition = await client.agents.create_agent(
model=AzureAIAgentSettings().model_deployment_name,
name="<name>",
instructions="<instructions>",
)
# 2. Create a Semantic Kernel agent based on the agent definition
agent = AzureAIAgent(
client=client,
definition=agent_definition,
)
Das Feature ist derzeit in Java nicht verfügbar.
Mit einem AzureAIAgent interagieren
Die Interaktion mit dem AzureAIAgent ist einfach. Der Agent verwaltet den Unterhaltungsverlauf automatisch mithilfe eines Threads.
Die Besonderheiten des Azure AI-Agent-Threads werden über die Microsoft.SemanticKernel.Agents.AzureAI.AzureAIAgentThread Klasse abstrahiert, die eine Implementierung von Microsoft.SemanticKernel.Agents.AgentThread.
Von Bedeutung
Beachten Sie, dass das Azure AI Agents SDK über die PersistentAgentThread Klasse verfügt. Es sollte nicht mit Microsoft.SemanticKernel.Agents.AgentThread, der gängigen Abstraktion von Semantic Kernel Agents für alle Threadtypen, verwechselt werden.
Die AzureAIAgent unterstützt derzeit nur Threads vom Typ AzureAIAgentThread.
AzureAIAgentThread agentThread = new(agent.Client);
try
{
ChatMessageContent message = new(AuthorRole.User, "<your user input>");
await foreach (ChatMessageContent response in agent.InvokeAsync(message, agentThread))
{
Console.WriteLine(response.Content);
}
}
finally
{
await agentThread.DeleteAsync();
await agent.Client.DeleteAgentAsync(agent.Id);
}
Die Besonderheiten des Azure AI-Agent-Threads werden über die AzureAIAgentThread Klasse abstrahiert, die eine Implementierung von AgentThread.
USER_INPUTS = ["Hello", "What's your name?"]
thread: AzureAIAgentThread = AzureAIAgentThread()
try:
for user_input in USER_INPUTS:
response = await agent.get_response(messages=user_inputs, thread=thread)
print(response)
thread = response.thread
finally:
await thread.delete() if thread else None
Optional kann ein Agent aufgerufen werden als:
for user_input in USER_INPUTS:
async for content in agent.invoke(messages=user_input, thread=thread):
print(content.content)
thread = response.thread
Sie können auch eine Liste von Nachrichten an die get_response(...), oder invoke(...)invoke_stream(...) Methoden übergeben:
USER_INPUTS = ["Hello", "What's your name?"]
thread: AzureAIAgentThread = AzureAIAgentThread()
try:
for user_input in USER_INPUTS:
response = await agent.get_response(messages=USER_INPUTS, thread=thread)
print(response)
thread = response.thread
finally:
await thread.delete() if thread else None
Ein Agent kann auch eine gestreamte Antwort erzeugen:
ChatMessageContent message = new(AuthorRole.User, "<your user input>");
await foreach (StreamingChatMessageContent response in agent.InvokeStreamingAsync(message, agentThread))
{
Console.Write(response.Content);
}
for user_input in USER_INPUTS:
await agent.add_chat_message(thread_id=thread.id, message=user_input)
async for content in agent.invoke_stream(thread_id=thread.id):
print(content.content, end="", flush=True)
Das Feature ist derzeit in Java nicht verfügbar.
Verwenden von Plugins mit einem AzureAIAgent
Der semantische Kernel unterstützt das Erweitern eines AzureAIAgent mit benutzerdefinierten Plug-Ins für erweiterte Funktionen:
KernelPlugin plugin = KernelPluginFactory.CreateFromType<YourPlugin>();
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
PersistentAgent definition = await agentsClient.Administration.CreateAgentAsync(
"<name of the the model used by the agent>",
name: "<agent name>",
description: "<agent description>",
instructions: "<agent instructions>");
AzureAIAgent agent = new(definition, agentsClient, plugins: [plugin]);
from semantic_kernel.functions import kernel_function
class SamplePlugin:
@kernel_function(description="Provides sample data.")
def get_data(self) -> str:
return "Sample data"
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
agent_definition = await client.agents.create_agent(
model=AzureAIAgentSettings().model_deployment_name,
)
agent = AzureAIAgent(
client=client,
definition=agent_definition,
plugins=[SamplePlugin()]
)
Das Feature ist derzeit in Java nicht verfügbar.
Erweiterte Funktionen
Ein AzureAIAgent kann erweiterte Tools nutzen, z. B.:
Codedolmetscher
Code Interpreter ermöglicht es den Agents, Python-Code in einer Sandkastenausführungsumgebung zu schreiben und auszuführen (Azure AI Agent Service Code Interpreter).
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
PersistentAgent definition = await agentsClient.CreateAgentAsync(
"<name of the the model used by the agent>",
name: "<agent name>",
description: "<agent description>",
instructions: "<agent instructions>",
tools: [new CodeInterpreterToolDefinition()],
toolResources:
new()
{
CodeInterpreter = new()
{
FileIds = { ... },
}
}));
AzureAIAgent agent = new(definition, agentsClient);
from azure.ai.agents.models import CodeInterpreterTool
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
code_interpreter = CodeInterpreterTool()
agent_definition = await client.agents.create_agent(
model=ai_agent_settings.model_deployment_name,
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
Das Feature ist derzeit in Java nicht verfügbar.
Dateisuche
Die Dateisuche erweitert die Agenten mit Wissen von außerhalb ihres Modells (Azure AI Agent Service File Search Tool).
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
PersistentAgent definition = await agentsClient.CreateAgentAsync(
"<name of the the model used by the agent>",
name: "<agent name>",
description: "<agent description>",
instructions: "<agent instructions>",
tools: [new FileSearchToolDefinition()],
toolResources:
new()
{
FileSearch = new()
{
VectorStoreIds = { ... },
}
});
AzureAIAgent agent = new(definition, agentsClient);
from azure.ai.agents.models import FileSearchTool
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
file_search = FileSearchTool(vector_store_ids=[vector_store.id])
agent_definition = await client.agents.create_agent(
model=ai_agent_settings.model_deployment_name,
tools=file_search.definitions,
tool_resources=file_search.resources,
)
Das Feature ist derzeit in Java nicht verfügbar.
OpenAPI-Integration
Verbindet Ihren Agent mit einer externen API (Verwenden des Azure AI-Agent-Diensts mit den angegebenen OpenAPI-Tools).
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
string apiJsonSpecification = ...; // An Open API JSON specification
PersistentAgent definition = await agentsClient.CreateAgentAsync(
"<name of the the model used by the agent>",
name: "<agent name>",
description: "<agent description>",
instructions: "<agent instructions>",
tools: [
new OpenApiToolDefinition(
"<api name>",
"<api description>",
BinaryData.FromString(apiJsonSpecification),
new OpenApiAnonymousAuthDetails())
]
);
AzureAIAgent agent = new(definition, agentsClient);
from azure.ai.agents.models import OpenApiTool, OpenApiAnonymousAuthDetails
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
openapi_spec_file_path = "sample/filepath/..."
with open(os.path.join(openapi_spec_file_path, "spec_one.json")) as file_one:
openapi_spec_one = json.loads(file_one.read())
with open(os.path.join(openapi_spec_file_path, "spec_two.json")) as file_two:
openapi_spec_two = json.loads(file_two.read())
# Note that connection or managed identity auth setup requires additional setup in Azure
auth = OpenApiAnonymousAuthDetails()
openapi_tool_one = OpenApiTool(
name="<name>",
spec=openapi_spec_one,
description="<description>",
auth=auth,
)
openapi_tool_two = OpenApiTool(
name="<name>",
spec=openapi_spec_two,
description="<description>",
auth=auth,
)
agent_definition = await client.agents.create_agent(
model=ai_agent_settings.model_deployment_name,
tools=openapi_tool_one.definitions + openapi_tool_two.definitions,
)
Das Feature ist derzeit in Java nicht verfügbar.
Die AzureAI-Suchintegration
Verwenden Sie einen vorhandenen Azure AI Search Index mit Ihrem Agenten (Verwenden eines vorhandenen Azure AI Search Index).
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
PersistentAgent definition = await agentsClient.CreateAgentAsync(
"<name of the the model used by the agent>",
name: "<agent name>",
description: "<agent description>",
instructions: "<agent instructions>",
tools: [new AzureAISearchToolDefinition()],
toolResources: new()
{
AzureAISearch = new()
{
IndexList = { new AISearchIndexResource("<your connection id>", "<your index name>") }
}
});
AzureAIAgent agent = new(definition, agentsClient);
from azure.ai.agents.models import AzureAISearchTool, ConnectionType
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
conn_list = await client.connections.list()
ai_search_conn_id = ""
for conn in conn_list:
if conn.connection_type == ConnectionType.AZURE_AI_SEARCH:
ai_search_conn_id = conn.id
break
ai_search = AzureAISearchTool(
index_connection_id=ai_search_conn_id,
index_name=AZURE_AI_SEARCH_INDEX_NAME,
)
agent_definition = await client.agents.create_agent(
model=ai_agent_settings.model_deployment_name,
instructions="Answer questions using your index.",
tools=ai_search.definitions,
tool_resources=ai_search.resources,
headers={"x-ms-enable-preview": "true"},
)
Das Feature ist derzeit in Java nicht verfügbar.
Bing Grounding
Beispiel in Kürze verfügbar.
from azure.ai.agents.models import BingGroundingTool
from azure.identity.aio import DefaultAzureCredential
from semantic_kernel.agents import AzureAIAgent, AzureAIAgentSettings
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
# 1. Enter your Bing Grounding Connection Name
bing_connection = await client.connections.get(connection_name="<your-bing-grounding-connection-name>")
conn_id = bing_connection.id
# 2. Initialize agent bing tool and add the connection id
bing_grounding = BingGroundingTool(connection_id=conn_id)
# 3. Create an agent with Bing grounding on the Azure AI agent service
agent_definition = await client.agents.create_agent(
name="BingGroundingAgent",
instructions="Use the Bing grounding tool to answer the user's question.",
model=AzureAIAgentSettings().model_deployment_name,
tools=bing_grounding.definitions,
)
# 4. Create a Semantic Kernel agent for the Azure AI agent
agent = AzureAIAgent(
client=client,
definition=agent_definition,
)
Bei Verwendung des Bing Grounding-Tools wird der an den FunctionCallContent Callback übergebene Funktionsname auf on_intermediate_message festgelegt. Nach Abschluss der Ausführung enthält die ChatMessageContent.items Liste entweder AnnotationContent oder StreamingAnnotationContent, je nachdem, ob der Aufruf standard oder Streaming ist. Diese Annotationselemente enthalten Informationen über die Links, die der Agent während der Beantwortung besuchte, ähnlich den Informationen im FunctionCallContent.
Weitere Informationen finden Sie in den folgenden Konzeptbeispielen:
Das Feature ist derzeit in Java nicht verfügbar.
Abrufen einer vorhandenen AzureAIAgent
Ein vorhandener Agent kann abgerufen und wiederverwendet werden, indem man seine Assistenten-ID angibt.
PersistentAgent definition = await agentsClient.Administration.GetAgentAsync("<your agent id>");
AzureAIAgent agent = new(definition, agentsClient);
agent_definition = await client.agents.get_agent(assistant_id="your-agent-id")
agent = AzureAIAgent(client=client, definition=agent_definition)
Das Feature ist derzeit in Java nicht verfügbar.
Löschen eines AzureAIAgent
Agents und die zugehörigen Threads können gelöscht werden, wenn sie nicht mehr benötigt werden:
await agentThread.DeleteAsync();
await agentsClient.Administration.DeleteAgentAsync(agent.Id);
await client.agents.delete_thread(thread.id)
await client.agents.delete_agent(agent.id)
Wenn Sie mit einem Vektorspeicher oder Dateien arbeiten, werden sie möglicherweise auch gelöscht:
await agentsClient.VectorStores.DeleteVectorStoreAsync("<your store id>");
await agentsClient.Files.DeleteFileAsync("<your file id>");
await client.agents.files.delete(file_id=file.id)
await client.agents.vector_stores.delete(vector_store_id=vector_store.id)
Das Feature ist derzeit in Java nicht verfügbar.
Weitere Informationen zur -Dateisuche finden Sie im Azure AI-Agent-Service-Dateisuchtool Artikel.
Vorgehensweise
Praktische Beispiele für die Verwendung eines AzureAIAgentfinden Sie in unseren Codebeispielen auf GitHub:
Das Feature ist derzeit in Java nicht verfügbar.
Bearbeitung von Zwischennachrichten mit einem AzureAIAgent
Der semantische Kernel AzureAIAgent wurde entwickelt, um einen Agent aufzurufen, der Benutzerabfragen oder -fragen erfüllt. Während des Aufrufs kann der Agent Tools ausführen, um die endgültige Antwort abzuleiten. Um auf zwischengeschaltete Nachrichten zuzugreifen, die während dieses Prozesses erstellt werden, können Caller eine Rückruffunktion bereitstellen, die Instanzen von FunctionCallContent oder FunctionResultContent behandelt.
Die Rückrufdokumentation für das
AzureAIAgentwird in Kürze verfügbar sein.
Konfigurieren des on_intermediate_message Rückrufs innerhalb agent.invoke(...) oder agent.invoke_stream(...) ermöglicht es dem Anrufer, Zwischennachrichten zu empfangen, die während des Prozesses der Erstellung der endgültigen Antwort des Agents generiert wurden.
import asyncio
from typing import Annotated
from azure.identity.aio import DefaultAzureCredential
from semantic_kernel.agents import AzureAIAgent, AzureAIAgentSettings, AzureAIAgentThread
from semantic_kernel.contents import FunctionCallContent, FunctionResultContent
from semantic_kernel.contents.chat_message_content import ChatMessageContent
from semantic_kernel.functions import kernel_function
# Define a sample plugin for the sample
class MenuPlugin:
"""A sample Menu Plugin used for the concept sample."""
@kernel_function(description="Provides a list of specials from the menu.")
def get_specials(self) -> Annotated[str, "Returns the specials from the menu."]:
return """
Special Soup: Clam Chowder
Special Salad: Cobb Salad
Special Drink: Chai Tea
"""
@kernel_function(description="Provides the price of the requested menu item.")
def get_item_price(
self, menu_item: Annotated[str, "The name of the menu item."]
) -> Annotated[str, "Returns the price of the menu item."]:
return "$9.99"
# This callback function will be called for each intermediate message,
# which will allow one to handle FunctionCallContent and FunctionResultContent.
# If the callback is not provided, the agent will return the final response
# with no intermediate tool call steps.
async def handle_intermediate_steps(message: ChatMessageContent) -> None:
for item in message.items or []:
if isinstance(item, FunctionResultContent):
print(f"Function Result:> {item.result} for function: {item.name}")
elif isinstance(item, FunctionCallContent):
print(f"Function Call:> {item.name} with arguments: {item.arguments}")
else:
print(f"{item}")
async def main() -> None:
ai_agent_settings = AzureAIAgentSettings()
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds, endpoint=ai_agent_settings.endpoint) as client,
):
AGENT_NAME = "Host"
AGENT_INSTRUCTIONS = "Answer questions about the menu."
# Create agent definition
agent_definition = await client.agents.create_agent(
model=ai_agent_settings.deployment_name,
name=AGENT_NAME,
instructions=AGENT_INSTRUCTIONS,
)
# Create the AzureAI Agent
agent = AzureAIAgent(
client=client,
definition=agent_definition,
plugins=[MenuPlugin()], # add the sample plugin to the agent
)
# Create a thread for the agent
# If no thread is provided, a new thread will be
# created and returned with the initial response
thread: AzureAIAgentThread = None
user_inputs = [
"Hello",
"What is the special soup?",
"How much does that cost?",
"Thank you",
]
try:
for user_input in user_inputs:
print(f"# User: '{user_input}'")
async for response in agent.invoke(
messages=user_input,
thread=thread,
on_intermediate_message=handle_intermediate_steps,
):
print(f"# Agent: {response}")
thread = response.thread
finally:
# Cleanup: Delete the thread and agent
await thread.delete() if thread else None
await client.agents.delete_agent(agent.id)
if __name__ == "__main__":
asyncio.run(main())
Das Folgende zeigt die Beispielausgabe des Agentenaufrufprozesses:
User: 'Hello'
Agent: Hi there! How can I assist you today?
User: 'What is the special soup?'
Function Call:> MenuPlugin-get_specials with arguments: {}
Function Result:>
Special Soup: Clam Chowder
Special Salad: Cobb Salad
Special Drink: Chai Tea
for function: MenuPlugin-get_specials
Agent: The special soup is Clam Chowder. Would you like to know anything else about the menu?
User: 'How much does that cost?'
Function Call:> MenuPlugin-get_item_price with arguments: {"menu_item":"Clam Chowder"}
Function Result:> $9.99 for function: MenuPlugin-get_item_price
Agent: The Clam Chowder costs $9.99. Let me know if you would like assistance with anything else!
User: 'Thank you'
Agent: You're welcome! Enjoy your meal! 😊
Das Feature ist derzeit in Java nicht verfügbar.
Deklarative Spezifikation
Die Dokumentation zur Verwendung deklarativer Spezifikationen wird in Kürze verfügbar sein.
Von Bedeutung
Dieses Feature befindet sich in der experimentellen Phase. Features in dieser Phase befinden sich in der Entwicklung und können sich ändern, bevor Sie zur Vorschau- oder Veröffentlichungskandidatenstufe wechseln.
AzureAIAgent unterstützt die Instanziierung aus einer YAML-deklarativen Spezifikation. Mit dem deklarativen Ansatz können Sie die Eigenschaften, Anweisungen, Modellkonfiguration, Tools und andere Optionen in einem einzigen, auditierbaren Dokument definieren. Dies macht die Agentkomposition übertragbar und einfach umgebungsübergreifend verwaltet.
Hinweis
Alle Tools, Funktionen oder Plug-Ins, die im deklarativen YAML aufgeführt sind, müssen dem Agenten zur Bauzeit zur Verfügung stehen. Für kernelbasierte Plug-Ins bedeutet dies, dass sie im Kernel registriert werden müssen. Für integrierte Tools wie Bing Grounding, Dateisuche oder OpenAPI-Tools müssen die richtige Konfiguration und Anmeldeinformationen angegeben werden. Der Agent-Loader wird keine Funktionen von Grund auf neu erstellen. Wenn eine erforderliche Komponente fehlt, schlägt die Agenterstellung fehl.
Anleitung zur Verwendung der deklarativen Spezifikation
Anstatt jede mögliche YAML-Konfiguration aufzählen zu müssen, beschreibt dieser Abschnitt die wichtigsten Prinzipien und enthält Links zu Konzeptbeispielen, die vollständigen Code für jeden Tooltyp anzeigen. In den folgenden Konzeptbeispielen finden Sie End-to-End-Implementierungen einer AzureAIAgent mit deklarativen Spezifikationen:
- Funktionsplugin
- Funktions-Plug-In aus einer Datei
- KI-Suche
- Bing Grounding
- Codedolmetscher
- Dateisuche
- OpenAPI
- Eingabeaufforderungsvorlage
- Laden aus vorhandener Agent-ID
Beispiel: Erstellen eines AzureAIAgent aus YAML
Eine minimale deklarative YAML-Spezifikation könnte wie folgt aussehen:
type: foundry_agent
name: MyAgent
instructions: Respond politely to the user's questions.
model:
id: ${AzureAI:ChatModelId}
tools:
- id: MenuPlugin.get_specials
type: function
- id: MenuPlugin.get_item_price
type: function
Ausführliche Informationen zum Verbinden des Agents finden Sie in den oben aufgeführten vollständigen Codebeispielen.
Die wichtigsten Punkte
- Deklarative Spezifikationen ermöglichen das Definieren von Agentstruktur, Tools und Verhalten in YAML.
- Alle referenzierten Tools und Plug-Ins müssen zur Laufzeit registriert oder zugänglich sein.
- Integrierte Tools wie Bing, Dateisuche und Codedolmetscher erfordern eine ordnungsgemäße Konfiguration und Anmeldeinformationen (häufig über Umgebungsvariablen oder explizite Argumente).
- Umfassende Beispiele finden Sie in den bereitgestellten Beispiellinks, die praktische Szenarien veranschaulichen, einschließlich Plug-In-Registrierung, Azure-Identitätskonfiguration und erweiterter Toolverwendung.
Dieses Feature ist nicht verfügbar.