The iGent Concert platform is a distributed system for building, deploying, and operating AI agents at scale. It comprises four services that work in concert — following a musical concert theme:
ServiceRoleLanguageOne-liner
EnsembleInference GatewayGoRoutes LLM requests across providers with cache-aware, cost-optimized routing
PodiumAgent ConductorRust + TS/Python SDKsDeploys and manages AI agent processes with dual-runtime support
ChronicleWorkspace FilesystemRustFUSE filesystem providing versioned, replicated file access for agent workspaces
DiminuendoClient GatewayTypeScript (Bun)ACP WebSocket gateway that translates between client ACP and Podium’s native protocol
ConcordanceConfig ServiceTypeScript (Bun)Raft-based distributed KV store for user preferences, tenant settings, and platform configuration

How They Connect

Clients (Web, Desktop, TUI, CLI)

        │ ACP JSON-RPC 2.0 (WebSocket + REST)

┌──────────────────┐
│   Diminuendo     │ ← Gateway: auth, sessions, RBAC, integrations
│   (Gateway)      │
└──┬───────┬───────┘
   │       │
   │       │ HTTP (model config only)
   │       ▼
   │    Ensemble ← ─ ─ ─ ─ ─ ─ ─ ┐
   │     (LLMs)     HTTP (inference,
   │                 called directly
   │                 by agents)
   │  Native WebSocket            │
   │  + REST (Diminuendo
   │  translates ACP ↔ native)
   ▼                               │
Podium (Agents)
   │                               │
   ├── Agent 1 ── ── ── ── ── ── ─┘
   ├── Agent 2 ...

   └── Chronicle FUSE mounts
       (managed by Podium coordinator,
        transparent to agents)
  • Diminuendo is the entry point for all clients. It authenticates users, manages sessions, and connects to Podium for agent lifecycle and streaming. Diminuendo translates between the ACP JSON-RPC 2.0 protocol that clients speak and Podium’s native StreamUpdate protocol (via WebSocket to /agent/{instanceId} + REST). It also connects to Ensemble for model configuration queries only (GET /api/v1/models), and to the GitHub API for repo/PR/issue operations.
  • Podium receives agent lifecycle commands from Diminuendo and spawns/manages agent processes. The Podium coordinator mounts Chronicle FUSE filesystems for each agent and manages their lifecycle. Agents call Ensemble directly for LLM inference (not through Diminuendo).
  • Ensemble handles all LLM API calls — routing across providers (Anthropic, OpenAI, Google, xAI, OpenRouter), managing rate limits, optimizing for prompt cache hits, and tracking costs. Agents running inside Podium call Ensemble directly.
  • Chronicle is a FUSE filesystem mounted by the Podium coordinator for each agent’s workspace directory. It is not a standalone service that other services connect to via API. It provides automatic version history, content-addressable storage, and bidirectional replication between agent-side and sandbox-side Chronicle instances.

Design Principles

  • ACP on the client edge, native protocol internally: Clients speak ACP JSON-RPC 2.0 to Diminuendo. Diminuendo translates between ACP and Podium’s native StreamUpdate protocol via PodiumNativeMapper (mapping 40+ native event types to ACP notifications). This gives clients a standards-based interface while allowing the agent runtime to use an optimized internal protocol.
  • Process isolation: Every agent runs in its own process with its own state database and workspace filesystem.
  • Local-first with background sync: SQLite databases everywhere (Ensemble, Podium, Diminuendo), with Redis/Valkey for cross-instance coordination and S3 for durability.
  • Configuration-driven: YAML configs for providers, models, pricing, timeouts, and routing — no code changes for operational tuning.