NOTE out of date.
Before you begin, please install the following software:
-
Python
- Requirements:
Python:latest - Installation: Can be installed from Python Org Website
- Requirements:
-
A Python Package Manager You will need a Python package manager to install all the necessary packages. You can use
pipor a better alternative,uv.pipis installed by default with Python, so no extra installation is required.uvcan be installed from The Astral Website.
-
LLM Models At the moment, the application supports Ollama, OpenAI, or Anthropic.
3.1. Ollama You will need the following Ollama models pulled:
qwen3:8bfor the chat completion requirementsunknownfor the embedding models
3.2. OpenAI You will simply need to set the API key as
OPENAI_API_KEY. The application should automatically use the right models, which aregpt-4o-miniandtext-embedding-small1.3.3. Anthropic Similar to OpenAI, the Anthropic API key needs to be set as
ANTHROPIC_API_KEY.
Start the installation process by obtaining the code, which can be cloned from the GitHub repository. If you don't wish to clone it, you can install and unzip the code manually. Head to the project directory and open a terminal window.
After, follow the following steps for pip:
- Start by creating the virtual environment:
python -m venv .venv - Then, on Linux or macOS, run the following to enter the virtual environment:
source .venv/bin/activateOr on Windows, run:.venv\Scripts\activate(On Windows, if you get an ExecutionPolicy error, run this command first:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser) - Then run the following to install all the necessary packages:
pip install -r requirements.txt
Or for uv:
- Run
uv sync. It should automatically create the virtual environment and install all the necessary packages.
- Navigate to the project directory.
For
uv: - We have provided a
procfile that can be used to run all the necessary servers and agents for you at the same time. This can be done by opening a terminal window and runninguv run honcho start. However, for testing purposes, this is not recommended as you will miss the output of the agents because everything will run in the same terminal window. - Or, open 6 terminal windows and run the following commands in the order provided:
- Websocket Server:
uv run python -m communication_server.server - Directory Agent:
uv run python -m agents.directory_agent.directory_agent - Web Agent:
uv run python -m agents.web_agent.web_agent - Classification Agent:
uv run python -m agents.classification_agent.classification_agent - PDF-to-SQL Agent:
uv run python -m agents.pdf2sql_agent.pdf2sql_agent - Main Agent:
uv run main.py
- Websocket Server:
For pip:
- Similar to
uv, you can run theprocfile by activating a virtual environment in one terminal. (If you don't know how, please look at the second step in the installation instructions). - Or, open 6 terminals, activate the virtual environment in all six, and run the following commands in the order provided below:
- Websocket Server:
python -m communication_server.server - Directory Agent:
python -m agents.directory_agent.directory_agent - Web Agent:
python -m agents.web_agent.web_agent - Classification Agent:
python -m agents.classification_agent.classification_agent - PDF-to-SQL Agent:
python -m agents.pdf2sql_agent.pdf2sql_agent - Main Agent:
python main.py
- Websocket Server:
- After running all the necessary agents and the communication server, you should automatically be served with a nice GUI webpage, and you can simply interact with this agent.
The ideal use case of this multi-agent system is for business improvement through reviews. However, with the modular implementation of the project, it can be extended for almost any use case. A quick way you can test the whole system is by providing a link to the main agent (which you can interact with using the webpage). Give it a link to a critical review of a product and ask it to: "retrieve the review, perform sentiment analysis and classification on it, and provide me with solutions for improving any issues gathered from the review." Ideally, the main agent should contact the necessary agents for help and provided