QM: A Multiplayer Agent Harness for Work
QM is a multiplayer agent harness designed to move AI agents from personal assistants to organizational tools. It allows employees in a startup to maintain isolated personal workspaces while collaborating with agents in shared channels, group messages, and projects.
Scoped Memory and Collaborative Environments
QM solves the complexity of company-wide agent deployment by implementing a scoped architecture. Instead of a single monolithic agent, QM provides distinct boundaries for data and permissions:
- Personal Scopes: Each user has an isolated workspace with their own memory, files, keychain view, permissions, and durable sandbox.
- Shared Scopes: Agents can operate in Slack channels and projects, where memory and tools are shared among the group.
This structure ensures that users can customize the agent to their specific needs without affecting colleagues, while still leveraging the agent for team-wide coordination.
Technical Architecture and Model Agnosticism
QM is built as a headless core that decouples the agent logic from the interface and the underlying LLM.
Core Components
- Headless Core: Written in TypeScript (Node.js) using Fastify, the core manages identity, policy, and scheduling.
- Agent Loop: The system is model-agnostic, supporting various harnesses such as Pi, OpenCode, Codex, and Claude Code. This prevents vendor lock-in by allowing operators to switch models without changing the core deployment.
- Persistence Layer: A Postgres database stores sessions, memory, and the task queue.
- Per-Scope Sandbox: Each scope has a durable sandbox (a "durable computer") where the agent can execute commands via an
executetool. Installed tools in this sandbox persist across sessions.
Interface Plugins
The core provides an HTTP API that allows various interfaces to plug in:
- Slack: An optional in-process plugin using Bolt.
- Web UI: A Vite-based frontend rendering with Lit.
- Admin Panel & Public Portal: Optional plugins for organizational management.
Security Postures and Secret Management
QM follows a security model where the agent acts on behalf of the user, utilizing that user's specific credentials and permissions. To manage risk, administrators can set one of three security postures:
- Strict: Every tool call requires human approval, except for turn-ending commands.
- Auto (Default): A classifier screens external data and tool results before they reach the model.
- Dangerous: No content screening or pauses between tool calls.
Regardless of the posture, a predeclared command policy enforces hard denials for destructive actions, such as recursive deletes or destructive SQL queries.
Deployment and Customization
QM is designed to be deployed within the operator's own cloud account (supporting AWS and Fly.io) to ensure data sovereignty.
Deployment Options
- Standard Deployment: Using the
qmCLI, users can initialize a deployment repository that manages infrastructure and connector credentials without requiring a full source checkout. - Private Fork: For organizations requiring deep customization, QM supports a private fork strategy. By creating a plain clone (rather than a GitHub fork) and placing organization-specific configurations in
deploy/layers/<org>/, teams can keep their customizations private while remaining byte-identical to the upstream core for easier merges.
Practical Use Cases
QM enables several high-leverage organizational workflows:
- Company Brain Retrieval: Searching across internal notes, emails, documents, and databases simultaneously.
- Inbox Triage: Learning a user's writing voice from past emails to draft replies and label inboxes on a schedule.
- Repository Management: Running tests, opening PRs, and monitoring CI/CD logs directly within a codebase.
- Internal App Publishing: Spinning up custom internal web apps and deploying them to specific user groups.
Community Insights and Perspectives
Discussion around QM highlights both the potential of multiplayer agents and the challenges of the current AI landscape. Some developers noted that the difficulty in multiplayer agents is often not the loop itself, but the "scoping" of context and permissions—a problem QM explicitly addresses.
However, some critics expressed skepticism regarding the utility of "multiplayer" agents, questioning if they are simply sophisticated job schedulers or if they risk creating a cycle of "agents talking to agents" without producing tangible results. There is also notable discussion regarding QM's unique contribution model, which requests human-written text descriptions of changes rather than code PRs to avoid AI-generated "slop."
"The hardest problem in multiplayer agents... has not been the agent loop. It is scoping and QM's per-person scopes plus shared rooms is a sane answer for a company-wide assistant."
"I gave an agent its own Slack channel and it started scheduling meetings with other agents without me. I've never felt more like middle management."
Sources
- HNqm