Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Eksplorowanie jądra semantycznego
Ważne
Ta funkcja znajduje się na etapie eksperymentalnym. Funkcje na tym etapie są opracowywane i mogą ulec zmianie przed przejściem do etapu wersji zapoznawczej lub etapu kandydata do wydania.
Wskazówka
Szczegółowa dokumentacja interfejsu API związana z tą dyskusją jest dostępna pod adresem:
Wskazówka
Szczegółowa dokumentacja interfejsu API związana z tą dyskusją jest dostępna pod adresem:
Funkcja jest obecnie niedostępna w języku Java.
Co to jest AzureAIAgent?
AzureAIAgent to wyspecjalizowany agent w ramach struktury semantycznego jądra, zaprojektowany w celu zapewnienia zaawansowanych funkcji konwersacyjnych z bezproblemową integracją narzędzi. Automatyzuje wywoływanie narzędzi, eliminując konieczność ręcznego analizowania i wywoływania. Agent bezpiecznie zarządza również historią konwersacji przy użyciu wątków, co zmniejsza obciążenie związane z utrzymywaniem stanu. Ponadto AzureAIAgent obsługuje różne wbudowane narzędzia, w tym pobieranie plików, wykonywanie kodu i interakcję z danymi za pośrednictwem usług Bing, Azure AI Search, Azure Functions i OpenAPI.
Aby użyć AzureAIAgent, należy użyć projektu usługi Azure AI Foundry. Poniższe artykuły zawierają omówienie rozwiązania Azure AI Foundry, sposobu tworzenia i konfigurowania projektu oraz usługi agenta:
- Co to jest usługa Azure AI Foundry?
- Azure AI Foundry SDK
- co to jest usługa agenta sztucznej inteligencji platformy Azure
- Szybki start: tworzenie nowego agenta
Przygotowywanie środowiska projektowego
Aby kontynuować tworzenie AzureAIAgent, skonfiguruj środowisko programistyczne za pomocą odpowiednich pakietów.
Dodaj pakiet Microsoft.SemanticKernel.Agents.AzureAI do projektu:
dotnet add package Microsoft.SemanticKernel.Agents.AzureAI --prerelease
Możesz również dołączyć pakiet Azure.Identity:
dotnet add package Azure.Identity
semantic-kernel Zainstaluj pakiet:
pip install semantic-kernel
Funkcja jest obecnie niedostępna w języku Java.
Konfigurowanie klienta projektu sztucznej inteligencji
Uzyskanie dostępu do AzureAIAgent najpierw wymaga utworzenia klienta skonfigurowanego dla określonego projektu Foundry, najczęściej poprzez podanie punktu końcowego projektu (Azure AI Foundry SDK: Wprowadzenie do projektów).
PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());
Zmodyfikuj plik .env w katalogu głównym, aby uwzględnić następujące elementy:
AZURE_AI_AGENT_ENDPOINT = "<example-endpoint>"
AZURE_AI_AGENT_MODEL_DEPLOYMENT_NAME = "<example-model-deployment-name>"
Po zdefiniowaniu konfiguracji można utworzyć klienta:
from semantic_kernel.agents import AzureAIAgent
async with (
DefaultAzureCredential() as creds,
AzureAIAgent.create_client(credential=creds) as client,
):
# Your operational code here
Jeśli ustawienia Pydantic są skonfigurowane, zostaną wykorzystane bazowe endpoint. W przeciwnym razie możesz jawnie przekazać go do metody create_client().
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
Funkcja jest obecnie niedostępna w języku Java.
Tworzenie AzureAIAgent
Aby utworzyć element AzureAIAgent, należy rozpocząć od skonfigurowania i zainicjowania projektu Foundry za pośrednictwem usługi Azure Agent, a następnie zintegrować go z jądrem semantycznym:
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,
)
Funkcja jest obecnie niedostępna w języku Java.
Interakcja z AzureAIAgent
Interakcja z AzureAIAgent jest prosta. Agent automatycznie utrzymuje historię konwersacji przy użyciu wątku.
Specyfika wątku agenta sztucznej inteligencji platformy Azure jest zrealizowana przez Microsoft.SemanticKernel.Agents.AzureAI.AzureAIAgentThread, który jest implementacją Microsoft.SemanticKernel.Agents.AgentThread.
Ważne
Należy pamiętać, że zestaw SDK agentów sztucznej inteligencji platformy Azure ma klasę PersistentAgentThread . Nie należy go mylić z elementem Microsoft.SemanticKernel.Agents.AgentThread, który jest wspólną abstrakcją agentów jądra semantycznego dla wszystkich typów wątków.
Obecnie AzureAIAgent obsługuje tylko wątki typu 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);
}
Specyfika wątku agenta sztucznej inteligencji platformy Azure jest zrealizowana przez AzureAIAgentThread, który jest implementacją 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
Opcjonalnie agent może być wywoływany jako:
for user_input in USER_INPUTS:
async for content in agent.invoke(messages=user_input, thread=thread):
print(content.content)
thread = response.thread
Możesz również przekazać listę komunikatów do metod get_response(...), invoke(...) lub invoke_stream(...).
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
Agent może również wygenerować odpowiedź strumieniową:
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)
Funkcja jest obecnie niedostępna w języku Java.
Używanie wtyczek z AzureAIAgent
Jądro semantyczne obsługuje rozszerzanie AzureAIAgent za pomocą wtyczek niestandardowych na potrzeby rozszerzonych funkcji:
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()]
)
Funkcja jest obecnie niedostępna w języku Java.
Funkcje zaawansowane
AzureAIAgent może korzystać z zaawansowanych narzędzi, takich jak:
Interpreter kodów
Interpreter kodu pozwala agentom na pisanie i uruchamianie kodu w języku Python w środowisku wykonawczym typu piaskownica (Interpreter kodu usługi agenta sztucznej inteligencji Azure AI).
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,
)
Funkcja jest obecnie niedostępna w języku Java.
Wyszukiwanie plików
Wyszukiwanie plików uzupełnia agentów o wiedzę spoza ich modelu (narzędzie wyszukiwania plików w usłudze Agenta Sztucznej Inteligencji platformy Azure).
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,
)
Funkcja jest obecnie niedostępna w języku Java.
Integracja z interfejsem OpenAPI
Łączy agenta z zewnętrznym interfejsem API (Jak używać usługi Azure AI Agent Service z narzędziami określonymi w interfejsie OpenAPI).
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,
)
Funkcja jest obecnie niedostępna w języku Java.
Integracja usługi AzureAI Search
Użyj istniejącego indeksu Azure AI Search w połączeniu z agentem (Użyj istniejącego indeksu AI Search).
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"},
)
Funkcja jest obecnie niedostępna w języku Java.
Uziemienie Bing
Przykład będzie już wkrótce.
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,
)
W przypadku korzystania z narzędzia Bing Grounding, FunctionCallContent przekazane do wywołania zwrotnego on_intermediate_message będzie miało nazwę funkcji ustawioną na "bing_grounding". Po zakończeniu przebiegu lista ChatMessageContent.items będzie zawierać albo AnnotationContent, albo StreamingAnnotationContent, w zależności od tego, czy wywołanie jest standardowe, czy przesyłane strumieniowo. Te elementy adnotacji zawierają informacje o łączach odwiedzonych przez agenta podczas odpowiedzi, podobnie jak informacje znajdujące się w elemecie FunctionCallContent.
Aby uzyskać więcej informacji, zobacz następujące przykłady pojęć:
Funkcja jest obecnie niedostępna w języku Java.
Pobieranie istniejącej AzureAIAgent
Można pobrać istniejącego agenta i użyć go ponownie, określając jego identyfikator asystenta.
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)
Funkcja jest obecnie niedostępna w języku Java.
Usuwanie AzureAIAgent
Agenci i skojarzone z nimi wątki można usuwać, gdy nie są już potrzebne:
await agentThread.DeleteAsync();
await agentsClient.Administration.DeleteAgentAsync(agent.Id);
await client.agents.delete_thread(thread.id)
await client.agents.delete_agent(agent.id)
W przypadku pracy z magazynem wektorowym lub plikami można je również usunąć:
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)
Funkcja jest obecnie niedostępna w języku Java.
Więcej informacji na temat narzędzia wyszukiwania plików opisano w artykule Narzędzie wyszukiwania plików usługi Azure AI Agent Service.
Instrukcja
Aby zapoznać się z praktycznymi przykładami używania AzureAIAgent, zobacz nasze przykłady kodu w witrynie GitHub:
Funkcja jest obecnie niedostępna w języku Java.
Obsługa komunikatów pośrednich za pomocą elementu AzureAIAgent
Jądro AzureAIAgent semantyczne jest przeznaczone do wywoływania agenta, który spełnia zapytania użytkownika lub pytania. Podczas wywołania agent może wykonywać narzędzia, aby uzyskać ostateczną odpowiedź. Aby uzyskać dostęp do komunikatów pośrednich generowanych podczas tego procesu, dzwoniący mogą dostarczyć funkcję zwrotną, która obsługuje wystąpienia FunctionCallContent lub FunctionResultContent.
Dokumentacja wywołania zwrotnego dla elementu
AzureAIAgentzostanie wkrótce udostępniona.
Skonfigurowanie wywołania zwrotnego on_intermediate_message w agent.invoke(...) lub agent.invoke_stream(...) umożliwia inicjującemu odbieranie komunikatów pośrednich generowanych podczas procesu formułowania ostatecznej odpowiedzi agenta.
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())
Poniżej przedstawiono przykładowe dane wyjściowe z procesu wywołania agenta:
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! 😊
Funkcja jest obecnie niedostępna w języku Java.
Specyfikacja deklaratywna
Dokumentacja dotycząca korzystania ze specyfikacji deklaratywnych jest dostępna wkrótce.
Ważne
Ta funkcja znajduje się na etapie eksperymentalnym. Funkcje na tym etapie są opracowywane i mogą ulec zmianie przed przejściem do etapu wersji zapoznawczej lub etapu kandydata do wydania.
Funkcja AzureAIAgent obsługuje tworzenie wystąpień ze specyfikacji deklaratywnej YAML. Podejście deklaratywne umożliwia zdefiniowanie właściwości, instrukcji agenta, konfiguracji modelu, narzędzi i innych opcji w jednym dokumencie z możliwością inspekcji. Dzięki temu kompozycja agenta jest przenośna i łatwo zarządzana w różnych środowiskach.
Uwaga / Notatka
Wszystkie narzędzia, funkcje lub wtyczki wymienione w deklaratywnym języku YAML muszą być dostępne dla agenta w czasie budowy. W przypadku wtyczek opartych na jądrach oznacza to, że muszą być zarejestrowane w jądrze. W przypadku wbudowanych narzędzi, takich jak Bing Grounding, Wyszukiwanie plików lub Narzędzia OpenAPI, należy podać poprawną konfigurację i poświadczenia. Moduł ładujący agenta nie utworzy funkcji od podstaw. Jeśli brakuje wymaganego składnika, tworzenie agenta zakończy się niepowodzeniem.
Jak używać specyfikacji deklaratywnej
Zamiast wyliczać każdą możliwą konfigurację YAML, w tej sekcji opisano kluczowe zasady i podano linki do przykładów koncepcji, które pokazują pełny kod dla każdego typu narzędzia. Zapoznaj się z tymi wzorcowymi przykładami kompleksowych implementacji AzureAIAgent z deklaratywnymi specyfikacjami.
- Funkcyjna wtyczka
- Funkcja wtyczki z pliku
- Wyszukiwanie sztucznej inteligencji
- Podstawy Binga
- Interpreter kodów
- wyszukiwanie plików
- OpenAPI
- Szablon monitu
- Załaduj z istniejącego identyfikatora agenta
Przykład: tworzenie modułu AzureAIAgent z poziomu yaML
Minimalna specyfikacja deklaratywna YAML może wyglądać następująco:
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
Aby uzyskać szczegółowe informacje na temat sposobu podłącznia agenta, zapoznaj się z powyższymi pełnymi przykładami kodu.
Kwestie kluczowe
- Specyfikacje deklaratywne umożliwiają definiowanie struktury agenta, narzędzi i zachowania w języku YAML.
- Wszystkie przywoływalne narzędzia i wtyczki muszą być zarejestrowane lub dostępne w czasie wykonywania.
- Wbudowane narzędzia, takie jak Bing, wyszukiwanie plików i interpreter kodu, wymagają odpowiedniej konfiguracji i poświadczeń (często za pośrednictwem zmiennych środowiskowych lub jawnych argumentów).
- Aby zapoznać się z kompleksowymi przykładami, zapoznaj się z podanymi przykładowymi linkami, które przedstawiają praktyczne scenariusze, w tym rejestrację wtyczki, konfigurację tożsamości platformy Azure i zaawansowane użycie narzędzi.
Ta funkcja jest niedostępna.