Partager via


ChatCompletionAgent Class

A KernelAgent specialization based on ChatCompletionClientBase.

Note: enable function_choice_behavior on the PromptExecutionSettings to enable function choice behavior which allows the kernel to utilize plugins and functions registered in the kernel.

Note: This class is experimental and may change in the future.

Initialize a new instance of ChatCompletionAgent.

Inheritance
ChatCompletionAgent

Constructor

ChatCompletionAgent(service_id: str | None = None, kernel: Kernel | None = None, name: str | None = None, id: str | None = None, description: str | None = None, instructions: str | None = None, execution_settings: PromptExecutionSettings | None = None)

Parameters

Name Description
service_id

The service id for the chat completion service. (optional) If not provided, the default service name default will be used.

Default value: None
kernel

The kernel instance. (optional)

Default value: None
name

The name of the agent. (optional)

Default value: None
id

The unique identifier for the agent. (optional) If not provided, a unique GUID will be generated.

Default value: None
description

The description of the agent. (optional)

Default value: None
instructions

The instructions for the agent. (optional)

Default value: None
execution_settings

The execution settings for the agent. (optional)

Default value: None

Methods

invoke

Invoke the chat history handler.

invoke_stream

Invoke the chat history handler in streaming mode.

invoke

Invoke the chat history handler.

async invoke(history: ChatHistory) -> AsyncIterable[ChatMessageContent]

Parameters

Name Description
kernel
Required

The kernel instance.

history
Required

The chat history.

Returns

Type Description

An async iterable of ChatMessageContent.

invoke_stream

Invoke the chat history handler in streaming mode.

async invoke_stream(history: ChatHistory) -> AsyncIterable[StreamingChatMessageContent]

Parameters

Name Description
kernel
Required

The kernel instance.

history
Required

The chat history.

Returns

Type Description

An async generator of StreamingChatMessageContent.

Attributes

model_computed_fields

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'populate_by_name': True, 'validate_assignment': True}

model_fields

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.fields from Pydantic V1.

model_fields: ClassVar[Dict[str, FieldInfo]] = {'description': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'execution_settings': FieldInfo(annotation=Union[PromptExecutionSettings, NoneType], required=False, default=None), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>), 'instructions': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'kernel': FieldInfo(annotation=Kernel, required=False, default_factory=Kernel), 'name': FieldInfo(annotation=str, required=False, default_factory=<lambda>), 'service_id': FieldInfo(annotation=str, required=True)}

description

description: str | None

execution_settings

execution_settings: PromptExecutionSettings | None

id

id: str

instructions

instructions: str | None

is_experimental

is_experimental = True

kernel

kernel: Kernel

name

name: str

service_id

service_id: str