mirror of https://github.com/microsoft/autogen.git
81 lines
2.9 KiB
Markdown
81 lines
2.9 KiB
Markdown
# Building a Multi-Agent Application with AutoGen and Chainlit
|
|
|
|
In this sample, we will demonstrate how to build simple chat interface that
|
|
interacts with an [AgentChat](https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/index.html)
|
|
agent or a team, using [Chainlit](https://github.com/Chainlit/chainlit),
|
|
and support streaming messages.
|
|
|
|
## Installation
|
|
|
|
To run this sample, you will need to install the following packages:
|
|
|
|
```shell
|
|
pip install -U chainlit autogen-agentchat autogen-ext[openai] pyyaml
|
|
```
|
|
|
|
To use other model providers, you will need to install a different extra
|
|
for the `autogen-ext` package.
|
|
See the [Models documentation](https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/tutorial/models.html) for more information.
|
|
|
|
|
|
## Model Configuration
|
|
|
|
Create a configuration file named `model_config.yaml` to configure the model
|
|
you want to use. Use `model_config_template.yaml` as a template.
|
|
|
|
## Running the Agent Sample
|
|
|
|
The first sample demonstrate how to interact with a single AssistantAgent
|
|
from the chat interface.
|
|
|
|
```shell
|
|
chainlit run app_agent.py -h
|
|
```
|
|
|
|
You can use one of the starters. For example, ask "What the weather in Seattle?".
|
|
|
|
The agent will respond by first using the tools provided and then reflecting
|
|
on the result of the tool execution.
|
|
|
|
## Running the Team Sample
|
|
|
|
The second sample demonstrate how to interact with a team of agents from the
|
|
chat interface.
|
|
|
|
```shell
|
|
chainlit run app_team.py -h
|
|
```
|
|
You can use one of the starters. For example, ask "Write a poem about winter.".
|
|
|
|
The team is a RoundRobinGroupChat, so each agent will respond in turn.
|
|
There are two agents in the team: one is instructed to be generally helpful
|
|
and the other one is instructed to be a critic and provide feedback.
|
|
The two agents will respond in round-robin fashion until
|
|
the 'APPROVE' is mentioned by the critic agent.
|
|
|
|
## Running the Team Sample with UserProxyAgent
|
|
|
|
The third sample demonstrate how to interact with a team of agents including
|
|
a [UserProxyAgent](https://microsoft.github.io/autogen/stable/reference/python/autogen_agentchat.agents.html#autogen_agentchat.agents.UserProxyAgent)
|
|
for approval or rejection.
|
|
|
|
```shell
|
|
chainlit run app_team_user_proxy.py -h
|
|
```
|
|
|
|
You can use one of the starters. For example, ask "Write code to reverse a string.".
|
|
|
|
By default, the `UserProxyAgent` will request an input action from the user
|
|
to approve or reject the response from the team.
|
|
When the user approves the response, the `UserProxyAgent` will send a message
|
|
to the team containing the text "APPROVE", and the team will stop responding.
|
|
|
|
|
|
## Next Steps
|
|
|
|
There are a few ways you can extend this example:
|
|
|
|
- Try other [agents](https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/tutorial/agents.html).
|
|
- Try other [team](https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/tutorial/teams.html) types beyond the `RoundRobinGroupChat`.
|
|
- Explore custom agents that sent multimodal messages.
|