{"id":969759,"date":"2023-09-25T09:00:00","date_gmt":"2023-09-25T16:00:00","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?p=969759"},"modified":"2025-01-08T12:30:38","modified_gmt":"2025-01-08T20:30:38","slug":"autogen-enabling-next-generation-large-language-model-applications","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/research\/blog\/autogen-enabling-next-generation-large-language-model-applications\/","title":{"rendered":"AutoGen: Enabling next-generation large language model applications"},"content":{"rendered":"\n<figure class=\"wp-block-pullquote\"><blockquote><p>\u201cCapabilities like AutoGen are poised to fundamentally transform and extend what large language models are capable of. This is one of the most exciting developments I have seen in AI recently.\u201d<\/p><cite>Doug Burger, Technical Fellow, Microsoft<\/cite><\/blockquote><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 1 shows three shaded boxes, each containing symbols that represent AutoGen agents and the large language models, tools, and humans that comprise them, and illustrates how AutoGen agents can converse to solve tasks.  \" href=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"548\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig1.png\" alt=\"Figure 1 shows three shaded boxes, each containing symbols that represent AutoGen agents and the large language models, tools, and humans that comprise them, and illustrates how AutoGen agents can converse to solve tasks.  \" class=\"wp-image-969777\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig1.png 1100w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig1-300x149.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig1-1024x510.png 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig1-768x383.png 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig1-240x120.png 240w\" sizes=\"auto, (max-width: 1100px) 100vw, 1100px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 1. AutoGen enables complex LLM-based workflows using multi-agent conversations. (Left) AutoGen agents are customizable and can be based on LLMs, tools, humans, and even a combination of them. (Top-right) Agents can converse to solve tasks. (Bottom-right) The framework supports many additional complex conversation patterns.<\/em><\/figcaption><\/figure>\n\n\n\n<p>It requires a lot of effort and expertise to design, implement, and optimize a workflow that can leverage the full potential of large language models (LLMs). Automating these workflows has tremendous value. As developers begin to create increasingly complex LLM-based applications, workflows will inevitably grow more intricate. The potential design space for such workflows could be vast and complex, thereby heightening the challenge of orchestrating an optimal workflow with robust performance.<\/p>\n\n\n\n<p>AutoGen is a framework for simplifying the orchestration, optimization, and automation of LLM workflows. It offers customizable and <em>conversable<\/em> agents that leverage the strongest capabilities of the most advanced LLMs, like GPT-4, while addressing their limitations by integrating with humans and tools and having conversations between multiple agents via <em>automated chat<\/em>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n\t<div class=\"border-bottom border-top border-gray-300 mt-5 mb-5 msr-promo text-center text-md-left alignwide\" data-bi-aN=\"promo\" data-bi-id=\"999693\">\n\t\t\n\n\t\t<p class=\"msr-promo__label text-gray-800 text-center text-uppercase\">\n\t\t<span class=\"px-4 bg-white display-inline-block font-weight-semibold small\">Spotlight: Event Series<\/span>\n\t<\/p>\n\t\n\t<div class=\"row pt-3 pb-4 align-items-center\">\n\t\t\t\t\t\t<div class=\"msr-promo__media col-12 col-md-5\">\n\t\t\t\t<a class=\"bg-gray-300 display-block\" href=\"https:\/\/www.microsoft.com\/en-us\/research\/event\/microsoft-research-forum\/?OCID=msr_researchforum_MCR_Blog_Promo\" aria-label=\"Microsoft Research Forum\" data-bi-cN=\"Microsoft Research Forum\" target=\"_blank\">\n\t\t\t\t\t<img decoding=\"async\" class=\"w-100 display-block\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2025\/05\/Research-Forum-hero_1400x788.jpg\" alt=\"Research Forum | abstract background with colorful hexagons\" \/>\n\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t<div class=\"msr-promo__content p-3 px-5 col-12 col-md\">\n\n\t\t\t\t\t\t\t\t\t<h2 class=\"h4\">Microsoft Research Forum<\/h2>\n\t\t\t\t\n\t\t\t\t\t\t\t\t<p id=\"microsoft-research-forum\" class=\"large\">Join us for a continuous exchange of ideas about research in the era of general AI. Watch the first four episodes on demand.<\/p>\n\t\t\t\t\n\t\t\t\t\t\t\t\t<div class=\"wp-block-buttons justify-content-center justify-content-md-start\">\n\t\t\t\t\t<div class=\"wp-block-button\">\n\t\t\t\t\t\t<a href=\"https:\/\/www.microsoft.com\/en-us\/research\/event\/microsoft-research-forum\/?OCID=msr_researchforum_MCR_Blog_Promo\" aria-describedby=\"microsoft-research-forum\" class=\"btn btn-brand glyph-append glyph-append-chevron-right\" data-bi-cN=\"Microsoft Research Forum\" target=\"_blank\">\n\t\t\t\t\t\t\tWatch on-demand\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div><!--\/.msr-promo__content-->\n\t<\/div><!--\/.msr-promo__inner-wrap-->\n\t<\/div><!--\/.msr-promo-->\n\t\n\n\n<p>With AutoGen, building a complex multi-agent conversation system boils down to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Defining a set of agents with specialized capabilities and roles.<\/li>\n\n\n\n<li>Defining the interaction behavior between agents, i.e., what to reply when an agent receives messages from another agent.<\/li>\n<\/ul>\n\n\n\n<p>Both steps are intuitive and modular, making these agents reusable and composable. For example, to build a system for code-based question answering, one can design the agents and their interactions as in Figure 2. Such a system is shown to reduce the number of manual interactions needed from 3x to 10x in applications like <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/OptiGuide\" target=\"_blank\" rel=\"noopener noreferrer\">supply-chain optimization<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>. Using AutoGen leads to more than a 4x reduction in coding effort.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 2 illustrates an example workflow with dotted-line relationships between three AutoGen agents\u2014Commander, Writer, and Safeguard\u2014and how the agents work together to answer code-based questions from users.\" href=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"589\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2.png\" alt=\"Figure 2 illustrates an example workflow with dotted-line relationships between three AutoGen agents\u2014Commander, Writer, and Safeguard\u2014and how the agents work together to answer code-based questions from users.\" class=\"wp-image-969780\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2.png 1100w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2-300x161.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2-1024x548.png 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2-768x411.png 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2-710x380.png 710w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig2-240x129.png 240w\" sizes=\"auto, (max-width: 1100px) 100vw, 1100px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 2. An example workflow to address code-based question answering in <a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 2 illustrates an example workflow with dotted-line relationships between three AutoGen agents\u2014Commander, Writer, and Safeguard\u2014and how the agents work together to answer code-based questions from users.\" href=\"https:\/\/github.com\/microsoft\/OptiGuide\" target=\"_blank\" rel=\"noreferrer noopener\">supply-chain optimization<\/a>. The Commander receives user questions and coordinates with the Writer and Safeguard. The Writer crafts the code and interpretation, the Safeguard ensures safety, and the Commander executes the code. If issues arise, the process can repeat until resolved. Shaded circles represent steps that may be repeated multiple times.<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"capable-conversable-and-customizable-agents-integrating-llms-humans-and-tools\">Capable, conversable, and customizable agents \u2013 integrating LLMs, humans, and tools<\/h2>\n\n\n\n<p>AutoGen agents have capabilities enabled by LLMs, humans, tools, or a mix of those elements. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>One can easily configure the usage and roles of LLMs in an agent (<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_groupchat_research.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">automated complex task solving by group chat<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>) with advanced inference features (e.g., <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/microsoft.github.io\/FLAML\/blog\/2023\/05\/18\/GPT-adaptive-humaneval\" target=\"_blank\" rel=\"noopener noreferrer\">optimize performance<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> with <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/cost-effective-hyperparameter-optimization-for-large-language-model-generation-inference\/\">inference parameter tuning<\/a>).<\/li>\n\n\n\n<li>Human intelligence and oversight can be achieved through a proxy agent with different involvement levels and patterns (e.g., <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_two_users.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">automated task solving with GPT-4 + multiple human users<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>).<\/li>\n\n\n\n<li>The agents have native support for LLM-driven code\/function execution (e.g., <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_auto_feedback_from_code_execution.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">automated task solving with code generation, execution and debugging<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_function_call.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">use provided tools as functions<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>).<\/li>\n<\/ul>\n\n\n\n<p>One straightforward way of using built-in agents from AutoGen is to invoke automated chat between an assistant agent and a <em>user proxy<\/em> agent. As an example (Figure 3), one can easily build an enhanced version of ChatGPT + Code Interpreter + plugins, with a customizable degree of automation, usable in a custom environment and embeddable in a bigger system. It is also easy to extend their behavior to support diverse application scenarios, such as adding personalization and adaptability based on past interactions (e.g., <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_stream.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">automated continual learning<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_teaching.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">teach agents new skills<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 3 shows the details of a chat between an assistant agent and a user proxy agent to illustrate how AutoGen automates such chats, while seamlessly engaging humans or using tools as needed to complete complex tasks.\" href=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"571\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig3.png\" alt=\"Figure 3 shows the details of a chat between an assistant agent and a user proxy agent to illustrate how AutoGen automates such chats, while seamlessly engaging humans or using tools as needed to complete complex tasks.\" class=\"wp-image-969786\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig3.png 1100w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig3-300x156.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig3-1024x532.png 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig3-768x399.png 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig3-240x125.png 240w\" sizes=\"auto, (max-width: 1100px) 100vw, 1100px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 3. A user proxy agent and assistant agent from AutoGen can be used to build an enhanced version of ChatGPT + Code Interpreter + plugins. The assistant agent plays the role of an AI assistant like Bing Chat. The user proxy agent plays the role of a user and simulates users\u2019 behavior such as code execution. AutoGen automates the chat between the two agents, while allowing human feedback or intervention. The user proxy seamlessly engages humans and uses tools when appropriate.<\/em><\/figcaption><\/figure>\n\n\n\n<p>The agent conversation-centric design has numerous benefits, including that it:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Naturally handles ambiguity, feedback, progress, and collaboration.<\/li>\n\n\n\n<li>Enables effective coding-related tasks, like tool use with back-and-forth troubleshooting.<\/li>\n\n\n\n<li>Allows users to seamlessly opt in or opt out via an agent in the chat.<\/li>\n\n\n\n<li>Achieves a collective goal with the cooperation of multiple specialists.<\/li>\n<\/ul>\n\n\n\n<p>AutoGen supports automated chat and diverse communication patterns, making it easy to orchestrate a complex, dynamic workflow and experiment with versatility. Figure 4 illustrates a new game, <em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/flaml\/blob\/main\/notebook\/autogen_agentchat_chess.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">conversational chess<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>,<\/em> enabled by AutoGen. Figure 5 illustrates how AutoGen supports <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_groupchat.ipynb\" target=\"_blank\" rel=\"noopener noreferrer\">group chats<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> between multiple agents using another special agent called the \u201cGroupChatManager\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 4 displays two small chessboards side-by-side, with black and white chess pieces in various positions on each board showing a game in progress, plus a chat between two users, to illustrate how AI, human, or hybrid users can play conversational chess.\" href=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"619\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4.png\" alt=\"Figure 4 displays two small chessboards side-by-side, with black and white chess pieces in various positions on each board showing a game in progress, plus a chat between two users, to illustrate how AI, human, or hybrid users can play conversational chess.\" class=\"wp-image-969789\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4.png 1100w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-300x169.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-1024x576.png 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-768x432.png 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-1066x600.png 1066w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-655x368.png 655w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-343x193.png 343w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-240x135.png 240w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-640x360.png 640w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig4-960x540.png 960w\" sizes=\"auto, (max-width: 1100px) 100vw, 1100px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 4. An example of a new application enabled by AutoGen: <a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 4 displays two small chessboards side-by-side, with black and white chess pieces in various positions on each board showing a game in progress, plus a chat between two users, to illustrate how AI, human, or hybrid users can play conversational chess.\" href=\"https:\/\/github.com\/microsoft\/flaml\/blob\/main\/notebook\/autogen_agentchat_chess.ipynb\" target=\"_blank\" rel=\"noreferrer noopener\">conversational chess<\/a>. It can support various scenarios, as each player can be an LLM-empowered AI, a human, or a hybrid of the two. It allows players to express their moves creatively, such as using jokes, meme references, and character-playing, making chess games more entertaining to players as well as observers.<\/em><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 5 shows three shaded boxes, each containing symbols that represent various agents, to illustrate how AutoGen enables dynamic group chats. Each box represents a different step in the three-step process. \" href=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1100\" height=\"704\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig5.png\" alt=\"Figure 5 shows three shaded boxes, each containing symbols that represent various agents, to illustrate how AutoGen enables dynamic group chats. Each box represents a different step in the three-step process. \" class=\"wp-image-969792\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig5.png 1100w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig5-300x192.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig5-1024x655.png 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig5-768x492.png 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen_Fig5-240x154.png 240w\" sizes=\"auto, (max-width: 1100px) 100vw, 1100px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Figure 5. Overview of how AutoGen enables dynamic <a data-bi-bhvr=\"14\"  data-bi-cn=\"Figure 5 shows three shaded boxes, each containing symbols that represent various agents, to illustrate how AutoGen enables dynamic group chats. Each box represents a different step in the three-step process. \" href=\"https:\/\/github.com\/microsoft\/autogen\/blob\/main\/notebook\/agentchat_groupchat.ipynb\" target=\"_blank\" rel=\"noreferrer noopener\">group chats<\/a> to solve tasks: We use a special agent called the Manager that repeats the following three steps\u2014select a single speaker (in this case Bob), ask the speaker to respond, and broadcast the selected speaker&#8217;s message to all the other agents.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"getting-started\">Getting started<\/h3>\n\n\n\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/aka.ms\/autogen\" target=\"_blank\" rel=\"noopener noreferrer\"><u>AutoGen<\/u><span class=\"sr-only\"> (opens in new tab)<\/span><\/a> (in preview) is freely available as a Python package. To install it, run<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install pyautogen<\/code><\/pre>\n\n\n\n<p>You can quickly enable a powerful experience with just a few lines of code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><font color=\"AF71A9\">import<\/font> autogen\nassistant = autogen.AssistantAgent(<font color=\"C9975A\">\"assistant\"<\/font>)\nuser_proxy = autogen.UserProxyAgent(<font color=\"C9975A\">\"user_proxy\"<\/font>)\nuser_proxy.initiate_chat(assistant, <font color=\"1A5E7C\">message<\/font>=<font color=\"C9975A\">\"Show me the YTD gain of 10 largest technology companies as of today.\"<\/font>)\n<font color=\"719D60\"># This triggers automated chat to solve the task<\/font><\/code><\/pre>\n\n\n\n<p>Check examples for a wide variety of tasks: <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/microsoft.github.io\/autogen\/docs\/Examples\/AutoGen-AgentChat\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/microsoft.github.io\/autogen\/docs\/Examples\/AutoGen-AgentChat<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"next-steps\">Next steps:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use AutoGen in your LLM applications and provide feedback on <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" href=\"https:\/\/discord.com\/invite\/Av89b25VgR\" target=\"_blank\" rel=\"noopener noreferrer\">Discord<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n\n\n\n<li>Read about the research:<ul><li><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/autogen-enabling-next-gen-llm-applications-via-multi-agent-conversation-framework\/\">AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation Framework<\/a><\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/cost-effective-hyperparameter-optimization-for-large-language-model-generation-inference\/\">Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>AutoGen is an open-source, community-driven project under active development (as a spinoff from <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/microsoft.github.io\/FLAML\/\">FLAML<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, a fast library for automated machine learning and tuning), which encourages contributions from individuals of all backgrounds. Many Microsoft Research collaborators have made great contributions to this project, including academic contributors like Pennsylvania State University and the University of Washington, and product teams like Microsoft Fabric and ML.NET. AutoGen aims to provide an effective and easy-to-use framework for developers to build next-generation applications, and already demonstrates promising opportunities to build creative applications and provide a large space for innovation.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"names-of-microsoft-contributors\">Names of Microsoft contributors:&nbsp;<\/h4>\n\n\n\n<p><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/chiw\/\">Chi Wang<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/gaganbansal\/\">Gagan Bansal<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/ekzhu\/\">Eric Zhu<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/beibinli\/\">Beibin Li<\/a>, Li Jiang, Xiaoyun Zhang, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/hassanam\/\">Ahmed Awadallah<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/ryenw\/\">Ryen White<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/dburger\/\">Doug Burger<\/a>, Robin Moeur, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/victordibia\/\">Victor Dibia<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/adamfo\/\">Adam Fourney<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/pialic\/\">Piali Choudhury<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/samershi\/\">Saleema Amershi<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/riloynd\/\">Ricky Loynd<\/a>, <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/hakhanpo\/\">Hamed Khanpour<\/a>, and <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/people\/eckamar\/\">Ece Kamar<\/a>.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft researchers are introducing AutoGen, a framework for simplifying the orchestration, optimization, and automation of workflows for large language model (LLM) applications\u2014potentially transforming and extending what LLMs can do.<\/p>\n","protected":false},"author":42183,"featured_media":969915,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-author-ordering":[],"msr_hide_image_in_river":null,"footnotes":""},"categories":[1],"tags":[],"research-area":[13556],"msr-region":[],"msr-event-type":[],"msr-locale":[268875],"msr-post-option":[],"msr-impact-theme":[],"msr-promo-type":[],"msr-podcast-series":[],"class_list":["post-969759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-research-blog","msr-research-area-artificial-intelligence","msr-locale-en_us"],"msr_event_details":{"start":"","end":"","location":""},"podcast_url":"","podcast_episode":"","msr_research_lab":[],"msr_impact_theme":[],"related-publications":[],"related-downloads":[],"related-videos":[],"related-academic-programs":[],"related-groups":[781564],"related-projects":[973047],"related-events":[],"related-researchers":[],"msr_type":"Post","featured_image_thumbnail":"<img width=\"960\" height=\"540\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-960x540.jpg\" class=\"img-object-cover\" alt=\"AutoGen diagram\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-960x540.jpg 960w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-300x169.jpg 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-1024x576.jpg 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-768x432.jpg 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-1066x600.jpg 1066w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-655x368.jpg 655w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-343x193.jpg 343w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-240x135.jpg 240w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-640x360.jpg 640w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1-1280x720.jpg 1280w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2023\/09\/AutoGen-BlogHeroFeature-1400x788-1.jpg 1400w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/>","byline":"","formattedDate":"September 25, 2023","formattedExcerpt":"Microsoft researchers are introducing AutoGen, a framework for simplifying the orchestration, optimization, and automation of workflows for large language model (LLM) applications\u2014potentially transforming and extending what LLMs can do.","locale":{"slug":"en_us","name":"English","native":"","english":"English"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/969759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/users\/42183"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/comments?post=969759"}],"version-history":[{"count":18,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/969759\/revisions"}],"predecessor-version":[{"id":1116369,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/969759\/revisions\/1116369"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/969915"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=969759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/categories?post=969759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/tags?post=969759"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=969759"},{"taxonomy":"msr-region","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-region?post=969759"},{"taxonomy":"msr-event-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event-type?post=969759"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=969759"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=969759"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=969759"},{"taxonomy":"msr-promo-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-promo-type?post=969759"},{"taxonomy":"msr-podcast-series","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-podcast-series?post=969759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}