taolib.testing.multi_agent.agents#
多智能体系统 - 智能体模块。
包含智能体基类、主智能体、子智能体和工厂类。
Submodules#
Classes#
智能体基类。 |
|
智能体工厂。 |
|
主智能体。 |
|
子智能体包装器。 |
|
智能体模板。 |
Functions#
|
获取全局智能体工厂。 |
|
设置全局智能体工厂。 |
|
获取所有预设模板。 |
|
根据ID获取模板。 |
Package Contents#
- class taolib.testing.multi_agent.agents.BaseAgent(document: taolib.testing.multi_agent.models.AgentDocument)#
Bases:
abc.ABC智能体基类。
- _document#
- _status#
- _current_task: taolib.testing.multi_agent.models.TaskDocument | None = None#
- _message_queue: list[taolib.testing.multi_agent.models.Message] = []#
- property status: taolib.testing.multi_agent.models.AgentStatus#
获取智能体状态。
- property document: taolib.testing.multi_agent.models.AgentDocument#
获取智能体文档。
- property current_task: taolib.testing.multi_agent.models.TaskDocument | None#
获取当前任务。
- async send_message(message: taolib.testing.multi_agent.models.Message) None#
发送消息。
- 参数:
message -- 要发送的消息
- async receive_message(message: taolib.testing.multi_agent.models.Message) None#
接收消息。
- 参数:
message -- 接收到的消息
- async _on_message_sent(message: taolib.testing.multi_agent.models.Message) None#
消息发送后的回调。
- 参数:
message -- 发送的消息
- abstractmethod _handle_message(message: taolib.testing.multi_agent.models.Message) None#
- Async:
处理接收到的消息。
- 参数:
message -- 接收到的消息
- abstractmethod execute_task(task: taolib.testing.multi_agent.models.TaskDocument) None#
- Async:
执行任务。
- 参数:
task -- 要执行的任务
- async assign_task(task: taolib.testing.multi_agent.models.TaskDocument) None#
分配任务给智能体。
- 参数:
task -- 要分配的任务
- 抛出:
AgentError -- 智能体忙碌
- async _on_task_assigned(task: taolib.testing.multi_agent.models.TaskDocument) None#
任务分配后的回调。
- 参数:
task -- 分配的任务
- async complete_task(success: bool, result: Any | None = None) None#
完成当前任务。
- 参数:
success -- 是否成功
result -- 任务结果
- async _on_task_completed(task: taolib.testing.multi_agent.models.TaskDocument, success: bool, result: Any | None) None#
任务完成后的回调。
- 参数:
task -- 完成的任务
success -- 是否成功
result -- 任务结果
- class taolib.testing.multi_agent.agents.AgentFactory(llm_manager: taolib.testing.multi_agent.llm.LLMManager | None = None)#
智能体工厂。
- _llm_manager = None#
- _templates: Dict[str, taolib.testing.multi_agent.agents.templates.AgentTemplate]#
- _agent_classes: Dict[taolib.testing.multi_agent.models.AgentType, Type[taolib.testing.multi_agent.agents.base.BaseAgent]]#
- register_template(template: taolib.testing.multi_agent.agents.templates.AgentTemplate) None#
注册智能体模板。
- 参数:
template -- 智能体模板
- get_template(template_id: str) taolib.testing.multi_agent.agents.templates.AgentTemplate | None#
获取智能体模板。
- 参数:
template_id -- 模板ID
- 返回:
模板,如果不存在则返回None
- 返回类型:
Optional[AgentTemplate]
- get_all_templates() Dict[str, taolib.testing.multi_agent.agents.templates.AgentTemplate]#
获取所有模板。
- 返回:
所有模板的字典
- 返回类型:
Dict[str, AgentTemplate]
- async create_agent(agent_create: taolib.testing.multi_agent.models.AgentCreate, agent_id: str | None = None) taolib.testing.multi_agent.agents.base.BaseAgent#
创建智能体。
- 参数:
agent_create -- 智能体创建配置
agent_id -- 智能体ID,如果为None则自动生成
- 返回:
创建的智能体
- 返回类型:
- 抛出:
AgentError -- 无法创建智能体
- async create_agent_from_template(template_id: str, agent_name: str | None = None, agent_id: str | None = None) taolib.testing.multi_agent.agents.base.BaseAgent#
从模板创建智能体。
- 参数:
template_id -- 模板ID
agent_name -- 智能体名称,如果为None则使用模板名称
agent_id -- 智能体ID,如果为None则自动生成
- 返回:
创建的智能体
- 返回类型:
- 抛出:
AgentError -- 模板不存在
- taolib.testing.multi_agent.agents.get_agent_factory() AgentFactory#
获取全局智能体工厂。
- 返回:
智能体工厂
- 返回类型:
- taolib.testing.multi_agent.agents.set_agent_factory(factory: AgentFactory) None#
设置全局智能体工厂。
- 参数:
factory -- 智能体工厂
- class taolib.testing.multi_agent.agents.MainAgent(document: taolib.testing.multi_agent.models.AgentDocument, llm_manager: taolib.testing.multi_agent.llm.LLMManager | None = None)#
Bases:
taolib.testing.multi_agent.agents.base.BaseAgent主智能体。
- _llm_manager = None#
- _sub_agents: Dict[str, taolib.testing.multi_agent.agents.base.BaseAgent]#
- _task_queue: List[taolib.testing.multi_agent.models.TaskDocument] = []#
- _running_tasks: Dict[str, asyncio.Task]#
- _is_running = False#
- _main_loop_task: asyncio.Task | None = None#
- async _handle_message(message: taolib.testing.multi_agent.models.Message) None#
处理接收到的消息。
- 参数:
message -- 接收到的消息
- async execute_task(task: taolib.testing.multi_agent.models.TaskDocument) None#
执行任务。
- 参数:
task -- 要执行的任务
- async _analyze_task(task: taolib.testing.multi_agent.models.TaskDocument) Dict[str, Any]#
分析任务。
- 参数:
task -- 任务
- 返回:
分析结果
- 返回类型:
Dict[str, Any]
- async _decompose_task(task: taolib.testing.multi_agent.models.TaskDocument, analysis: Dict[str, Any]) List[taolib.testing.multi_agent.models.SubTask]#
分解任务为子任务。
- 参数:
task -- 任务
analysis -- 任务分析结果
- 返回:
子任务列表
- 返回类型:
List[SubTask]
- async _execute_subtasks(subtasks: List[taolib.testing.multi_agent.models.SubTask]) List[taolib.testing.multi_agent.models.TaskResult]#
执行子任务。
- 参数:
subtasks -- 子任务列表
- 返回:
子任务结果列表
- 返回类型:
List[TaskResult]
- async _select_agent_for_subtask(subtask: taolib.testing.multi_agent.models.SubTask) taolib.testing.multi_agent.agents.base.BaseAgent | None#
为子任务选择合适的智能体。
- 参数:
subtask -- 子任务
- 返回:
选中的智能体,如果没有则返回None
- 返回类型:
Optional[BaseAgent]
- async _aggregate_results(task: taolib.testing.multi_agent.models.TaskDocument, subtask_results: List[taolib.testing.multi_agent.models.TaskResult]) taolib.testing.multi_agent.models.TaskResult#
聚合子任务结果。
- 参数:
task -- 主任务
subtask_results -- 子任务结果列表
- 返回:
聚合后的结果
- 返回类型:
- async submit_task(task: taolib.testing.multi_agent.models.TaskDocument) str#
提交任务。
- 参数:
task -- 任务
- 返回:
任务ID
- 返回类型:
- class taolib.testing.multi_agent.agents.SubAgentWrapper(document: taolib.testing.multi_agent.models.AgentDocument, llm_manager: taolib.testing.multi_agent.llm.LLMManager)#
Bases:
taolib.testing.multi_agent.agents.base.BaseAgent子智能体包装器。
- _llm_manager#
- async _handle_message(message: taolib.testing.multi_agent.models.Message) None#
处理接收到的消息。
- 参数:
message -- 接收到的消息
- async execute_task(task: taolib.testing.multi_agent.models.TaskDocument) None#
执行任务。
- 参数:
task -- 要执行的任务
- class taolib.testing.multi_agent.agents.AgentTemplate#
Bases:
pydantic.BaseModel智能体模板。
- capabilities: list[AgentCapability]#
- config: AgentConfig#
- taolib.testing.multi_agent.agents.get_all_templates() list[taolib.testing.multi_agent.models.AgentTemplate]#
获取所有预设模板。
- taolib.testing.multi_agent.agents.get_template(template_id: str) taolib.testing.multi_agent.models.AgentTemplate | None#
根据ID获取模板。
- 参数:
template_id -- 模板ID
- 返回:
模板实例,如果不存在则返回None
- 返回类型:
AgentTemplate | None