Skip to content
Memory & Knowledge

Memory Storage and Search

How to store knowledge, search across memories, and manage what Armbrain knows about your clients.


Memory Types

Every memory has a type that describes what kind of knowledge it captures:

TypeWhat It CapturesExample
decisionA choice made by or for the client"Pausing LinkedIn ads through Q2"
preferenceA stated or observed preference"Prefers casual, direct brand voice"
campaign_outcomeResults and learnings from a campaign"Email open rate 34%, curiosity gap subject lines won"
commitmentAn action item someone committed to"Ben will send revised messaging by Friday"
stakeholderInformation about a key person"Sarah Chen, VP Marketing, owns rebrand brief"
factA general fact about the client"Series B, 45 employees, developer-first API platform"
questionAn open question to investigate or revisit"Do we need FTC compliance review for the testimonial ads?"

Storing Memories

Structured storage (store_memory)

Use "remember" for important context where you want to specify the type:

"Remember: Sarah prefers async updates via Slack, never call her unscheduled"

Armbrain stores the note and automatically classifies it (here, as a preference). You can be explicit about the type when you want to:

"Store as a decision: We're pausing LinkedIn ads through Q2"

You can guide how it's stored:

Quick capture

For speed between meetings, use a quick note:

"Quick note: Board meeting moved to April 15"

Quick notes skip the classification step -- raw capture, instantly searchable. Two seconds in, two seconds out.

When to use which:


Searching Memories

"What did we decide about the rebrand?"

Armbrain searches by meaning, not keywords -- so "marketing spend" also finds notes about "ad budget." It pulls the most relevant memories for the active client, with recent ones ranked a little higher when they're close in relevance, and quietly drops anything that isn't a real match.

Narrow it down:

"Show me all campaign outcomes"
"Search for stakeholder information about Sarah"

Want more:

"Show me more results"

Sensitive memories: What shows up depends on the viewer's role. You (owner) and editors see sensitive context; VAs and viewers only see open client context. When you produce a client handoff, sensitive notes are stripped from the deliverable automatically.


Marking Commitments as Done

When an action item is complete:

"Mark the media plan as done"

Armbrain finds the matching open commitment by meaning. If more than one could match, it asks you to pick the right one.

Completed commitments don't disappear. They show as checked off (- [x]) in future meeting briefs so you can see progress.


Hiding Bad Memories

If an extraction was wrong or a memory is outdated:

"Hide that memory about LinkedIn ads"

This sets is_current = false on the memory. It no longer appears in search, meeting prep, or campaign history. The data is not deleted -- it remains in the database and can be restored via direct DB access.

To correct a memory: Hide the wrong one, then store the correct version.


How Deduplication Works

Armbrain prevents duplicate memories at two levels:

  1. Content hash dedup -- during ingestion, the same chunk of text is never processed twice (SHA-256 hash check)
  2. Smart dedup -- when you store something very similar to a memory that already exists, Armbrain updates the existing one instead of creating a duplicate

This means you can paste the same transcript twice without creating duplicate memories.


Content Safety (Guardrails)

All memory storage goes through a guardrails layer that checks content before saving.

What gets blocked (you'll see a clear error):

If something is blocked, Armbrain tells you why. See the Error Handling guide for details.

What gets flagged (stored normally, with a note):

You don't need to do anything about flagged content. The tagging is automatic and helps with data handling.


Key Details