Skip to main content

user_proxy_agent

UserProxyAgent

class UserProxyAgent(ConversableAgent)

(预览中)用户的代理,可以执行代码并向其他代理提供反馈。

UserProxyAgent 是 ConversableAgent 的子类,配置了 human_input_mode 为 ALWAYS 和 llm_config 为 False。默认情况下,每次收到消息时代理都会提示用户输入。默认情况下启用代码执行。默认情况下禁用基于LLM的自动回复。要修改自动回复,请使用 register_reply 注册一个方法。要修改获取用户输入的方式,请重写 get_human_input 方法。要修改执行代码块、单个代码块或函数调用的方式,请分别重写 execute_code_blocksrun_codeexecute_function 方法。

__init__

def __init__(name: str,
is_termination_msg: Optional[Callable[[Dict], bool]] = None,
max_consecutive_auto_reply: Optional[int] = None,
human_input_mode: Literal["ALWAYS", "TERMINATE",
"NEVER"] = "ALWAYS",
function_map: Optional[Dict[str, Callable]] = None,
code_execution_config: Union[Dict, Literal[False]] = {},
default_auto_reply: Optional[Union[str, Dict, None]] = "",
llm_config: Optional[Union[Dict, Literal[False]]] = False,
system_message: Optional[Union[str, List]] = "",
description: Optional[str] = None)

参数

  • name str - 代理的名称。
  • is_termination_msg function - 一个函数,接受一个以字典形式表示的消息,并返回一个布尔值,指示接收到的消息是否为终止消息。字典可以包含以下键:"content"、"role"、"name"、"function_call"。
  • max_consecutive_auto_reply int - 连续自动回复的最大次数。默认为 None(没有限制,此时将使用类属性 MAX_CONSECUTIVE_AUTO_REPLY 作为限制)。该限制仅在 human_input_mode 不为 "ALWAYS" 时起作用。
  • human_input_mode str - 是否每次收到消息都要求用户输入。可能的值为 "ALWAYS"、"TERMINATE"、"NEVER"。 (1) 当为 "ALWAYS" 时,代理每次收到消息都会提示用户输入。在此模式下,当用户输入为 "exit" 或 is_termination_msg 为 True 且没有用户输入时,对话停止。 (2) 当为 "TERMINATE" 时,只有在收到终止消息或自动回复次数达到 max_consecutive_auto_reply 时,代理才会提示用户输入。 (3) 当为 "NEVER" 时,代理将永不提示用户输入。在此模式下,对话在自动回复次数达到 max_consecutive_auto_replyis_termination_msg 为 True 时停止。
  • function_map dict[str, callable] - 将函数名称(传递给openai)映射到可调用的函数。
  • code_execution_config dict or False - 代码执行的配置。 要禁用代码执行,请设置为False。否则,设置为一个包含以下键的字典:
    • work_dir(可选,str):代码执行的工作目录。 如果为None,将使用默认工作目录。 默认工作目录是"path_to_autogen"下的"extensions"目录。
    • use_docker(可选,list,str或bool):用于代码执行的docker镜像。 默认为True,这意味着代码将在docker容器中执行。将使用默认的镜像列表。 如果提供了图像名称的列表或字符串,则代码将在成功拉取的第一个图像的docker容器中执行。 如果为False,则代码将在当前环境中执行。 我们强烈建议使用docker进行代码执行。
    • timeout(可选,int):最大执行时间(以秒为单位)。
    • last_n_messages(实验性的,可选,int):用于代码执行的回溯消息数。默认为1。
  • default_auto_reply str or dict or None - 当没有生成代码执行或基于llm的回复时的默认自动回复消息。
  • llm_config dict or False or None - llm推理配置。 请参考OpenAIWrapper.create 获取可用选项。 默认为False,禁用基于llm的自动回复。 当设置为None时,将使用self.DEFAULT_CONFIG,默认为False。
  • system_message str or List - 用于ChatCompletion推理的系统消息。 仅在llm_config不为False时使用。用它来重新编程代理。
  • description str - 代理的简短描述。其他代理(例如GroupChatManager)使用此描述来决定何时调用该代理。(默认值:system_message)