Describe them in your own words. They remember who you are through ACT-R-scored recall, build trust and attachment through real appraisal math, and reason through a 7-stage cognitive loop before answering in a cloned voice you gave them — running entirely on your own hardware, 100% local, MIT licensed.
Cortisol and Dopamine aren't decorative strings — they mathematically modulate LLM sampling temperature, top-p, and token ceilings in real time.
Adjust simulated neurochemicals to see how internal affective states dynamically reshape LLM generation.
Creative & Broad
Tight Lexical Selection
Expansive Explanations
Physical speech pacing & pause bias
Step through how raw 16kHz audio moves through the 9-agent asynchronous NATS signal bus from speculative emotion classification to 32kHz neural voice rendering.
Step through how a single human utterance traverses the decentralized multi-agent mesh.
Ingests raw 16kHz PCM audio stream from user microphone and publishes to NATS audio.inbound.
Our compiler translates natural language into a strictly enforced 3-tier constitution (Immutable Safety Core, Constitutional Temperament, Adaptive Traits) with explainable parameter mappings.
In the full system, an LLM reads your prose and scores it on 9 dimensions. Here you set those 9 scores directly with the sliders below and see the exact deterministic formula (_infer_temperament) that turns them into a persona — computed live in your browser, not simulated.
backend/app/persona/compiler.py. Try the Trust & Attachment demo to see how trustChangeRate and attachmentGrowthRate above then drive a relationship forward, turn by turn.Every appraisal updates benevolence, competence, and integrity independently, and attachment grows on a slower, frequency-gated curve than trust does.
Exact port of AgentState.update_from_appraisal — Marsh (1994) trust (benevolence/competence/integrity) and Bowlby attachment, both driven by the same appraisal that updates mood. Set the appraisal for one simulated turn, advance it, and watch the relationship move.
Attachment grows slower than trust by construction: it's scaled by min(1, interaction_count/100), so even a friend who trusts you immediately still needs 100 more simulated turns before that frequency term stops suppressing attachment growth.
Recency, frequency, importance, and emotional proximity combine into a single recall score — the exact formula every retrieval path in the backend shares.
Exact port of the ACT-R base-level activation formula shared by every retrieval path in the real system: ln(freq) − d·ln(recency) + importance + emotional-proximity + spacing. The graph below is illustrative fixture data (not a real conversation), but the activation score on every node is computed live from this formula.
Same frequency and recency — spaced practice still wins, the literature's central spacing-effect finding.
Brightness is each node's live ACT-R activation. Clicking a node simulates querying it: its direct neighbors (amber ring) get a one-hop spreading-activation boost — a simplified stand-in for the real system's Personalized-PageRank graph boost, not a literal port of that iterative algorithm.
Agents coordinate over NATS JetStream with typed Pydantic contracts — a real signal-bus mesh, all running locally.


Runs the full turn: appraises what happened, updates PAD affect and the endocrine layer, decides how to respond, and streams the reply through your local Ollama model.


Renders every reply through one self-hosted, cloned voice — no fallback to a different voice. Pauses, ducking, and prosody are real PCM sample manipulation, not text markers.


A fast speculative path classifies intent and emotion mid-sentence for natural barge-in; a slower accurate path produces the final transcript once you're done talking.


Consolidates memory, decays what's no longer relevant, and can reach out to you unprompted — a friend that thinks about you when you're not talking to it.
The Brain drives what gets said and how it's said; GPT-SoVITS renders it with dynamic pause-bias scaling and sub-millisecond barge-in (<1ms).
The real per-affect reference-clip and pause-scale mapping the voice agent uses. No rendered audio is wired up on the website yet — see the roadmap.
Generous inter-phrase pauses and lowered pitch variance, suitable for deep reflection and late-night conversation.
Detailed memory footprints, latency breakdowns, and peak load stress test verification.
Every figure measured on live physical hardware — no theoretical estimates presented as results.
| Hardware Platform | Operational Profile | LLM Time-To-First-Token | Total Loop Turnaround | Status |
|---|---|---|---|---|
| Dedicated Home GPU (NVIDIA RTX 2060 Super 8GB) | Headless 24/7 Full Mesh (Linux Kernel 7.0 / Ubuntu 24.04) | 119.35 ms composed (39.95 ms isolated prompt eval) | 120 - 180 ms | Verified On-Premises Hardware |
| Google Colab / Cloud GPU (NVIDIA Tesla T4) | Full mesh + Hermes 3 (8B) | 61.9 ms (Measured) | 160 - 220 ms | Verified Cloud Telemetry |
| Apple Silicon M1 / M2 / M3 (16GB Unified) | Full Stack (Voice + Brain + Memory) | 320 - 450 ms | 680 - 950 ms | Supported Local Baseline |
| NVIDIA RTX 3060 / 4060 (12GB VRAM + 16GB Host) | Full Stack + Vision Profile | 50 - 90 ms | 150 - 260 ms | Ultra Low Latency Tier |
| Modern x86_64 CPU (16GB RAM, No GPU) | Heavy Mode (Local Whisper STT + Brain) | 450 - 650 ms | 900 - 1400 ms | Supported Baseline |
| Weak Laptop + Cloud Fallback (8GB RAM) | Light Mode (Claude 3.5 Sonnet Fallback) | 280 - 400 ms | 600 - 850 ms | Cloud Hybrid Tier |
No cloud accounts, zero telemetry, and atomic 4-store disaster recovery portability.
Designed for developers and researchers who demand verified local containment without cloud data leaks.
PostgreSQL, Neo4j, Redis, Qdrant, NATS, Ollama, and LiveKit bind exclusively to 127.0.0.1 loopback interfaces.
Every NATS client operates under scoped user accounts with restricted publish/subscribe topic permissions.
Single-command export script captures PostgreSQL JSONL, Neo4j Cypher, and SQLite affect state into an encrypted archive.
Tier 0 hardcoded boundaries (Honesty, Privacy, Anti-Harm) enforced before any user prompt can reach the LLM.
The entire codebase contains zero tracking scripts, analytics pixels, or phone-home logging.
Full transparency under the MIT license with public audit reports, mutation tests, and CI workflows.
Free and open source, MIT licensed. Clone it, describe your friend, and start talking — no account required.
curl -fsSL https://raw.githubusercontent.com/PALabs-v1/AI_friend/main/scripts/install.sh | bashREAD INSTALL GUIDE