A Survey on LLM-based Autonomous Agents

Autonomous agents are designed to achieve specific objectives through self-guided instructions. With the emergence and growth of large language models (LLMs), there is a growing trend in utilizing LLMs as fundamental controllers for these autonomous agents. While previous studies in this field have achieved remarkable successes, they remain independent proposals with little effort devoted to a systematic analysis. To bridge this gap, we conduct a comprehensive survey study, focusing on the construction, application, and evaluation of LLM-based autonomous agents. In particular, we first explore the essential components of an AI agent, including a profile module, a memory module, a planning module, and an action module. We further investigate the application of LLM-based autonomous agents in the domains of natural sciences, social sciences, and engineering. Subsequently, we delve into a discussion of the evaluation strategies employed in this field, encompassing both subjective and objective methods. Our survey aims to serve as a resource for researchers and practitioners, providing insights, related references, and continuous updates on this exciting and rapidly evolving field.
📍 This is the first released and published survey paper in the field of LLM-based autonomous agents.
Paper link: A Survey on Large Language Model based Autonomous Agents
Update Records
-
🔥 [25/3/2024] Our survey paper has been accepted by Frontiers of Computer Science, which is the first published survey paper in the field of LLM-based agents.
-
🔥 [9/28/2023] We have compiled and summarized papers related to LLM-based Agents that have been accepted by Neurips 2023 in the repository LLM-Agent-Paper-Digest. This repository will continue to be updated with accepted agent-related papers in the future.
-
🔥 [9/8/2023] The second version of our survey has been released on arXiv.
<details>
<summary>Updated contents</summary>
</details>
-
🔥 [8/23/2023] The first version of our survey has been released on arXiv.<br>
<!--omit in the toc-->
Table of Content
<!-- - [Growth Trend in the Field of LLM-based Autonomous Agent](#-growth-trend-of-llm-based-autonomous-agent)-->
<!-- ## 📚 Growth Trend in the Field of LLM-based Autonomous Agent

<hr> -->
<!-- ## 📋 Structure of the Survey

<hr> -->
🤖 Construction of LLM-based Autonomous Agent

<table>
<tr>
<td rowspan='2'align='center'>Model</td>
<td rowspan='2'align='center'>Profile</td>
<td colspan='2'align='center'>Memory</td>
<td rowspan='2'align='center'>Planning</td>
<td rowspan='2'align='center'>Action</td>
<td rowspan='2'align='center'>CA</td>
<td rowspan='2'align='center'>Paper</td>
<td rowspan='2'align='center'>Code</td>
</tr>
<tr>
<td align='center'>Operation</td>
<td align='center'>Structure</td>
</tr>
<tr>
<td align='center'>WebGPT</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ tools</td>
<td align='center'>w/ fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2112.09332">Paper</a></td>
<td align='center'>-</td>
</tr>
<tr>
<td align='center'>SayCan</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/o feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>w/o fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2204.01691">Paper</a></td>
<td align='center'><a href="https://say-can.github.io/">Code</a></td>
</tr>
<tr>
<td align='center'>MRKL</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/o feedback</td>
<td align='center'>w/ tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2205.00445">Paper</a></td>
<td align='center'>-</td>
</tr>
<tr>
<td align='center'>Inner Monologue</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>w/o fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2207.05608">Paper</a></td>
<td align='center'><a href="https://innermonologue.github.io/">Code</a></td>
</tr>
<tr>
<td align='center'>Social Simulacra</td>
<td align='center'>GPT-Generated</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/o tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2208.04024">Paper</a></td>
<td align='center'>-</td>
</tr>
<tr>
<td align='center'>ReAct</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/ tools</td>
<td align='center'>w/ fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2210.03629">Paper</a></td>
<td align='center'><a href="https://github.com/ysymyth/ReAct">Code</a></td>
</tr>
<tr>
<td align='center'>LLM Planner</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>Environment feedback</td>
<td align='center'><a href="https://arxiv.org/abs/2212.04088">Paper</a></td>
<td align='center'><a href="https://dki-lab.github.io/LLM-Planner">Code</a></td>
</tr>
<tr>
<td align='center'>MALLM</td>
<td align='center'>-</td>
<td align='center'>Read/Write</td>
<td align='center'>Hybrid</td>
<td align='center'>-</td>
<td align='center'>w/o tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2301.04589">Paper</a></td>
<td align='center'>-</td>
</tr>
<tr>
<td align='center'>aiflows</td>
<td align='center'>-</td>
<td align='center'>Read/Write/<br>Reflection</td>
<td align='center'>Hybrid</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/ tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2308.01285">Paper</a></td>
<td align='center'><a href="https://github.com/epfl-dlab/aiflows">Code</a></td>
</tr>
<tr>
<td align='center'>DEPS</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>w/o fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2302.01560">Paper</a></td>
<td align='center'><a href="https://github.com/CraftJarvis/MC-Planner">Code</a></td>
</tr>
<tr>
<td align='center'>Toolformer</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/o feedback</td>
<td align='center'>w/ tools</td>
<td align='center'>w/ fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2302.04761">Paper</a></td>
<td align='center'><a href="https://github.com/lucidrains/toolformer-pytorch">Code</a></td>
</tr>
<tr>
<td align='center'>Reflexion</td>
<td align='center'>-</td>
<td align='center'>Read/Write/<br>Reflection</td>
<td align='center'>Hybrid</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>w/o fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2303.11366">Paper</a></td>
<td align='center'><a href="https://github.com/noahshinn024/reflexion">Code</a></td>
</tr>
<tr>
<td align='center'>CAMEL</td>
<td align='center'>Handcrafting & GPT-Generated</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2303.17760">Paper</a></td>
<td align='center'><a href="https://github.com/camel-ai/camel">Code</a></td>
</tr>
<tr>
<td align='center'>API-Bank</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/ tools</td>
<td align='center'>w/o fine-tuning</td>
<td align='center'><a href="https://arxiv.org/abs/2304.08244">Paper</a></td>
<td align='center'><a href="url">-</a></td>
</tr>
</tr>
<tr>
<td align='center'>Chameleon</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/o feedback</td>
<td align='center'>w/ tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2304.09842">Paper</a></td>
<td align='center'><a href="https://chameleon-llm.github.io/">Code</a></td>
</tr>
<tr>
<td align='center'>ViperGPT</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/ tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2303.08128">Paper</a></td>
<td align='center'><a href="https://github.com/cvlab-columbia/viper">Code</a></td>
</tr>
<tr>
<td align='center'>HuggingGPT</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>Unified</td>
<td align='center'>w/o feedback</td>
<td align='center'>w/ tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2303.17580">Paper</a></td>
<td align='center'><a href="https://huggingface.co/">Code</a></td>
</tr>
<tr>
<td align='center'>Generative Agents</td>
<td align='center'>Handcrafting</td>
<td align='center'>Read/Write/<br>Reflection</td>
<td align='center'>Hybrid</td>
<td align='center'>w/ feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>-</td>
<td align='center'><a href="https://arxiv.org/abs/2304.03442">Paper</a></td>
<td align='center'><a href="https://github.com/joonspk-research/generative_agents">Code</a></td>
</tr>
<tr>
<td align='center'>LLM+P</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>-</td>
<td align='center'>w/o feedback</td>
<td align='center'>w/o tools</td>
<td align='center'>-</td>
<td align='center'><a