mirror of https://github.com/microsoft/autogen.git
148 lines
5.4 KiB
Plaintext
148 lines
5.4 KiB
Plaintext
import Tabs from "@theme/Tabs";
|
|
import TabItem from "@theme/TabItem";
|
|
|
|
# Getting Started
|
|
|
|
AutoGen is an open-source programming framework for building AI agents and facilitating
|
|
cooperation among multiple agents to solve tasks. AutoGen aims to provide an easy-to-use
|
|
and flexible framework for accelerating development and research on agentic AI,
|
|
like PyTorch for Deep Learning. It offers features such as agents that can converse
|
|
with other agents, LLM and tool use support, autonomous and human-in-the-loop workflows,
|
|
and multi-agent conversation patterns.
|
|
|
|
![AutoGen Overview](/img/autogen_agentchat.png)
|
|
|
|
### Main Features
|
|
|
|
- AutoGen enables building next-gen LLM applications based on [multi-agent
|
|
conversations](/docs/Use-Cases/agent_chat) with minimal effort. It simplifies
|
|
the orchestration, automation, and optimization of a complex LLM workflow. It
|
|
maximizes the performance of LLM models and overcomes their weaknesses.
|
|
- It supports [diverse conversation
|
|
patterns](/docs/Use-Cases/agent_chat#supporting-diverse-conversation-patterns)
|
|
for complex workflows. With customizable and conversable agents, developers can
|
|
use AutoGen to build a wide range of conversation patterns concerning
|
|
conversation autonomy, the number of agents, and agent conversation topology.
|
|
- It provides a collection of working systems with different complexities. These
|
|
systems span a [wide range of
|
|
applications](/docs/Use-Cases/agent_chat#diverse-applications-implemented-with-autogen)
|
|
from various domains and complexities. This demonstrates how AutoGen can
|
|
easily support diverse conversation patterns.
|
|
|
|
AutoGen is powered by collaborative [research studies](/docs/Research) from
|
|
Microsoft, Penn State University, and University of Washington.
|
|
|
|
### Quickstart
|
|
|
|
```sh
|
|
pip install pyautogen
|
|
```
|
|
|
|
<Tabs>
|
|
<TabItem value="nocode" label="No code execution" default>
|
|
|
|
```python
|
|
import os
|
|
from autogen import AssistantAgent, UserProxyAgent
|
|
|
|
llm_config = {"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}
|
|
assistant = AssistantAgent("assistant", llm_config=llm_config)
|
|
user_proxy = UserProxyAgent("user_proxy", code_execution_config=False)
|
|
|
|
# Start the chat
|
|
user_proxy.initiate_chat(
|
|
assistant,
|
|
message="Tell me a joke about NVDA and TESLA stock prices.",
|
|
)
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="local" label="Local execution" default>
|
|
|
|
:::warning
|
|
When asked, be sure to check the generated code before continuing to ensure it is safe to run.
|
|
:::
|
|
|
|
```python
|
|
import os
|
|
import autogen
|
|
from autogen import AssistantAgent, UserProxyAgent
|
|
|
|
llm_config = {"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}
|
|
assistant = AssistantAgent("assistant", llm_config=llm_config)
|
|
|
|
user_proxy = UserProxyAgent(
|
|
"user_proxy", code_execution_config={"executor": autogen.coding.LocalCommandLineCodeExecutor(work_dir="coding")}
|
|
)
|
|
|
|
# Start the chat
|
|
user_proxy.initiate_chat(
|
|
assistant,
|
|
message="Plot a chart of NVDA and TESLA stock price change YTD.",
|
|
)
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="docker" label="Docker execution" default>
|
|
|
|
```python
|
|
import os
|
|
import autogen
|
|
from autogen import AssistantAgent, UserProxyAgent
|
|
|
|
llm_config = {"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}
|
|
|
|
with autogen.coding.DockerCommandLineCodeExecutor(work_dir="coding") as code_executor:
|
|
assistant = AssistantAgent("assistant", llm_config=llm_config)
|
|
user_proxy = UserProxyAgent(
|
|
"user_proxy", code_execution_config={"executor": code_executor}
|
|
)
|
|
|
|
# Start the chat
|
|
user_proxy.initiate_chat(
|
|
assistant,
|
|
message="Plot a chart of NVDA and TESLA stock price change YTD. Save the plot to a file called plot.png",
|
|
)
|
|
```
|
|
|
|
Open `coding/plot.png` to see the generated plot.
|
|
|
|
</TabItem>
|
|
|
|
</Tabs>
|
|
|
|
:::tip
|
|
Learn more about configuring LLMs for agents [here](/docs/topics/llm_configuration).
|
|
:::
|
|
|
|
#### Multi-Agent Conversation Framework
|
|
|
|
Autogen enables the next-gen LLM applications with a generic multi-agent conversation framework. It offers customizable and conversable agents which integrate LLMs, tools, and humans.
|
|
By automating chat among multiple capable agents, one can easily make them collectively perform tasks autonomously or with human feedback, including tasks that require using tools via code. For [example](https://github.com/microsoft/autogen/blob/main/test/twoagent.py),
|
|
|
|
The figure below shows an example conversation flow with AutoGen.
|
|
|
|
![Agent Chat Example](/img/chat_example.png)
|
|
|
|
### Where to Go Next?
|
|
|
|
- Go through the [tutorial](/docs/tutorial/introduction) to learn more about the core concepts in AutoGen
|
|
- Read the examples and guides in the [notebooks section](/docs/notebooks)
|
|
- Understand the use cases for [multi-agent conversation](/docs/Use-Cases/agent_chat) and [enhanced LLM inference](/docs/Use-Cases/enhanced_inference)
|
|
- Read the [API](/docs/reference/agentchat/conversable_agent/) docs
|
|
- Learn about [research](/docs/Research) around AutoGen
|
|
- Chat on [Discord](https://aka.ms/autogen-dc)
|
|
- Follow on [Twitter](https://twitter.com/pyautogen)
|
|
- See our [roadmaps](https://aka.ms/autogen-roadmap)
|
|
|
|
If you like our project, please give it a [star](https://github.com/microsoft/autogen/stargazers) on GitHub. If you are interested in contributing, please read [Contributor's Guide](/docs/contributor-guide/contributing).
|
|
|
|
<iframe
|
|
src="https://ghbtns.com/github-btn.html?user=microsoft&repo=autogen&type=star&count=true&size=large"
|
|
frameborder="0"
|
|
scrolling="0"
|
|
width="170"
|
|
height="30"
|
|
title="GitHub"
|
|
></iframe>
|