From a95603eb5d82ed0acf6ae6cc0f416d5f7d58b526 Mon Sep 17 00:00:00 2001 From: lazychih114 <55657767+Aaron617@users.noreply.github.com> Date: Thu, 6 Mar 2025 18:06:36 +0800 Subject: [PATCH] update readme and role-playing related code --- README.md | 37 +++++++++++++++++++----------- owl/run.py | 6 ++--- owl/utils/enhanced_role_playing.py | 4 ++-- owl/utils/gaia.py | 2 +- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 842611f..8334336 100644 --- a/README.md +++ b/README.md @@ -2,55 +2,66 @@ ๐Ÿฆ‰ OWL: Towards General Multi-Agent Assistant for Real-World Task Automation -๐Ÿฆ‰ OWL is a cutting-edge framework for multi-agent collaboration that pushes the boundaries of task automation. -Built on top of the [Camel-AI Framework](https://github.com/camel-ai/camel). +๐Ÿฆ‰ OWL is a cutting-edge framework for multi-agent collaboration that pushes the boundaries of task automation, built on top of the [Camel-AI Framework](https://github.com/camel-ai/camel). OWL ranks #1 among open-source frameworks on GAIA benchmark. Our vision is to revolutionize how AI agents collaborate to solve real-world tasks. By leveraging role-playing mechanisms and dynamic agent interactions, OWL enables more natural, efficient, and robust task automation across diverse domains. -# Quick Start +# ๐Ÿ”ฅ News -1. **Clone the Github repository:** + +# ๐Ÿ› ๏ธ Installation + +## **Clone the Github repository:** ```bash $ git clone xxx ``` -2. **Set up Python Environment:** +## **Set up Environment:** ```bash $ conda create -n owl python=3.11 $ conda activate owl ``` -3. **Install Dependencies:** +## **Install Dependencies:** ```bash $ pip install -r requirements.txt ``` -4. **Set API Keys:** We use `dotenv` to manage API keys. Please copy and check the `.env.example` file to `.env` and fill in the necessary API keys. +## **Set API Keys:** -5. **Run the Demo Code:** +We use `dotenv` to manage API keys. Please copy and check the `.env.example` file to `.env` and fill in the necessary API keys. + +# ๐Ÿš€ Quick Start +Run the following minimal example: + ```bash $ python run.py ``` -Additionally, We have provided a script to reproduce the results on GAIA. You can check the `run_gaia_roleplaying.py` file and run the following command: +# ๐Ÿงช Experiments + +Additionally, We have provided a script to reproduce the results on GAIA. +You can check the `run_gaia_roleplaying.py` file and run the following command: ```bash $ python run_gaia_roleplaying.py ``` -# Community +# โฑ๏ธ Future Plans -[Camel Link] - -[This project] +- [ ] Write a technical blog post detailing our exploration and insights in multi-agent collaboration in real-world tasks. +- [ ] Enhance the toolkit ecosystem with more specialized tools for domain-specific tasks. +- [ ] Develop more sophisticated agent interaction patterns and communication protocols # Architecture + + # Cite diff --git a/owl/run.py b/owl/run.py index adbcfb5..39e74ae 100644 --- a/owl/run.py +++ b/owl/run.py @@ -8,14 +8,14 @@ from dotenv import load_dotenv from retry import retry from loguru import logger -from utils import DeepSwarmRolePlaying, process_tools, run_society +from utils import OwlRolePlaying, process_tools, run_society import os load_dotenv() -def construct_society(question: str) -> DeepSwarmRolePlaying: +def construct_society(question: str) -> OwlRolePlaying: r"""Construct the society based on the question.""" user_role_name = "user" @@ -62,7 +62,7 @@ def construct_society(question: str) -> DeepSwarmRolePlaying: 'with_task_specify': False, } - society = DeepSwarmRolePlaying( + society = OwlRolePlaying( **task_kwargs, user_role_name=user_role_name, user_agent_kwargs=user_agent_kwargs, diff --git a/owl/utils/enhanced_role_playing.py b/owl/utils/enhanced_role_playing.py index 49e1d83..38533dc 100644 --- a/owl/utils/enhanced_role_playing.py +++ b/owl/utils/enhanced_role_playing.py @@ -22,7 +22,7 @@ from retry import retry from .common import * -class DeepSwarmRolePlaying(RolePlaying): +class OwlRolePlaying(RolePlaying): def __init__( self, **kwargs @@ -297,7 +297,7 @@ Please note that our overall task may be very complicated. Here are some tips th ) -class DeepSwarmGaiaRolePlaying(DeepSwarmRolePlaying): +class OwlGaiaRolePlaying(OwlRolePlaying): def __init__(self, **kwargs): super().__init__(**kwargs) diff --git a/owl/utils/gaia.py b/owl/utils/gaia.py index c5e5938..eae0e10 100644 --- a/owl/utils/gaia.py +++ b/owl/utils/gaia.py @@ -217,7 +217,7 @@ class GAIABenchmark(BaseBenchmark): 'with_task_specify': False, } - society = DeepSwarmGaiaRolePlaying( + society = OwlGaiaRolePlaying( **task_kwargs, user_role_name=user_role_name, user_agent_kwargs=user_agent_kwargs,