Architecture
The technical model in one page. The reasoning behind each choice — and what was evaluated and rejected — lives on /principles; this page is the shape of the thing.
This layer is kept in English so it stays current; the full story lives at /principles in Nepali, English, Japanese, and Hindi. Machine map: /llms.txt. Everything here is true as of 2026-08-20; plans are labeled as plans.
The core loop
- Archive first. Originals are preserved unchanged; understanding is always re-derivable from them. The one permanent exception: user deletion beats immutability, provably.
- Beliefs are bi-temporal claims.Each carries valid-time, learn-time, confidence, and provenance; new facts supersede rather than overwrite, so "what did I believe last year?" stays answerable.
- Context assembly is the product. Every reply is grounded in a budgeted, scored selection of memories, documents, and knowledge — traceable per assembly. Abstention beats invention.
- One understanding, many surfaces. Chat, voice, documents, devices all read and teach the same substrate — never per-capability or per-device memory.
The graph spine
The world is modeled as a graph, not containers: each person is a sovereign node that belongs to itself, and belonging — to a family today, a community later — is a consented, revocable link carrying the consent that created it. Person, family, company expose the same interface at every scale (recursive composition), and crossing a boundary is an explicit, governed act answered with the least disclosure that suffices.
Deployment shape
- One owned VPS, Docker Compose: FastAPI backend, Postgres (+ pgvector) for archive/claims/vectors, a static Next.js client served by Caddy, LiveKit for family calls, SearXNG for web search. Backups are on-server today.
- User files encrypted at rest; short-lived scoped tokens for downloads; per-user storage and spend quotas; tamper-evident audit logs for admin access.
- Model providers sit behind abstractions with fake test-default implementations — text reasoning on open-weights models via hosted API (exit engineered before entrance), speech via Google today (stated plainly), embeddings swappable by re-embedding. The full disclosure table, in honest tenses, is on /principles.
- Stated as direction, not yet wired: heavy multi-step execution (documents, decks, coding-class jobs) is headed to interchangeable agent runtimesbehind the same seam philosophy — the best engine chosen per task, running inside Sathi's own identity, permission, and audit walls, upgraded rather than reproduced as engines improve. Engines are replaceable; the relationship is not.
Interfaces
The structured list — statuses included — lives on /capabilities and in /capabilities.json. In brief: the PWA and its REST API serve this deployment's accounts; paired devices can drive Sathi through an OpenAI-compatible chat endpoint (deliberately repointable); a realtime voice gateway is deployed dark; the signed export archive is itself an interface — a fresh Sathi can be rebuilt from it. No A2A or MCP surface is exposed today.
Relationship to Altruistic AI
Sathi is the reference implementation of Altruistic AI — an open architectural framework for sovereign, adaptable, trustworthy information communities. The framework embeds as few values as possible; Sathi adds its own and publishes them. What reality teaches this deployment flows back into the framework.