Anti-Strug
Anti-Strug Agentic Cognition Platform
The agentic operating system underneath everything Strug City makes.
Structurally-isolated multi-brain memory. A registry of specialized agents. Composable behavioral configuration. An intelligence layer that learns from every task. Anti-Strug is the platform Strug City built so a small team can run a multi-product org — and what every product we ship runs on.
Anti-Strug wasn't built as a product. It was built because Strug City needed it.
The pattern is simple. Strug Works needed multi-brain memory. Sabine needed it differently, for personal-life context. Both teams kept building the same memory primitives in slightly different ways. So we built Anti-Strug — once — as the shared substrate. Sabine moved off her in-process memory in April 2026. Strug Works started migrating to Anti-Strug's brain registry in May.
Same pattern, again. Strug Works had ten hardcoded agent role personas baked into the orchestrator. Sabine needed to dispatch those same roles without importing Strug Works internals. Last week, we extracted the registry into Anti-Strug as a platform primitive.
Every capability you'll read about below started as something a Strug City product needed. Got built into Anti-Strug. Now every other product inherits it.
Every product Strug City ships is proof Anti-Strug works.
Multi-brain memory with structural isolation — and episodic distillation no competitor has built.
Every brain on Anti-Strug — Sabine, Strug Works, Poppin, Strug City Sports — gets a memory store that is structurally isolated from every other brain at the database layer. Every memory row carries a brain_id foreign key with cascade delete. Row Level Security policies enforce isolation via a session variable set by the API layer before every query. No application path can read another brain's data without a schema change.
Layered on top of the isolation is a capability no alternative platform has built: memory that learns the difference between what's true, what happened, who matters, and what's still being figured out.
Conversation sessions are distilled into structured episodic memories, partitioned along epistemic lines — world_facts, agent_experiences, entity_summaries, evolving_beliefs. Retrieval distinguishes them at query time.
Letta, Mem0, CrewAI, OpenAI Agents SDK, LangSmith Deployment, Anthropic Native, Vercel AI SDK — all use application-layer isolation that can be bypassed by application code with the wrong identifier. None have a distillation pipeline with structural knowledge typing.
A registry of specialized agents. Reusable across every product on the platform.
Anti-Strug ships with ten production agent roles, each with distinct system prompts, budget presets, round limits, and tool-access policies. You dispatch to a role, not a generic agent. The Orchestrator can decompose missions and spawn the right specialists automatically.
Customers personalize their own roster on top. The platform supports flexible team configurations: one persona can carry multiple roles (Nia covers Analyst + Content Writer; John covers Social Media + Product Sync) or you can name one persona per role. The Strug City Virtual Engineering team is one deployment configuration; yours can be whoever you need.
Composable behavioral configuration. A versioned contract today; a marketplace tomorrow.
Context Packs are JSON-Schema-validated bundles of system instructions, cognitive variables, and tool access. The schema is a stable platform contract — Draft 2020-12, versioned URI, additional-properties-strict. Each consumer product loads and applies its own context packs today.
The runtime library — programmatic pack loading, weighted merging, A/B-testable pack swapping — is on the platform roadmap. The convention exists so that when the runtime ships, every existing consumer is already following it.
Brain Packs — pre-tuned brain configurations exportable to new projects or external agents — emerge from this foundation. The Strug Works brain, once mature, becomes a reference Brain Pack for engineering teams. This is the marketplace seed.
{
"context_pack_id": "sabine/base",
"version": "1.0.0",
"system_instructions": "...",
"cognitive_variables": {
"tone": "warm-direct",
"max_recall_results": 10
},
"tool_access_list": [
"memory.recall",
"memory.ingest"
],
"cacheable": true,
"merge_weight": 10
}An intelligence layer that learns from every task.
Every brain on Anti-Strug gets smarter with every task. Four mechanisms compound.
Self-training, per brain
Every enrolled brain runs a weekly optimization cycle on its own memories. Per-brain retrieval configs replace global ones. Opt-in only, with explicit owner_consent_at.
Shadow-brain isolation
Training happens in an ephemeral shadow brain created at run start and deleted at run end. Production brains are never touched mid-train. An orphan sweeper catches any shadow that escapes its try/finally block.
Cross-agent knowledge sharing(in active rollout, May 2026)
Memories from one agent role surface to other roles via a mandatory domain floor in retrieval. A QA failure becomes a backend prevention. A schema constraint discovered by sc-data flows to sc-backend on the next related task.
Lab→Production feedback loop(in active rollout, May 2026)
Task outcomes feed Memory Lab's calibration. Retrieval quality self-tunes on real agent signal. Hubris self-corrects: if an agent over-relies on its own memories when domain knowledge is superior, the floor tunes upward.
The architecture that makes the platform real.
Eight things that have to be right for "agentic operating system" to be more than a marketing claim. They are.
DB-layer isolation
Every memory row in memories, entities, entity_relationships, rules carries a brain_id FK with ON DELETE CASCADE. Drop a brain → all its memories vaporize atomically.
Brain isolation enforced at the database, not the application
Session variable set by the API layer before every query. Service-role bypass for inter-service workers (cron, consolidation pipeline). Permissive default explicitly warned in the platform contract — application paths must set the session variable.
POST /consolidate/session
Distills conversation sessions into structured episodic memory with epistemic partitioning. Voyage-3 embeddings (1024 dimensions). Returns skipped: true for sessions below the minimum threshold (not an error).
BM25 + MAGMA + dense + RRF
Sparse + graph + dense vector signals, reranked via Reciprocal Rank Fusion at query time. Each brain runs its own retrieval config or inherits the global fallback.
Sundays 03:00 UTC, shadow brains, advisory locks
APScheduler-driven. Jittered per brain to spread load. Budget guardrail caps brains per cycle. Orphan sweeper at 04:00 UTC catches escaped shadows. Six promotion criteria gate all config changes.
Four-layer redaction on curriculum sampling
SQL partition filter + regex (emails / phones / cards / SSN / IBAN) + entity pseudonymization + URL scrubbing + owner_consent_at gate. No single layer is sufficient.
Ten roles, extracted into anti_strug/agent_registry/
Each role: system prompt, budget preset, round limit, tool-access policy. Any consumer instantiates a role without importing Strug Works code. (In active extraction — May 14, 2026 migration.)
FastMCP HTTP/SSE, bearer-authenticated
Memory, intelligence routing, orchestration all exposed via Model Context Protocol. Any MCP-compatible client — including Claude Code and Cursor — can use Anti-Strug as infrastructure. Eight tools exposed: dispatch_task, get_task, get_mission, list_active_agents, read_memory, start_project, revise_spec, approve_spec.
Five products. One platform.
Sabine
Memory layer, episodic distillation, multi-channel agent core
Strug Works
Agent registry extraction, memory integration, cross-agent feedback loop
Strug City Sports
Multi-brain memory for athlete-program persistence
Feedtumi
Persistent memory + agent registry for nutrition-coaching agents
Poppin
Multi-brain memory for family / household coordination
Anti-Strug today, tomorrow, and after.
Today
What's shipping
- Sabine in production
- Strug Works in active migration
- Platform contract v1.0.0 versioned and public
- Episodic distillation pipeline
- Multi-brain self-training cron
- Schema verification verified
- Documentation production-quality
Next
When the next products integrate
- Strug City Sports + Feedtumi adoption
- Context Pack runtime libraries
- Cross-agent knowledge sharing in production across the Strug Works brain
- Per-brain retention policies
- Memory Lab observability dashboard
Later
When the math works
- Public MCP gateway
- Brain Pack registry (the marketplace seed)
- External developer access
- Studio Head brain
- Cross-brain shared-state capability
- External developer documentation portal
Trigger-gated trajectory, not a calendar.
Want to talk about this?
Anti-Strug is internal infrastructure for Strug City products today. Sabine runs on it. Strug Works is migrating. The full external platform ships when our next products are in production on it. Want to talk early? Ryan handles serious inquiries personally.