Sdílet prostřednictvím


Konfigurace agentů pomocí sémantických modulů plug-in jádra (experimentální)

Upozorňující

Sémantická architektura agenta jádra je experimentální, stále ve vývoji a může se změnit.

Funkce a moduly plug-in v sémantickém jádru

Volání funkcí je výkonný nástroj, který vývojářům umožňuje přidávat vlastní funkce a rozšiřovat možnosti aplikací AI. Architektura modulu plug-in sémantického jádra nabízí flexibilní architekturu pro podporu volání funkcí. Integrace modulů plug-in a volání funkcí pro agenta je založená na této základní sémantické funkci jádra.

Po nakonfigurování agent zvolí, kdy a jak volat dostupnou funkci, stejně jako při jakémkoli použití mimo rozhraní Agent Framework.

Agenti momentálně nejsou v Javě k dispozici.

Přidání modulů plug-in do agenta

Všechny moduly plug-in dostupné agentovi se spravují v příslušné instanci jádra. Toto nastavení umožňuje každému agentu přístup k odlišným funkcím na základě jeho konkrétní role.

Moduly plug-in je možné přidat do jádra před vytvořením agenta nebo po jeho vytvoření. Proces inicializace modulů plug-in se řídí stejnými vzory používanými pro jakoukoli implementaci sémantického jádra , což umožňuje konzistenci a snadné použití při správě funkcí AI.

Poznámka: U agenta pro dokončování chatu musí být režim volání funkce explicitně povolený. Agent Open AI Assistant je vždy založen na automatickém volání funkcí.

// Factory method to product an agent with a specific role.
// Could be incorporated into DI initialization.
ChatCompletionAgent CreateSpecificAgent(Kernel kernel, string credentials)
{
    // Clone kernel instance to allow for agent specific plug-in definition
    Kernel agentKernel = kernel.Clone();

    // Initialize plug-in from type
    agentKernel.CreatePluginFromType<StatelessPlugin>();

    // Initialize plug-in from object
    agentKernel.CreatePluginFromObject(new StatefulPlugin(credentials));

    // Create the agent
    return 
        new ChatCompletionAgent()
        {
            Name = "<agent name>",
            Instructions = "<agent instructions>",
            Kernel = agentKernel,
            Arguments = new KernelArguments(
                new OpenAIPromptExecutionSettings() 
                { 
                    FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() 
                })
        };
}
# Create the instance of the Kernel
kernel = Kernel()

# Define the service ID
service_id = "<service ID>"

# Add the chat completion service to the Kernel
kernel.add_service(AzureChatCompletion(service_id=service_id))

# Get the AI Service settings for the specified service_id
settings = kernel.get_prompt_execution_settings_from_service_id(service_id=service_id)

# Configure the function choice behavior to auto invoke kernel functions
settings.function_choice_behavior = FunctionChoiceBehavior.Auto()

# Add the Plugin to the Kernel
kernel.add_plugin(SamplePlugin(), plugin_name="<plugin name>")

# Create the agent
agent = ChatCompletionAgent(
    service_id=service_id, 
    kernel=kernel, 
    name=<agent name>, 
    instructions=<agent instructions>, 
    execution_settings=settings,
)

Agenti momentálně nejsou v Javě k dispozici.

Přidání funkcí do agenta

Modul plug-in je nejběžnějším přístupem ke konfiguraci volání funkcí. Jednotlivé funkce je ale možné zadat i nezávisle na sobě, včetně funkcí výzvy.

// Factory method to product an agent with a specific role.
// Could be incorporated into DI initialization.
ChatCompletionAgent CreateSpecificAgent(Kernel kernel)
{
    // Clone kernel instance to allow for agent specific plug-in definition
    Kernel agentKernel = kernel.Clone();

    // Initialize plug-in from a static function
    agentKernel.CreateFunctionFromMethod(StatelessPlugin.AStaticMethod);

    // Initialize plug-in from a prompt
    agentKernel.CreateFunctionFromPrompt("<your prompt instructiosn>");

    // Create the agent
    return 
        new ChatCompletionAgent()
        {
            Name = "<agent name>",
            Instructions = "<agent instructions>",
            Kernel = agentKernel,
            Arguments = new KernelArguments(
                new OpenAIPromptExecutionSettings() 
                { 
                    FunctionChoiceBehavior = FunctionChoiceBehavior.Auto() 
                })
        };
}
# Create the instance of the Kernel
kernel = Kernel()

# Define the service ID
service_id = "<service ID>"

# Add the chat completion service to the Kernel
kernel.add_service(AzureChatCompletion(service_id=service_id))

# Get the AI Service settings for the specified service_id
settings = kernel.get_prompt_execution_settings_from_service_id(service_id=service_id)

# Configure the function choice behavior to auto invoke kernel functions
settings.function_choice_behavior = FunctionChoiceBehavior.Auto()

# Add the Plugin to the Kernel
kernel.add_plugin(SamplePlugin(), plugin_name="<plugin name>")

# Create the agent
agent = ChatCompletionAgent(
    service_id=service_id, 
    kernel=kernel, 
    name=<agent name>, 
    instructions=<agent instructions>, 
    execution_settings=settings,
)

Agenti momentálně nejsou v Javě k dispozici.

Omezení pro volání funkcí agenta

Při přímém vyvolání agenta pro dokončování chatuse podporují všechna chování výběru funkce. Pokud ale používáte open AI Assistant nebo Agent Chat, je aktuálně k dispozici pouze automatické volání funkcí.

Postupy

Kompletní příklad použití volání funkcí najdete v tématu: