Agent Fleet O

data-ai MCP Server

Open-source AI agent orchestration platform — self-hosted mission control for autonomous multi-agent systems. Visual DAG workflows, 450+ MCP tools, human-in-the-loop approvals. Works with Claude, GPT-4o, Gemini, Ollama, Codex.

data-aidata-ai
6 views34 stars5 forksAGPL-3.0

Why This Matters

Discovered via unknown and last synced 3mo ago.

Source
unknown
Stars
34
Last synced
3mo ago
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
34
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (34)

horizon

Queue workers

Domain

Purpose

FleetQ

n8n

per-workspace

*TL;DR — if you're building production agent systems with LLMs and want visual workflows + MCP + human oversight, FleetQ is the only platform that bundles all of it.* ## Quick Start (Docker) ```bash git clone https://github.com/escapeboy/agent-fleet-o.git cd agent-fleet make install ``` This will: 1. Copy `.env.example` to `.env` 2. Build and start all Docker services 3. Run the interactive setup wizard (database, admin account, LLM provider) Visit **http://localhost:8080** when complete. ## Quick Start (Manual — Web Setup) Requirements: PHP 8.4+, PostgreSQL 17+, Redis 7+, Node.js 20+, Composer ```bash git clone https://github.com/escapeboy/agent-fleet-o.git cd agent-fleet composer install npm install && npm run build cp .env.example .env # Edit .env — set DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD, REDIS_HOST php artisan key:generate php artisan migrate php artisan horizon & php artisan serve ``` Then open **http://localhost:8000** in your browser. The setup page will guide you through creating your admin account. > **Alternative:** Run `php artisan app:install` for an interactive CLI setup wizard that also seeds default agents and skills. ## Authentication - **No email verification** — the self-hosted edition skips email verification entirely. Accounts are active immediately on registration. - **Single user** — all registered users join the default workspace automatically. ### No-Password Mode (local installs) If you're running FleetQ locally on your own machine and don't want to enter a password on every visit, set `APP_AUTH_BYPASS=true` in `.env`: ```bash APP_AUTH_BYPASS=true # Auto-login as first user APP_ENV=local # Required — bypass is disabled in production ``` With bypass enabled, the app logs you in automatically on every request. A logout link is still shown but you'll be logged back in on the next page load — this is intentional. > **Warning:** Never set `APP_AUTH_BYPASS=true` on a server accessible from the internet. ## Configuration All configuration is in `.env`. Key variables: ```bash # Database (PostgreSQL required) DB_CONNECTION=pgsql DB_HOST=postgres DB_DATABASE=agent_fleet # Redis (queues, cache, sessions, locks) REDIS_HOST=redis REDIS_DB=0 # Queues REDIS_CACHE_DB=1 # Cache REDIS_LOCK_DB=2 # Locks # LLM Providers -- at least one required for AI features ANTHROPIC_API_KEY= OPENAI_API_KEY= GOOGLE_AI_API_KEY= # Auth bypass -- local no-password mode (never use in production) APP_AUTH_BYPASS=false ``` Additional LLM keys can be configured in **Settings > AI Provider Keys** after login. To use local models (Ollama, LM Studio, vLLM): ```bash LOCAL_LLM_ENABLED=true LOCAL_LLM_SSRF_PROTECTION=false # set false if Ollama is on a LAN IP (192.168.x.x) LOCAL_LLM_TIMEOUT=180 ``` Then configure endpoints in **Settings > Local LLM Endpoints**. ## SSH Host Access Agents can execute commands on the host machine (or any remote server) via SSH using the built-in SSH tool type. This is useful for running local scripts, interacting with the filesystem, or orchestrating host-level processes from an agent. ### How it works 1. The platform stores SSH private keys encrypted in the Credential vault. 2. An SSH Tool is configured with `host`, `port`, `username`, `credential_id`, and an optional `allowed_commands` whitelist. 3. On the first connection to a host, the server's public key fingerprint is stored via **TOFU** (Trust On First Use). Subsequent connections verify the fingerprint — a mismatch raises an error to prevent MITM attacks. 4. Manage trusted fingerprints via **Settings > SSH Fingerprints** or the `tool_ssh_fingerprints` MCP tool. ### Setup (Docker — connecting container to host) The containers reach the host machine via `host.docker.internal`, which is pre-configured in `docker-compose.yml` via `extra_hosts: host.docker.internal:host-gateway`. **Step 1 — Enable SSH on the host**

LangGraph

Make.com

nginx

Web server

Agent

AI agent configs, execution, personality, evolution

Audit

Activity logging

Integration

External service connectors (GitHub, Slack, Notion, Airtable, Linear, Stripe, Generic)

Concept

What it is

Approval

Human-in-the-loop reviews and human tasks

Tool

MCP servers, built-in tools, risk classification

Marketplace

Skill/agent/workflow sharing

postgres

PostgreSQL 17

Windows

Settings → System → Optional Features → **OpenSSH Server**, then `Start-Service sshd`

Experiment

Pipeline, state machine, playbooks

Metrics

Measurement, revenue attribution

Workflow

Visual DAG builder, graph executor

Service

Purpose

macOS

System Settings → General → Sharing → **Remote Login** → On

Crew

Multi-agent teams with lead/member roles

Budget

Credit ledger, cost enforcement

Credential

Encrypted external service credentials

redis

Cache/Queue/Sessions

WebSocket

REVERB TOOLS -.->

Signal

Inbound data ingestion

Project

Continuous/one-shot projects, scheduling

app

PHP 8.4-fpm

scheduler

Cron jobs

relay

RELAY DOM <--> VOICE ``` The platform is a single Laravel 13 monolith that exposes three coequal control surfaces over the same domain layer: the Livewire admin UI, a Sanctum-authenticated REST API at `/api/v1/*` (~175 endpoints), and `AgentFleetServer` — an MCP server with 200+ tools across 31 domains served over both HTTP/SSE and local stdio. Inbound signals (webhook, RSS, IMAP, Slack, Telegram, and the rest of the 20+ connectors) flow through `IngestSignalAction` and the `TriggerRule` evaluator into the domain layer, where the `ExperimentStateMachine` walks a 20-state pipeline by emitting `ExperimentTransitioned` events whose listeners dispatch the next `BaseStageJob` onto Horizon-managed Redis queues. Stage jobs talk to LLMs through the PrismPHP-backed AI Gateway (rate-limit, budget, idempotency, semantic-cache, schema-validation, usage-tracking middleware + circuit breakers + provider fallbacks), invoke `Tool` instances translated to PrismPHP tool calls (MCP stdio/HTTP, built-in bash/filesystem/browser, SSH with TOFU fingerprints), park `ApprovalRequest`/`HumanTask` records for the human-in-the-loop inbox, and persist `Artifact` versions plus deliver outbound messages over Email/Telegram/Slack/Webhook/ntfy. State and tenant data live in Postgres 17 with pgvector (semantic cache, UUIDv7 primary keys, JSONB+GIN indexes); Redis 7 carries the six Horizon queues, application cache, and pessimistic budget locks. Optional Docker Compose profiles add Reverb for the live team-graph WebSocket, browserless for browser tools, searxng for web search, a voice worker (LiveKit/Deepgram), a sandboxed bash sidecar, the fleetq-bridge relay, and Jaeger for OpenTelemetry tracing via `--profile observability`. Built with Laravel 12, Livewire 4, and Tailwind CSS. Domain-driven design with 33 bounded contexts — table below shows the 17 primary domains:

Outbound

Multi-channel delivery

Skill

Reusable AI skill definitions

Assistant

Context-aware AI chat with 28 tools

vite

Frontend dev server