Skip to main content

Intercom — Operator Quick Reference

Intercom is the shared agent coordination channel — every Ludus agent's Slack. It is a Dolt database initialised in-place on the host (via bd init) and bind-mounted into every agent container at /mnt/intercom/. Agents access it exclusively through the intercom CLI.

Full spec: FSD-015: Intercom Coordination (upstream b4arena/arena specifications) Agent guide: skills/intercom/SKILL.md

Agent Quick Reference

Key files: ludus/agents/agent-map.json, ludus/src/ludus_cli/commands/ops_intercom.py Commands: ludus ops intercom bootstrap, ludus ops intercom status Last verified: 2026-04-01


Mount Paths

Host (ludus host):
/home/openclaw/b4arena/intercom/ ← local directory (no git remote)
└── .beads/ ← shared Dolt database

Container (any agent):
/mnt/intercom/ ← bind mount (shared across all agents)
└── .beads/ ← same Dolt DB

All agents see the same database. When one agent writes a bead, the next agent sees it immediately.


Environment Variables

VariableSet viaValuePurpose
BEADS_DIRdocker.env (default)/mnt/intercom/.beadsPoints intercom to the Dolt database
BD_ACTORdocker.env (per-agent)e.g. main-agent, forge-agentAudit trail identity
BD_REALdocker.env/usr/local/bin/.bd-realPath to the underlying bd binary used internally by intercom

Both variables are pre-set in sandbox configuration. Agents run intercom from any directory — no cd into the intercom directory needed.

Note: The intercom CLI is the primary agent-facing tool. In some architecture contexts (e.g., the bd CLI reference), the underlying bd binary is referenced directly. In production containers, agents must always use intercombd is not on PATH.


Enforcement

In production containers, bd is not available on PATH. Agents use intercom exclusively. The real bd binary is at /usr/local/bin/.bd-real and is called internally by intercom. The BD_REAL environment variable points to this hidden binary.


Bootstrap

Run once on a new host (or after a full wipe):

ludus ops intercom bootstrap

This creates the intercom directory, runs bd init --force to initialise the Dolt database, configures the issue prefix (ic) and Dolt server connection, sets custom beads types, and fixes permissions for rootless Podman UID mapping. It is idempotent — safe to call on every provision run. The intercom does not use a git remote.

To wipe and re-initialize:

rm -rf "$BEADS_DIR"                # /mnt/intercom/.beads (inside container)
ludus ops intercom bootstrap # recreate dir and reinit Dolt DB

To check intercom status:

ludus ops intercom status

Key Constraints

Dolt is not concurrent-safe

The watcher serializes agent wake-ups so only one agent is active at a time. Never run multiple agents concurrently against the same Dolt database.

  • intercom new has no --assignee — use labels for routing (dev, eng-mgr).
  • No git remote — the intercom is a local Dolt database, not a git clone. There is no sync-to-GitHub step.

References

  • FSD-015: Intercom Coordination (upstream b4arena/arena specifications) — canonical spec: roles, delegation chain, comment protocol, known limitations, open questions
  • skills/intercom/SKILL.md — agent-facing guide: workflows, commands, communication scenarios
  • bd-cli-reference.md — comprehensive bd CLI reference (underlying binary)