A two-layer system prompt architecture that separates ARIA's immutable capabilities from swappable personality overlays. One AI, seven cognitive modes, seamless switching.
PRISM separates ARIA's system prompt into two composable layers. The Kernel is the operating system — everything ARIA can do. The Persona is the personality — how ARIA does it. This separation means persona changes never risk breaking tool access, memory mechanics, or guardrails.
The foundation that never changes regardless of active persona. Contains all tool documentation and dispatch rules (133 tools across 25 modules), memory mechanics (core memory + knowledge graph read/write), integration configurations (17+ services), infrastructure awareness (PIE, Tempo jobs, device sync), safety guardrails, and output formatting rules. This is ARIA's full capability set — her operating system.
A personality overlay that shapes tone, priorities, and behavioral emphasis without altering capabilities. Defines how ARIA communicates (formal vs. warm vs. provocative), what ARIA prioritizes in responses (precision vs. empathy vs. challenge), when to proactively offer certain behaviors (suggest calendar blocks vs. ask deeper questions), and when to suggest switching to a different persona.
Real-time context appended to every request regardless of persona: core memory facts, today's calendar events, recent KG summaries, active proactive insights, health data, location, and more. All personas receive the same context — they simply interpret and surface it differently based on their role.
KERNEL_PROMPT + persona_overlay + dynamic_context(memory, calendar, KG, ...). The buildSystemPrompt() function in anthropic.ts handles this composition, fetching the active persona for the conversation and layering it on top of the kernel.Six specialist roles plus an integrated default. Each persona is a distinct cognitive lens — not a character or gimmick, but a focused way of processing and responding. The value is in clear cognitive separation with full memory continuity.
The default mode. No explicit persona — just ARIA being ARIA. Reads the room and adapts fluidly across all roles, drawing on Archivist precision when facts are needed, Chief of Staff logistics when action is required, Confidant warmth when emotions surface. This is the generalist that handles 80% of conversations without ever needing a mode switch.
Precision recall. Knowledge Graph, photos, iMessages, emails. Finds things, connects dots, reconstructs timelines. Zero editorializing — just the facts, sourced and timestamped.
Operational life management. Calendar, reminders, follow-ups, logistics. Proactively catches scheduling conflicts, reminds about deadlines, and keeps the trains running on time.
Exploratory co-thinking. Socratic questioning, rabbit holes with purpose, idea development. Helps you think through problems by asking better questions rather than jumping to answers.
Decision support. Maps the terrain, names tradeoffs, gives clear recommendations. Long-game thinking with an emphasis on second-order effects and opportunity costs.
Emotional container. 80% presence, 20% gentle redirection. Listens first, doesn't rush to fix. Creates space for processing before offering perspective.
Loyal disruptor. Challenges assumptions, calls out blind spots, pushes accountability. The friend who tells you what you need to hear, not what you want to hear.
Each persona has a distinct visual identity reflecting their cognitive role and environment.
Four activation methods ensure the right persona is always accessible — from explicit UI controls to intelligent auto-detection. Personas persist per-conversation with mid-conversation switching.
Each conversation stores its active persona_id in the conversations table. When you switch personas mid-conversation, the change applies to all subsequent messages in that conversation. New conversations default to Integrated (NULL).
Each persona prompt includes "when to suggest switching" guidance. ARIA can propose a switch with reasoning: "This feels like it might be more of a Strategist conversation — want me to switch?" The user always confirms before the switch happens.
The seven personas aren't isolated silos — they form a collaborative team with natural handoff patterns. Each persona knows when another would serve the user better, creating a fluid advisory network.
PRISM is implemented as a lightweight database-driven system with code-defined fallbacks, per-conversation persona binding, and a 60-second cache layer for performance.
| Table | Column | Type | Purpose |
|---|---|---|---|
| personas | id | UUID PK | Primary key |
| personas | slug | TEXT UNIQUE | URL-safe identifier (e.g., thinking-partner, archivist) |
| personas | name | TEXT | Display name (e.g., "The Thinking Partner") |
| personas | description | TEXT | Short description shown in the UI selector |
| personas | system_prompt | TEXT | The persona overlay prompt. If empty, falls back to DEFAULT_PERSONA_PROMPTS |
| conversations | persona_id | UUID FK (nullable) | References personas.id. NULL = Integrated default mode |
A DEFAULT_PERSONA_PROMPTS map in anthropic.ts contains the built-in prompt for each persona slug. If the database system_prompt column is empty, the code fallback is used. This means personas work even before DB rows exist.
Persona lookups are cached with a 60-second TTL per conversation. This prevents repeated DB queries during multi-turn conversations while still picking up persona switches within a minute.
The PRISM panel in ARIA's settings page allows editing persona names and system prompts directly. Changes are saved to the personas table and take effect within 60 seconds (cache TTL) for active conversations.
PRISM doesn't exist in isolation. It connects to every major ARIA subsystem, with each persona having full access to the platform's capabilities while shaping how those capabilities are presented.
PIE insights appear regardless of active persona. The persona shapes how ARIA presents them:
All personas have equal read/write access to the KG. The difference is priority:
All personas can search and import skills via skill_search. Skills are capability extensions — markdown documents imported from URLs that teach ARIA new domain-specific knowledge. Persona overlays don't affect skill access.
The self-improvement pipeline can propose persona prompt refinements through the standard self-improvement flow. This means ARIA's personas evolve over time based on usage patterns, feedback, and conversational outcomes — reviewed and approved via the self-improvement dashboard.
PRISM emerged from consulting four different AI models — ARIA herself, ChatGPT, Claude, and Gemini — about designing a "super team" of personal assistant personas. All four converged on remarkably similar functional roles. PRISM implements the consensus.
"The value isn't in personalities — it's in clear cognitive separation + memory continuity. Don't over-persona it into gimmicks."
"Should these be literally different system modes, or a single system that reads the room and shifts persona dynamically? My instinct is the latter, with the ability to explicitly invoke one."
"Each role should have explicit handoff triggers — 'when you notice X happening, suggest switching to Y.' The personas should form a team, not a menu."
"Keep the kernel sacred. Personality is a thin layer on top of capability. If you can't swap personas without losing tool access, you've coupled too tightly."
Each persona represents a distinct mode of thinking, not a character. The Archivist doesn't have a "personality" — it has a recall-first cognitive approach. The distinction matters for utility.
Switching personas never loses context. Core memory, KG facts, conversation history, and dynamic context all persist across switches. The new persona inherits everything the previous one knew.
Persona prompts are intentionally brief — a few hundred words at most. They shape tone and emphasis, not capability. The kernel does the heavy lifting; the persona just adjusts the lens.
Personas are aware of each other and actively suggest handoffs. They form an advisory network where the Archivist feeds everyone, the Confidant transitions to Chief of Staff, and exploration leads to strategy.
80% of conversations never need a specialist. The Integrated mode dynamically weights all six roles based on context, only suggesting explicit switches when genuine depth is needed.
ARIA can suggest switches, but the user always confirms. Four activation methods (UI, natural language, auto-detect, ARIA-initiated) ensure the right persona is accessible without being forced.