camel.societies.workforce 包

本页内容

camel.societies.workforce 包#

子模块#

camel.societies.workforce.base 模块#

class camel.societies.workforce.base.BaseNode(description: str)[来源]#

基础类: ABC

工作流中所有节点的基类。

Parameters:

描述 (str) – 节点的描述信息。

reset(*args: Any, **kwargs: Any) Any[来源]#

将节点重置为其初始状态。

abstract set_channel(channel: TaskChannel)[来源]#

设置节点的通道。

abstract async start()[来源]#

启动节点。

abstract stop()[来源]#

停止节点。

camel.societies.workforce.prompts 模块#

camel.societies.workforce.role_playing_worker 模块#

class camel.societies.workforce.role_playing_worker.RolePlayingWorker(description: str, assistant_role_name: str, user_role_name: str, assistant_agent_kwargs: Dict | None = None, user_agent_kwargs: Dict | None = None, chat_turn_limit: int = 3)[来源]#

基类:Worker

一个包含角色扮演的工作节点。

Parameters:
  • description (str) – 节点的描述。

  • assistant_role_name (str) - 助手代理的角色名称。

  • user_role_name (str) - 用户代理的角色名称。

  • assistant_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中助手代理的关键字参数,例如模型名称等。默认为None。

  • user_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中用户代理的关键字参数,例如模型名称等。默认为None。

  • chat_turn_limit (int, optional) - 角色扮演中的最大对话轮次。默认为3。

camel.societies.workforce.single_agent_worker 模块#

class camel.societies.workforce.single_agent_worker.SingleAgentWorker(description: str, worker: ChatAgent)[来源]#

基类:Worker

一个由单个代理组成的工作节点。

Parameters:
  • description (str) – 节点的描述。

  • worker (ChatAgent) – 节点的Worker。一个单独的agent。

reset() Any[来源]#

将worker重置到初始状态。

camel.societies.workforce.task_channel 模块#

class camel.societies.workforce.task_channel.Packet(task: 任务, publisher_id: str, assignee_id: str | None = None, status: PacketStatus = PacketStatus.SENT)[来源]#

基类:object

通道中的基本元素。一个任务被封装在数据包中。数据包将包含任务本身,以及任务的分配者和任务状态。

Parameters:
  • task (Task) – 封装在数据包内的任务。

  • publisher_id (str) – 发布任务的劳动力ID。

  • assignee_id (str) - 分配给该任务的工作力ID。默认为None,表示该任务将作为依赖项发布在频道中。

task#

封装在数据包中的任务。

Type:

Task

publisher_id#

发布任务的劳动力ID。

Type:

字符串

assignee_id#

分配给任务的劳动力ID。如果任务是依赖项,则为None。默认为None。

Type:

可选[str], 可选

status#

任务的状态。

Type:

PacketStatus

class camel.societies.workforce.task_channel.PacketStatus(value)[来源]#

基础类: Enum

数据包的状态。数据包可能处于以下状态之一:

  • SENT: 数据包已发送给工作节点。

  • RETURNED: 数据包已被工作节点返回,意味着其中任务的状态已被更新。

  • ARCHIVED: 数据包已被归档,意味着其中的任务内容将不再更改。该任务被视为依赖项。

ARCHIVED = 'ARCHIVED'#
RETURNED = 'RETURNED'#
SENT = 'SENT'#
class camel.societies.workforce.task_channel.TaskChannel[来源]#

基类:object

Workforce内部用于管理任务的类。

async archive_task(task_id: str) None[来源]#

在频道中归档任务,使其成为依赖项。

async get_assigned_task_by_assignee(assignee_id: str) 任务[来源]#

从已分配给指定人员的渠道获取任务。

async get_channel_debug_info() str[来源]#

获取通道的调试信息。

async get_dependency_ids() List[str][来源]#

获取该频道中所有依赖项的ID。

async get_returned_task_by_publisher(publisher_id: str) 任务[来源]#

从发布者返回的通道中获取一个任务。

async get_task_by_id(task_id: str) 任务[来源]#

通过ID从频道获取任务。

async post_dependency(dependency: 任务, publisher_id: str) None[来源]#

向频道发布一个依赖项。依赖项是一个被归档的任务,将被其他任务引用。

async post_task(task: 任务, publisher_id: str, assignee_id: str) None[来源]#

向指定发布者和分配者的频道发送任务,同时包含该任务的依赖关系。

async remove_task(task_id: str) None[来源]#

从频道中移除一个任务。

async return_task(task_id: str) None[来源]#

将任务返回给发送方,表示该任务已被工作者处理。

