Forvum
forvum.ai · v0.5.0 released — Phase 2 shipped

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.5.0 · released (Phase 2 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 and scope-upgrade approval, a memory-host SDK with a Qdrant reference, a plugin marketplace, all five chat channels (Discord, Slack, WhatsApp, Matrix, Signal), skill install, the MCP server registry, GitHub Copilot, the outbound secret/PII guard, OpenTelemetry export, the tool-call approval workflow, the shell, voice, web, and browser tools, the coverage, security, and end-to-end gates, and a fresh-install usability pass — shipped.
P2 Done Phase 2 wrap-up: the provider onboarding wizard, multi-user per-identity routing, and the QA and evaluation harnesses — shipped.
P3 Done Phase 3 differentiators: the curl-installed single native binary, a queryable semantic-memory CLI over SQLite, CAPR-driven adaptive model routing, the Dev UI live config editor, a Helm chart for team-assistant mode, the CAPR-gated evaluation harness, a containerized code-execution sandbox, and native-clean JSON-Schema config validation — shipped.
P3 Next On deck: end-to-end encrypted Matrix rooms and exact checkpoint/resume of an approval-paused turn across a restart.