StackA2A
orchestrationpython

RabbitHole

30

by VinsmokeSomya

πŸ‡ The 'RabbitHole' framework provides the tools for asynchronous A2A communication and task management. πŸ“‘πŸ‡ ✨ Build powerful AI agents that communicate and collaborate.

9 starsUpdated 2025-11-09
Quality Score30/100
β˜… Community
22
β—· Freshness
45
βœ“ Official
30
⚑ Skills
10
⬑ Protocol
40
πŸ”’ Security
20

Getting Started

1Clone the repository
$ git clone https://github.com/VinsmokeSomya/RabbitHole
2Navigate to the project
$ cd RabbitHole
3Install dependencies
$ pip install -r requirements.txt
4Run the agent
$ python main.py

Or connect to the hosted endpoint: https://vinsmokesomya.github.io/RabbitHole/

README


RabbitHole is a Python framework for building and orchestrating LLM-powered agents. It acts as a universal translator, providing a standardized Agent-to-Agent (A2A) communication protocol that allows agents from different providers (Google, OpenAI, etc.) to work together seamlessly.

While inspired by tools like LangChain that help build powerful individual agents, RabbitHole focuses on a higher level of abstraction: multi-agent orchestration. It provides the backbone for a society of agents to collaborate on complex tasks.

πŸ€” Why RabbitHole?

Building AI agents involves more than just writing prompts. You need to handle server setup, communication protocols, and task management. RabbitHole abstracts away this boilerplate, providing a robust foundation for your agent applications.

Use RabbitHole for:

  • Standardized Communication: Built on Google's A2A protocol, RabbitHole ensures your agents speak a common language, making them interoperable by design.
  • Rapid Development: Get an agent server running with minimal code. Our framework provides the structure, so you can focus on your agent's unique logic.
  • Extensible by Design: With a plug-in architecture, RabbitHole makes it easy to integrate agents from different providers. We currently support Google's ADK and OpenAI's Agent SDK, with more on the way.
  • Integrated Tooling: Comes with a built-in CLI and a Streamlit UI for easy testing and interaction with your agents right out of the box.

πŸš€ Getting Started

Installation

Get started by installing RabbitHole directly from the source. We recommend using a virtual environment.

# 1. Clone the repo
git clone https://github.com/VinsmokeSomya/RabbitHole.git

cd RabbitHole

# 2. Create a virtual environment and activate it
# We recommend `uv`, but Python's venv works great too.
python -m venv .venv

source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# 3. Install in editable mode with all dev dependencies
pip install -e ".[dev]"

Run Your First Agent

Let's run the pre-built Google ADK agent.

1. Set up your API Key: Navigate to rabbithole/agent/adk/, copy .env.template to .env, and add your Google API key.

cd rabbithole/agent/adk

cp .env.template .env
# Now, edit .env to add your key

2. Launch the Agent Server: From the rabbithole/agent/adk directory, run:

python __main__.py

The agent is now live on http://localhost:10000.

3. Talk to Your Agent (from a new terminal): Navigate to the CLI directory and start the client.

# In a new terminal, from the project root
cd ../../cli

python __main__.py --agent http://localhost:10000

You're now chatting with your first agent! For more detailed instructions, check out How to Run and Test.

πŸ“š Documentation

Our documentation provides a deep dive into the framework's architecture, vision, and usage.

πŸ—ΊοΈ Vision & Roadmap

Our vision is to build the premier open-source framework for creating and orchestrating multi-agent systems. To understand our goals and where the project is headed, please see our detailed documents:

🀝 Contributing

RabbitHole is an open-source project, and we welcome contributions from the community! Whether it's adding a new agent integration, improving documentation, or fixing a bug, your help is valued.

Please read our Developer Guide to get started.

πŸ“ License

This project is licensed under the MIT License.

Capabilities

StreamingPush NotificationsMulti-TurnAuth: none
agent-communicationagent-frameworkagent-orchestrationaiai-agentsai-toolkitautonomous-agentsdecentralized-aillmmulti-agent-systems
View on GitHub