camel.societies 包#

子模块#

camel.societies.babyagi_playing 模块#

class camel.societies.babyagi_playing.BabyAGI(assistant_role_name: str, user_role_name: str, task_prompt: str = '', task_type: 任务类型 = TaskType.AI_SOCIETY, max_task_history: int = 10, assistant_agent_kwargs: Dict | None = None, task_specify_agent_kwargs: Dict | None = None, task_creation_agent_kwargs: Dict | None = None, task_prioritization_agent_kwargs: Dict | None = None, sys_msg_generator_kwargs: Dict | None = None, extend_task_specify_meta_dict: Dict | None = None, output_language: str | None = None, message_window_size: int | None = None)[来源]#

基类:object

改编自“任务驱动自主代理”的BabyAGI智能体。

Parameters:
  • assistant_role_name (str) - 助手扮演的角色的名称。

  • user_role_name (str) - 用户所扮演角色的名称。

  • task_prompt (str, optional) – 要执行的任务提示。 (默认值: "")

  • task_type (TaskType, optional) – 要执行的任务类型。 (默认: TaskType.AI_SOCIETY)

  • max_task_history (int) – 任务代理中包含的先前任务信息的最大数量 (默认值: :obj:10)

  • assistant_agent_kwargs (Dict, optional) – 传递给助手代理的额外参数。(默认: None)

  • task_specify_agent_kwargs (Dict, optional) – 传递给任务指定代理的额外参数。(默认: None)

  • task_creation_agent_kwargs (Dict, optional) – 传递给任务创建代理的额外参数。(默认: None)

  • task_prioritization_agent_kwargs (Dict, optional) – 传递给任务优先级代理的额外参数。(默认: None)

  • sys_msg_generator_kwargs (Dict, optional) – 传递给系统消息生成器的额外参数。(默认: None)

  • extend_task_specify_meta_dict (Dict, optional) – 用于扩展任务指定元数据的字典。(默认: None)

  • output_language (str, optional) – 代理输出的语言。(默认: None)

  • message_window_size (int, optional) – 上下文窗口中包含的先前消息的最大数量。如果为None,则不执行窗口化操作。(默认值: None)

init_agents(init_assistant_sys_msg: BaseMessage, assistant_agent_kwargs: Dict | None, task_creation_agent_kwargs: Dict | None, task_prioritization_agent_kwargs: Dict | None, output_language: str | None, message_window_size: int | None = None)[来源]#

使用系统消息初始化助手和用户代理。

Parameters:
  • init_assistant_sys_msg (BaseMessage) – 助手代理的初始系统消息。

  • assistant_agent_kwargs (Dict, optional) – 传递给助手代理的额外参数。

  • task_creation_agent_kwargs (Dict, optional) – 传递给任务创建代理的额外参数。

  • task_prioritization_agent_kwargs (Dict, optional) – 传递给任务优先级代理的额外参数。

  • output_language (str, optional) - 代理输出的语言。

  • message_window_size (int, optional) – 上下文窗口中包含的最大历史消息数量。如果为None,则不执行窗口化操作。(默认值: None)

init_specified_task_prompt(assistant_role_name: str, user_role_name: str, task_specify_agent_kwargs: Dict | None, extend_task_specify_meta_dict: Dict | None, output_language: str | None)[来源]#

使用任务指定代理生成特定任务提示。 生成的特定任务提示将用于替换原始 任务提示。如果没有任务指定代理,则不会 生成特定任务提示。

Parameters:
  • assistant_role_name (str) - 助手扮演的角色的名称。

  • user_role_name (str) - 用户所扮演角色的名称。

  • task_specify_agent_kwargs (Dict, optional) – 传递给任务指定代理的额外参数。

  • extend_task_specify_meta_dict (Dict, optional) – 一个用于扩展任务指定元数据字典的字典。

  • output_language (str, optional) – 代理输出的语言。

step() ChatAgentResponse[来源]#

