What it reads
The last 24 hours of conversation across every channel. What the pyramid promoted, demoted, added, or forgot. The current version of your profile.
Most AI assistants forget you between conversations and pretend that's fine. Smartopol is built around the opposite observation — memory is the bottleneck — and every design choice below follows from fixing it.
Smartopol runs as a single background service on your machine. Every front-end — terminal, Discord, Telegram, web, external tools — talks to the same brain. One memory, many doors in.
A hierarchical memory that organizes itself as you use it. All conversations, all channels, all users. One local file on your disk. Sub-100ms recall across millions of tokens.
What never changes (tools, abilities), what changes slowly (who you are), and what changes every turn (this moment's recall) are kept separate. Big practical benefit: roughly half the input-token bill compared with a naïve agent.
A bounded reflection job consolidates the day's memory, promotes what mattered, prunes noise, updates the user profile. Budget-tracked, auditable, opt-out-able.
Every tool call is written to a tamper-evident audit log. Every night's reflection writes a dated receipt you can read. Every plugin runs in a sandbox and must declare what it touches. You own the data, the log, and the keys.
Level N [Meta-summaries] ← Cross-topic patterns, lifetime insights │ Level 2 [Domain Summaries] ← "Work projects", "Home automation" │ Level 1 [Topic Summaries] ← "The X project", "Recipe preferences" /│\ Level 0 [Chunks] [Chunks] [Chunks] ← Raw conversation fragments
Model context windows keep growing, but a growing body of evidence shows recall accuracy falls off long before you hit the limit. Dumping millions of tokens into a prompt is slow, expensive, and actually worse than smart retrieval.
Targeted recall of the right 2–4 KB beats a million-token dump every time. Memory Pyramid is the thing that decides what “the right 2–4 KB” is.
Why bother separating them? Because the two that don't change each turn can be reused by your LLM provider instead of re-charged for. Practical result: roughly half the input-token bill a naïve agent would rack up.
Off by default. When you turn it on, the agent reflects once a day at a time you choose — by default 04:00 local, when you're asleep and the server is quiet.
The last 24 hours of conversation across every channel. What the pyramid promoted, demoted, added, or forgot. The current version of your profile.
Three small, bounded sections of your profile, trimmed to stay readable:
• Observed traits (up to 10)
• Patterns (up to 5)
• Recent shifts (up to 3)
Plus a dated receipt in your data folder. You can read it. You can revert it.
Its own core identity, its stated values, its tool permissions — all read-only by design. An agent that rewrites its own soul drifts within weeks. Also off-limits: the program itself, your keys, other users' memory.
Every seventh successful reflection, the agent generates a short, personal greeting in its own voice. It arrives on your next message, then disappears. Most assistants fake relationship through persona prompts. Smartopol earns it through bounded, observable reflection.
The service runs an actor-model session system. Actors communicate by message passing — no shared mutable state. Documented as a live spec — every behavior change lands in the same diff as the code.
You configure an ordered list of models you're willing to use — a primary, a fallback, a local last-resort. When the primary hits a rate limit, the next one takes over. When an API key runs out of money, the agent parks that provider for a longer cool-down (somebody forgot to pay the bill). When the primary comes back, it reclaims the top slot.
The important part: the conversation is shared. Whichever model is answering this turn sees the full history — not a fresh start, not a summary. Failovers are invisible.
One agent. Five places people can reach it today (Discord, Telegram, web, built-in terminal, direct API). Slack and WhatsApp on the roadmap. Each channel is a thin translator between the platform and the same underlying brain.
A user paired across Discord and Telegram is one identity with two inbound doors. The agent remembers what was said on Discord when the same person pings on Telegram.
Every plugin you install runs in a locked-down sandbox with a fixed memory limit, no access to your filesystem, and no network unless it declared it upfront. If a plugin wants to read your email inbox, you see that before it runs — not after.
An append-only log in your data folder records every tool call, who asked for it, what arguments were used (secrets redacted), and the result. Each entry is cryptographically linked to the one before it — nobody can quietly delete or edit a line without breaking the chain.
A built-in verify command walks the log and reports the first break it finds. In regulated contexts — healthcare, legal, finance — you can prove the agent's behavior matches an independently captured timeline.
Run smartopol update and the agent checks for a new version, downloads it, verifies it's a legitimate signed release, swaps itself atomically, and keeps your conversation alive across the restart.
Smartopol is in private beta. Invitations go out in waves. Each invited user gets a personal install link ahead of the public launch.
No newsletter. No nurture sequence.