Everything, One Tool Call Away
The lean context system puts a coverage map in the prompt, not the content. What makes that work is the retrieval toolset: model-callable tools, served by the always-loadedintrospect capability over a CortexHost bridge, that reach the cortex index in milliseconds. All of them are read-only except memory_save.
memory_search
The primary retrieval tool: ranked FTS across everything indexed. Returns snippets with refs — follow up withmemory_get or conversation_read for full content.
memory_get
Fetches the full content behind amemory_search ref: a whole episode day, a knowledge file, a task transcript with its detail log, or all records of a conversation.
file: refs return the actual file — workspace-confined, with a head+tail excerpt past 12K characters.
Ref Formats
conversation_list
Enumerates past conversations, newest first: id, channel, title, message count, last-updated. This has never existed before v1.0.203 — the model previously had no way to see its own conversation history as a list. It’s served from the index’sconversations table, so enumeration is instant.
conversation_read
Reads a specific conversation — the messages and the tool calls/results inside it — with pagination. It also recovers turns of the current conversation that were folded into a rolling summary and are no longer in the model’s context (see Context Compaction).
Output is excerpted; the tool prints a
file: ref alongside, and memory_get on that ref returns the complete untruncated bytes.
memory_save
The one write tool: durably saves a single self-contained fact to the long-term knowledge files, deduplicated. Use it for preferences, decisions, project facts, or people details — not transient task state. Episodes and task logs are recorded automatically.usage_report
Wolffish’s own LLM spend, read from the structured usage ledger: requests, tokens (in/out/cache), and cost — total and per model.wolffish_recall
Kept as a stable alias with simpler ergonomics — search by keyword and/or pin to a single day. It now rides the same index asmemory_search (it used to be a linear scan over ~80 files on disk; that path is gone).
The introspect capability also carries the status tools —
wolffish_status, wolffish_performance, wolffish_memory, wolffish_list_files — unchanged in this redesign, plus channel_status for live Telegram/WhatsApp/in-app connectivity (fixed in v1.0.203; it was previously defined but unroutable).Example: “Send me the flight plan”
A definite reference to something not in context — the model searches first, then follows the ref, then delivers:- “What did Sana say on WhatsApp?” →
memory_search— inbound channel messages are indexed too. - “What did we do on the 18th?” →
wolffish_recallwithdate: "2026-06-18". - “Did that backup task finish?” →
memory_searchwithsources: "task". - “What did today cost?” →
usage_report. - “What was the confirmation number I gave you earlier?” (long conversation) →
conversation_readon the current conversation.
The Recall Doctrine
Retrieval is unprompted — the operating contract (agents.core.md) instructs the model to decide recall from the intent of your message, not to wait for “search your memory”:
- Definite references to things not in context — “the flight plan”, “that file”, “the email I sent her”, “like last time” — mean you know it has it. Search first, whether it’s from an hour ago or months ago.
- Repeat-task smell — “send an email to Sarah”, “post the update”, “do the weekly report” — quick search for prior instances first: there may be an established pattern, template, or recipient list you expect it to reuse.
- Anything touching preferences (tone, format, recipients, schedules, naming) — check the learned-preferences digest in the prompt; if that doesn’t cover it, search before guessing.
- Pure-present tasks — weather, a calculation, a fresh web lookup — need no recall. Just act.
What Is Indexed
The cortex indexes 11 sources, at section/message granularity:
Excluded by design:
config.json (secrets), whatsapp/auth, Telegram state, .debug, dot-directories, and node_modules. Binary files are indexed as metadata only, never content.
The index is schema-versioned: a full rebuild happens only on a version bump (~1.3s for a 2GB workspace); a normal launch runs an incremental mtime/size diff in ~22ms.
The Lean Context System
Why the prompt carries a map instead of the content.
How Memory Works
Episodes, consolidation, and knowledge — the memory tiers behind the index.