BabyAGI代理会从任务列表中提取第一个任务, 根据上下文完成任务,然后创建新任务并 根据目标和前一个任务的结果重新确定任务列表的优先级。它返回助手消息。

Returns:

它包含生成的助手消息、 助手代理是否终止了对话、 以及任何额外的助手信息。

Return type:

ChatAgentResponse

camel.societies.role_playing 模块#

class camel.societies.role_playing.RolePlaying(assistant_role_name: str, user_role_name: str, *, critic_role_name: str = 'critic', task_prompt: str = '', with_task_specify: bool = True, with_task_planner: bool = False, with_critic_in_the_loop: bool = False, critic_criteria: str | None = None, model: BaseModelBackend | None = None, task_type: 任务类型 = TaskType.AI_SOCIETY, assistant_agent_kwargs: Dict | None = None, user_agent_kwargs: Dict | None = None, task_specify_agent_kwargs: Dict | None = None, task_planner_agent_kwargs: Dict | None = None, critic_kwargs: Dict | None = None, sys_msg_generator_kwargs: Dict | None = None, extend_sys_msg_meta_dicts: List[Dict] | None = None, extend_task_specify_meta_dict: Dict | None = None, output_language: str | None = None)[来源]#

基类:object

两个代理之间的角色扮演。

Parameters:
  • assistant_role_name (str) - 助手扮演的角色的名称。

  • user_role_name (str) - 用户所扮演角色的名称。

  • critic_role_name (str, optional) – 评论者所扮演角色的名称。角色名称为"human"时将评论者设为Human代理,否则将创建CriticAgent。(默认值: "critic")

  • task_prompt (str, optional) – 要执行的任务提示。 (默认值: "")

  • with_task_specify (bool, optional) – 是否使用任务指定代理。(默认: True)

  • with_task_planner (bool, optional) – 是否使用任务规划器代理。(默认: False)

  • with_critic_in_the_loop (bool, optional) – 是否在循环中包含一个评论者。(默认: False)

  • critic_criteria (str, optional) – 评论代理的评判标准。 如果未指定,则将标准设置为提高任务性能。

  • model (BaseModelBackend, optional) – 用于生成响应的模型后端。如果指定,它将覆盖所有代理中的模型,除非在特定代理的kwargs中另有指定。(默认: OpenAIModel 使用 GPT_4O_MINI)

  • task_type (TaskType, optional) – 要执行的任务类型。 (默认: TaskType.AI_SOCIETY)

  • assistant_agent_kwargs (Dict, optional) – 传递给助手代理的额外参数。(默认: None)

  • user_agent_kwargs (Dict, optional) – 传递给用户代理的额外参数。(默认: None)

  • task_specify_agent_kwargs (Dict, optional) – 传递给任务指定代理的额外参数。(默认: None)

  • task_planner_agent_kwargs (Dict, optional) – 传递给任务规划代理的额外参数。(默认: None)

  • critic_kwargs (Dict, optional) – 传递给critic的额外参数。(默认: None)

  • sys_msg_generator_kwargs (Dict, optional) – 传递给系统消息生成器的额外参数。(默认: None)

  • extend_sys_msg_meta_dicts (List[Dict], optional) – 用于扩展系统消息元数据字典的字典列表。(默认值: None)

  • extend_task_specify_meta_dict (Dict, optional) – 用于扩展任务指定元数据的字典。(默认: None)

  • output_language (str, optional) – 代理输出的语言。(默认: None)

async ainit_chat(init_msg_content: str | None = None) BaseMessage[来源]#

通过重置助手和用户代理来异步初始化聊天。返回角色扮演会话的初始消息。

Parameters:

init_msg_content (str, optional) – 用户指定的初始消息。 将作为初始消息发送到角色扮演会话中。(默认: None)

Returns:

一个单独的BaseMessage代表初始

消息。

Return type:

BaseMessage

async astep(assistant_msg: BaseMessage) Tuple[ChatAgentResponse, ChatAgentResponse][来源]#

