Domain · Features

Psyche Domain — Feature Reference

Personas are the configurable identity of Psyche.

22sections35 minread

On this page
Supporting documentation. This domain also carries 36 operational supporting docs under docs/domains/psyche/ (API notes, ADRs, deep topic guides) — reconciled here by linking, kept beside the code as supporting material rather than a second canonical source (§2, §13).

Psyche (formerly codenamed Serwaa) is the Hyper-Realistic AI Virtual Assistant Platform of the Oshun ecosystem. It creates photorealistic digital humans that join video conferences, hold real-time conversations, perceive the emotional state of participants, and perform computer tasks on their behalf — indistinguishably from a real human participant. Psyche combines three foundational technologies: a neural avatar rendering engine built on 3D Gaussian Splatting (a technique that reconstructs a photorealistic 3D scene from training video), a pipelined neural voice synthesis system achieving approximately 75ms time-to-first-audio-byte latency, and Claude-powered conversational AI with 200K token context. The result is a digital human that can listen, understand, speak, express appropriate emotion, and act — all in real time, inside Zoom, Microsoft Teams, Google Meet, and Webex.

Library prefix: @psyche/* | 135 libraries under libs/psyche/, plus 16 Python services under services/psyche/


1. Digital Human Personas#

Personas are the configurable identity of Psyche. Each persona is a complete virtual assistant with a distinct identity, personality, voice, photorealistic appearance, domain expertise, memory, and behavioral profile. Multiple personas can coexist on a single Psyche deployment, each serving different use cases — a "Dr. Sarah Chen" for medical consultations, a "Marcus Webb" for sales, a "Priya Nair" for technical support.

1.1 Identity Creation#

The following fields define the persona's professional identity. This information shapes how the assistant introduces itself to meeting participants and frames its conversational responses.

Field Description
Full name First and last name for the virtual assistant's identity
Job title Professional title shown to meeting participants (e.g., "Senior Solutions Engineer")
Organization Company or division the persona represents, shaping conversational context
Short bio A 2–3 sentence professional summary shown to meeting participants when the persona joins
Background story A detailed career narrative (up to 2,000 characters) that shapes conversational authenticity and depth
Profile photo Reference headshot (JPEG, PNG, WebP; up to 10 MB) used as the basis for avatar generation

1.2 Personality Engineering — OCEAN Model#

Personality is configured using the scientifically validated Big Five (OCEAN) model. Each trait is set on a continuous 0.0–1.0 scale, giving fine-grained control over the persona's behavioral tendencies. The OCEAN settings translate directly into LLM system prompt parameters, ensuring personality is consistent across all interactions.

Trait Low (0.0–0.3) Mid (0.4–0.6) High (0.7–1.0)
Openness Practical, conventional, routine Balanced curiosity Creative, curious, open to novel ideas
Conscientiousness Flexible, spontaneous Reasonably organized Meticulous, thorough, detail-oriented
Extraversion Reserved, calm, thoughtful Situationally social Outgoing, energetic, enthusiastic
Agreeableness Direct, assertive, competitive Balanced cooperation Warm, cooperative, empathetic, trusting
Neuroticism Emotionally stable, calm Normal variability Sensitive, empathetic to stress, emotive

1.3 Communication Style and Tone#

Beyond the OCEAN personality model, operators can directly configure the surface-level communication style that the persona projects in every utterance.

Dimension Options
Communication style Formal, Professional, Casual, Friendly, Technical
Conversational tone Warm, Neutral, Enthusiastic, Calm, Assertive
Custom instructions Free-form behavioral rules up to 2,000 characters (e.g., "Always greet by first name", "Mirror the user's level of technical language")

1.4 Personality Presets#

For operators who want a quick starting point, one-click personality configurations are available for the most common professional use cases. Each preset maps to a specific combination of OCEAN trait values and communication settings.

Preset Best For Configuration
Warm Professional Customer success, onboarding, HR High agreeableness, professional style, warm tone
Analytical Expert Technical support, data analysis High conscientiousness + openness, technical style
Friendly Guide Retail, hospitality, consumer service High extraversion, casual style, enthusiastic tone
Calm Advisor Healthcare, finance, legal, crisis Low neuroticism, professional style, calm deliberate tone

1.5 Expertise Configuration#

Expertise configuration shapes what the persona knows, how deeply it engages with specific topics, and what it does when a question falls outside its domain.

  • Domain tagging: Assign expertise areas from a controlled vocabulary (e.g., "Product Support", "API Integration", "Insurance Claims", "Investment Strategy").
  • Proficiency levels: Set per-domain depth as Beginner, Intermediate, Advanced, or Expert — this shapes how deeply the persona engages with domain-specific questions.
  • Topic boundaries: Explicitly define what the persona should refuse to address and where to redirect the user (e.g., "Do not provide medical diagnoses; refer to a licensed physician").
  • Escalation triggers: Configure conditions that automatically escalate to a human — repeated resolution failures, detected customer frustration, specific keyword triggers, or out-of-scope requests exceeding a threshold.

1.6 Tool Assignment#

Each persona can be granted access to a specific set of tools it is permitted to invoke during conversations. Tool permissions are scoped per persona — a customer service persona cannot access the file system or run code, while an enterprise assistant persona may have broader access.

Tool Type Description
MCP tools Integrations from any MCP (Model Context Protocol) server
API tools REST API endpoint invocations with configured authentication
Webhook tools Outbound webhook triggers to external systems
Built-in tools Platform-native capabilities: knowledge search, calendar, lookup

1.7 Persona Lifecycle#

A persona moves through a well-defined lifecycle from initial creation through production use. The Training state is significant because avatar and voice model generation can take 1–4 hours — no sessions can be started until training completes and the persona transitions to Active.

Status Meaning
Draft Under construction, not yet deployable
Training Avatar and voice models are being generated (1–4 hours)
Active Fully operational and available for live sessions
Inactive Temporarily disabled; can be re-activated without retraining
Archived Preserved for records and audit; not available for new sessions

2. Hyper-Realistic Avatar System#

The avatar system creates photorealistic digital humans from a short video recording using 3DGS (3D Gaussian Splatting — a neural rendering technique that represents the scene as millions of small 3D Gaussian "splats" rather than traditional mesh polygons, producing photorealistic results from short training videos without requiring a controlled studio environment).

2.1 Avatar Training — @psyche/avatar-core#

Training takes a short video of the target person and produces a GPU-resident neural model that renders the face at 30+ FPS. The pipeline runs entirely offline before the persona becomes active.

Aspect Specification
Training input 30–60 second video of the subject
Training pipeline Extract face geometry → Fit FLAME model → Train 3DGS (~30,000 iterations) → Learn expression blend shapes
FLAME face model Industry-standard parametric face model with 50 blend shapes for expression control
Training duration 1–4 hours depending on video quality, lighting, and subject movement
Render output 30+ FPS at resolutions up to 4K with sub-40ms frame latency

2.2 Avatar Quality Settings — @psyche/avatar-quality#

Quality can be adjusted to trade off visual fidelity against GPU resource usage, enabling the same avatar to serve both mobile-optimized and studio-grade scenarios.

Quality Level Resolution Target FPS Frame Latency GPU Load
480p 854 × 480 24 FPS < 20 ms Minimal
720p 1280 × 720 30 FPS < 25 ms Standard
1080p 1920 × 1080 30 FPS < 30 ms High
4K 3840 × 2160 30 FPS < 40 ms Very High

2.3 Avatar Styles#

Different use cases call for different visual registers. The style setting controls whether the avatar uses the photorealistic 3DGS render or a stylized visual representation.

Style Description Recommended Use
Photorealistic Lifelike human appearance from 3DGS training External customer-facing video calls
Animated Stylized character (cartoon or semi-realistic) Internal meetings, informal use
Stylized Artistically interpreted representation Brand-specific environments
Audio-only No video rendered; voice only Phone-equivalent sessions

2.4 Facial Expression System#

The expression system drives the avatar's face to convey appropriate emotion throughout the conversation, maintaining the believability of the digital human. Multiple complementary systems work together, from coarse emotion states down to involuntary micro-expressions.

  • Automatic emotion mapping (@psyche/avatar-expressions): Expressions change dynamically based on speech content, detected conversational emotion, and configured personality traits.
  • FACS control (@psyche/facs-expressions): FACS (Facial Action Coding System — the scientific system for classifying all human facial movements by the specific muscle groups, called action units, they involve) support for precise, anatomically grounded expression control.
  • Micro-expressions (@psyche/micro-expressions): Brief involuntary facial expressions lasting 1/25 to 1/5 second that occur before the voluntary expression — adding micro-expressions dramatically increases perceived naturalness and trustworthiness.
  • Lip synchronization (@psyche/avatar-lipsync): Real-time lip sync driven by TTS audio output with less than 33ms audio-to-visual synchronization latency. Viseme sequences (the visual equivalents of phonemes) are extracted from audio and mapped to FLAME blend shapes.
  • V2 commentator face animation: V2 uses @psyche/avatar-lipsync and @psyche/avatar-expressions with @iris/voice phoneme timing to animate AI commentator faces. The commentator face animation integration is presentation-only, off rollback, and owned by @v2/psyche-commentary-face-animation.
  • Gaze control (@psyche/gaze-control): Natural eye gaze that maintains appropriate eye contact during active speech, looks away during apparent thought, and tracks movement in the video frame.
  • Head movement (@psyche/head-movement): Realistic head nods, tilts, and turns that accompany and accentuate speech — the non-verbal communication essential for perceived attentiveness.
  • Posture system (@psyche/posture-system): Upper-body posture management that shifts between attentive (slightly forward-leaning), relaxed, and engaged stances based on conversation dynamics.
  • Gesture system (@psyche/gesture-system): Procedurally generated hand and arm gestures that complement speech prosody — illustrators (gestures that accompany and emphasize speech content) and adaptors (self-touching behaviors signaling cognitive processing).
  • Uncanny valley mitigation (@psyche/uncanny-valley): Automatic adjustments to prevent the subtle artifact combinations that trigger the "uncanny valley" effect — the discomfort caused by a human-like entity that is almost-but-not-quite convincing.

2.5 Avatar Performance Features#

These optimizations ensure the avatar renders instantly and maintains smooth, artifact-free output under sustained load.

  • Model preloading (@psyche/avatar-cache): Avatar models and neural network weights are preloaded into GPU memory at startup so the first frame renders instantly without a cold-start delay.
  • Temporal anti-aliasing (@psyche/avatar-taa): TAA removes temporal flickering and edge aliasing artifacts by accumulating information across frames, producing visually stable, clean renders.
  • TensorRT acceleration: GPU inference acceleration using NVIDIA TensorRT to optimize avatar rendering neural networks for maximum throughput.
  • Tavus cloud fallback (@psyche/tavus-hybrid): When local GPU resources are insufficient, the system transparently routes to Tavus Phoenix cloud rendering, maintaining session continuity without interruption.

3. Natural Voice and Speech#

3.1 Voice Synthesis — @psyche/voice-synthesis#

The voice synthesis engine converts the LLM's text output into natural-sounding speech, synchronized with the avatar's lip movements. Multiple providers are supported with automatic failover so the session continues uninterrupted even if the primary provider experiences an outage.

Provider Role Key Characteristic
ElevenLabs Primary Most natural prosody; ~75ms first-audio-byte latency
Cartesia Secondary Low latency, consistent quality
OpenAI TTS Fallback High reliability, broad voice selection
Deepgram Aura Fallback Fast inference, streaming-first design
XTTS v2 Self-hosted Open-source, no API cost, runs entirely on-premises
Orpheus TTS Alternative Expressive prosody model
F5-TTS Alternative Fast, lightweight synthesis
Piper Offline CPU-only local synthesis for air-gapped deployments
  • Custom voice cloning (@psyche/voice-consistency): Create a unique synthesized voice from 1–3 minutes of audio samples of the subject. The cloned voice is specific to the persona and cannot be shared or exported.
  • Provider failover: If the primary TTS provider returns an error or exceeds latency thresholds, the system automatically switches to the next provider in the chain without interrupting the session.

3.2 Voice Parameters#

These parameters allow fine-grained control over how the synthesized voice sounds during a session. They can be configured per persona or adjusted per session.

Parameter Range Effect
Speaking speed 0.5x – 2.0x Rate of speech (1.0x is natural human speaking pace)
Pitch adjustment -50% to +50% Voice pitch relative to the base model
Stability 0.0 – 1.0 Consistency of voice character (higher = less natural variation)
Clarity / similarity boost 0.0 – 1.0 How closely output matches the original voice clone
Style expressiveness 0.0 – 1.0 Emotional range and expressiveness of delivery
Speaker boost On / Off Enhanced voice presence and perceived audio quality

3.3 Speech Recognition — @psyche/speech-recognition#

Real-time transcription of participant speech drives the AI's conversational understanding. Interim results arrive while the participant is still speaking, enabling responsive turn-taking before the full utterance is complete.

Aspect Details
Primary provider Deepgram Nova-2 via streaming WebSocket for real-time interim transcriptions
Fallback providers OpenAI Whisper (API or local), AssemblyAI
Interim results Partial transcriptions delivered during active speech for responsive turn-taking
Speaker diarization Identifies which meeting participant is speaking in multi-person meetings
Smart formatting Automatic punctuation, capitalization, and sentence boundary detection
Noise handling (@psyche/noise-handling) Audio preprocessing to improve accuracy in noisy environments
Word confidence Per-word confidence scores for identifying uncertain transcriptions

3.4 Voice Streaming — @psyche/voice-streaming#

  • WebSocket audio streaming: Audio is streamed in real-time rather than buffered, achieving approximately 75ms from the first token being generated to the first audio byte being output.
  • Streaming buffer management: Intelligent buffering ensures smooth playback despite variable network conditions, with automatic quality adaptation.

3.5 Viseme Generation — @psyche/viseme-generator#

Visemes are the visual equivalents of phonemes — the 21 canonical mouth shapes corresponding to distinct speech sounds. The viseme generator extracts the phoneme sequence from incoming audio in real time, maps each phoneme to the corresponding FLAME blend shape identifier, and outputs a time-aligned viseme sequence that drives avatar lip animation, achieving sub-33ms audio-to-visual synchronization.


4. Real-Time Conversation#

4.1 AI-Powered Dialogue — @psyche/dialogue-manager#

The dialogue manager orchestrates the full turn-taking conversation between participants and the AI persona.

  • Primary LLM: Claude 3.5 Sonnet (configurable per persona) provides reasoning, response generation, and tool-calling capabilities.
  • Real-time token streaming: Responses are streamed token by token to the synthesis pipeline, enabling pipelined TTS synthesis that begins producing audio before the full response is complete.
  • Multi-LLM failover chain: Claude → OpenAI GPT-4 → Google Gemini → Local LLM (Ollama/vLLM). If the primary model is unavailable, the session continues uninterrupted on the next model in the chain.
  • 200K token context window: With intelligent truncation that prioritizes recent exchanges, knowledge base retrievals, and high-importance historical context.
  • Tool calling: The LLM can invoke any registered tool mid-conversation and incorporate the tool's response into the next utterance without breaking conversational flow.
  • Persona system prompt injection: Each persona's personality configuration, expertise profile, topic boundaries, and custom instructions are injected as the LLM system prompt.

4.2 Turn-Taking Management — @psyche/tavus-turntaking#

Turn-taking governs the flow of speaking rights between the AI persona and meeting participants, creating a natural conversational rhythm that avoids both awkward silences and interruptions.

  • Endpoint detection: Automatically detects when a participant has finished speaking using a combination of audio silence detection and semantic completeness assessment.
  • Acknowledgment phrases: Natural filler utterances ("I see", "That's a good question", "Let me think about that") are generated while the LLM processes the full response, preventing awkward silence.
  • Clarification behavior: When transcription confidence falls below a configurable threshold or a request is ambiguous, the persona asks a targeted clarifying question rather than proceeding with a low-confidence interpretation.
  • Smooth topic transitions: Natural bridging phrases for transitions between topics, maintaining conversational coherence across subject shifts.
  • Proactive follow-up offers: After resolving a query, the persona offers related help or anticipates the next likely question.

4.3 Response Configuration#

These parameters control the format and behavior of persona responses, independent of the LLM model or voice synthesis settings.

Parameter Options / Range
Response length Short (≤50 words), Medium (≤150 words), Long (≤500 words)
Response format Natural prose, structured lists, numbered steps, or code blocks
Error handling behavior Graceful acknowledgment, redirect, or escalation for unknown queries
Escalation threshold Number of consecutive failures before human handoff (default: 3)
Confirmation requirement Categories of actions that require explicit human confirmation before execution

4.4 Behavior Coordination — @psyche/behavior-coordinator#

The behavior coordinator synchronizes the avatar's physical expressions with the spoken content, simultaneously coordinating speech generation, facial expression transitions, eye gaze direction, head movement, hand gestures, and posture. The behavioral anomaly detector (@psyche/behavior-anomaly-detector) identifies and corrects unnatural behavioral combinations — for example, an expression conflicting with the vocal sentiment, or a gesture out of phase with the speech it should accompany.


5. Knowledge Base and RAG#

5.1 Document Ingestion#

Documents are processed into a searchable vector database that the persona consults during conversations to provide accurate, source-grounded answers. Rather than relying on the LLM's general training knowledge, the persona retrieves specific content from uploaded documents, reducing hallucination and enabling accurate domain-specific responses.

Aspect Details
Supported formats PDF, DOCX, TXT, Markdown, HTML, CSV, JSON, and live web URLs
Upload interface Drag-and-drop upload in the admin dashboard; bulk upload via API
Automatic chunking Documents are split into semantically coherent overlapping chunks
Processing status Uploading → Processing → Embedding → Ready (or Error with detail)

5.2 Vector Search and Retrieval — @psyche/tavus-knowledge#

At conversation time, the top-K most semantically relevant document chunks are retrieved from Qdrant and injected into the LLM's context window immediately before generating a response. This is RAG (Retrieval-Augmented Generation) — grounding responses in specific knowledge rather than general training data.

  • Vector embeddings: Generated using Voyage AI (primary), Cohere, or OpenAI (fallback) to create high-dimensional semantic representations of each document chunk.
  • Vector database: Qdrant (a high-performance approximate nearest-neighbor vector database) for similarity search across potentially millions of document chunks.
  • RAG integration: During conversations, the top-K most semantically relevant document chunks are retrieved and injected into the LLM's context window immediately before generating a response.
  • Configurable retrieval: Adjustable top-K count (default: 5 chunks) and minimum relevance score threshold (default: 0.7 cosine similarity) per knowledge collection.

5.3 Knowledge Sources#

Knowledge can enter the system in several ways, supporting both one-time uploads and continuously synchronized content from external systems.

Source Type Description
Manual upload One-time document uploads from the admin dashboard
Sync source Scheduled synchronization from external systems (Confluence, SharePoint)
API source Programmatic content updates via the REST API
Web crawl Automated crawling of specified URLs for knowledge extraction

5.4 Knowledge-Persona Linking#

Knowledge collections are scoped to specific personas rather than being globally accessible, ensuring that each persona only retrieves information relevant to its role. This is important for multi-tenant deployments where different personas serve different customers.

  • Per-persona knowledge scoping: Each persona has an assigned set of knowledge collections — a customer service persona sees only the product documentation, not the internal engineering wiki.
  • Collection priority ranking: When multiple collections are assigned, priority determines which is searched first and which fills context space when it is limited.
  • Persistent fact memory: Store specific facts the persona always knows without retrieval — company founding date, current product pricing, support hours.
  • Opinion and stance memory: Define the persona's position on configurable topics with a conviction strength (0.0–1.0) controlling how confidently the persona volunteers that opinion.

6. Video Conferencing Integration#

6.1 Supported Platforms — @psyche/conferencing-core#

The conferencing layer abstracts over four major platforms plus a direct WebRTC stack. Each platform integration handles authentication, meeting join, and audio/video injection in the platform-specific way, while exposing a uniform interface to the rest of Psyche.

Platform Integration Method Key Capabilities
Zoom Zoom Meeting SDK + Browser automation Join meetings, stream avatar video, manage participants, access recordings
Microsoft Teams Graph API + Bot Framework Create meetings, join calls, send chat messages, detect presence, manage members
Google Meet OAuth + Browser automation (WebRTC) Join via meeting code, real-time bidirectional audio/video
Webex Webex REST API + SDK Create meetings, manage participants, send messages, recording access
Custom WebRTC Direct WebRTC stack STUN/TURN server integration for proprietary conferencing systems

6.2 Meeting Capabilities#

Once connected to a meeting, the persona participates as a full meeting member with its own video and audio streams, indistinguishable from a real participant's webcam feed.

  • Automatic meeting join: The virtual assistant autonomously joins scheduled meetings at the configured start time without human intervention.
  • Participant management (@psyche/participant-manager): Real-time tracking of who is in the meeting, detection of participant joins and departures, and per-participant state tracking.
  • Avatar video streaming: The rendered avatar video stream is injected into the conferencing platform's video feed, appearing as a regular participant's webcam feed.
  • Audio injection: Synthesized speech audio is injected into the meeting audio mix, with echo cancellation to prevent feedback loops.
  • State synchronization (@psyche/state-sync): All components (avatar renderer, voice engine, LLM, conferencing platform) maintain synchronized state so disruptions in one subsystem do not desynchronize others.
  • Chat interaction: The persona can send and receive text chat messages within the meeting platform's chat interface (Microsoft Teams and Webex).
  • Meeting summarization (@psyche/meeting-summarizer): After sessions, automatically generates structured summaries with key discussion points, decisions made, and action items.
  • Recording integration (@psyche/recall-integration): Integration with Recall.ai for meeting recording access and post-session transcript retrieval.

6.3 Platform-Specific Integrations#

  • Zoom integration (@psyche/zoom-integration): Full Zoom Meeting SDK integration validated and certified for production use.
  • Teams integration (@psyche/teams-integration): Microsoft Teams integration with Graph API authentication, Teams bot framework, and meeting lifecycle events.
  • Google Meet integration (@psyche/meet-integration): WebRTC-based Meet integration with OAuth authentication.
  • Webex integration (@psyche/webex-integration): Webex REST API integration for enterprise Cisco environments.

6.4 Tavus Cloud Avatar Integration (Optional)#

Tavus provides cloud-hosted neural avatar rendering as an alternative or fallback to local 3DGS rendering when local GPU resources are insufficient. The hybrid mode switches between local and cloud rendering transparently, without the participant noticing.

  • Replica creation (@psyche/tavus-replica-manager): Train cloud-hosted Tavus Phoenix avatar replicas from video recordings.
  • Real-time conversations (@psyche/tavus-conversation): Conduct full interactive sessions using Tavus's Phoenix rendering pipeline.
  • Hybrid rendering (@psyche/tavus-hybrid): Intelligently switch between local 3DGS and Tavus cloud rendering based on local GPU availability.
  • Tavus Perception (@psyche/tavus-perception): Leverage Tavus's Raven model for participant video understanding — face detection, emotion recognition, engagement measurement.
  • Tavus pipeline (@psyche/tavus-pipeline): Full end-to-end Tavus pipeline orchestration.
  • Tavus Pipecat (@psyche/tavus-pipecat): Low-latency real-time audio/video pipeline built on the Pipecat framework for ultra-responsive sessions.

7. Computer Use and Task Execution#

The computer use system enables Psyche personas to browse the web, fill forms, and perform multi-step software tasks on behalf of meeting participants — live, during video calls. The persona can execute tasks while narrating its actions to the human participants, making the automation transparent and verifiable.

Under the Phase 180 Remote Creative Control Plane (TODOS/phase-180.md, owned primarily by Bellona), Psyche's screenshot/click/type/window primitives are planned to be extracted into a reusable libs/psyche/desktop-fallback library shared between Psyche Computer Use and the Bellona remote host's desktop fallback adapter, so remote creative control uses the same audited automation primitives as live persona task execution.

7.1 Browser Automation — @psyche/browser-automation#

Browser automation runs inside a sandboxed Chromium instance that has no access to host system resources, preventing runaway automation from affecting anything outside the intended task.

  • Sandboxed Chromium browser: A headless Chromium instance runs in a fully isolated sandbox. The AI can only interact with the browser; it has no access to the host system's filesystem, clipboard, or other applications outside the sandbox.
  • Observe-Reason-Act loop (@psyche/computer-use-core): The system operates iteratively: (1) take a screenshot of the current browser state, (2) ask the LLM to analyze the screen and decide the next action, (3) execute the action, (4) verify the outcome, (5) repeat until the task is complete or the maximum iteration limit is reached.
  • Action types: Click (by element reference or screen coordinates), type text into fields, navigate to URLs, scroll pages, select from dropdowns and menus, upload files, download files.
  • Action verification: After each action, the system takes a verification screenshot and asks the LLM to confirm the expected outcome occurred before proceeding.
  • Automatic recovery: If an action produces an unexpected result (error message, unexpected navigation), the system detects this and attempts a recovery strategy before failing.

7.2 Screen Analysis — @psyche/screen-analysis#

The screen analysis library provides computer vision capabilities for interpreting browser and application content. It has over 1,000 tests covering all analysis capabilities.

  • Layout analysis: Detect and understand the structure of web pages — navigation, main content, sidebars, forms, tables, and interactive controls.
  • OCR: Extract text from rendered pages, including text in images, canvas elements, and CSS-rendered content.
  • Element detection: Identify clickable elements, form fields, buttons, links, and other interactive components with their bounding boxes.
  • Multi-step workflow support: Understand complex multi-page workflows (checkout flows, form wizards, search and filter operations) and execute them across multiple page transitions.

7.3 Task Safety — @psyche/action-safety#

Every action is validated before execution, and high-risk actions require explicit human confirmation. This ensures that the automation cannot accidentally or maliciously cause irreversible changes without participant awareness.

  • Pre-execution rule validation: Every action is validated against a configurable safety rule set before execution. Rules can block specific URL patterns, form field types, or action categories.
  • Confirmation prompts: High-risk actions (form submissions with financial implications, data deletions, purchases) surface a confirmation request to the human participant before execution.
  • Maximum iteration limit: Tasks are capped at a configurable maximum of 50 actions per invocation to prevent infinite loops and runaway automation.
  • Sandbox isolation: The browser runs in a container with no network access outside explicitly permitted domains and no access to host system resources.

7.4 Tool Registry and Execution#

  • Tool registration (@psyche/tool-registry): Register custom tools with typed input/output schemas, descriptions, authentication configuration, and execution handlers.
  • Tool execution (@psyche/tool-execution): Safe, traced execution of registered tools with timeout enforcement, error handling, and result logging.
  • Built-in tools: Platform-provided tools including web search, calendar lookup, CRM query, and knowledge base search available to all personas.

8. Emotion and Perception Intelligence#

Psyche personas perceive and respond to the emotional state of meeting participants, creating genuinely empathetic interactions rather than producing the same response regardless of context. The perception pipeline runs entirely on the inbound participant video and audio — it does not analyze the avatar's own output.

8.1 Inbound Participant Perception#

Each participant's video and audio streams are analyzed independently, enabling Psyche to track different emotional states for each person in a multi-party meeting.

  • Face detection (@psyche/face-detection): Real-time detection of participant faces in the video stream, including bounding box tracking across frames for multiple simultaneous participants.
  • Facial emotion analysis (@psyche/face-analysis, @psyche/emotion-recognition): Classify detected facial expressions into primary emotional categories (happiness, sadness, surprise, fear, disgust, anger, neutral) with continuous probability scores rather than binary classifications.
  • Voice sentiment detection: Analyze vocal characteristics — tone, speaking rate, pitch variation — to infer emotional state independent of the spoken words.
  • Engagement measurement (@psyche/engagement-detector): Quantify participant engagement level from attention direction, facial animation, and speech participation frequency. Low engagement triggers more engaging response strategies.
  • Attention tracking (@psyche/attention-tracker): Detect whether participants are looking at the camera (engaged) or looking away (distracted), adjusting conversation pacing accordingly.
  • Head pose estimation (@psyche/head-pose-estimation): Determine the 3D orientation of participant heads to assess attentiveness.
  • Gaze estimation (@psyche/gaze-estimation): Track where participants are looking — screen, notes, other participants — as a signal of focus and engagement.

8.2 Outbound Emotion Expression — @psyche/emotion-engine#

The emotion engine maintains a continuous emotional state model that transitions smoothly between states rather than snapping instantly, mimicking natural emotional inertia. The table below maps each emotion state to the conversation conditions that trigger it.

Emotion State Primary Trigger
Neutral Default resting state
Happy Positive language, greetings, successful resolutions
Concerned Problem acknowledgment, empathy situations
Thoughtful Complex questions, extended processing
Surprise Unexpected inputs, exclamations
Interested Questions about topics in the persona's expertise

8.3 Participation Analytics — @psyche/participation-tracker#

Participation analytics surface the meeting dynamics over time, enabling the persona to balance engagement across participants who speak very different amounts.

  • Per-participant contribution tracking: Measure each person's share of speaking time and message count, identifying dominant speakers and quiet participants.
  • Meeting engagement score: Aggregate engagement across all participants into a single per-minute engagement metric for the overall meeting.

9. Memory and Continuity#

Psyche personas maintain memory across sessions, enabling genuine continuity — a returning participant is recognized, remembered, and engaged with the context of their history. Memory operates at three timescales: within a session, between sessions, and at the level of persistent configured knowledge.

9.1 In-Session Memory — @psyche/memory-in-context#

  • Full conversation history: The complete exchange within the current session is maintained in the active context window for coherent single-session dialogue.
  • Working memory (@psyche/memory-working): Key facts established during the session — participant name, problem description, stated preferences, previous decisions — are tracked in structured working memory that persists for the session duration.

9.2 Long-Term Memory — @psyche/memory-core#

After a session ends, interaction data is persisted and vectorized so that future sessions can retrieve semantically relevant history. The memory lifecycle moves from active storage through consolidation to eventual archival.

  • Memory persistence (@psyche/memory-persistence): Session conversations and extracted facts are stored to PostgreSQL at session end, building a durable record of all persona-participant interactions.
  • Memory embeddings (@psyche/memory-embeddings): Conversation memories are vectorized using embedding models and stored in Qdrant, enabling semantic similarity retrieval — the persona recalls past interactions by meaning, not just exact text match.
  • Memory retrieval (@psyche/memory-retrieval): At the start of each session and during each conversation turn, semantically relevant past memories are retrieved and injected into the context window.
  • Memory consolidation (@psyche/memory-consolidation): During low-activity periods, detailed interaction records are compressed into concise summaries using the LLM, reducing storage requirements while preserving essential information.
  • Memory archival (@psyche/memory-archival): Memories beyond the active retention window are archived to cold storage and can be retrieved for auditing or compliance needs.

9.3 Cross-Session Continuity#

  • Returning user recognition: When a participant who has interacted before joins a new session (identified by email, account ID, or phone number), the persona retrieves their history and can acknowledge the relationship naturally.
  • Configurable retention period: Memory retention duration is configurable per persona and per organization (default: 90 days).
  • Privacy controls: Participants can request deletion of all their memory data. Memories are automatically anonymized after the configured retention period.

9.4 Persistent Knowledge#

  • Fact memory: Key-value facts the persona always knows regardless of conversation context — company name, current promotions, support hours, policies.
  • Opinion memory: The persona's defined stance on configurable topics with conviction strength settings (0.0–1.0) controlling frequency and confidence of the opinion being voiced.

10. Session Management#

10.1 Session Lifecycle#

A session progresses through a well-defined set of states from creation through teardown. The Connecting state covers the time between a client requesting entry to a meeting and the persona becoming fully active in the call.

State Description
Pending Session created, waiting for the scheduled start time
Connecting Joining the video conferencing platform
Active Full session in progress — avatar live, conversation active
Paused Session temporarily suspended
Ended Session completed normally
Error Session terminated due to an unrecoverable error

10.2 Session Configuration#

  • Persona assignment: Select which persona configuration participates in this session.
  • Platform selection: Choose the video conferencing platform (Zoom, Teams, Google Meet, Webex, or custom WebRTC).
  • Meeting linkage: Associate the session with a specific meeting ID, invite URL, or scheduled calendar event.
  • Computer use permissions: Session-level toggle for enabling or disabling browser automation capabilities.
  • Knowledge collection override: Specify which knowledge collections to use for this specific session, overriding persona defaults.

10.3 Session Metrics#

The following metrics are captured for every session and are available through the analytics API and admin dashboard.

Metric Description
Duration Total elapsed session time
Participant count Number of human participants in the meeting
Messages exchanged Total conversation turns between participants and the persona
Tools executed Number of tool invocations during the session
Avg response time Mean milliseconds from participant speech end to persona speech start
Satisfaction score Post-session rating collected via automated follow-up
Engagement score Mean participant engagement level across the session duration

11. Admin Dashboard#

11.1 Overview Metrics#

The dashboard shows at-a-glance operational status: total sessions (current period), active sessions (real-time), total messages, average response time, satisfaction score, and error rate. A period selector (day, week, month, quarter, year) enables period-over-period comparison, with time-series charts for all key metrics.

11.2 Persona Management#

  • Create persona: Multi-step guided form: Identity → Personality → Expertise → Voice → Avatar → Review.
  • Edit persona: Update any attribute of an existing persona at any time. Changes to personality and expertise take effect immediately; voice and avatar changes require re-training.
  • Clone persona: Duplicate an existing persona as the starting point for a new variant.
  • Status control: Activate, deactivate, or archive personas individually or in bulk.

11.3 Knowledge Base Management#

  • Document upload: Drag-and-drop upload with processing status indicators showing Uploading → Processing → Embedding → Ready.
  • Collection organization: Create and manage named collections with descriptions and priority rankings.
  • Chunk preview: View how any document was split into retrieval chunks to assess chunking quality.
  • Persona-collection assignment: Map knowledge collections to personas with priority settings.
  • Ingestion analytics: Per-document retrieval frequency to identify high-value knowledge assets.

11.4 Session Monitoring#

  • Live session view: Real-time list of active sessions with monitoring capability.
  • Session history: Paginated history of all past sessions with filtering by persona, platform, date range, and outcome.
  • Session replay: Review the transcript and key metrics of any past session.
  • Engagement heatmap: Visual timeline of participant engagement levels throughout each session.

12. Analytics and Reporting#

Psyche captures detailed operational data at every level — per-session, per-persona, and per-knowledge-collection — to support quality improvement, capacity planning, and compliance reporting.

  • Session analytics: Duration, message count, tool execution count, average response time, and satisfaction score per session, aggregated across any date range.
  • Persona performance comparison: Side-by-side comparison of personas across engagement rate, satisfaction score, task resolution rate, and escalation frequency.
  • Knowledge utilization: Per-document and per-collection retrieval frequency, identifying the highest-value knowledge assets and coverage gaps.
  • Engagement trends: Participant engagement scores over time, segmented by persona, platform, and organization.
  • Satisfaction tracking (@psyche/satisfaction, @psyche/nps): NPS-style (Net Promoter Score) satisfaction scores per persona and session type, with trend analysis and anomaly alerting.
  • Quality trend analysis (@psyche/quality-trend-analysis): Automated analysis of response quality trends using linguistic quality metrics and user feedback signals.
  • Human evaluation framework (@psyche/human-evaluation, @psyche/crowdsourced-evaluation): Structured quality assessment by human reviewers using standardized rubrics, and crowdsourced evaluation for large-scale quality assessment of generated responses.
  • Export: Download any analytics dataset as CSV or PDF for external reporting or compliance documentation.

13. Multi-Language and Localization#

Psyche supports meetings conducted in multiple languages and can bridge language gaps between participants and the persona in real time.

  • Language detection (@psyche/language-detection): Automatic detection of the language each participant is speaking, with no manual configuration required.
  • Speech translation (@psyche/speech-translation): Real-time translation of participant speech so the persona can respond in a different language from the input — enabling cross-language meetings.
  • Translation memory (@psyche/translation-memory): Stores previously translated phrases for consistency across sessions and reduced translation latency for recurring content.
  • Translation quality (@psyche/translation-quality): Automated quality scoring for translated utterances to detect and flag low-confidence translations.
  • Translation streaming (@psyche/translation-streaming): Real-time streaming translation with sub-300ms latency from speech input to translated text output.
  • Dialect handling (@psyche/dialect-handling): Handles regional accent and dialect variations in speech recognition, improving accuracy for non-standard accents.
  • Participant language preferences (@psyche/participant-language-preference): Per-participant language preference storage so returning participants are always addressed in their preferred language.
  • Cultural adaptation (@psyche/cultural-adaptation): Adjusts the persona's communication style, idioms, and conversational etiquette for different cultural contexts — not just language translation, but cultural appropriateness.

14. Accessibility#

  • Screen reader support: ARIA-compliant admin dashboard with full keyboard navigation and screen reader compatibility (VoiceOver, NVDA).
  • Keyboard navigation: All admin dashboard actions are accessible via keyboard with logical tab order and keyboard shortcut support.
  • Closed captions: Real-time captioning of avatar speech displayed in the meeting interface, with automatic caption file generation for recordings.
  • Caption streaming (@psyche/caption-streaming): Low-latency streaming caption delivery synchronized with avatar speech output.
  • V2 match captions: V2 composes @psyche/caption-streaming through @v2/psyche-caption-streaming for real-time HUD captions, spectator mode overlays, replay transcripts, companion captions, and broadcast observer captions. The integration is presentation-only and off rollback.
  • Accessibility compliance (@psyche/accessibility): WCAG 2.1 AA compliance auditing for the admin dashboard with automated compliance checking.

15. Integrations and Webhooks#

15.1 Knowledge and Research Integration#

Psyche uses Sophia's academic research infrastructure to enrich knowledge- intensive persona configurations with research-grade information. The boundary is clean: Sophia owns the research data and search infrastructure; Psyche owns the retrieval configuration that decides when and how to invoke it.

  • Sophia integration (@psyche/sophia-integration, @psyche/sophia-search-integration): Deep integration with Sophia's academic research infrastructure for knowledge enrichment and fact verification in knowledge-intensive persona configurations.

15.2 Outbound Webhooks#

Webhook subscriptions enable external systems to react to Psyche events without polling. All payloads are HMAC-signed so receiving servers can verify that the request genuinely originated from Psyche.

  • Session events: HTTP callbacks when sessions start, end, or encounter errors.
  • Message events: Per-message webhooks for real-time integration with external CRM or logging systems.
  • Tool execution events: Webhooks when specific tools are invoked, enabling external system updates triggered by persona actions.
  • HMAC-SHA256 authentication: All webhook payloads are signed with a shared secret, enabling receiving servers to verify authenticity without a separate authentication step.
  • Configurable events: Enable or disable specific event types per webhook endpoint to control delivery volume.

15.3 REST and WebSocket APIs#

  • REST API: Full programmatic management of personas, sessions, knowledge bases, and analytics — complete coverage of all admin dashboard capabilities via API.
  • WebSocket API: Real-time streaming of session events, live transcript delivery, and session state changes for building real-time integrations.

16. Security and Compliance#

  • End-to-end encryption: Session audio, video streams, and conversation data are encrypted in transit (TLS 1.3) and at rest (AES-256).
  • API key authentication: HMAC-signed API keys with configurable scopes (read-only, read-write, admin) and optional expiry timestamps.
  • Role-based access control: Four permission levels — Admin (full access), Editor (persona and knowledge management), Viewer (read-only analytics), API-only (programmatic access without UI).
  • Audit logging: Immutable timestamped logs of all persona changes, session access, knowledge base modifications, and administrative actions.
  • Data residency: Enterprise organizations choose which geographic region (US, EU, Asia-Pacific) stores all data, supporting GDPR data sovereignty requirements.
  • Memory deletion: Per-user and per-persona memory purge capabilities with cryptographic deletion verification for compliance.
  • GDPR compliance: Full GDPR compliance including data subject access requests, right to erasure, processing records, and DPA (Data Processing Agreement) template.
  • Kubernetes security (@psyche/k8s-security): Kubernetes security policies enforced via OPA/Gatekeeper including pod security standards, network policies, and RBAC.
  • Computer use sandbox isolation: Browser automation runs in a container with no network access outside explicitly permitted domains and no access to host system resources.

17. Platform Management#

  • Multi-organization support: Complete data isolation between organizations. One Psyche deployment serves multiple customer organizations with no data co-mingling.
  • User roles and permissions: Scoped roles per organization with fine-grained permission sets.
  • API key management: Create, name, scope, rotate, and revoke API keys from the dashboard.
  • Usage quotas: Configurable limits on session counts, message volumes, and storage capacity per organization.
  • White-label support: Custom organization branding (logo, colors, domain) for the admin dashboard and avatar video frame overlay.

18. Infrastructure and Reliability#

18.1 Observability#

Psyche instruments every microservice with a consistent observability stack so that performance regressions and failures are detected before users notice them.

  • Structured logging (@psyche/logging): All service logs are structured JSON with correlation IDs linking logs across the avatar renderer, voice engine, LLM service, and conferencing integration for a given session.
  • Distributed tracing (@psyche/tracing): OpenTelemetry-based distributed tracing for tracking request paths across microservices.
  • SLO alerting (@psyche/slo-alerting): Service Level Objective definitions with automated alerts when error budgets are being consumed too quickly — before users experience a visible degradation.
  • Latency analysis (@psyche/latency-analysis): Per-component latency tracking identifying bottlenecks in the end-to-end response pipeline.
  • Metrics (@psyche/log-metrics): High-cardinality operational metrics with timeseries optimization (@psyche/timeseries-optimization) for efficient storage and querying.
  • Predictive alerting (@psyche/predictive-alerting): ML-based anomaly detection that identifies unusual metric patterns before they become user-visible failures.
  • Predictive performance modeling (@psyche/predictive-performance-modeling): Models that predict resource requirements and session quality under different load conditions.
  • ML log analysis (@psyche/ml-log-analysis): Automated analysis of log streams to detect error patterns, correlate incidents, and surface root causes faster than manual inspection.

18.2 Reliability#

  • Disaster recovery (@psyche/disaster-recovery): Documented recovery procedures and automated failover for all critical services.
  • Database sharding (@psyche/database-sharding): Horizontal database partitioning for high-volume deployments.
  • K8s federation (@psyche/k8s-federation): Multi-cluster Kubernetes federation for geographic distribution and failure isolation.
  • AIOps anomaly detection (@psyche/aiops-anomaly): Automated anomaly detection across system metrics using machine learning.

Library Summary#

The table below maps every major capability area to its implementing libraries. This serves as a quick lookup when you need to find the right library for a given concern.

Library Category Key Libraries Capability Area
Avatar system avatar-core, avatar-expressions, avatar-cache, avatar-quality, avatar-taa, avatar-training, avatar-lipsync 3DGS rendering, expressions, performance
Expression system facs-expressions, micro-expressions, gaze-control, head-movement, posture-system, gesture-system, uncanny-valley Physical believability and expressiveness
Voice system voice-synthesis, voice-streaming, voice-consistency, voice-dubbing, viseme-generator, speech-recognition, noise-handling Full voice pipeline
Conversation dialogue-manager, behavior-coordinator, behavior-anomaly-detector Turn-taking, LLM, behavioral sync
Knowledge tavus-knowledge, knowledge-context, knowledge-ingestion, knowledge-retrieval RAG pipeline and document ingestion
Conferencing conferencing-core, zoom-integration, teams-integration, meet-integration, webex-integration, participant-manager, state-sync Platform integrations
Tavus cloud tavus-bridge, tavus-client, tavus-conversation, tavus-expression, tavus-hybrid, tavus-llm, tavus-memories, tavus-objectives, tavus-perception, tavus-persona-manager, tavus-phoenix, tavus-pipecat, tavus-pipeline, tavus-replica-manager, tavus-tools, tavus-tts, tavus-turntaking Tavus cloud rendering pipeline
Computer use browser-automation, computer-use-core, screen-analysis, action-safety, tool-registry, tool-execution Autonomous browser control
Emotion/perception emotion-engine, emotion-recognition, face-analysis, face-detection, facs-expressions, engagement-detector, attention-tracker, head-pose-estimation, gaze-estimation, gaze-awareness-behaviors Participant perception
Memory memory-core, memory-in-context, memory-working, memory-embeddings, memory-persistence, memory-retrieval, memory-consolidation, memory-archival, memory-tools Multi-tier memory system
Localization language-detection, speech-translation, translation-memory, translation-quality, translation-streaming, dialect-handling, participant-language-preference, cultural-adaptation Multi-language support
Analytics satisfaction, nps, quality-trend-analysis, human-evaluation, crowdsourced-evaluation, engagement-detector, participation-tracker Quality and performance measurement
Infrastructure logging, tracing, log-metrics, slo-alerting, latency-analysis, timeseries-optimization, predictive-alerting, predictive-performance-modeling, ml-log-analysis, aiops-anomaly, disaster-recovery, database-sharding, k8s-federation, k8s-security Observability and reliability

Neith Embodiment and Spatial Runtime Dependencies (Phases 162, 166, 167)#

Psyche owns embodied assistant behavior, conversation, perception, voice, and human-like presence. Neith owns the digital-human, spatial-computing, and runtime audio primitives that Psyche can use for higher-fidelity embodiment. The boundary exists because Neith's sovereign embodiment primitives (character rigs, spatial OS integration, audio graphs) are shared infrastructure that multiple domains use — Psyche consumes these rather than reimplementing them.

  • Digital humans (Phase 162): Psyche integrates with @neith/dh-* character creator, skin/eye material systems, FACS face rig, body rig, muscle/fat/skin simulation, clothing, performance capture animator, voice and speech bridge, retargeting, runtime SDK, consent, likeness, and provenance to upgrade avatar rendering, expressions, gesture, lip sync, and ethical identity handling.
  • Spatial computing (Phase 166): Psyche uses @neith/spatial-* sessions, world anchors, volumes, immersive/shared spaces, gaze, pinch, hand, and voice input, personas, avatars, presence, foveated rendering, passthrough physics, spatial audio, developer SDK, collocated sessions, and spatial OS shell integration for embodied assistants in AR/VR/spatial environments.
  • Engine audio (Phase 167): Psyche can route voice, dialogue, microphone, spatialization, environmental acoustics, ducking, audio accessibility, captions, voice chat, profiler, and tooling through Neith's audio graph, source playback, 3D spatialization, dialogue, music, synth, and accessibility systems.

Neural World Model Integration (Phase 176)#

Psyche contributes computer-use trajectories and perception data into the Nous world-model flywheel and can consume JEPA visual/audio encoders for embodied assistant perception. Psyche owns embodied behavior, screen understanding, voice, avatar presence, and action safety; Nous owns reusable world-model training, latent dynamics, and serving. This boundary keeps the data pipeline and model training infrastructure centralized in Nous, while Psyche remains focused on the real-time assistant behavior that uses those models.

Training-Data Flywheel (Phases 85–86)#

libs/psyche/training-data implements Psyche's side of the ML-sovereignty data flywheel with dedicated avatar and perception signal pipelines: avatar rendering/interaction quality signals and perception (emotion/engagement) signals are captured as passive training data. Signals are consent-gated, anonymized where required, and emitted in the shared flywheel envelope that Nous dataset management (Phase 87) ingests. Nous owns the training infrastructure; Psyche owns what constitutes a high-quality persona signal.