autogen_agentchat.base#

class AndTerminationCondition(*conditions: TerminationCondition)[源代码]#

基类:TerminationCondition, Component[AndTerminationConditionConfig]

component_config_schema#

AndTerminationConditionConfig 的别名

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.base.AndTerminationCondition'#

覆盖组件的provider字符串。这应该用于防止内部模块名称成为模块名称的一部分。

component_type: ClassVar[ComponentType] = 'termination'#

组件的逻辑类型。

async reset() None[源代码]#

重置终止条件。

property terminated: bool#

检查是否已达到终止条件

class ChatAgent(*args, **kwargs)[源代码]#

基类:ABC, TaskRunner, ComponentBase[BaseModel]

聊天代理的协议。

abstract async close() None[源代码]#

释放代理持有的所有资源

component_type: ClassVar[ComponentType] = 'agent'#

组件的逻辑类型。

abstract property description: str#

代理的描述。团队使用该描述来 决定使用哪些代理。该描述应 说明代理的能力以及如何与之交互。

abstract async load_state(state: Mapping[str, Any]) None[源代码]#

从保存的状态恢复代理

abstract property name: str#

代理的名称。团队使用该名称来唯一标识 代理。在团队内它应该是唯一的。

abstract async on_messages(messages: Sequence[BaseChatMessage], cancellation_token: CancellationToken) Response[源代码]#

处理传入消息并返回响应。

abstract on_messages_stream(messages: Sequence[BaseChatMessage], cancellation_token: CancellationToken) AsyncGenerator[BaseAgentEvent | BaseChatMessage | Response, None][源代码]#

处理传入消息并返回内部消息流,最后一项是响应。

abstract async on_pause(cancellation_token: CancellationToken) None[源代码]#

当代理暂停时调用。调用此方法时,代理可能正在 on_messages()on_messages_stream() 中运行。

abstract async on_reset(cancellation_token: CancellationToken) None[源代码]#

将代理重置到初始化状态。

abstract async on_resume(cancellation_token: CancellationToken) None[源代码]#

当代理恢复时调用。调用此方法时,代理可能正在 on_messages()on_messages_stream() 中运行。

abstract property produced_message_types: Sequence[type[BaseChatMessage]]#

代理在 Response.chat_message 字段中生成的消息类型。它们必须是 BaseChatMessage 类型。

abstract async save_state() Mapping[str, Any][源代码]#

保存代理状态以便后续恢复

pydantic model Handoff[源代码]#

基类:BaseModel

交接配置。

Show JSON schema
{
   "title": "Handoff",
   "description": "\u4ea4\u63a5\u914d\u7f6e\u3002",
   "type": "object",
   "properties": {
      "target": {
         "title": "Target",
         "type": "string"
      },
      "description": {
         "default": "",
         "title": "Description",
         "type": "string"
      },
      "name": {
         "default": "",
         "title": "Name",
         "type": "string"
      },
      "message": {
         "default": "",
         "title": "Message",
         "type": "string"
      }
   },
   "required": [
      "target"
   ]
}

Fields:
  • description (str)

  • message (str)

  • name (str)

  • target (str)

Validators:
  • set_defaults » all fields

field description: str = ''#

交接的描述,例如交接发生的条件和目标代理的能力。 如果未提供,则根据目标代理名称生成。

Validated by:
  • set_defaults

field message: str = ''#

发送给目标代理的消息。 默认情况下,这将是交接工具的结果。 如果未提供,将从目标代理的名称生成。

Validated by:
  • set_defaults

field name: str = ''#

此交接配置的名称。如果未提供,将从目标代理的名称生成。

Validated by:
  • set_defaults

field target: str [Required]#

要交接到的目标代理名称。

Validated by:
  • set_defaults

validator set_defaults  »  all fields[源代码]#
property handoff_tool: BaseTool[BaseModel, BaseModel]#

从此交接配置创建交接工具。

class OrTerminationCondition(*conditions: TerminationCondition)[源代码]#

基类:TerminationCondition, Component[OrTerminationConditionConfig]

component_config_schema#

OrTerminationConditionConfig 的别名

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.base.OrTerminationCondition'#

覆盖组件的provider字符串。这应该用于防止内部模块名称成为模块名称的一部分。

component_type: ClassVar[ComponentType] = 'termination'#

组件的逻辑类型。

async reset() None[源代码]#

重置终止条件。

property terminated: bool#

检查是否已达到终止条件

class Response(*, chat_message: BaseChatMessage, inner_messages: Sequence[BaseAgentEvent | BaseChatMessage] | None = None)[源代码]#

