atomicmemory SDK. After installation, they appear in the Langflow component sidebar under the atomicmemory category, ready to drag into any flow. Components cover the full memory lifecycle — from reading chat history and searching prior context, to storing new memories, inspecting individual records, and performing governance mutations with a full audit trail. Standard components work with the public SDK; enterprise governance components require the enterprise atomicmemory SDK build.
Components
Chat Memory
Read-only chat history (Message History backend) from a user/session scope. Fails closed by default if the backend is unreachable — toggle Fail open on error to return empty history instead.
Search Context
Query-driven, prompt-ready memory context scoped across all of the user’s sessions by default. Toggle Scope to session to restrict retrieval to the current session.
Store Message
Explicitly persist a message or turn into memory. Ingest runs synchronous LLM extraction and embedding, so writes can take up to ~20 seconds.
Delete Memories in Scope
Best-effort erasure of all memories in a given scope. Confirm-gated to prevent accidental deletion.
Enterprise governance components
The following five components require the enterpriseatomicmemory SDK. They will fail fast at runtime with a clear “enterprise SDK required” error if the enterprise build is not installed.
| Component | Purpose |
|---|---|
| Memory Browser | List the memories in a scope; optional admin inventory view with compliance attributes |
| Memory Inspector | One memory’s full content, provenance, and audit lineage (redacted without an admin key; full with one) |
| Search Diagnostics | Explain a retrieval: included and omitted counts, omission reasons, and included memory IDs |
| Operator Action | Admin-gated governance mutation: correct / redact / reclassify / revert / hard-delete / delete-by-scope |
| Audit Reader | Read the operator action log and receipt-chain validity (operator-global; optional user_id filter) |
Memory Browser, Memory Inspector, and Search Diagnostics are read-side governance components. Operator Action and Audit Reader are mutating components — they source the admin key from the operator environment, never from a flow input.
Requirements
Before installing, confirm your environment meets these requirements:- Python >= 3.10
atomicmemory>= 1.1.2 (enterprise build required for governance components)langchain-core- Langflow
>=1.6,<2.0 - A running AtomicMemory Core (default
http://localhost:17350)
Run a local AtomicMemory Core (Docker)
All components require a running AtomicMemory Core. To start one locally using Docker:The governance demos (Memory Inspector, Search Diagnostics, Operator Action) use local embeddings and do not call an LLM, so a dummy
OPENAI_API_KEY value is fine. For conversational demos that run Store Message → Search Context, set a real LLM_PROVIDER and API key.Install
Install the Python package
Install For governance components, install the enterprise SDK wheel or private source first, then install
atomicmemory-langflow into Langflow’s Python environment:atomicmemory-langflow.Copy component entry files
Use the AtomicMemory Langflow plugin CLI to copy the component entry files into your Langflow components root:Alternatively, set the components root via environment variable:Replace
<langflow-python> with the path to the Python executable in Langflow’s environment.Security
AtomicMemory’s Langflow components are designed to keep secrets out of flow definitions and prevent flows from being used as escalation paths.API keys and Provider Config
Put API keys only in the API Key secret field. Never place them in Provider Config — that field is stored in plaintext in the flow definition. The Provider Config field is allowlist-only: only known tuning keys (timeoutSeconds, apiVersion) are accepted. All URLs, keys, and secret-shaped keys (accessToken, clientSecret, and similar) are rejected.
API URL validation
By default, the API URL field accepts only local hosts. Pointing memory at a non-local endpoint requires the operator (not the flow author) to opt in explicitly:Governance and the admin key
The admin key is the most privileged credential — it can read the full audit trail and, for mutating components, correct, redact, or delete any memory in scope. The plugin enforces a strict split based on component risk level:Read-side governance (Memory Browser, Inspector, Search Diagnostics)
Read-side governance (Memory Browser, Inspector, Search Diagnostics)
These components take a separate, optional Admin API Key flow input (
X-Atomic-Admin-Key). Without it, they return redacted views. Supplying an admin key upgrades to full audit trail and admin inventory views. A flow-level admin key here is read-only — the tolerable upper bound for a flow input.Mutating governance (Operator Action, Audit Reader)
Mutating governance (Operator Action, Audit Reader)
These components do not accept an admin key as a flow input. The mutation-capable key comes exclusively from the operator environment:The component fails fast with a clear error if this variable is unset. This design ensures a flow author cannot read or export a key that can mutate or delete memory.The audit
actor is set from the authenticated session user when one exists — a flow field cannot override it, preventing identity forgery in the tamper-evident log. Only in headless or CLI runs (where there is no session user) does the component fall back to an optional Actor (fallback) field.Irreversible actions
Irreversible actions
hard_delete and delete_by_scope require a Confirm phrase typed to match the target (a Memory ID or target user_id) in addition to a Confirm toggle. delete_by_scope also offers a Dry run mode that previews the affected count without deleting. Note that the dry-run count is capped at 1000 records — a count at the cap is reported as a lower bound (“at least N”), never a falsely exact total.Scope and identity
Memory is scoped byuser (required) and an optional session for per-conversation threading. The User ID field defaults to the Langflow run user when left blank.
Search Context recalls across all sessions by default — long-term memory should persist beyond a single conversation. Toggle Scope to session on the Search Context component to restrict retrieval to the current session. Chat Memory and Store Message are always session-aware.
In shared, multi-tenant, or Cloud deployments,
user_id and session_id can be set via flow inputs and tweaks. Control who can edit and run flows — a flow author who sets user_id can read and write that user’s memories.