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'#
组件的逻辑类型。
- class ChatAgent(*args, **kwargs)[源代码]#
基类:
ABC
,TaskRunner
,ComponentBase
[BaseModel
]聊天代理的协议。
- component_type: ClassVar[ComponentType] = 'agent'#
组件的逻辑类型。
- 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
类型。
- 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
- 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'#
组件的逻辑类型。
- 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#
代理生成的内部消息,可以是
BaseAgentEvent
或BaseChatMessage
。
- 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]#
任务产生的消息。
- 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 pause() None [源代码]#
暂停团队及其所有参与者。这在需要暂停
autogen_agentchat.base.TaskRunner.run()
或autogen_agentchat.base.TaskRunner.run_stream()
方法的并发执行时非常有用, 同时保持它们的运行状态。
- 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'#
组件的逻辑类型。