Forvum
forvum.ai · v0.1 MVP feature-complete (M1–M20)

Personal AI agents with the rigor of enterprise software.

A configuration-first JVM platform — local-first, observable, budgeted by contract. Designed in the open on Quarkus and LangChain4j, with every architectural decision specified before code lands.

Version
v0.1 · feature-complete (M1–M20 shipped)
Stack
Java 25 · Quarkus · LangChain4j
License
Apache 2.0

Built on four pillars.

Product

Local-first by default

Runs on your machine with Ollama. Cloud providers are configurable, never required.

Product

Configuration-first

Define agents in JSON, not Java. The platform composes the runtime around your config.

Architecture

Hermetic agent isolation

Custom CDI scope plus Java 25 ScopedValue ensure each agent has its own beans, memory, and budget.

Architecture

Budgeted by contract

USD and token caps as first-class types. Hard-stop enforcement via dedicated exception, not best-effort logging.

From config to response.

turn_id propagated through every step → CONFIG agents/ demo.json FORVUM RUNTIME Agent @AgentScoped + memory + budget PROVIDERS SPI · pluggable local · cloud · custom OUTPUT Response + events SQLite ledger · provider_calls CLI · Web · Telegram

Every turn gets a UUID generated at the runtime boundary. The same id flows through the ledger and the channels — one query reconstructs the full reasoning path.

A name with intent.

Forvum is a fusion of two Latin words: forum, the public space where Roman citizens gathered to deliberate, and quorum, the minimum number of voices required for a collective decision to stand.

The platform inherits both. A space where agents convene, deliberate, and act — and where every decision leaves a trace that the system can audit, rather than vanishing inside a single opaque step.

Twenty milestones to v0.1 — shipped.

M1 Done Multi-module Maven reactor on Java 25: bom, core, sdk, engine, app.
M6 Done @AgentScoped CDI context on ScopedValue: per-agent isolation, native-ready.
M7 Done AgentRegistry: file-driven agents and sub-agent spawn with narrowed tool belts.
M9–M12 Done Provider fleet: Ollama, Anthropic, OpenAI, and Google Gemini behind one contract.
M13–M14 Done Tool layer: ToolRegistry with PermissionScope gating, plus filesystem tools with path-traversal defense.
M15–M17 Done Channel fleet: terminal (TUI), browser (Web), and Telegram chat over one turn-driver contract.
M18 Done LangGraph4j supervisor-workers orchestration with virtual-thread fan-out.
M19 Done Scheduled jobs: Quarkus Scheduler crons driving agent runs on the hot-reload config foundation.
M20 Done GraalVM native single-binary and CI matrix with a <200ms cold-start gate.
P2 Done Phase 2 (v0.5): config doctor, session replay, RBAC, structured output, session compaction, task ledger, cron delivery, device pairing, a memory-host SDK with a Qdrant reference, a plugin marketplace, the Discord channel, the coverage, security, and end-to-end gates, and a fresh-install usability pass (interactive REPL with guided setup and actionable errors) — shipped.
P2 Next Phase 2 wraps up: the remaining channels (Slack, WhatsApp, Matrix, Signal), the MCP server registry, telemetry export, the provider onboarding wizard and Copilot, and the outbound output guard.