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
ConversableAgent
configured 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
ConversableAgent
configured withhuman_input_mode
to ALWAYS andllm_config
to 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_msg
argument in the constructor of theConversableAgent
class. - 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