Skip to content

What is the agent platform?

The agent platform is the @open-matrix/agents package plus the surfaces that consume it. The package mounts at system.agents and ships three actors plus a runtime adapter family.

The package

json
// projects/matrix-3/packages/agents/matrix.json (excerpt)
{
  "name": "@open-matrix/agents",
  "namespace": "system.agents",
  "tier": 1,
  "root": { "type": "AgentsRoot", "export": "AgentsRoot" },
  "components": [
    { "type": "MemoryActor",      "mount": "memory",     "surface": "headless" },
    { "type": "EmbeddingService", "mount": "embeddings", "surface": "headless" }
  ],
  "exports": ["memory", "embeddings"],
  "storage": { "sqlite": { "domain": "agents", "schema": "schema.sql", "version": 2 } }
}

That manifest is the contract: the package owns the system.agents namespace, declares two stable child mounts, and owns its own SQLite schema (projects/matrix-3/packages/agents/schema.sql).

The three actors

ActorClassMountRole
Orchestration rootAgentsRootsystem.agentsRoutes $prompt to per-target child agents; maintains the session registry
Memory storeMemoryActorsystem.agents.memoryMemory + plan persistence with FTS5 hybrid search and audit trail
EmbeddingsEmbeddingServicesystem.agents.embeddingsVector embedding generation + search; OpenAI/Gemini/local with auto-fallback

AgentsRoot.isPromptRouter = true (AgentsRoot.ts:91) exempts the root from the standard $prompt seal — this actor is the prompt router for the system.

What AgentsRoot accepts

From AgentsRoot.ts:93-107:

ts
static accepts = {
  '$prompt':            { description: 'Create or continue an agent session for a caller mount' },
  '$eval':              { description: 'Evaluate omega-lisp in the persistent agents REPL session' },
  '$children':          { description: 'List child actors in this package' },
  '$status':            { description: 'Package health + storage stats' },
  '$sessionList':       { description: 'List sessions for a target key', targetKey: 'string?' },
  '$sessionDelete':     { description: 'Delete a session by ID' },
  '$sessionClearAll':   { description: 'Delete all persisted sessions and active child agents' },
  '$sessionSeed':       { description: 'Seed a session transcript for tests/tools' },
  '$metrics':           { description: 'Return system.agents metrics' },
  '$traceQuery':        { description: 'Return activity frames for a session/request' },
  'session.create':     { description: 'Create or ensure an agent session record', /* … */ },
  'session_state.upsert': { description: 'Persist JSON session state by key', /* … */ },
  'session_state.read':   { description: 'Load session history for a session ID' },
};

Where it sits in the stack

┌────────────────────────────────────────────────┐
│ Cognitive applications                         │  ← Director, Chat, Smithers
│   targets: TargetRef → backendMount: system.agents │
├────────────────────────────────────────────────┤
│ Cognitive substrate                            │  ← @open-matrix/agents (this package)
│   AgentsRoot ─ AgentActor ─ MemoryActor ─ EmbeddingService │
├────────────────────────────────────────────────┤
│ Capability layer                               │  ← @open-matrix/inference-catalog
│   system.inference (drivers, credentials, quotas) │
├────────────────────────────────────────────────┤
│ Bus + framework                                │  ← @open-matrix/core, NATS
│   MatrixActor, MxEnvelope, RequestReply, TopicRouter │
└────────────────────────────────────────────────┘

Director's DirectorApp.ts:1829 sets backendMount: 'system.agents'. Chat's ChatApp.ts:1628 reads transcripts from system.agents. Smithers wraps a different layer entirely — its SmithersSupervisor orchestrates constraint convergence and consumes inference directly through @open-matrix/inference-catalog, not through system.agents.

See also

Source: projects/matrix-3/packages/agents/matrix.json, projects/matrix-3/packages/agents/src/AgentsRoot.ts:87-107, projects/matrix-3/packages/agents/src/index.ts.