共用方式為


使用語意核心外掛程式設定代理程式 (實驗性)

警告

語意核心代理程式架構是實驗性的,仍在開發中,而且可能會變更。

語意核心中的函式和外掛程式

函式呼叫是功能強大的工具,可讓開發人員新增自定義功能並擴充 AI 應用程式的功能。 語意核心外掛程式架構提供彈性架構來支援函式呼叫針對代理程式,外掛程式函數呼叫整合是以這個基礎語意核心功能為基礎。

設定之後,代理程式會選擇何時和如何呼叫可用的函式,就像在 Agent Framework 以外的任何使用方式一樣。

代理程式目前無法在Java中使用。

將外掛程式新增至代理程式

代理程式可用的任何外掛程式都是在其各自的核心實例內管理。 此設定可讓每個 代理程式 根據其特定角色存取不同的功能。

您可以在建立代理程式之前或之後,將外掛程式新增至核心。 初始化 外掛程式 的程式會遵循用於任何 語意核心 實作的相同模式,以允許在管理 AI 功能時保持一致性和易於使用。

注意:對於 聊天完成代理程式,必須明確啟用函式呼叫模式。 Open AI Assistant 代理程式一律以自動呼叫函式為基礎。

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

代理程式目前無法在Java中使用。

將函式新增至代理程式

外掛程式是設定函數呼叫最常見的方法。 不過,個別函式也可以獨立提供,包括 提示函式

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

代理程式目前無法在Java中使用。

代理程式函式呼叫的限制

直接叫用聊天完成代理程式時,支援所有函式選擇行為 不過,使用Open AI Assistant Agent Chat 時,目前只能使用自動函數呼叫

作法

如需使用函式呼叫的端對端範例,請參閱: