Aracılığıyla paylaş


Anlam Çekirdeği Keşfi AzureAIAgent

Önemli

Bu özellik deneysel aşamadadır. Bu aşamadaki özellikler geliştirme aşamasındadır ve önizleme veya sürüm adayı aşamasına geçmeden önce değiştirilebilir.

Tavsiye

Bu tartışmayla ilgili ayrıntılı API belgelerine şu adreste ulaşabilirsiniz:

Tavsiye

Bu tartışmayla ilgili ayrıntılı API belgelerine şu adreste ulaşabilirsiniz:

Özellik şu anda Java'da kullanılamıyor.

AzureAIAgentnedir?

AzureAIAgent, sorunsuz araç tümleştirmesi ile gelişmiş konuşma özellikleri sağlamak için tasarlanmış, Semantik Çekirdek çerçevesi dahilinde özel bir ajandır. Araç çağrısını otomatikleştirerek el ile ayrıştırma ve çağırma gereksinimini ortadan kaldırır. Temsilcisi ayrıca iş parçacıklarını kullanarak konuşma geçmişini güvenli bir şekilde yöneterek durumu sürdürmeye ilişkin yükü azaltır. Ayrıca AzureAIAgent, Bing, Azure AI Search, Azure İşlevleri ve OpenAPI aracılığıyla dosya alma, kod yürütme ve veri etkileşimi gibi çeşitli yerleşik araçları destekler.

AzureAIAgentkullanmak için Azure AI Foundry Projesi kullanılmalıdır. Aşağıdaki makaleler Azure AI Foundry'ye, proje oluşturma ve yapılandırmaya ve aracı hizmetine genel bir bakış sağlar:

Geliştirme Ortamınızı Hazırlama

AzureAIAgentgeliştirmeye devam etmek için geliştirme ortamınızı uygun paketlerle yapılandırın.

projenize Microsoft.SemanticKernel.Agents.AzureAI paketini ekleyin:

dotnet add package Microsoft.SemanticKernel.Agents.AzureAI --prerelease

ayrıca Azure.Identity paketini de dahil etmek isteyebilirsiniz:

dotnet add package Azure.Identity

semantic-kernel Paketi yükleyin:

pip install semantic-kernel

Özellik şu anda Java'da kullanılamıyor.

AI Proje İstemcisini Yapılandırma

Bir AzureAIAgent erişmek için öncelikle belirli bir Foundry Projesi için yapılandırılmış bir istemci oluşturmanız gerekir; bu, en yaygın olarak proje uç noktanızı sağlayarak gerçekleştirilir (Azure AI Foundry SDK'sı: Projeleri Kullanmaya Başlama).

PersistentAgentsClient client = AzureAIAgent.CreateAgentsClient("<your endpoint>", new AzureCliCredential());

Kök dizindeki .env dosyasını değiştirip şunları ekleyin:

AZURE_AI_AGENT_ENDPOINT = "<example-endpoint>"
AZURE_AI_AGENT_MODEL_DEPLOYMENT_NAME = "<example-model-deployment-name>"

Yapılandırma tanımlandıktan sonra istemci oluşturulabilir:

from semantic_kernel.agents import AzureAIAgent

async with (
    DefaultAzureCredential() as creds,
    AzureAIAgent.create_client(credential=creds) as client,
):
    # Your operational code here

Altında yatan endpoint, yapılandırılırsa Pydantic Ayarları tarafından alınacaktır. Aksi takdirde, bunu create_client() metoduna açıkça geçirebilirsiniz.

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

Özellik şu anda Java'da kullanılamıyor.

Bir AzureAIAgent oluşturma

Bir AzureAIAgent oluşturmak için, Azure Aracısı hizmeti aracılığıyla Foundry projesini yapılandırıp başlatarak işe başlarsınız ve ardından Anlam Çekirdeği ile entegre edersiniz.

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,
    )

Özellik şu anda Java'da kullanılamıyor.

AzureAIAgent ile etkileşim kurmak

AzureAIAgent ile etkileşim basittir. Ajan, sohbet geçmişini bir işlem dizisi kullanarak otomatik olarak kaydeder.

Azure AI Agent iş parçacığının özellikleri, Microsoft.SemanticKernel.Agents.AzureAI.AzureAIAgentThread'nin bir uygulaması olan Microsoft.SemanticKernel.Agents.AgentThread sınıfı aracılığıyla soyutlanır.

Önemli

Azure AI Agents SDK'sının sınıfına PersistentAgentThread sahip olduğunu unutmayın. Tüm iş parçacığı türleri için yaygın olarak bilinen Semantik Çekirdek Aracıları soyutlaması olan Microsoft.SemanticKernel.Agents.AgentThread ile karıştırılmamalıdır.

AzureAIAgent halihazırda yalnızca AzureAIAgentThreadtüründe iş parçacıklarını destekler.

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);
}

Azure AI Agent iş parçacığının özellikleri, AzureAIAgentThread'nin bir uygulaması olan AgentThread sınıfı aracılığıyla soyutlanır.

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

Opsiyonel olarak, bir aracı şu şekilde başlatabilirsiniz:

for user_input in USER_INPUTS:
    async for content in agent.invoke(messages=user_input, thread=thread):
        print(content.content)
        thread = response.thread

Bir mesaj listesini get_response(...), invoke(...) veya invoke_stream(...) yöntemlerine de geçirebilirsiniz.

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

Bir aracısı da akışlı yanıt üretebilir:

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)

Özellik şu anda Java'da kullanılamıyor.

Eklentileri AzureAIAgent ile kullanma

Semantik Çekirdek, gelişmiş işlevsellik için özel eklentilerle bir AzureAIAgent genişletmeyi destekler:

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()]
        )

Özellik şu anda Java'da kullanılamıyor.

Gelişmiş Özellikler

AzureAIAgent aşağıdakiler gibi gelişmiş araçlardan yararlanabilir:

Kod Yorumlayıcı

Kod Yorumlayıcı, aracıların korumalı bir yürütme ortamında (Azure AI Aracısı Hizmet Kodu Yorumlayıcısı) Python kodu yazmasına ve çalıştırmasına olanak tanır.

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,
        )

Özellik şu anda Java'da kullanılamıyor.

Dosya arama, aracıları modelinin dışından gelen bilgiyle destekler (Azure AI Aracısı Hizmeti Dosya Arama Aracı).

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,
        )

Özellik şu anda Java'da kullanılamıyor.

OpenAPI Tümleştirmesi

Aracınızı bir dış API'ye bağlar (OpenAPI Belirtilen Araçlarile Azure AI Aracı Hizmeti'ni kullanma ).

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,
    )

Özellik şu anda Java'da kullanılamıyor.

AzureAI Arama Tümleştirmesi

Mevcut bir Azure AI Search dizinini aracınızla kullanın (Mevcut AI Search dizinini kullan).

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"},
    )

Özellik şu anda Java'da kullanılamıyor.

Bing Topraklama

Örnek yakında geliyor.

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,
    )

Bing Topraklama aracını kullanırken, FunctionCallContent geri çağırma işlevine geçirilenin işlev adı on_intermediate_message olarak "bing_grounding" ayarlanır. Çalıştırma tamamlandıktan sonra, çağrının standart mı yoksa akış mı olduğuna bağlı olarak ChatMessageContent.items veya AnnotationContent listede bulunur. Bu ek açıklama öğeleri, aracının yanıt sırasında ziyaret yaptığı bağlantılar hakkında, içinde FunctionCallContentbulunan bilgilere benzer bilgiler içerir.

Daha fazla bilgi için aşağıdaki kavram örneklerine bakın:

Özellik şu anda Java'da kullanılamıyor.

Mevcut AzureAIAgent'ı Geri Getirme

Mevcut bir temsilci, yardımcı kimliği belirtilerek alınabilir ve yeniden kullanılabilir.

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)

Özellik şu anda Java'da kullanılamıyor.

Bir AzureAIAgent'ı silme

Ajanlar ve ilişkili iş parçacıkları artık gerekli olmadığında silinebilir.

await agentThread.DeleteAsync();
await agentsClient.Administration.DeleteAgentAsync(agent.Id);
await client.agents.delete_thread(thread.id)
await client.agents.delete_agent(agent.id)

Vektör deposu veya dosyalarla çalışıyorsanız, bunlar da silinebilir:

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)

Özellik şu anda Java'da kullanılamıyor.

