Awesome
<h1 align="center"> <img src="misc/art_fig.png" width="200" /></a><br> <b>Automated Design of Agentic Systems</b><br> </h1> <p align="center"> <a href="https://github.com/ShengranHu/ADAS/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/sematic?style=for-the-badge"></a> <a href="https://arxiv.org/abs/2408.08435"><img src="https://img.shields.io/badge/arXiv-2408.08435-b31b1b.svg?logo=arxiv&style=for-the-badge"></a> <a href="https://www.shengranhu.com/ADAS/"><img src="https://img.shields.io/badge/-Website-%238D6748?style=for-the-badge&logo=Website&logoColor=white"></a> <a href="https://twitter.com/shengranhu/status/1825555341922480322"><img src="https://img.shields.io/badge/twitter-%230077B5.svg?&style=for-the-badge&logo=twitter&logoColor=white&color=00acee"></a> </p>In this work, we describe a newly forming research area Automated Design of Agentic Systems (ADAS), which aims to automatically create powerful agentic system designs, including inventing novel building blocks and/or combining them in new ways.
We present a simple yet effective ADAS algorithm named Meta Agent Search to demonstrate that agents can invent novel and powerful agent designs. In Meta Agent Search, a "meta" agent iteratively programs interesting new agents in code based on previous discoveries.
<p align="center"> <img src="misc/algo.png"/></a><br> </p>Setup
conda create -n adas python=3.11
conda activate adas
pip install -r requirements.txt
# provide your OpenAI API key
export OPENAI_API_KEY="YOUR KEY HERE"
Running Instructions
Running Meta Agent Search
To run experiments for each domain, navigate to its respective folder. The code in each folder is self-contained. Launch experiments using the search.py
script located in each domain's folder.
python {DOMAIN}/search.py
Replace {DOMAIN}
with the specific domain folder name {_arc
, _drop
, _mgsm
, ...} to run the experiment for.
Customizing Meta Agent Search for New Domains
You can easily adapt the code to search for new domains. To do so, follow these steps:
-
Modify the
evaluate_forward_fn()
function and adjust any necessary formatting prompts (e.g. this line) in thesearch.py
file. -
Consider adding additional basic functions for the meta agent to utilize during the design process (similar to this line).
-
Update the domain-specific information within the prompts to match the requirements of your new domain (e.g. this line).
-
Run the search and evaluation on your new domain.
Safety Consideration
[!WARNING]
The code in this repository involves executing untrusted model-generated code. We strongly advise users to be aware of this safety concern. While it is highly unlikely that model-generated code will perform overtly malicious actions in our current settings and with the models we use, such code may still act destructively due to limitations in model capability or alignment. By using this repository, you acknowledge and accept these risks.
Citing
If you find this project useful, please consider citing:
@article{hu2024ADAS,
title={Automated Design of Agentic Systems},
author={Hu, Shengran and Lu, Cong and Clune, Jeff},
journal={arXiv preprint arXiv:2408.08435},
year={2024}
}