通过从助手获取消息、使用用户代理处理该消息,然后使用助手代理处理结果消息,异步推进对话。返回一个元组,包含结果助手消息、助手代理是否终止对话以及任何额外的助手信息,以及另一个元组,包含结果用户消息、用户代理是否终止对话以及任何额外的用户信息。

Parameters:

assistant_msg – 一个BaseMessage,表示来自助手的消息。

Returns:

一个包含两个元素的元组

ChatAgentResponse:第一个结构体包含生成的助手消息、助手代理是否终止了对话以及任何额外的助手信息;第二个结构体包含生成的用户消息、用户代理是否终止了对话以及任何额外的用户信息。

Return type:

元组[ChatAgentResponse, ChatAgentResponse]

init_chat(init_msg_content: str | None = None) BaseMessage[来源]#

通过重置助手和用户代理来初始化聊天。返回角色扮演会话的初始消息。

Parameters:

init_msg_content (str, optional) – 用户指定的初始消息。 将作为初始消息发送到角色扮演会话中。(默认: None)

Returns:

一个单独的BaseMessage代表初始

消息。

Return type:

BaseMessage

step(assistant_msg: BaseMessage) Tuple[ChatAgentResponse, ChatAgentResponse][来源]#

通过从助手获取消息推进对话,使用用户代理处理该消息,然后使用助手代理处理结果消息。返回一个元组,包含结果助手消息、助手代理是否终止对话以及任何额外的助手信息,以及另一个元组,包含结果用户消息、用户代理是否终止对话以及任何额外的用户信息。

Parameters:

assistant_msg – 一个BaseMessage,表示来自助手的消息。

Returns:

一个包含两个元素的元组

ChatAgentResponse:第一个结构体包含生成的助手消息、助手代理是否终止对话以及任何额外的助手信息;第二个结构体包含生成的用户消息、用户代理是否终止对话以及任何额外的用户信息。

Return type:

元组[ChatAgentResponse, ChatAgentResponse]

子包#

模块内容#

class camel.societies.BabyAGI(assistant_role_name: str, user_role_name: str, task_prompt: str = '', task_type: 任务类型 = TaskType.AI_SOCIETY, max_task_history: int = 10, assistant_agent_kwargs: Dict | None = None, task_specify_agent_kwargs: Dict | None = None, task_creation_agent_kwargs: Dict | None = None, task_prioritization_agent_kwargs: Dict | None = None, sys_msg_generator_kwargs: Dict | None = None, extend_task_specify_meta_dict: Dict | None = None, output_language: str | None = None, message_window_size: int | None = None)[来源]#

基类:object

改编自“任务驱动自主代理”的BabyAGI智能体。

Parameters:
  • assistant_role_name (str) - 助手扮演的角色的名称。

  • user_role_name (str) - 用户所扮演角色的名称。

  • task_prompt (str, optional) – 要执行的任务提示。 (默认值: "")

  • task_type (TaskType, optional) – 要执行的任务类型。 (默认: TaskType.AI_SOCIETY)

  • max_task_history (int) – 任务代理中包含的先前任务信息的最大数量 (默认值: :obj:10)

  • assistant_agent_kwargs (Dict, optional) – 传递给助手代理的额外参数。(默认: None)

  • task_specify_agent_kwargs (Dict, optional) – 传递给任务指定代理的额外参数。(默认: None)

  • task_creation_agent_kwargs (Dict, optional) – 传递给任务创建代理的额外参数。(默认: None)

  • task_prioritization_agent_kwargs (Dict, optional) – 传递给任务优先级代理的额外参数。(默认: None)

  • sys_msg_generator_kwargs (Dict, optional) – 传递给系统消息生成器的额外参数。(默认: None)

  • extend_task_specify_meta_dict (Dict, optional) – 用于扩展任务指定元数据的字典。(默认: None)

  • output_language (str, optional) – 代理输出的语言。(默认: None)

  • message_window_size (int, optional) – 上下文窗口中包含的先前消息的最大数量。如果为None,则不执行窗口化操作。(默认值: None)

