Appearance
Director vs Agent Platform
The Matrix Agent Platform is the cognitive runtime: system.agents (sessions, memory, embeddings), system.inference (provider routing), and the provider driver packages (@open-matrix/driver-openai, driver-anthropic, driver-ollama). Director is one of its consumers — not part of it.
Roles
| Concern | Owner | Where |
|---|---|---|
| Session creation/lookup | system.agents | @open-matrix/agents |
Conversation history (session_state.read) | system.agents | @open-matrix/agents |
Memory search (memory.search) | system.agents.memory (canonical) or system.memory (legacy compat) | @open-matrix/agents |
| Embeddings | system.agents.embeddings (canonical) or system.embeddings | @open-matrix/agents |
| Provider routing & inference | system.inference | @open-matrix/inference |
| Provider credential reads | system.factotum | @open-matrix/factotum |
| Prompt UI (Chat tab) | Director | this package, via @open-matrix/chat-component/surface |
| Workstream projections | Director | this package |
The exact mounts Director targets
src/services/DirectorServiceTargets.ts enumerates them, ordered canonical-first then compat-fallback:
ts
export const DirectorServiceTargets = {
observability: {
logging: ['system.observability.logging', 'system.logging'],
tracing: ['system.observability.tracing', 'system.tracing'],
health: ['system.observability.health', 'system.health'],
metrics: ['system.observability.metrics', 'system.metrics'],
},
runtime: {
scheduler: ['system.scheduler'],
budget: ['system.budget'],
},
cognition: {
sessions: ['system.agents'],
memory: ['system.agents.memory', 'system.memory'],
embeddings: ['system.agents.embeddings', 'system.embeddings'],
},
} as const;DirectorDataAdapter calls invokeFirst(...) against each list and tags the result with backend: 'agents' | 'legacy' + backendMode: 'canonical' | 'compat' so the Sessions tab can show which backend served the request. This is the Phase-1 honest fallback; the legacy paths exist because some deployments still mount system.memory directly.
How a Director chat-tab prompt flows today
Trace from src/components/DirectorChatSurfaceHost.ts and @open-matrix/chat-component/surface/ConversationSurfaceActor.ts:
- User clicks an actor in
director-tree→director-detailactivates<director-chat-surface-host>. - The host dynamically imports
@open-matrix/chat-component/surface, registering<conversation-surface>and friends. surface.set-target { mount }propagates to the surface.- User types in
<conversation-input>; the surface callsRequestReply.execute(context, 'system.agents', '$prompt', payload)withcallerRoot,callerMount,snapshotTree, and anactivityToarray pointing back at itself. system.agentsopens (or resumes) a session, callssystem.inferencefor tokens, and streams$activityframes back. The surface renders thinking/token/done frames.
Director's Sessions tab (src/components/tabs/TabSessions.ts) uses the same mounts via DirectorDataAdapter.promptSession, listSessions, loadSessionHistory, and loadSessionActivity.
What's not yet proven end to end
WORKSTREAMS/loose-ends/items/P1.11-cognitive-product-proof.md is open as of 2026-05-05. The code wiring exists — Director invokes system.agents, the surface streams ActivityFrames, sessions persist — but there is no E2E proof that runs the full chain (Director → system.agents → system.inference → mock provider → ActivityFrames → persisted session → Chat sees the same session). Treat the chat tab as wired but not E2E-proven in the current codebase.
What this means for the user
If you select an actor in Director and the Chat tab returns errors:
- No effective inference provider configured. Verify
system.inference status.getreturns aneffective.provider. Configure via the Inference Settings webapp ormatrix invoke system.inference. system.agentsnot reachable. Verify it appears undersystem.runtimes runtimes.registeredand exposes$promptin its$introspect.- Compat-only fallback. The Sessions tab badge will read
legacyinstead ofcanonical. That is a deployment configuration issue, not a Director bug — your Host is exposingsystem.memoryinstead ofsystem.agents.memory.
See also
- Integration: agent-platform actors
- UI: Sessions tab and other detail tabs
- Reference: actor ops consumed
Source:
projects/matrix-3/packages/director/src/services/DirectorDataAdapter.ts,DirectorServiceTargets.ts,components/DirectorChatSurfaceHost.ts. Loose-end status:WORKSTREAMS/loose-ends/items/P1.11-cognitive-product-proof.md.