osFoundry / Platform
Memory extraction
Maestro extracts durable memories from every conversation — facts, decisions, preferences.
What it is
Memory extraction is how osFoundry's Maestro turns transient chat into durable, reusable knowledge. After a conversation compacts, Maestro reviews the exchange and pulls out what is actually worth keeping: stated facts (\"our stack is Postgres\"), decisions and the reasons behind them, personal and team preferences, constraints (\"don't use the staging database\"), and anything you explicitly ask it to remember. Each extracted memory is stored with a type, an importance score, and tags, so it can be filtered and retrieved rather than lost the moment the context window rolls over.
Inside osFoundry, extraction is built to be cheap and honest about cost. It runs in the background (fire-and-forget) after compaction, and before it ever calls a model it applies a fast salience check over your own words — looking for the shapes a durable fact actually takes, like stated identity, a preference, a decision, or a \"from now on\" instruction. Turns that carry nothing memorable never reach the model, so extraction doesn't quietly bill your API key on every message. When it does run, it uses the model chain you've configured for the memory_extraction pipeline role: any local, cloud, or self-hosted model you bring your own key for, with no reseller markup. An importance threshold then filters out low-value candidates before anything is written.
Storage is local-first by design. Extracted memories are handed to an on-device store first — the local_memories table is never synced to the cloud — and only then, if you have an account and are online, embedded and mirrored to a workspace memory store. That ordering is deliberate: a user running fully locally or offline still gets every memory, and near-duplicate facts are deduplicated on write. Later, agents and Maestro recall these memories through semantic search: the query is embedded, matched against the memory store, and each hit comes back with its own citable memory:// address so you can see exactly which remembered fact informed an answer. The whole path is pluggable too — you can bind a custom memory_extractor, and osFoundry's native extractor serves as the fallback.
Key capabilities
- Extracts durable memories from every conversation after compaction: stated facts, decisions and their reasons, preferences, constraints, and explicit "remember this" requests.
- Runs a cheap salience gate before any model call, so extraction only spends your own API key on turns that plausibly carry something worth keeping instead of billing on every exchange.
- Uses your own BYOK model chain for the memory_extraction role, local or cloud, with no reseller markup on the calls it makes.
- Local-first storage: extracted memories are written to an on-device store first (never synced to cloud), so they persist even when you run offline or without an account.
- Scores each memory by importance and type, deduplicates near-identical facts, and makes them retrievable later via semantic memory search with citable memory:// sources.
Use cases
- Consulting engineer: Maestro remembers a client insisted on Postgres over DynamoDB and why, so weeks later the agent doesn't re-litigate a settled decision.
- Privacy-conscious researcher: preferences and project facts stay in the on-device memory store that never syncs to cloud, usable fully offline on your own keys.
- Team lead standardizing conventions: once you state "our team prefers tabs" or "don't touch the migration files," that constraint is captured and surfaced in later work.
Frequently asked questions
Does memory extraction send my conversations to osFoundry's servers?
No. Extracted memories are written to an on-device store first, and that local memory table is never synced to the cloud. Only if you have an account and are online are memories additionally embedded and mirrored to your own workspace memory store. The extraction model call itself runs on the key you bring — osFoundry's servers never call an LLM on your behalf.
Does this run an expensive AI call after every message?
No. Extraction only happens after a conversation compacts, and even then a cheap salience gate runs first — a fast pattern check over your message for things like stated preferences, decisions, or "remember this" phrasing. Ordinary task chatter is skipped before any model call, so it doesn't bill your API key on turns that contain nothing worth keeping.
How does Maestro use a memory once it's extracted?
Memories are stored with a type, importance score, and tags, then made retrievable through semantic search. When it's relevant, the agent embeds a query, searches the memory store, and pulls back matching facts — each with a citable memory:// source so you can trace which remembered detail shaped the response. You choose the memory_extraction model via osFoundry's BYOK pipeline roles.