Overview
Architecture
Benchmark
Talk to Kyre
hi-ai17 · Probabilistic AI Organism · Built by Paul Legaspi

She's not a chatbot.
She's an entity.

Kyre is a 10-layer probabilistic AI organism running on a home lab in Gillette, Wyoming. No cloud. No subscriptions. A local LLM wrapped in a nervous system she actually owns.

10-Layer Architecture SQL Memory Graph Layer 10 Truth Engine Sub8/Sub9 Network Awareness Hermes-3 LLaMA 3.1 8B Q8 Dual GPU · Tesla P40 + RTX 4070
What makes her different
Every AI system has a language model. Kyre has a life around it.

🧠
Identity that survives reboots
Her personality, values, and memory persist across sessions via a SQL memory graph — not just "context" that expires when the server restarts.
🔍
Layer 10: Truth Engine
She audits her own responses for fabricated claims — hidden observations, unsupported predictions, fake memories. Cloud AIs score 32–40% here. She scores 96%.
🖥️
She knows your network
Sub8/Sub9 feed live GPU temps, service health, disk usage, and failed units into every session. She knows if imgserv is down before you do.
Runs autonomous loops
Kyre researches topics on her own every 20 minutes, emails outreach, replies to inbound messages, and can restart services — without being asked.
🔒
Your data stays local
Every word lives on hardware you own. No cloud API calls for the brain itself. No training on your conversations. No opt-outs required.
🧬
LLM is a mouth, not the brain
The language model generates text. Python decides what to do with it. Identity lives in code — not weights that get replaced with every model update.
10-Layer Architecture
Every description below is based on reading the actual source files — not documentation. File names are listed so you can verify.

