Complete system diagrams for every subsystem. Etherion is open source — every component is inspectable on GitHub.
Bare-metal architecture with database-enforced multi-tenancy, asynchronous job execution, and real-time updates. Full infrastructure ownership with NixOS + Ansible.
OAuth-secured connectors ingest data from your tools into PostgreSQL with pgvector. Configurable embedding models enable semantic search. All data is tenant-isolated with Row-Level Security.
IO performs dual search (KB + web), evaluates teams, and enforces fail-closed tool approval. TeamOrchestrator executes the 2N+1 loop: N specialist agents work in parallel, each validating tool requests with what/how/why justification against the ToolManager registry. A final synthesis step integrates all findings into a coherent response.
Jobs run in the background using Celery workers and Redis as the message broker. Two worker pools handle different workloads: worker-agents for orchestration, worker-artifacts for ingestion and heavy processing. Real-time status updates stream via GraphQL subscriptions.
All tools use Model Context Protocol (MCP) and connect to third-party systems via OAuth. OAuth tokens are encrypted in HashiCorp Vault. Tool calls validate against the ToolManager registry, require pre-approval for the team, and for write operations, require explicit user confirmation. Rate limiting via token bucket + Redis prevents API abuse.
Every artifact agents create is stored in MinIO and indexed in PostgreSQL. Documents, datasets, code, and media are searchable and retrievable. Full execution traces are archived as JSONL for replay and audit.
Row-Level Security policies in PostgreSQL enforce tenant isolation at the database layer. Every connection sets app.tenant_id. Application bugs cannot cause cross-tenant data leaks.
PyMuPDF extracts text and images from PDFs. Configurable embedding models generate high-dimensional vectors for both text and images. All embeddings are stored in PostgreSQL with pgvector HNSW indexes for fast cosine-distance search. Files stored in MinIO with per-tenant buckets.
All tool requests require what/how/why justification. Requests are validated in 4 steps: (1) Is it registered in ToolManager? (2) Pre-approved for this team? (3) Are tenant credentials available? (4) For write operations, confirmed by user? Blueprint creation validates tools against the registry—no hallucinated tools can enter production. Fail-closed policy ensures every tool invocation is auditable and secure.
The Team Orchestrator selects execution mode based on task complexity. Sequential mode runs one specialist at a time. Parallel mode (future) will run all specialists concurrently. Mode selection is logged in execution trace events.
One specialist active at a time. Tool requests handled immediately. Checklists maintained throughout execution. Current default mode.
All specialists run concurrently. Tool requests queued and processed in FIFO order. Deferred for future release.
Every job execution is recorded with complete LangChain message lists, tool IO, and specialist delegations. Traces are archived to MinIO as JSONL and indexed in PostgreSQL for semantic search. Replay artifacts enable 100% reconstruction of any past execution.
JWT-based authentication with invite-only onboarding. OAuth tokens encrypted in HashiCorp Vault. Subdomain validation enforces 8 rules, reserves 90+ system subdomains, and blocks 1662 banned words. Users cannot switch tenants after signup.