Multi-agent labs Β· 40 sandboxed tools Β· private RAG Β· GPU dispatcher Β· enterprise auth β all on your servers, in two commands.
Get started Β· Live tour Β· Docs Β· Why Bob Labs
Bob Labs runs persistent multi-agent workspaces on your own servers. Each Lab is a sandboxed working directory where an Orchestrator coordinates specialist Agents through a shared event bus, calling 40 built-in tools, ingesting private RAG, dispatching GPU jobs, and writing artifacts back to disk. Pause it, resume it, schedule it, ship it as JSON.
It's the missing layer between a chat UI and your infrastructure:
- Multi-agent without a SaaS: Orchestrator + N agents, each with their own model, prompt, memory, and tool grants. They talk through a typed message bus, not through your prompts.
- Sandboxed by default: every code/shell call runs in a per-Lab container with command allow-lists and resource caps. The agent can't
curl evil.comunless you said it could. - Total privacy: PostgreSQL, Qdrant, Ollama/vLLM β all on your hardware. No third-party tokens leak through, ever.
- Full infra handling for self-hosted models: a GPU dispatcher auto-discovers your fleet (1 to N machines), routes models to the right card, hot-swaps loads, and gives you a live load-balancer feed.
- Enterprise grade: JWT auth, role-based access, per-lab ACL (owner/editors/viewers), admin panel, audit logs, time-limited access tokens.
If you've ever tried to give an LLM access to your stack and walked away cold, this is the thing.
| LangChain Apps | Open WebUI | Bob Labs | |
|---|---|---|---|
| Self-hosted, no SaaS calls | depends on tools | yes | yes |
| Multi-agent orchestration | glue code | no | first-class |
| Persistent labs (pause/resume/schedule) | no | no | yes |
| Sandboxed code/shell execution | bring-your-own | no | per-lab containers |
| Built-in tools (no plugin install) | bring-your-own | partial | 40 in the box |
| GPU dispatcher across N hosts | no | no | yes |
| Private RAG (Qdrant + LightRAG) | bring-your-own | partial | yes |
| Per-resource ACL (owner/editors/viewers) | no | partial | yes |
| Two-command deploy | no | yes | yes |
| Open source | varies | yes | Apache 2.0 |
git clone https://github.com/boblabs-eu/boblabs.git
cd bob-manager
cp .env.example .env # fill JWT_SECRET, ADMIN_SECRET, ADMIN_EMAIL
docker compose up -d --buildThat's it.
| Service | URL |
|---|---|
| Dashboard | http://localhost:3000 |
| API + Swagger | http://localhost:8888/docs |
Need GPU services on a remote box? cd agent && sudo bash install.sh on each GPU host. The agent auto-registers and starts streaming metrics back. No Kubernetes. No SaaS. No waiting list.
Production-grade hardening (TLS, secrets management, hardened compose) is documented in INSTALL_PROD.md.
Persistent workspaces with an Orchestrator + N Agents. Each agent has its own system prompt, model, memory, and tool grants. Pause-resume-stop. Pluggable loop strategies (Plan-Execute, Critique-Refine, Round-Robin, custom). Anti-loop detector catches semantic and tool-call repetition. Import/export labs as versionable JSON. LABS.md
Auto-discovered from tool_*.py. Code (python_exec, shell_exec), files (file_read, file_write), web (web_search, web_extract, browser_navigate, browser_snapshot, excalidraw, mermaid_to_img), media (image_generate, audio_generate, video_generate, audio_mix, media_pipeline, comfyui), comms (mail, twitter, media_post, postiz), data (youtube, gouv_data_fr, blockchain, defi_data, web3_portfolio, trading, trustless_otc), database (db_query, db_execute, db_schema), RAG (rag_search, rag_ingest, rag_list_collections), memory (memory_save, memory_search, handle_memory), reasoning (think), ops (control_server, clock, call_agent). All sandboxed, all auditable. TOOLS_AND_SANDBOX.md
Qdrant for vectors + LightRAG for graph-enhanced retrieval. Per-collection access control. Ingest PDF, Markdown, HTML, plain text, web URLs. Query in local, global, or hybrid mode. The agent gets a tool, you keep the data. RAG.md Β· LIGHTRAG.md
Auto-discovers agents, routes inference to the least-loaded provider, retries on failure, hot-swaps Ollama models without dropping requests. Live load-balancer feed shows every dispatch in real time. DISPATCHER_AND_MODEL_ROUTING.md
Nine GPU microservices, each in its own compose file, mix and match per host:
| Service | What | Default port |
|---|---|---|
| MusicGen | Text β music (small/medium/large/melody) | 3014 |
| Bark | TTS, singing | 3015 |
| RVC | Voice conversion | 3016 |
| CoquiTTS | TTS + voice cloning (XTTS v2) | 3017 |
| STT | Speech-to-text (Whisper) | 7865 |
| LTX-Video | Text/image β video (LTX-2.3, 22B DiT) | 3018 |
| Wan-Video | Text/image β video (Wan 2.2, 5B) | 3019 |
| Remotion | React β MP4 programmatic video | 3020 |
| ComfyUI bridge | SDXL / Flux / SD3 workflows | varies |
GPU_SERVICES.md Β· MUSIC_PIPELINES.md
JWT tokens (1-day default). Role-based access (admin / user). Per-resource ACL on labs, projects, RAG collections, wallets β {owner, editors, viewers} keyed by email, enforced in SQL. Time-limited access tokens managed from an admin panel β invite users by email, revoke with one click. Full audit log of every request. ACCESS_CONTROL.md
First-class adapters for Ollama, vLLM, HuggingFace, OpenAI, Anthropic, xAI, Groq, DeepSeek, plus a Claude CLI sidecar that lets a Claude Max subscription drive a lab through Claude Code's -p mode (OpenAI-compatible /v1 endpoints, models namespaced claude-cli:*). Mix local + API in the same lab; the dispatcher fails over automatically. DISPATCHER_AND_MODEL_ROUTING.md Β· CLAUDE_CLI.md
Two agent backends: native (Bob orchestrates a chosen model directly) or Hermes (Nous Research's hermes-agent, running in a per-agent container with its own persistent memory volume + tool layer). Switch live from the agent edit dialog. AGENTS_AND_ORCHESTRATION.md
Every agent decision, tool call, and inter-agent message is broadcast over a WebSocket. Plug it into a dashboard, a CLI, a Discord bot β it's just JSON.
Wallet tracking, portfolio history, on-chain queries (EVM + Solana via Blockscout), DeFi data (CoinGecko / DeFiLlama / DEX Screener), an agent-callable trading tool with policy guards, and a TrustlessOTC P2P bridge. WEB3_TOOL.md
Server fleet management, real-time CPU/RAM/GPU/disk/network metrics, remote command execution, multi-step YAML workflows, project tracking, resource library, news/RSS aggregation, blog publisher.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Lab : "Daily research brief" β
β β
β βββββββββββββββ plan ββββββββββββββ β
β β OrchestratorβββββββββββββββΆβ Agent A β web_search β
β β (qwen 14B) β β Researcher β web_extract β
β ββββββββ¬βββββββ βββββββ¬βββββββ rag_search β
β β β β
β β results βββ΄βββββββββ β
β βΌ β Agent B β python_exec β
β βββββββββββββββ β Analyst β file_write β
β β shared ββββββββββββββββββββ΄βββββββββββ β
β β workspace β memory + artifacts β
β β /data/lab/ β β
β βββββββββββββββ β
β β
β β event bus β pause/resume β ACL β JSON export β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββΌβββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββ ββββββββββββ ββββββββββββ
β bob-api β β Sandbox β β GPU host β
β (FastAPI)β β containerβ β (Ollama, β
β β β per-lab β β vLLM,β¦) β
βββββββββββ ββββββββββββ ββββββββββββ
The Orchestrator owns the loop. Agents are stateless turn-takers. The workspace is where artifacts land. Tool calls are the only side effects, and they're all gated.
ARCHITECTURE.md for the full picture (database schema, websocket protocol, agent execution model).
- Daily research brief β Orchestrator dispatches three specialist desks (competitive, market signals, customer voice) in parallel; an Editor agent writes the final HTML/MD digest.
- Code-base archaeologist β Ingest a repo into RAG, ask questions, generate refactoring plans, write the patches.
- Crypto desk β Watch wallets, evaluate predictions, draft trades β with read-only or signed-tx tool grants.
- Voice/video pipeline β One Lab takes a topic, drafts a script, generates audio (Bark), generates a video (Wan-Video), uploads to YouTube.
- Internal tools backend β Build a private app on top of bob-api; consumer apps register via the admin panel and call bob-api with HMAC-signed requests.
Lab definitions are versioned JSON in templates/lab_examples/. Drop one in, hit run.
35 docs, ~12k lines. Auto-tested smoke gate documented at TOOL_TEST_REPORT.md.
| Get oriented | GENERAL_OVERVIEW Β· ARCHITECTURE Β· QUICK_LAUNCH |
| Build a lab | LABS Β· AGENTS_AND_ORCHESTRATION Β· PROMPT_STRUCTURE Β· ANTI_LOOP |
| Tools & sandbox | TOOLS_AND_SANDBOX Β· WEB3_TOOL |
| RAG | RAG Β· LIGHTRAG |
| Models & GPUs | DISPATCHER_AND_MODEL_ROUTING Β· GPU_SERVICES Β· MUSIC_PIPELINES |
| Auth & ops | ACCESS_CONTROL Β· API_REFERENCE Β· SCHEDULING_AND_CRON |
| Run it in prod | INSTALL_PROD Β· CONFIGURATION Β· AGENT Β· CONSUMER_APPS |
| Layer | Choice |
|---|---|
| API | FastAPI Β· Python 3.12 Β· SQLAlchemy 2 (async) Β· Pydantic v2 |
| DB | PostgreSQL 16 Β· JSONB ACL columns Β· single-file schema (init.sql) |
| Vectors | Qdrant 1.12 Β· LightRAG (graph-enhanced) |
| UI | React 18 Β· React Router v6 Β· Recharts Β· WebSocket |
| GPU services | PyTorch Β· CUDA 12.1 Β· AudioCraft Β· Bark Β· XTTS Β· Whisper Β· Remotion Β· LTX-Video Β· Wan-Video |
| Models | Ollama Β· vLLM Β· HuggingFace Β· OpenAI Β· Anthropic Β· xAI Β· Groq Β· DeepSeek |
| Auth | JWT (HS256) Β· per-resource ACL Β· admin-managed access tokens |
| Ops | Docker Compose Β· structured request log Β· admin observability dashboard |
bob-manager/
βββ control-plane/ FastAPI backend (api, services, models, repos, websocket, engine)
βββ agent/ Python agent for GPU servers (collectors, inspectors, executor, ws)
βββ frontend/ React 18 SPA (pages, components, services)
βββ sandbox/ Per-lab isolated execution container
βββ remotion-api/ React β MP4 video rendering service
βββ script-runner/ GPU script discovery & execution
βββ gpu-services/ Standalone GPU microservices (musicgen, bark, rvc, coqui-tts, stt, ltx-video, wan-video)
βββ templates/ Agent presets + lab blueprint examples (JSON)
βββ scripts/ Tooling (smoke tests, deep tests, publish)
βββ docs/ 35 docs, ~12k lines
- β All 40 built-in tools pass the smoke gate. See TOOL_TEST_REPORT.md.
- β Two-command deploy from a fresh clone.
- β Used in production by the maintainers (this is real software, not a slide deck).
- π§ͺ Public release fresh out the door β please file issues, even small ones. Some features still in development.
Apache License 2.0 β use it, fork it, ship it. See NOTICE for attribution and CITATIONS.md for upstream model and library credits.
Third-party components (LightRAG, Qdrant, Ollama, vLLM, ComfyUI, Remotion, Bark, XTTS, MusicGen, RVC, LTX-Video, Wan-Video, Riffusion, β¦) keep their own licenses.
Star if this saved you a weekend.