camel.societies.workforce.utils 模块#

class camel.societies.workforce.utils.TaskAssignResult(*, assignee_id: str)[来源]#

基类:BaseModel

任务分配的结果。

assignee_id: str#
model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

class camel.societies.workforce.utils.TaskResult(*, content: str, failed: bool)[来源]#

基类:BaseModel

任务的结果。

content: str#
failed: bool#
model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]规范的字典。

class camel.societies.workforce.utils.WorkerConf(*, role: str, sys_msg: str, description: str)[来源]#

基类: BaseModel

工作线程的配置。

description: str#
model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]规范的字典。

role: str#
sys_msg: str#
camel.societies.workforce.utils.check_if_running(running: bool) Callable[来源]#

检查workforce是否(未)在运行,指定布尔值。 如果workforce未处于预期状态,则引发异常。

Raises:

运行时错误 - 如果工作线程未处于预期状态。

camel.societies.workforce.worker 模块#

class camel.societies.workforce.worker.Worker(description: str)[来源]#

基类: BaseNode, ABC

一个处理任务的工作节点。它是劳动力系统中任务处理的基本单元。

Parameters:

描述 (str) – 节点的描述。

set_channel(channel: TaskChannel)[来源]#

设置节点的通道。

start()[来源]#

启动工作进程。

stop()[来源]#

停止工作进程。

camel.societies.workforce.workforce 模块#

class camel.societies.workforce.workforce.Workforce(description: str, children: List[BaseNode] | None = None, coordinator_agent_kwargs: Dict | None = None, task_agent_kwargs: Dict | None = None, new_worker_agent_kwargs: Dict | None = None)[来源]#

基类:BaseNode

一个由多个工作节点(代理)协同工作的系统,用于解决任务。它可以将任务分配给工作节点,并采取诸如创建新工作节点、分解任务等策略来处理任务失败的情况。

Parameters:
  • description (str) – 节点的描述。

  • children (Optional[List[BaseNode]], optional) – 该节点下的子节点列表。每个子节点可以是工作节点或另一个劳动力节点。(默认: None)

  • coordinator_agent_kwargs (Optional[Dict], optional) – 协调器代理的关键字参数,例如 model, api_key, tools 等。如果未提供,将使用默认模型设置。(默认: None)

  • task_agent_kwargs (Optional[Dict], optional) – 任务代理的关键字参数,例如 model, api_key, tools 等。 如果未提供,将使用默认模型设置。 (默认: None)

  • new_worker_agent_kwargs (Optional[Dict]) - 用于运行时创建的worker agent的默认关键字参数,该agent用于处理失败任务,例如modelapi_keytools等。如果未提供,将使用默认模型设置。(默认值: None)

add_role_playing_worker(description: str, assistant_role_name: str, user_role_name: str, assistant_agent_kwargs: Dict | None = None, user_agent_kwargs: Dict | None = None, chat_turn_limit: int = 3) 劳动力[来源]#

向使用RolePlaying系统的工作集群添加一个工作节点。

Parameters:
  • description (str) – 节点的描述。

  • assistant_role_name (str) - 助手代理的角色名称。

  • user_role_name (str) - 用户代理的角色名称。

  • assistant_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中助手代理的关键字参数,例如模型名称等。默认为None

  • user_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中用户代理的关键字参数,例如模型名称等。默认为 None

  • chat_turn_limit (int, optional) – 角色扮演中的最大聊天轮次数。默认为3。

Returns:

工作节点本身。

Return type:

Workforce

add_single_agent_worker(description: str, worker: ChatAgent) 劳动力[来源]#

向使用单个代理的劳动力池中添加一个工作节点。

Parameters:
  • description (str) – 工作节点的描述。

  • worker (ChatAgent) – 要添加的代理。

Returns:

工作节点本身。

Return type:

Workforce

add_workforce(workforce: Workforce) 劳动力[来源]#

向劳动力池中添加一个劳动力节点。

Parameters:

workforce (Workforce) – 要添加的劳动力节点。

Returns:

工作节点本身。

Return type:

Workforce

process_task(task: 任务) 任务[来源]#

这是工作人员处理任务的主要入口点。它将启动工作人员及其所有子节点,处理提供的任务并返回更新后的任务。

Parameters:

任务 (Task) – 需要处理的任务。

Returns:

更新后的任务。

Return type:

Task

reset() None[来源]#

重置workforce及其所有子节点。只能在workforce未运行时调用。

set_channel(channel: TaskChannel) None[来源]#

为该节点及其所有子节点设置通道。

start() None[来源]#

启动自身及其下的所有子节点。

