Daedalus and Thalos
This guide is for the author of an application that hosts agents and wants them to remember procedures. It lists what a host wires, in order, and how Daedalus and Thalos, the two hosts Mnemosyne is built alongside, fit that list.
The two hosts
- Thalos.NET is an agent framework for .NET on Microsoft Agent Framework, with AI.Sentinel security and MCP tools. Its repository description also calls it "Hermes-style, ZeroAlloc-native", which this guide does not rely on.
- Daedalus.NET is a .NET 10 application for AI-driven task execution. A person plans work on a task board and starts a manufacture run for a task. Its agents run on Thalos.NET.
Neither repository's public README mentions Mnemosyne today. This guide therefore says what Mnemosyne offers a host, and leaves the wiring in each host to that host's repository.
What Mnemosyne never does
Mnemosyne never executes a procedure. It stores the steps of one, finds the best known one for a question, and records how a run went. The host decides what to do with the steps: follow them, adapt them, or ignore them. A host that expects Mnemosyne to run a graph, retry a step or call a tool will not find that code in it. Overview shows where each package sits.
What a host wires
In this order:
- A store. PostgreSQL 15 or later with pgvector 0.8.0 or later, registered with
AddMnemosynePostgreSql, and a host that callsMigrateAsyncat startup. See PostgreSQL store and Migrations. - Embeddings. An
IEmbeddingGenerator<string, Embedding<float>>from Microsoft.Extensions.AI. The store'sDimensionsmust match what it returns. Getting started shows the pairing. AddMnemosyne. It registers the facade and the default selector. Register the store, the generator and every other service the facade uses as a singleton. Getting started has the registrations.- Capture.
AddReasonletCaptureregisters the queue and the worker that remember finished runs in the background. Capture, redaction and review follows a capture from transcript to store. - The Agent Framework provider. A
ReasonletContextProvideron each agent, with aScopeResolverthat returns the run's scope and subject. The default resolver uses the agent's name as the scope and sets no subject, which a multi-tenant host replaces. See Scope and subject. - The review gate.
MnemosyneOptions.RequireReviewholds a new capture asPendingReviewuntil a person approves it. See The review gate. - The lifecycle jobs. The host schedules
PruneAsyncon the store and callsEraseAsyncwhen a tenant leaves or a person asks. Mnemosyne never prunes on its own. See Retention and Erasure.
Steps 1 to 5 give an agent recall and capture. Steps 6 and 7 are the controls a host adds before real users reach it.
How the two hosts map
Thalos.NET builds on Microsoft Agent Framework, and Mnemosyne.NET.AgentFramework is Mnemosyne's package for that framework. Its ReasonletContextProvider is an Agent Framework AIContextProvider, so a host built on Agent Framework adds it to an agent's AIContextProviders, as step 5 describes. Agent Framework has the setup.
Daedalus runs its agents through Thalos.NET: its README describes a Daedalus.Agents project hosted in Daedalus.Api, with sessions, tools, AI.Sentinel and a Telegram channel. Its README documents the memory it uses today, Thalos.NET.Memory, and does not mention Mnemosyne.
Whether a Thalos or Daedalus release wires Mnemosyne in, and under which registration, is not in either README. For that, read the host repositories: Thalos.NET and Daedalus.NET. This guide does not claim that an adapter exists.
A checklist for a new host
- Scope and subject per run. Return a stable scope, usually the tenant, and the person's id as the subject when erasure by person matters. A renamed agent starts a new scope under the default resolver. See Scopes and subjects.
- A judge. Without an evaluator the agent's own verdict counts for every run unless a person gives feedback, and an agent-only verdict weighs less in ranking. Pick Minos or a chat model, or write your own. Evaluation says who decides whether a run worked.
- A capture guard.
Mnemosyne.NET.Sentinelruns AI.Sentinel's detectors over a capture before it is stored. A scan in which a detector throws fails closed asUnavailableunless another detector blocked; A throwing detector fails the capture closed has the detail. - Retention. Schedule
PruneAsyncwith aReasonletRetentionpolicy that fits how long runs are useful. See Retention. - Telemetry. Add the
Mnemosyne.NETactivity source and meter to your OpenTelemetry setup. See Telemetry and its Privacy section. - Erasure. Decide who may call
EraseAsync, and test an erase of a scope and of a subject against a copy of your data. See Erasure and What erasure leaves on disk. - Data protection. Data protection lists the duties a deployer carries and what Mnemosyne does not do for you.
- Upgrades. Stop every instance of the old release before you migrate. See Upgrading and Compatibility.