Johan Holm 711c2805e4 feat(search): Add robust fallback system with configurable retries and enhanced error handling
- Implement multi-engine failover system with configurable fallback order
    - Add retry logic with exponential backoff and rate limit detection
    - Introduce search configuration options:
      * fallback_engines: Ordered list of backup search providers
      * retry_delay: Seconds between retry batches (default: 60)
      * max_retries: Maximum system-wide retry attempts (default: 3)
    - Improve error resilience with:
      - Automatic engine switching on 429/Too Many Requests
      - Full system retries after configurable cooldown periods
      - Detailed logging for diagnostics and monitoring
    - Enhance engine prioritization logic:
      1. Primary configured engine
      2. Configured fallback engines
      3. Remaining available engines

    Example configuration:
    [search]
    engine = "Google"
    fallback_engines = ["DuckDuckGo", "Baidu"]  # Cascading fallback order
    retry_delay = 60                            # 1 minute between retry batches
    max_retries = 3                             # Attempt 3 full system retries

    This addresses critical reliability issues by:
    - Preventing search failures due to single-engine rate limits
    - Enabling recovery from transient network errors
    - Providing operational flexibility through configurable parameters
    - Improving visibility through granular logging (INFO/WARN/ERROR)
2025-03-17 10:43:42 +01:00
2025-03-15 17:49:52 +08:00
2025-03-09 22:27:20 +08:00
2025-03-08 15:51:28 +08:00
2025-03-09 22:27:20 +08:00
2025-03-16 09:52:16 +09:00
2025-03-06 22:57:07 +08:00
2025-03-12 13:16:05 +08:00
2025-03-17 00:23:38 +08:00
2025-03-12 13:16:05 +08:00

English | 中文 | 한국어 | 日本語

GitHub stars License: MIT Discord Follow

👋 OpenManus

Manus is incredible, but OpenManus can achieve any idea without an Invite Code 🛫!

Our team members @Xinbin Liang and @Jinyu Xiang (core authors), along with @Zhaoyang Yu, @Jiayi Zhang, and @Sirui Hong, we are from @MetaGPT. The prototype is launched within 3 hours and we are keeping building!

It's a simple implementation, so we welcome any suggestions, contributions, and feedback!

Enjoy your own agent with OpenManus!

We're also excited to introduce OpenManus-RL, an open-source project dedicated to reinforcement learning (RL)- based (such as GRPO) tuning methods for LLM agents, developed collaboratively by researchers from UIUC and OpenManus.

Project Demo

Installation

We provide two installation methods. Method 2 (using uv) is recommended for faster installation and better dependency management.

Method 1: Using conda

  1. Create a new conda environment:
conda create -n open_manus python=3.12
conda activate open_manus
  1. Clone the repository:
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
  1. Install dependencies:
pip install -r requirements.txt
  1. Install uv (A fast Python package installer and resolver):
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Clone the repository:
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
  1. Create a new virtual environment and activate it:
uv venv --python 3.12
source .venv/bin/activate  # On Unix/macOS
# Or on Windows:
# .venv\Scripts\activate
  1. Install dependencies:
uv pip install -r requirements.txt

Configuration

OpenManus requires configuration for the LLM APIs it uses. Follow these steps to set up your configuration:

  1. Create a config.toml file in the config directory (you can copy from the example):
cp config/config.example.toml config/config.toml
  1. Edit config/config.toml to add your API keys and customize settings:
# Global LLM configuration
[llm]
model = "gpt-4o"
base_url = "https://api.openai.com/v1"
api_key = "sk-..."  # Replace with your actual API key
max_tokens = 4096
temperature = 0.0

# Optional configuration for specific LLM models
[llm.vision]
model = "gpt-4o"
base_url = "https://api.openai.com/v1"
api_key = "sk-..."  # Replace with your actual API key

Quick Start

One line for run OpenManus:

python main.py

Then input your idea via terminal!

For unstable version, you also can run:

python run_flow.py

How to contribute

We welcome any friendly suggestions and helpful contributions! Just create issues or submit pull requests.

Or contact @mannaandpoem via 📧email: mannaandpoem@gmail.com

Note: Before submitting a pull request, please use the pre-commit tool to check your changes. Run pre-commit run --all-files to execute the checks.

Community Group

Join our networking group on Feishu and share your experience with other developers!

OpenManus 交流群

Star History

Star History Chart

Acknowledgement

Thanks to anthropic-computer-use and browser-use for providing basic support for this project!

Additionally, we are grateful to AAAJ, MetaGPT, OpenHands and SWE-agent.

OpenManus is built by contributors from MetaGPT. Huge thanks to this agent community!

Cite

@misc{openmanus2025,
  author = {Xinbin Liang and Jinyu Xiang and Zhaoyang Yu and Jiayi Zhang and Sirui Hong},
  title = {OpenManus: An open-source framework for building general AI agents},
  year = {2025},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/mannaandpoem/OpenManus}},
}
Description
No fortress, purely open ground. OpenManus is Coming.
Readme MIT 43 MiB
Languages
Python 99.9%