synap-nemo-agent-toolkit
Synap memory plugin for NVIDIA NeMo Agent Toolkit (NAT).
Implements nat.memory.interfaces.MemoryEditor so that NAT workflows can
use Synap as long-term memory out of the box — either programmatically,
or via a single YAML line:
memory:
synap:
_type: synap_memory
customer_id: "acme" # optional scope
mode: "accurate" # or "fast"
Install
pip install synap-nemo-agent-toolkit
Depends on maximem-synap>=0.2.0, synap-integrations-common>=0.1.0,
and nvidia-nat-core>=1.0.
Use (programmatic)
from maximem_synap import MaximemSynapSDK
from nat.memory.models import MemoryItem
from synap_nemo_agent_toolkit import SynapMemoryEditor
sdk = MaximemSynapSDK(api_key="...")
await sdk.initialize()
editor = SynapMemoryEditor(sdk=sdk, customer_id="acme", mode="accurate")
# Write
await editor.add_items([
MemoryItem(
user_id="alice",
memory="Prefers tea over coffee",
tags=["beverage", "preference"],
),
])
# Read — user_id is required on every search
hits = await editor.search("beverage preference", top_k=5, user_id="alice")
for hit in hits:
print(hit.memory, hit.tags, hit.similarity_score)
Use (YAML / NAT workflow)
Set SYNAP_API_KEY (optionally SYNAP_INSTANCE_ID) in the environment
and declare the memory provider in the workflow config:
memory:
synap:
_type: synap_memory
customer_id: "acme"
mode: "accurate"
# Optional — falls back to SYNAP_API_KEY env if omitted
# api_key: "${SYNAP_API_KEY}"
NAT's plugin loader picks up synap_memory via the nat.components
entry-point registered in this package's pyproject.toml.
Error policy
| Operation | Synap failure | Why |
|---|---|---|
add_items |
SynapIntegrationError |
Writes must be observable |
search |
Returns [] |
A read blip must never crash an agent turn |
remove_items |
Warn once, no-op | Synap has no public delete API |
Every write is tagged with an internal marker so search filters out
non-NAT memories that happen to share the same user scope — the
MemoryItem stream stays NAT-owned.
License
Apache-2.0.
Release files for maximem-synap-nemo-agent-toolkit 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| maximem_synap_nemo_agent_toolkit-0.2.0.tar.gz | 11.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| maximem_synap_nemo_agent_toolkit-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / maximem_synap_nemo_agent_toolkit-0.2.0.tar.gz
| Download URL | maximem_synap_nemo_agent_toolkit-0.2.0.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
941568e17258a4138dce5368f532ee8a721b786682d56524a18e62e187af8f32
|
|
BLAKE2b-256 checksum How to use checksums |
163b5a80ff92d6508696a372ee770946038a5c3ea26722b81d4dfad6135ffa3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / maximem_synap_nemo_agent_toolkit-0.2.0-py3-none-any.whl
| Download URL | maximem_synap_nemo_agent_toolkit-0.2.0-py3-none-any.whl |
|---|---|
| Size | 12.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8686b091c3477511967b7ffc8cb882288d5ab1e42d465a8e08d74e0a5379bfe9
|
|
BLAKE2b-256 checksum How to use checksums |
9d739055e2a52e2ba64aee5182917e77621cdcf880de24c3ab2f0ee8f9bf69c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|