init_agents(init_assistant_sys_msg: BaseMessage, assistant_agent_kwargs: Dict | None, task_creation_agent_kwargs: Dict | None, task_prioritization_agent_kwargs: Dict | None, output_language: str | None, message_window_size: int | None = None)[来源]#

使用系统消息初始化助手和用户代理。

Parameters:
  • init_assistant_sys_msg (BaseMessage) – 助手代理的初始系统消息。

  • assistant_agent_kwargs (Dict, optional) – 传递给助手代理的额外参数。

  • task_creation_agent_kwargs (Dict, optional) – 传递给任务创建代理的额外参数。

  • task_prioritization_agent_kwargs (Dict, optional) – 传递给任务优先级代理的额外参数。

  • output_language (str, optional) – 代理输出的语言。

  • message_window_size (int, optional) – 上下文窗口中包含的最大历史消息数量。如果为None,则不执行窗口化操作。(默认值: None)

init_specified_task_prompt(assistant_role_name: str, user_role_name: str, task_specify_agent_kwargs: Dict | None, extend_task_specify_meta_dict: Dict | None, output_language: str | None)[来源]#

使用任务指定代理生成特定任务提示。 生成的特定任务提示将用于替换原始 任务提示。如果没有任务指定代理,则不会 生成特定任务提示。

Parameters:
  • assistant_role_name (str) - 助手扮演的角色的名称。

  • user_role_name (str) - 用户所扮演角色的名称。

  • task_specify_agent_kwargs (Dict, optional) – 传递给任务指定代理的额外参数。

  • extend_task_specify_meta_dict (Dict, optional) – 一个用于扩展任务指定元数据字典的字典。

  • output_language (str, optional) – 代理输出的语言。

step() ChatAgentResponse[来源]#

BabyAGI代理会从任务列表中提取第一个任务, 根据上下文完成任务,然后创建新任务并 根据目标和前一个任务的结果重新确定任务列表的优先级。它返回助手消息。

Returns:

它包含生成的助手消息、 助手代理是否终止了对话、 以及任何额外的助手信息。

Return type:

ChatAgentResponse

class camel.societies.RolePlaying(assistant_role_name: str, user_role_name: str, *, critic_role_name: str = 'critic', task_prompt: str = '', with_task_specify: bool = True, with_task_planner: bool = False, with_critic_in_the_loop: bool = False, critic_criteria: str | None = None, model: BaseModelBackend | None = None, task_type: 任务类型 = TaskType.AI_SOCIETY, assistant_agent_kwargs: Dict | None = None, user_agent_kwargs: Dict | None = None, task_specify_agent_kwargs: Dict | None = None, task_planner_agent_kwargs: Dict | None = None, critic_kwargs: Dict | None = None, sys_msg_generator_kwargs: Dict | None = None, extend_sys_msg_meta_dicts: List[Dict] | None = None, extend_task_specify_meta_dict: Dict | None = None, output_language: str | None = None)[来源]#

基类:object

两个代理之间的角色扮演。