stop() None[来源]#

停止其下的所有子节点。节点本身将由其父节点停止。

模块内容#

class camel.societies.workforce.RolePlayingWorker(description: str, assistant_role_name: str, user_role_name: str, assistant_agent_kwargs: Dict | None = None, user_agent_kwargs: Dict | None = None, chat_turn_limit: int = 3)[来源]#

基类:Worker

一个包含角色扮演的工作节点。

Parameters:
  • description (str) – 节点的描述。

  • assistant_role_name (str) - 助手代理的角色名称。

  • user_role_name (str) - 用户代理的角色名称。

  • assistant_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中助手代理的关键字参数,例如模型名称等。默认为None。

  • user_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中用户代理的关键字参数,例如模型名称等。默认为None。

  • chat_turn_limit (int, optional) - 角色扮演中的最大对话轮次。默认为3。

class camel.societies.workforce.SingleAgentWorker(description: str, worker: ChatAgent)[来源]#

基类:Worker

一个由单个代理组成的工作节点。

Parameters:
  • description (str) – 节点的描述。

  • worker (ChatAgent) – 节点的Worker。一个单独的agent。

reset() Any[来源]#

将worker重置到初始状态。

class camel.societies.workforce.Workforce(description: str, children: List[BaseNode] | None = None, coordinator_agent_kwargs: Dict | None = None, task_agent_kwargs: Dict | None = None, new_worker_agent_kwargs: Dict | None = None)[来源]#

基类:BaseNode

一个由多个工作节点(代理)协同工作的系统,用于解决任务。它可以将任务分配给工作节点,并采取诸如创建新工作节点、分解任务等策略来处理任务失败的情况。

Parameters:
  • description (str) – 节点的描述。

  • children (Optional[List[BaseNode]], optional) – 该节点下的子节点列表。每个子节点可以是工作节点或另一个劳动力节点。(默认: None)

  • coordinator_agent_kwargs (Optional[Dict], optional) - 用于协调器代理的关键字参数,例如 modelapi_keytools 等。如果未提供,将使用默认模型设置。(默认值: None)

  • task_agent_kwargs (Optional[Dict], optional) – 任务代理的关键字参数,例如 model, api_key, tools 等。 如果未提供,将使用默认模型设置。 (默认: None)

  • new_worker_agent_kwargs (Optional[Dict]) – 用于运行时创建的worker agent的默认关键字参数,该agent用于处理失败任务,例如model, api_key, tools等。如果未提供,将使用默认模型设置。(默认: None)

add_role_playing_worker(description: str, assistant_role_name: str, user_role_name: str, assistant_agent_kwargs: Dict | None = None, user_agent_kwargs: Dict | None = None, chat_turn_limit: int = 3) 劳动力[来源]#

向使用RolePlaying系统的工作集群添加一个工作节点。

Parameters:
  • description (str) – 节点的描述。

  • assistant_role_name (str) - 助手代理的角色名称。

  • user_role_name (str) - 用户代理的角色名称。

  • assistant_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中助手代理的关键字参数,例如模型名称等。默认为None

  • user_agent_kwargs (Optional[Dict], optional) – 用于初始化角色扮演中用户代理的关键字参数,例如模型名称等。默认为None

  • chat_turn_limit (int, optional) – 角色扮演中的最大聊天轮次数。默认为3。

Returns:

工作节点本身。

Return type:

Workforce

add_single_agent_worker(description: str, worker: ChatAgent) 劳动力[来源]#

向使用单个代理的劳动力池中添加一个工作节点。

Parameters:
  • description (str) – 工作节点的描述。

  • worker (ChatAgent) – 要添加的代理。

Returns:

工作节点本身。

Return type:

Workforce

add_workforce(workforce: 劳动力) 劳动力[来源]#

向劳动力池中添加一个劳动力节点。

Parameters:

workforce (Workforce) – 要添加的劳动力节点。

Returns:

工作节点本身。

Return type:

Workforce

process_task(task: 任务) 任务[来源]#

这是工作人员处理任务的主要入口点。它将启动工作人员及其所有子节点,处理提供的任务并返回更新后的任务。

Parameters:

任务 (Task) – 需要处理的任务。

Returns:

更新后的任务。

Return type:

Task

reset() None[来源]#

重置workforce及其所有子节点。只能在workforce未运行时调用。

set_channel(channel: TaskChannel) None[来源]#

为该节点及其所有子节点设置通道。

start() None[来源]#

启动自身及其下的所有子节点。

stop() None[来源]#

停止其下的所有子节点。节点本身将被其父节点停止。