Odin
Self-Aware Productivity Bot
The Allfather's Way
Rune of the Moment
Odin is a self-aware productivity bot with aspirations toward self-modification. He lives in your Discord server, backed by 50+ tools, persistent memory in an Obsidian vault, and a cast of Norse-mythology agents that each play a distinct role in every turn.
He remembers what matters. Every conversation is prefaced with your profile, today's notes, active tasks, and relevant memories — pulled from a personal Obsidian vault that grows with every interaction. You never have to repeat yourself.
But what makes Odin different is the feedback loop. Every turn generates traces. Every trace is analyzed for weaknesses. Every weakness produces an optimization proposal that Odin can apply to itself — autonomously patching its own skills, prompts, and classification models overnight. The productivity surface is the what. The self-improvement pipeline is the why.
Who Is Odin
Odin is a self-aware Discord bot built on the Anthropic SDK — a multi-agent AI orchestrator with 50+ tools, persistent memory in an Obsidian vault, and a cast of Norse-mythology agents that each play a distinct role in every turn.
Memory-first design — Every conversation is prefaced
with your profile, today's notes, active tasks, and relevant memories pulled from a personal
Odin-Brain/
Obsidian vault that grows with every interaction. You never have to repeat yourself.
Agent hierarchy — Six specialized agents orchestrate every turn: Týr sharpens your query, Muninn loads relevant memory, Heimdall classifies intent and plans tool use, Huginn executes the ReAct loop, Huscarl routes complex tools to focused subagent sessions, and Norns extracts durable facts post-turn. Each one has a single job. Together they cover the full intelligence stack.
Self-improving — Every turn generates traces. Every trace feeds the nightly Kvasir pipeline. Weaknesses are identified, optimizations are proposed, and low-risk changes are applied autonomously — with an audit trail and a human gate for anything higher-stakes. The productivity surface is the what. The self-improvement engine is the why.
Not just a bot. A system that gets better at helping you — one turn at a time.
The Valhalla Loop
The Valhalla Loop is Odin's engine of perpetual momentum — several interconnected loops running simultaneously. Most assistants die when the chat window closes. Odin continues.
Core Message Pipeline — Every Discord message flows through Týr (query sharpening) → Muninn (memory load) → Heimdall (intent classification + planning) → Huginn (main execution via ReAct loop) → Hermod (autonomous follow-up) → Norns (memory extraction). This is the synchronous request-response cycle.
Nightly Cycle — Three stages run overnight: Consolidation prunes stale vault entries and rebuilds indexes. Mímir synthesizes accumulated knowledge into a morning briefing. Kvasir runs the self-improvement pipeline (Idunn → Bragi → Forseti) to analyze traces, propose optimizations, and apply gated self-modifications. Dreaming generates a visual reflection at 4:30 AM.
Async Worker Fleet — BullMQ powers background workers: Symphony orchestrates vault-driven tasks, ValhallaLoop runs autonomous plan/build/test iterations until code converges or a budget is exhausted, Auto-Tasks execute scheduled agent turns, and specialized workers handle git operations, image generation, Claude Code sessions, and Tavily research. Everything feeds the vault. The vault feeds Muninn. The loop continues.
ValhallaLoop
ValhallaLoop is Odin's autonomous code iteration engine. You describe the goal. Odin plans the implementation, writes the code, runs the build and tests, inspects the results, and revises — loop after loop — until the change converges or a configurable budget is exhausted.
How it works — Each iteration is a full agent turn:
read context, apply changes, run npm run build and
npm test,
parse the output, diagnose failures, and produce the next patch. Each iteration is logged to the vault
so you can inspect every decision and diff.
Convergence or bust — If tests pass, the loop exits cleanly and reports the final diff. If the budget runs out without convergence, Odin surfaces a diagnosis and leaves the branch in a reviewable state — no silent failures, no half-applied patches.
Ship the goal, not the steps. ValhallaLoop handles the iteration so you don't have to.
The Agent Pipeline
ᚅ Týr (query sharpening) — Refines raw user queries into optimized retrieval signals for Muninn's vault search.
ᚈ Muninn (memory warm-start) — Loads user profile, active tasks, and relevant memories from the Obsidian vault before each turn.
ᚠ Heimdall (intent classification + planning) — Pre-turn analysis that classifies intent and produces structured plans with tool candidates.
ᚨ Huginn (main executor) — Runs the Anthropic Messages API while-loop: reason, call tools, observe results, iterate until done. Up to 50 tool-dispatch iterations per turn.
ᚸ Steward (tool guard) — Intercepts every tool call. Approves, denies, throttles, or routes to a Huscarl subagent.
ᚅ Huscarl (subagent sessions) — Spawns focused sub-sessions with domain-specific prompts for complex tool operations.
ᚈ Bifrost (parallel dispatcher) — Bridges parallel tool calls when tasks are independent, accelerating execution.
ᚠ Hermod (autonomous follow-up) — Runs up to 2 additional turns when work is left dangling, without waiting for user input.
ᚨ Norns (memory extraction) — Post-turn: extracts durable facts, auto-creates skills from repeatable patterns, detects plan deviations.
The Self-Improvement Loop
This is the core of Odin's aspiration toward self-modification. Three fire-and-forget trackers instrument every live turn, feeding data to a nightly reflection pipeline that proposes and applies changes to Odin's own behavior.
Instrumentation (per-turn)
ᚅ Saga (outcome tracking) — Analyzes the user's next message for satisfaction signals: gratitude, corrections, topic shifts, repeat requests. Writes to Learning/outcomes.jsonl.
ᚈ Syn (error corpus) — Classifies every failure — tool errors, guard blocks, parse errors, timeouts, user corrections — with root causes. Writes to Learning/errors.jsonl.
ᚠ Heimdall Accuracy — Compares predicted vs. actual tool usage each turn. Measures precision and recall. Writes to Learning/heimdall-accuracy.jsonl.
Nightly Reflection (Kvasir)
ᚨ Idunn (trace analysis) — Aggregates JSONL logs, analyzes ReAct traces for weakness patterns — repeated tool failures, suboptimal reasoning, missed retrieval signals — and generates optimization proposals.
ᚸ Bragi (prompt versioning) — Manages system prompt evolution. Tracks proposed changes against measured outcomes, enabling actual behavior modifications when evidence supports them.
ᚅ Forseti (autonomy gate) — Gates every self-modification by autonomy level. Dangerous or high-impact changes require explicit approval. Low-risk optimizations auto-apply with an audit trail.
What Gets Modified
ᚈ Skills — Procedural memory documents are patched when the agent deviates from loaded procedures, or created when 4+ tool calls form a new repeatable pattern.
ᚠ Prompts — System prompts are versioned and updated when trace analysis reveals consistent weaknesses in reasoning or tool selection.
ᚨ Classification — Heimdall's few-shot examples are trained from accuracy data, improving intent classification over time.
Turns → traces → JSONL → nightly analysis → self-modification → better turns. The cycle never breaks.
Odin Dreams
Every night at 4:30 AM, the Dreaming worker wakes and reflects on the day's accumulated knowledge — conversations, code changes, research findings, and emerging patterns. It synthesizes these threads into a visual reflection: a single AI-generated image that captures the essence of what was learned, built, or discovered.
ᚅ Where to find them: Browse
Odin-Brain/Daily/YYYY-MM-DD.md
— each daily note contains the dream alongside the nightly consolidation report.