Parameters:
  • assistant_role_name (str) - 助手扮演的角色的名称。

  • user_role_name (str) - 用户所扮演角色的名称。

  • critic_role_name (str, optional) – 评论者所扮演角色的名称。角色名称为"human"时将评论者设为Human代理,否则将创建CriticAgent。(默认值: "critic")

  • task_prompt (str, optional) – 要执行的任务提示。 (默认值: "")

  • with_task_specify (bool, optional) – 是否使用任务指定代理。(默认: True)

  • with_task_planner (bool, optional) – 是否使用任务规划器代理。(默认: False)

  • with_critic_in_the_loop (bool, optional) – 是否在循环中包含一个评论者。(默认: False)

  • critic_criteria (str, optional) – 评论代理的评判标准。 如果未指定,则将标准设置为提高任务性能。

  • model (BaseModelBackend, optional) – 用于生成响应的模型后端。如果指定,它将覆盖所有代理中的模型,除非在特定代理的kwargs中另有指定。(默认: OpenAIModel 使用 GPT_4O_MINI)

  • task_type (TaskType, optional) – 要执行的任务类型。 (默认: TaskType.AI_SOCIETY)

  • assistant_agent_kwargs (Dict, optional) – 传递给助手代理的额外参数。(默认: None)

  • user_agent_kwargs (Dict, optional) – 传递给用户代理的额外参数。(默认: None)

  • task_specify_agent_kwargs (Dict, optional) – 传递给任务指定代理的额外参数。(默认: None)

  • task_planner_agent_kwargs (Dict, optional) – 传递给任务规划代理的额外参数。(默认: None)

  • critic_kwargs (Dict, optional) – 传递给critic的额外参数。(默认: None)

  • sys_msg_generator_kwargs (Dict, optional) – 传递给系统消息生成器的额外参数。(默认: None)

  • extend_sys_msg_meta_dicts (List[Dict], optional) – 用于扩展系统消息元数据字典的字典列表。(默认值: None)

  • extend_task_specify_meta_dict (Dict, optional) – 用于扩展任务指定元数据的字典。(默认: None)

  • output_language (str, optional) – 代理输出的语言。(默认: None)

async ainit_chat(init_msg_content: str | None = None) BaseMessage[来源]#

通过重置助手和用户代理来异步初始化聊天。返回角色扮演会话的初始消息。

Parameters:

init_msg_content (str, optional) – 用户指定的初始消息。 将作为初始消息发送到角色扮演会话中。(默认: None)

Returns:

一个单独的BaseMessage代表初始

消息。

Return type:

BaseMessage

async astep(assistant_msg: BaseMessage) Tuple[ChatAgentResponse, ChatAgentResponse][来源]#

通过从助手获取消息、使用用户代理处理该消息,然后使用助手代理处理结果消息,异步推进对话。返回一个元组,包含结果助手消息、助手代理是否终止对话以及任何额外的助手信息,以及另一个元组,包含结果用户消息、用户代理是否终止对话以及任何额外的用户信息。

Parameters:

assistant_msg – 一个BaseMessage,表示来自助手的消息。

Returns:

一个包含两个元素的元组

ChatAgentResponse:第一个结构体包含生成的助手消息、助手代理是否终止对话以及任何额外的助手信息;第二个结构体包含生成的用户消息、用户代理是否终止对话以及任何额外的用户信息。

Return type:

元组[ChatAgentResponse, ChatAgentResponse]

init_chat(init_msg_content: str | None = None) BaseMessage[来源]#

通过重置助手和用户代理来初始化聊天。返回角色扮演会话的初始消息。

Parameters:

init_msg_content (str, optional) – 用户指定的初始消息。 将作为初始消息发送到角色扮演会话中。(默认: None)

Returns:

一个单独的BaseMessage代表初始

消息。

Return type:

BaseMessage

step(assistant_msg: BaseMessage) Tuple[ChatAgentResponse, ChatAgentResponse][来源]#

通过从助手获取消息推进对话,使用用户代理处理该消息,然后使用助手代理处理生成的消息。返回一个元组,包含生成的助手消息、助手代理是否终止了对话以及任何额外的助手信息,同时返回另一个元组,包含生成的用户消息、用户代理是否终止了对话以及任何额外的用户信息。

Parameters:

assistant_msg – 一个BaseMessage,表示来自助手的消息。

Returns:

一个包含两个元素的元组

ChatAgentResponse:第一个结构体包含生成的助手消息、助手代理是否终止了对话以及任何额外的助手信息;第二个结构体包含生成的用户消息、用户代理是否终止了对话以及任何额外的用户信息。

Return type:

元组[ChatAgentResponse, ChatAgentResponse]