Package: autogenstudio
AutoGen StudioAutoGen Studio is an AutoGen-powered AI app (user interface) to help you rapidly prototype AI agents, enhance them with skills, compose them into workflows and interact with them to accomplish tasks. It is built on top of theAutoGenframework, which is a toolkit for building AI agents.Code for AutoGen Studio is on GitHub atmicrosoft/autogenNote: AutoGen Studio is meant to help you rapidly prototype multi-agent workflows and demonstrate an example of end user interfaces built with AutoGen. It is not meant to be a production-ready app.[!WARNING]
AutoGen Studio is currently under active development and we are iterating quickly. Kindly consider that we may introduce breaking changes in the releases during the upcoming weeks, and also theREADMEmight be outdated. We'll update theREADMEas soon as we stabilize the API.Capabilities / RoadmapSome of the capabilities supported by the app frontend include the following:Build / Configure agents (currently supports two agent workflows based onUserProxyAgentandAssistantAgent), modify their configuration (e.g. skills, temperature, model, agent system message, model etc) and compose them into workflows.Chat with agent works and specify tasks.View agent messages and output files in the UI from agent runs.Add interaction sessions to a gallery.Support for more complex agent workflows (e.g.GroupChatworkflows).Improved user experience (e.g., streaming intermediate model output, better summarization of agent responses, etc).Project Structure:autogenstudio/code for the backend classes and web api (FastAPI)frontend/code for the webui, built with Gatsby and TailwindCSSInstallationThere are two ways to install AutoGen Studio - from PyPi or from source. Werecommend installing from PyPiunless you plan to modify the source code.There are two ways to install AutoGen Studio - from PyPi or from source. Werecommend installing from PyPiunless you plan to modify the source code.Install from PyPiWe recommend using a virtual environment (e.g., conda) to avoid conflicts with existing Python packages. With Python 3.10 or newer active in your virtual environment, use pip to install AutoGen Studio:pipinstallautogenstudioInstall from SourceNote: This approach requires some familiarity with building interfaces in React.If you prefer to install from source, ensure you have Python 3.10+ and Node.js (version above 14.15.0) installed. Here's how you get started:Clone the AutoGen Studio repository and install its Python dependencies:pipinstall-e.Navigate to thesamples/apps/autogen-studio/frontenddirectory, install dependencies, and build the UI:npminstall-ggatsby-cli
npminstall--globalyarncdfrontend
yarninstall
yarnbuildFor Windows users, to build the frontend, you may need alternative commands to build the frontend.gatsbyclean&&rmdir/s/q..\\autogenstudio\\web\\ui2>nul&(set\"PREFIX_PATH_VALUE=\"||ver>nul)&&gatsbybuild--prefix-paths&&xcopy/E/I/Ypublic..\\autogenstudio\\web\\uiRunning the ApplicationOnce installed, run the web UI by entering the following in your terminal:autogenstudioui--port8081This will start the application on the specified port. Open your web browser and go tohttp://localhost:8081/to begin using AutoGen Studio.
AutoGen Studio also takes a--host <host>argument to specify the host address. By default, it is set tolocalhost. You can also use the--appdir <appdir>argument to specify the directory where the app files (e.g., database and generated user files) are stored. By default, it is set to the directory where autogen pip package is installed.Now that you have AutoGen Studio installed and running, you are ready to explore its capabilities, including defining and modifying agent workflows, interacting with agents and sessions, and expanding agent skills.CapabilitiesAutoGen Studio proposes some high-level concepts.Agent Workflow: An agent workflow is a specification of a set of agents that can work together to accomplish a task. The simplest version of this is a setup with two agents – a user proxy agent (that represents a user i.e. it compiles code and prints result) and an assistant that can address task requests (e.g., generating plans, writing code, evaluating responses, proposing error recovery steps, etc.). A more complex flow could be a group chat where even more agents work towards a solution.Session: A session refers to a period of continuous interaction or engagement with an agent workflow, typically characterized by a sequence of activities or operations aimed at achieving specific objectives. It includes the agent workflow configuration, the interactions between the user and the agents. A session can be “published” to a “gallery”.Skills: Skills are functions (e.g., Python functions) that describe how to solve a task. In general, a good skill has a descriptive name (e.g.generate_images), extensive docstrings and good defaults (e.g., writing out files to disk for persistence and reuse). You can add new skills AutoGen Studio app via the provided UI. At inference time, these skills are made available to the assistant agent as they address your tasks.AutoGen Studio comes with 3 example skills:fetch_profile,find_papers,generate_images. The default skills, agents and workflows are based on thedbdefaults.jsonfile which is used to initialize the database.Example UsageConsider the following query.Plot a chart of NVDA and TESLA stock price YTD. Save the result to a file named nvda_tesla.pngThe agent workflow responds bywriting and executing codeto create a python program to generate the chart with the stock prices.Note than there could be multiple turns between theAssistantAgentand theUserProxyAgentto produce and execute the code in order to complete the task.Note: You can also view the debug console that generates useful information to see how the agents are interacting in the background.Contribution GuideWe welcome contributions to AutoGen Studio. We recommend the following general steps to contribute to the project:Review the overall AutoGen projectcontribution guidePlease review the AutoGen Studioroadmapto get a sense of the current priorities for the project. Help is appreciated especially with Studio issues tagged withhelp-wantedPlease initiate a discussion on the roadmap issue or a new issue to discuss your proposed contribution.Please review the autogenstudio dev branch heredev branchand use as a base for your contribution. This way, your contribution will be aligned with the latest changes in the AutoGen Studio project.Submit a pull request with your contribution!If you are modifying AutoGen Studio, it has its own devcontainer. See instructions in.devcontainer/README.mdto use itPlease use the tagstudiofor any issues, questions, and PRs related to StudioFAQQ: How do I specify the directory where files(e.g. database) are stored?A: You can specify the directory where files are stored by setting the--appdirargument when running the application. For example,autogenstudio ui --appdir /path/to/folder. This will store the database and other files in the specified directory e.g./path/to/folder/database.sqlite.Q: Where can I adjust the default skills, agent and workflow configurations?A: You can modify agent configurations directly from the UI or by editing thedbdefaults.jsonfile which is used to initialize the database.Q: If I want to reset the entire conversation with an agent, how do I go about it?A: To reset your conversation history, you can delete thedatabase.sqlitefile in the--appdirdirectory. This will reset the entire conversation history. To delete user files, you can delete thefilesdirectory in the--appdirdirectory.Q: Is it possible to view the output and messages generated by the agents during interactions?A: Yes, you can view the generated messages in the debug console of the web UI, providing insights into the agent interactions. Alternatively, you can inspect thedatabase.sqlitefile for a comprehensive record of messages.Q: Can I use other models with AutoGen Studio?Yes. AutoGen standardizes on the openai model api format, and you can use any api server that offers an openai compliant endpoint. In the AutoGen Studio UI, each agent has anllm_configfield where you can input your model endpoint details includingmodel,api key,base url,model typeandapi version. For Azure OpenAI models, you can find these details in the Azure portal. Note that for Azure OpenAI, themodel nameis the deployment id or engine, and themodel typeis "azure".
For other OSS models, we recommend using a server such as vllm to instantiate an openai compliant endpoint.Q: The server starts but I can't access the UIA: If you are running the server on a remote machine (or a local machine that fails to resolve localhost correstly), you may need to specify the host address. By default, the host address is set tolocalhost. You can specify the host address using the--host <host>argument. For example, to start the server on port 8081 and local address such that it is accessible from other machines on the network, you can run the following command:autogenstudioui--port8081--host0.0.0.0AcknowledgementsAutoGen Studio is Based on theAutoGenproject. It was adapted from a research prototype built in October 2023 (original credits: Gagan Bansal, Adam Fourney, Victor Dibia, Piali Choudhury, Saleema Amershi, Ahmed Awadallah, Chi Wang).