基类:object

调用 ChatAgent.on_messages() 方法返回的响应。

chat_message: BaseChatMessage#

由代理生成的聊天消息作为响应。

inner_messages: Sequence[BaseAgentEvent | BaseChatMessage] | None = None#

代理生成的内部消息,可以是 BaseAgentEventBaseChatMessage

pydantic model TaskResult[源代码]#

基类:BaseModel

运行任务的结果。

Show JSON schema
{
   "title": "TaskResult",
   "description": "\u8fd0\u884c\u4efb\u52a1\u7684\u7ed3\u679c\u3002",
   "type": "object",
   "properties": {
      "messages": {
         "items": {
            "anyOf": [
               {
                  "$ref": "#/$defs/BaseAgentEvent"
               },
               {
                  "$ref": "#/$defs/BaseChatMessage"
               }
            ]
         },
         "title": "Messages",
         "type": "array"
      },
      "stop_reason": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Stop Reason"
      }
   },
   "$defs": {
      "BaseAgentEvent": {
         "description": "\u4ee3\u7406\u4e8b\u4ef6\u7684\u57fa\u7840\u7c7b\u3002\n\n.. note::\n\n    \u5982\u679c\u4f60\u60f3\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6d88\u606f\u7c7b\u578b\u7528\u4e8e\u5411\u7528\u6237\u548c\u5e94\u7528\u7a0b\u5e8f\u53d1\u9001\u53ef\u89c2\u5bdf\u4e8b\u4ef6\u4fe1\u53f7\uff0c\n    \u8bf7\u7ee7\u627f\u8fd9\u4e2a\u7c7b\u3002\n\n\u4ee3\u7406\u4e8b\u4ef6\u7528\u4e8e\u5c06\u4ee3\u7406\u548c\u56e2\u961f\u4ea7\u751f\u7684\u52a8\u4f5c\u4e0e\u601d\u8003\u4fe1\u53f7\u53d1\u9001\u7ed9\u7528\u6237\u548c\u5e94\u7528\u7a0b\u5e8f\u3002\n\u5b83\u4eec\u4e0d\u7528\u4e8e\u4ee3\u7406\u95f4\u901a\u4fe1\uff0c\u4e5f\u4e0d\u671f\u671b\u88ab\u5176\u4ed6\u4ee3\u7406\u5904\u7406\u3002\n\n\u5982\u679c\u4f60\u60f3\u63d0\u4f9b\u81ea\u5b9a\u4e49\u7684\u5185\u5bb9\u6e32\u67d3\u65b9\u5f0f\uff0c\u5e94\u8be5\u91cd\u5199 :meth:`to_text` \u65b9\u6cd5\u3002",
         "properties": {
            "source": {
               "title": "Source",
               "type": "string"
            },
            "models_usage": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/RequestUsage"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "metadata": {
               "additionalProperties": {
                  "type": "string"
               },
               "default": {},
               "title": "Metadata",
               "type": "object"
            },
            "created_at": {
               "format": "date-time",
               "title": "Created At",
               "type": "string"
            }
         },
         "required": [
            "source"
         ],
         "title": "BaseAgentEvent",
         "type": "object"
      },
      "BaseChatMessage": {
         "description": "\u804a\u5929\u6d88\u606f\u7684\u62bd\u8c61\u57fa\u7c7b\u3002\n\n.. note::\n\n    \u5982\u9700\u521b\u5efa\u7528\u4e8e\u667a\u80fd\u4f53\u95f4\u901a\u4fe1\u7684\u65b0\u6d88\u606f\u7c7b\u578b\uff0c\u8bf7\u7ee7\u627f\u6b64\u7c7b\uff0c\n    \u6216\u8005\u5f53\u5185\u5bb9\u7c7b\u578b\u662f Pydantic BaseModel \u7684\u5b50\u7c7b\u65f6\uff0c\n    \u76f4\u63a5\u4f7f\u7528 :class:`StructuredMessage`\u3002\n\n\u6b64\u7c7b\u7528\u4e8e\u804a\u5929\u5bf9\u8bdd\u4e2d\u667a\u80fd\u4f53\u4e4b\u95f4\u4f20\u9012\u7684\u6d88\u606f\u3002\n\u667a\u80fd\u4f53\u5e94\u901a\u8fc7\u6a21\u578b\u5904\u7406\u6d88\u606f\u5185\u5bb9\uff0c\n\u5e76\u8fd4\u56de\u53e6\u4e00\u4e2a :class:`BaseChatMessage` \u4f5c\u4e3a\u54cd\u5e94\u3002",
         "properties": {
            "source": {
               "title": "Source",
               "type": "string"
            },
            "models_usage": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/RequestUsage"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null
            },
            "metadata": {
               "additionalProperties": {
                  "type": "string"
               },
               "default": {},
               "title": "Metadata",
               "type": "object"
            },
            "created_at": {
               "format": "date-time",
               "title": "Created At",
               "type": "string"
            }
         },
         "required": [
            "source"
         ],
         "title": "BaseChatMessage",
         "type": "object"
      },
      "RequestUsage": {
         "properties": {
            "prompt_tokens": {
               "title": "Prompt Tokens",
               "type": "integer"
            },
            "completion_tokens": {
               "title": "Completion Tokens",
               "type": "integer"
            }
         },
         "required": [
            "prompt_tokens",
            "completion_tokens"
         ],
         "title": "RequestUsage",
         "type": "object"
      }
   },
   "required": [
      "messages"
   ]
}

