Appearance
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
| Actor | Class | Mount | Role |
|---|---|---|---|
| Orchestration root | AgentsRoot | system.agents | Routes $prompt to per-target child agents; maintains the session registry |
| Memory store | MemoryActor | system.agents.memory | Memory + plan persistence with FTS5 hybrid search and audit trail |
| Embeddings | EmbeddingService | system.agents.embeddings | Vector 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.