dosya arama aracı hakkında daha fazla bilgi Azure AI Agent Service dosya arama aracı makalesinde açıklanmıştır.

Nasıl Yapılır

AzureAIAgentkullanmanın pratik örnekleri için GitHub'da kod örneklerimize bakın:

Özellik şu anda Java'da kullanılamıyor.

AzureAIAgent kullanarak Ara İletileri Yönetme

Anlam Çekirdeği AzureAIAgent , kullanıcı sorgularını veya sorularını yerine getiren bir aracı çağırmak için tasarlanmıştır. Çağırma sırasında aracı, son yanıtı türetmek için araçlar çalıştırabilir. Bu işlem sırasında üretilen ara iletilere erişmek için, çağıranlar FunctionCallContent veya FunctionResultContent örneklerini işleyen bir geri çağırma işlevi sağlayabilir.

AzureAIAgent için geri çağırma belgeleri yakında sunulacaktır.

on_intermediate_message geri çağırmayı agent.invoke(...) veya agent.invoke_stream(...) içinde yapılandırmak, arayanın, ajanın nihai yanıtını formüle etme süreci sırasında üretilen ara mesajları almasına olanak tanır.

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())

Aşağıda aracı çağırma işleminden alınan örnek çıkış gösterilmektedir:

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! 😊

Özellik şu anda Java'da kullanılamıyor.

Bildirim Temelli Belirtim

Bildirim temelli özellikleri kullanma belgeleri yakında kullanıma sunulacaktır.

Önemli

Bu özellik deneysel aşamadadır. Bu aşamadaki özellikler geliştirme aşamasındadır ve önizleme veya sürüm adayı aşamasına geçmeden önce değiştirilebilir.

AzureAIAgent YAML bildirimsel belirtiminden örnek oluşturmayı destekler. Bildirim temelli yaklaşım, aracı özelliklerini, yönergelerini, model yapılandırmasını, araçlarını ve diğer seçenekleri tek, denetlenebilir bir belgede tanımlamanızı sağlar. Bu, aracı bileşiminin taşınabilir olmasını ve farklı ortamlar arasında kolay bir şekilde yönetilmesini sağlar.

Uyarı

Bildirim temelli YAML'de listelenen tüm araçlar, işlevler veya eklentiler, inşaat zamanında aracı tarafından kullanılabilir olmalıdır. Çekirdek tabanlı eklentiler için bu, çekirdekte kayıtlı olmaları gerektiği anlamına gelir. Bing Topraklama, Dosya Arama veya OpenAPI araçları gibi yerleşik araçlar için doğru yapılandırma ve kimlik bilgileri sağlanmalıdır. Ajan yükleyicisi sıfırdan fonksiyon oluşturmaz. Gerekli bir bileşen eksikse aracı oluşturma başarısız olur.

Bildirim Temelli Belirtimi Kullanma

Bu bölüm, olası tüm YAML yapılandırmalarını listelemek yerine temel ilkeleri özetler ve her araç türü için tam kodu gösteren kavram örneklerinin bağlantılarını sağlar. Bildirim temelli belirtimlere sahip bir AzureAIAgent uygulamasının uçtan uca uygulamaları için şu kavram örneklerine bakın:

Örnek: YAML'den AzureAIAgent oluşturma

En düşük YAML bildirim belirtimi aşağıdaki gibi görünebilir:

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

Ajanı nasıl bağlayabileceğinizin detayları için yukarıda verilen tam kod örneklerine bakın.

Önemli Noktalar

  • Bildirim temelli belirtimler YAML'de aracı yapısını, araçlarını ve davranışını tanımlamaya olanak sağlar.
  • Başvurulan tüm araçlar ve eklentiler çalışma zamanında kayıtlı veya erişilebilir olmalıdır.
  • Bing, Dosya Arama ve Kod Yorumlayıcı gibi yerleşik araçlar için uygun yapılandırma ve kimlik bilgileri gerekir (genellikle ortam değişkenleri veya açık bağımsız değişkenler aracılığıyla).
  • Kapsamlı örnekler için eklenti kaydı, Azure kimlik yapılandırması ve gelişmiş araç kullanımı gibi pratik senaryoları gösteren sağlanan örnek bağlantılara bakın.

Bu özellik kullanılamıyor.

Sonraki Adımlar