code: def __init__(
      self,
      name: str,
      is_termination_msg: Optional[Callable[[Dict], bool]] = None,
      max_consecutive_auto_reply: Optional[int] = None,
      human_input_mode: Optional[str] = "ALWAYS",
      function_map: Optional[Dict[str, Callable]] = None,
      code_execution_config: Optional[
          Union[Dict, Literal[False]]
      ] = None,
      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,
  ):
      """
      Args:
          name (str): name of the agent.
          is_termination_msg (function): a function that takes a message in the form of a dictionary
              and returns a boolean value indicating if this received message is a termination message.
              The dict can contain the following keys: "content", "role", "name", "function_call".
          max_consecutive_auto_reply (int): the maximum number of consecutive auto replies.
              default to None (no limit provided, class attribute MAX_CONSECUTIVE_AUTO_REPLY will be used as the limit in this case).
              The limit only plays a role when human_input_mode is not "ALWAYS".
          human_input_mode (str): whether to ask for human inputs every time a message is received.
              Possible values are "ALWAYS", "TERMINATE", "NEVER".
              (1) When "ALWAYS", the agent prompts for human input every time a message is received.
                  Under this mode, the conversation stops when the human input is "exit",
                  or when is_termination_msg is True and there is no human input.
              (2) When "TERMINATE", the agent only prompts for human input only when a termination message is received or
                  the number of auto reply reaches the max_consecutive_auto_reply.
              (3) When "NEVER", the agent will never prompt for human input. Under this mode, the conversation stops
                  when the number of auto reply reaches the max_consecutive_auto_reply or when is_termination_msg is True.
          function_map (dict[str, callable]): Mapping function names (passed to openai) to callable functions.
          code_execution_config (dict or False): config for the code execution.
              To disable code execution, set to False. Otherwise, set to a dictionary with the following keys:
              - work_dir (Optional, str): The working directory for the code execution.
                  If None, a default working directory will be used.
                  The default working directory is the "extensions" directory under
                  "path_to_autogen".
              - use_docker (Optional, list, str or bool): The docker image to use for code execution.
                  If a list or a str of image name(s) is provided, the code will be executed in a docker container
                  with the first image successfully pulled.
                  If None, False or empty, the code will be executed in the current environment.
                  Default is True, which will be converted into a list.
                  If the code is executed in the current environment,
                  the code must be trusted.
              - timeout (Optional, int): The maximum execution time in seconds.
              - last_n_messages (Experimental, Optional, int): The number of messages to look back for code execution. Default to 1.
          default_auto_reply (str or dict or None): the default auto reply message when no code execution or llm based reply is generated.
          llm_config (dict or False): llm inference configuration.
              Please refer to [OpenAIWrapper.create](/docs/reference/oai/client#create)
              for available options.
              Default to false, which disables llm-based auto reply.
          system_message (str or List): system message for ChatCompletion inference.
              Only used when llm_config is not False. Use it to reprogram the agent.
          description (str): a short description of the agent. This description is used by other agents
              (e.g. the GroupChatManager) to decide when to call upon this agent. (Default: system_message)
      """
      super().__init__(
          name=name,
          system_message=system_message,
          is_termination_msg=is_termination_msg,
          max_consecutive_auto_reply=max_consecutive_auto_reply,
          human_input_mode=human_input_mode,
          function_map=function_map,
          code_execution_config=code_execution_config,
          llm_config=llm_config,
          default_auto_reply=default_auto_reply,
          description=description
          if description is not None
          else self.DEFAULT_USER_PROXY_AGENT_DESCRIPTIONS[
              human_input_mode
          ],
      )
  
imports: from typing import Callable, Dict, List, Literal, Optional, Union
  from .conversable_agent import ConversableAgent
label_desc: Use image node_id 1 to create a new UserProxyAgent object from inherited base classes: ConversableAgent with example: obj = UserProxyAgent(name, is_termination_msg, max_consecutive_auto_reply, human_input_mode, function_map, code_execution_config, default_auto_reply, llm_config, system_message, description)