Fields:
  • messages (Sequence[autogen_agentchat.messages.BaseAgentEvent | autogen_agentchat.messages.BaseChatMessage])

  • stop_reason (str | None)

field messages: Sequence[BaseAgentEvent | BaseChatMessage] [Required]#

任务产生的消息。

field stop_reason: str | None = None#

任务停止的原因。

class TaskRunner(*args, **kwargs)[源代码]#

基类:Protocol

一个任务运行器。

async run(*, task: str | BaseChatMessage | Sequence[BaseChatMessage] | None = None, cancellation_token: CancellationToken | None = None) TaskResult[源代码]#

运行任务并返回结果。

任务可以是字符串、单条消息或消息序列。

运行器是有状态的,后续调用此方法将从上次调用的中断处继续执行。 如果未指定任务,运行器将继续执行当前任务。

run_stream(*, task: str | BaseChatMessage | Sequence[BaseChatMessage] | None = None, cancellation_token: CancellationToken | None = None) AsyncGenerator[BaseAgentEvent | BaseChatMessage | TaskResult, None][源代码]#

运行任务并生成消息流,最终结果以 TaskResult 作为流中的最后一项。

任务可以是字符串、单条消息或消息序列。

运行器是有状态的,后续调用此方法将从上次调用的中断处继续执行。 如果未指定任务,运行器将继续执行当前任务。

class Team(*args, **kwargs)[源代码]#

基类:ABC, TaskRunner, ComponentBase[BaseModel]

component_type: ClassVar[ComponentType] = 'team'#

组件的逻辑类型。

abstract async load_state(state: Mapping[str, Any]) None[源代码]#

加载团队的状态。

abstract async pause() None[源代码]#

暂停团队及其所有参与者。这在需要暂停 autogen_agentchat.base.TaskRunner.run()autogen_agentchat.base.TaskRunner.run_stream() 方法的并发执行时非常有用, 同时保持它们的运行状态。

abstract async reset() None[源代码]#

重置团队及其所有参与者至初始状态。

abstract async resume() None[源代码]#

在调用 pause() 后,恢复团队及其所有参与者从暂停状态继续运行。

abstract async save_state() Mapping[str, Any][源代码]#

保存团队的当前状态。

exception TerminatedException[源代码]#

基类:BaseException

class TerminationCondition[源代码]#

基类:ABC, ComponentBase[BaseModel]

一种有状态的判断条件,用于确定何时应终止对话。

终止条件是一个可调用对象,它接收自上次调用以来的一系列BaseChatMessage对象, 如果对话应终止则返回StopMessage,否则返回None。 一旦达到终止条件,必须重置后才能再次使用。

终止条件可以通过AND和OR运算符进行组合。

示例:

import asyncio
from autogen_agentchat.conditions import MaxMessageTermination, TextMentionTermination


async def main() -> None:
    # 在10轮对话后或提及"TERMINATE"文本时终止对话
    cond1 = MaxMessageTermination(10) | TextMentionTermination("TERMINATE")

    # 在10轮对话后且提及"TERMINATE"文本时终止对话
    cond2 = MaxMessageTermination(10) & TextMentionTermination("TERMINATE")

    # ...

    # 重置终止条件
    await cond1.reset()
    await cond2.reset()


asyncio.run(main())
component_type: ClassVar[ComponentType] = 'termination'#

组件的逻辑类型。

abstract async reset() None[源代码]#

重置终止条件。

abstract property terminated: bool#

检查是否已达到终止条件