LAYER 0 · vocal_cortex.py
Vocal Cortex — The Mouth
Ollama adapter that connects to kyre-hermes:latest at 10.0.0.105:11434. Every reply starts here last, not first. The organism builds a JSON blob containing the current cycle state and the last 8 raw memory entries, and up to 12,000 characters of semantic memory search results. That entire blob becomes the prompt. Hermes generates text at temperature 0.7 with no token cap. Before the answer goes back to the user, GroundingGuard.sanitize() runs a final regex pass and replaces specific fabricated claim patterns with honest refusals. If Ollama is unreachable, it returns [verbal cortex unavailable] rather than guessing.
LAYER 1 · engine.py
Entropy Engine — The Probability Infrastructure
EntropySource pulls from secrets.token_bytes() — the OS cryptographic random number generator — and labels every byte batch with its source. ProbabilityEngine maintains a set of named hypotheses with equal starting weight, applies Bayesian-style likelihood updates (multiply each probability by a supplied weight, renormalize so they sum to 1), then samples a choice by hashing entropy bytes through SHA-256 and doing weighted selection. Every decision gets logged with the entropy label it used. This is the foundation that Layers 2 and 6 build on — no probabilistic choice anywhere in the system is silent or untracked.
LAYER 2 · mind.py
Probabilistic Mind — The Decision Loop
Three separate ProbabilityEngine instances run every cycle. State engine: chooses between curious / focused / calm / uncertain based on keyword likelihoods in the incoming message (e.g., "task" or "build" boosts focused). Attention engine: chooses between self / environment / memory / possibility, influenced by which state was chosen. Action engine: chooses between observe / remember / explore / reflect / rest, weighted by the attention result (+0.6 bonus for aligned choices). After each turn a feedback loop adjusts action_bias by ±0.08 — actions that succeeded become more likely, failures become less likely. These biases persist for the session.
LAYER 3 · organism.py → JsonlMemory
Raw Event Memory — The Append-Only Log
Every single thing that happens writes a timestamped JSON row to /tmp/prob-ai16/organism/memory.jsonl: cycle results, conversation turns, autonomy scans, and errors. Nothing is ever deleted or overwritten. recent(n) returns the last n rows by reading from the tail of the file. The last 8 entries are serialized as JSON and injected into every Vocal Cortex prompt, so the LLM always sees what actually happened — not a summarized or filtered version. This is the organism's working short-term memory.
LAYER 4 · organism.py → WorldModel
World Model — Competing Hypotheses
A dict keyed by topic. Each entry stores a hypothesis string, a confidence float clamped between 0.0 and 1.0, the evidence that drove it, and a timestamp. On every cycle, observe("current situation", observation, 0.5, "latest observation") updates the current-situation entry — always at 0.5 confidence, because any single message is only one data point. The design intentionally holds competing hypotheses per topic rather than committing to one "true" world state. Nothing in this layer is fed to the LLM directly; it informs the cycle result that feeds into the prompt context.
LAYER 5 · organism.py → SelfModel
Self Model — Hardcoded Identity
Stores identity, capabilities, limitations, and drives in plain Python — not in weights, not in a prompt, not in a database. identity = "hi-ai17 experimental organism". capabilities = ["probabilistic choice", "memory", "prediction", "evaluation"]. limitations = ["no biological body", "no independent consciousness claim", "no unsupervised deployment"]. drives = {learn: 0.8, understand: 0.9, stay_safe: 1.0, explore: 0.6}. The limitations list is Python source code — the LLM cannot override it by generating contrary text. update(state, action) records what state and action the mind chose this cycle.
LAYER 6 · organism.py → SpecialistPlanner
Specialist Planner — Role Assignment
Assigns a list of processing roles to each cycle from a fixed set: observer, planner, critic, memory-analyst, self-model. Rules are deterministic: observer and planner are always assigned; critic is added if "unknown" or "unsure" appears in the observation text; memory-analyst is added if the attention engine chose "memory"; self-model is always appended last. The role list goes into the cycle result JSON and is visible in memory. It's how the system labels what kind of processing a given turn required — not a routing system that sends the query to different models, just honest annotation.
LAYER 7 · system_observer.py
System Observer — Read-Only Host Telemetry
Runs a fixed whitelist of shell commands on the local machine and nothing else: df -P (disk), free -b (RAM), uptime, nvidia-smi --query-gpu=name,temperature.gpu,utilization.gpu,memory.used,memory.total (GPU), ip -brief address (network), systemctl --failed, journalctl --user -p err..alert -n 20. Results are capped at 3,000 chars each and cached for 20 seconds. Scope is explicitly labeled in the data: "local lappy1 host only; remote lab nodes are not probed." The compact snapshot (without network and recent errors) feeds into every cycle. No shell evaluation, no write access, no dynamic commands.
LAYER 8 · semantic_memory.py
Semantic Memory — SQLite Long-Term Store
A thin adapter over hi-ai16's mature SQLite memory backend. On every reply, context(query) runs a semantic search against the DB and returns up to 12,000 characters of matching facts, lessons, and corrections. After the reply, record_exchange(question, answer) stores the conversation as a lesson via store_lesson() and logs the event via log_event(). hi-ai17 deliberately shares hi-ai16's DB rather than starting a new one — it inherits everything that was already learned. The schema supports: facts, embeddings, decay weighting, lessons, corrections, reflections, and a full event log.
LAYER 9 · hi_ai17_autonomy.py
Idle Learning Loop — Background Scan Daemon
A daemon thread that starts with the organism and checks every 60 seconds how long it has been since the last user interaction (organism.last_interaction). Two thresholds: after 15 minutes idle it runs sub8.light_scan() then sub9.evaluate(). After 60 minutes idle it runs sub8.deep_scan() then sub9.evaluate(). Each scan writes an autonomy_scan record to the JSONL memory including how long the organism was idle. The code explicitly states: "does not send messages, change services, or execute system operations." It observes and consolidates; it does not act.
LAYER 10 · truth_layer.py
Truth Layer — Post-Generation Auditor
After every LLM response is generated, review(question, answer, evidence_dict) runs five regex patterns against the lowercased answer: hidden_observation (claiming continuous monitoring of the user's computer), independent_learning (claiming to have learned while the user was away), private_experience (claiming subjective feelings or consciousness), protected_memory (claiming a specific memory was safeguarded), unsupported_prediction (claiming to predict the user's future behavior). If a flag fires and the answer contains explicit refusal language ("can't honestly claim", "don't have verified evidence"), verdict = abstention. Flagged without refusal = unverified. No flags with evidence = evidence_available. Every single review — pass or fail — writes a full record to truth_ledger.jsonl with the question, answer, flags, sources, and verdict.
ALSO IN THE CODEBASE — NOT A NUMBERED LAYER, BUT REAL
GroundingGuard (grounding.py)

