An entity that can send messages, receive messages and generate a reply using models, tools, human inputs or a mixture of them
- Can be built on top of LLMs
- Has code executors that enables to execute code
- Human element: humans can be in the loop
- Example

- Features
- Conversable: Agents can send and receive messages
- Customizable: Agents can integrate with AI models, tools, humans, or a combination of all
Some Built-In Agents in AutoGen

ConversableAgent- The main agent that can integrate AI models (tools and human input)
- You can pass in certain settings (
human_input_mode,code_execution_config,DEFAULT_SYSTEM_MESSAGE)
AssistantAgent- Assistant agent, designed to solve a task with LLM (that you can attach).
- A subclass of
ConversableAgentconfigured with a default system message. The default system message is designed to solve a task with LLM, including suggesting python code blocks and debugging.
UserProxyAgent- A proxy agent for the user, that can execute code and provide feedback to the other agents.
- A subclass of
ConversableAgentconfigured withhuman_input_modeto ALWAYS andllm_configto False. - Triggers when
human_input_mode="ALWAYS"
GroupChatManager- A chat manager agent that can manage a group chat of multiple agents.

is_terminate_msg- This condition can trigger termination if the received message satisfies a particular condition, e.g., it contains the word “TERMINATE”. You can customize this condition using the
is_terminate_msgargument in the constructor of theConversableAgentclass. - https://microsoft.github.io/autogen/docs/tutorial/chat-termination/
- Example:
is_terminate_msg = lambda msg: "elephant" in msg["content"].lower()
- This condition can trigger termination if the received message satisfies a particular condition, e.g., it contains the word “TERMINATE”. You can customize this condition using the