Skip to content

enso-labs/orchestra

Repository files navigation

Enso Labs - Orchestra 🪶

AI Agent Orchestrator built on LangGraph powered by MCP & A2A

Base API infrastructure for Composable AI Agents built on LangGraph and powered by the MCP & A2A protocols by Enso Labs. The goal of Enso is the enrich the lives of the curious. Those who seek to buy back their time and compound their personal growth. Those who build and don't wait for IT to be built for them.

📖 Table of Contents

This project includes tools for running shell commands and Docker container operations. For detailed information, please refer to the following documentation:

📋 Prerequisites

  • Docker Installed
  • Python 3.11 or higher
  • Access to OpenAI API (for GPT-4o model) or Anthropic API (for Claude 3.5 Sonnet)

🛠️ Development

  1. Environment Variables:

    Create a .env file in the root directory and add your API key(s):

    # Backend
    cd <project-root>/backend
    cp .example.env .env
    
    # Frontend
    cd <project-root>/frontend
    cp .example.env .env

    Ensure that your .env file is not tracked by git by checking the .gitignore:

  2. Start Docker Services

    Below will start the database, and the GUI for viewing the Postgres DB.

    cd <project-root>
    docker compose up postgres pgadmin
  3. Setup Server Environment

    Assumes you're using astral uv. See ./backend/scripts directory for other dev utilities.

    # Change directory
    cd <project-root>/backend
    
    # Generate virtualenv
    uv venv
    
    # Activate
    source .venv/bin/activate
    
    # Install
    uv pip install -r requirements.txt -r requirements-dev.txt
    
    # Run
    bash scripts/dev.sh # Select "no" when prompted.
  4. Setup Client Environment

    # Change Directory
    cd <project-root>/frontend
    
    # Install
    npm install
    
    # Run
    npm run dev

Database Migrations

This project uses Alembic for database migrations. Here's how to work with migrations:

Initial Setup

  1. Create the database (if not exists):

    cd backend
    alembic upgrade head
    python -m seeds.user_seeder
  2. Create new

    alembic revision -m "description_of_changes"
    ### Appliy Next
    alembic upgrade +1
    
    ### Speicif revision
    alembic upgrade <revis_id>
    
    ### Appliy Down
    alembic downgrade -1
    
    ### Appliy Down
    alembic downgrade <revis_id>
    
    ### History
    alembic history

Run Playwright MCP Locally

  1. Start Ngrok on port 8931

    ngrok http 8931
  2. Run MCP server

    npx @playwright/mcp@latest \
    --port 8931 \
    --executable-path $HOME/.cache/ms-playwright/chromium-<version>/chrome-linux/chrome \
    --vision

🤝 Integrations

🗺️ Roadmap