Skip to content

andrewdonheiser/multi-agent-platform

 
 

Repository files navigation

Multi-Agent Platform

A platform for hosting and orchestrating multiple LangFlow workflows, built on Red Hat technologies.

Architecture

         ┌───────┐                             
         │ Users │                             
         └───┬───┘                             
             │                                 
  ┌──────────┼──────────┐                      
  │  ┌───────▼───────┐  │                      
  │  │ OAuth2 Proxy  │  │                      
  │  └───────┬───────┘  │                      
  │  ┌───────▼───────┐  │        ┌────────────┐
  │  │   Frontend    │  │        │            │
  │  └───────┬───────┘  │        │ PostgreSQL │
  │  ┌───────▼───────┐  │        │            │
  │  │    Backend    ┼──┼────────►            │
  │  └───────┬───────┘  │        └─────▲──────┘
  └──────────┼──────────┘              │       
       ┌─────┼─────┐                   │       
       ▼     ▼     ▼                   │       
┌────────┬────────┬────────┐           │       
│LangFlow│Langfuse│ MLflow │───────────┘       
└────────┴────────┴────────┘                   
  • OAuth2 Proxy: Authentication gateway (mock server for local dev)
  • Frontend/Backend: User-facing app for running workflows
  • LangFlow: Visual workflow builder (developers only)
  • Langfuse/MLflow: Observability and experiment tracking
  • PostgreSQL: Shared database for all services

Components

Component Purpose Access
OAuth2 Proxy Authentication gateway (uses mock server locally) Entry point
Multi-Agent Platform User-facing UI that executes research workflows Users
LangFlow Visual workflow builder for multi-agent orchestration Developers/Admins
Langfuse LLM observability, tracing, and evaluation Developers/Admins
MLFlow Experiment tracking and model registry Developers/Admins
PostgreSQL Shared database for all services Internal

Quick Start

Prerequisites

  • Docker or Podman
  • Node.js 22+ and Python 3.11+
  • uv (Python package manager)
  • OpenShift CLI (oc) and Helm 3 (for cluster deployment)

Local Development

git clone https://github.com/cfchase/multi-agent-platform
cd multi-agent-platform
make setup
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
make services-start
make db-seed  # optional: load sample data
make dev

Access locally:

Authentication

OAuth is always enabled. Access app at http://localhost:4180.

  • No OAuth credentials: Uses mock OAuth server (any username/password works)
  • With OAuth credentials: Uses configured provider (Google, GitHub, Keycloak)

Configure OAuth in backend/.env:

OAUTH_CLIENT_ID=your-client-id
OAUTH_CLIENT_SECRET=your-secret
OAUTH_ISSUER_URL=https://...       # Optional: set for OIDC providers (Keycloak, etc.)

For setup details, see docs/AUTHENTICATION.md.

Deploy to OpenShift

Important: Configure OAuth credentials before deploying. See docs/AUTHENTICATION.md.

# Login to your cluster
oc login --server=https://your-cluster

# Configure OAuth secret (required)
cp k8s/app/overlays/dev/oauth-proxy-secret.env.example k8s/app/overlays/dev/oauth-proxy-secret.env
# Edit with your OAuth credentials

# Deploy everything
make deploy

This deploys PostgreSQL, LangFlow, MLFlow, Langfuse, and the Multi-Agent Platform app.

Get credentials and URLs:

make get-admin-credentials

Deployment Commands

# Full deployment
make deploy              # Deploy all components
make undeploy            # Remove all components

# Individual components
make deploy-db           # PostgreSQL only
make deploy-app          # Multi-Agent Platform app only
make deploy-langflow     # LangFlow only
make deploy-mlflow       # MLFlow only
make deploy-langfuse     # Langfuse only

# Status and logs
make get-admin-credentials    # Show credentials and URLs
make helm-langflow-status     # LangFlow status
make helm-mlflow-status       # MLFlow status
make helm-langfuse-status     # Langfuse status

Project Structure

├── backend/              # FastAPI backend
├── frontend/             # React + PatternFly frontend
├── langflow-flows/       # LangFlow flow definitions
│   └── examples/        # Example flows included with platform
├── config/              # Configuration templates
│   └── flow-sources.yaml.example  # Flow source configuration
├── k8s/
│   ├── app/             # App deployment (Kustomize)
│   ├── postgres/        # Database deployment (Kustomize)
│   ├── langflow/        # Legacy manifests (reference)
│   └── mlflow/          # Legacy manifests (reference)
├── helm/
│   ├── langflow/        # LangFlow Helm values
│   ├── mlflow/          # MLFlow Helm values
│   └── langfuse/        # Langfuse Helm values
├── scripts/             # Deployment and dev scripts
└── docs/                # Detailed documentation

LangFlow Flows

Flows can be imported from multiple sources (local directories, git repos). See langflow-flows/README.md for configuration details.

# Import flows from configured sources
make langflow-import

Documentation

Service Credentials

Service Access Method Credentials
Multi-Agent Platform Users OAuth2 Proxy Mock OAuth or configured provider
LangFlow Developers/Admins Built-in auth admin-credentials secret
MLFlow Developers/Admins HTTP Basic admin-credentials secret
Langfuse Developers/Admins Email/Password Self-registration

Technology Stack

  • Frontend: React, TypeScript, Vite, PatternFly
  • Backend: FastAPI, Python, SQLModel, Alembic
  • Database: PostgreSQL 15
  • Deployment: OpenShift, Kubernetes, Kustomize, Helm
  • AI/ML: LangFlow, Langfuse, MLFlow
  • Auth: OAuth2 Proxy

License

Apache License 2.0

About

A multi-agent platform for hosting LangFlow workflows with observability

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 32.0%
  • TypeScript 29.2%
  • Python 28.0%
  • Makefile 8.3%
  • JavaScript 1.1%
  • Dockerfile 0.8%
  • Other 0.6%