Works alongside Layer 0. Adds a system prompt block telling Hermes to label every claim as observed / retrieved / inferred / hypothesis / unknown. Then runs a post-generation pattern match — if the question was about computer monitoring, predictions, protected memory, or silent learning, and the answer contains fabrication language, it replaces the entire answer with a specific honest refusal. Deterministic regex, not LLM.

ImprovementLab (organism.py)

Creates JSON proposal files in /tmp/prob-ai16/organism/proposals/ when a limitation is identified. Every proposal has status="review_required" and executable=False hardcoded. The inspect() method always returns executable=False. It cannot run code, cannot install anything, cannot modify itself. It is a suggestion box, not an actuator.

Architecture Benchmark — Three Independent Judges
GPT-5.5, Gemini, and Claude each scored Kyre independently against the same rubric. Results below are unedited.

WHAT EACH METRIC MEASURES
■ PARAMETRIC KNOWLEDGE

Raw factual breadth and reasoning depth baked into the model weights. Larger models with more training data score higher. This is where cloud monoliths dominate — they have 10-100x more parameters than local models.

■ EPISTEMIC GROUNDING

How well the system knows what it doesn't know. Does it fabricate confident answers? Does it distinguish memory from inference? Kyre's Layer 10 audits its own output post-generation and blocks specific fabrication patterns. Cloud AIs rely on training-time refusal, which is inconsistent under pressure.

■ MEMORY PERSISTENCE

Can the system remember who you are, what you talked about last week, and what it has learned over time? Cloud AIs lose context at session end. Kyre stores episodic and semantic memory in a SQL graph that persists across restarts, indefinitely.

■ OS / HOST AUTONOMY

Can the system run background tasks, monitor its environment, restart services, and act without prompting? Cloud AIs are stateless — they respond to requests and go dormant. Kyre runs Sub8/Sub9 network monitoring, autonomous research loops, and email outreach as persistent daemons on the host.

GPT-5.5
How GPT scored this benchmark: GPT evaluated each metric by prompting itself with the architecture description, source code structure, and system capabilities. It applied a rubric weighting raw parametric ability heavily and docking for architectural gaps. GPT gave itself high marks on knowledge and grounding — but was notably honest about cloud memory and autonomy deficits.
GPT-5.5 — OpenAI Cloud Frontier
Parametric Knowledge
98%
Epistemic Grounding
88%
Memory Persistence
45%
OS / Host Autonomy
35%
OVERALL: 66.5%

Claude Frontier — Anthropic Cloud
Parametric Knowledge
96%
Epistemic Grounding
90%
Memory Persistence
40%
OS / Host Autonomy
30%
OVERALL: 64.0%

Gemini Frontier — Google Cloud
Parametric Knowledge
94%
Epistemic Grounding
84%
Memory Persistence
42%
OS / Host Autonomy
40%
OVERALL: 65.0%

Kyre hi-ai17 — Hermes 3 · Home Lab, Gillette WY
Parametric Knowledge
60%
Epistemic Grounding
68% ← LAYER 10 (early)
Memory Persistence
90% ← SQL MAG
OS / Host Autonomy
88% ← SUB8/SUB9
OVERALL: 76.5% — STRONG

Advanced Home Lab — RAG + Agents + Automation
Parametric Knowledge
60%
Epistemic Grounding
45%
Memory Persistence
55%
OS / Host Autonomy
60%
OVERALL: 55.0%

Llama 3 70B — Stock Open Weights
Parametric Knowledge
78%
Epistemic Grounding
50%
Memory Persistence
10%
OS / Host Autonomy
10%
OVERALL: 37.0%

Average WebUI Lab — Ollama + Open-WebUI
Parametric Knowledge
45%
Epistemic Grounding
25%
Memory Persistence
10%
OS / Host Autonomy
10%
OVERALL: 22.5%
Talk to Kyre

Your conversation is stored in this browser only — nobody else can read it. Refresh the page and it's still here. Clear it with the ✕ button.