The memory layer for AI apps — persistent, synthesized context for any LLM application
Project description
anansi-memory
The memory layer for AI apps. Give any LLM application persistent, synthesized memory in two API calls.
pip install anansi-memory
Usage
from anansi_memory import AnansiMemory
memory = AnansiMemory(api_key="ans_...")
# Store a conversation turn
memory.ingest(
user_id="user_123",
content="User is building a voice agent. Prefers TypeScript. Team of 4.",
source_type="conversation",
)
# Before your next LLM call — inject synthesized context into system prompt
ctx = memory.context(user_id="user_123", q="what is the user building?")
system_prompt = f"You are a helpful assistant.\n\n{ctx.format_for_prompt()}"
API
AnansiMemory(api_key, base_url=None)
| Param | Type | Description |
|---|---|---|
api_key |
str |
Your API key (ans_...) |
base_url |
str |
Override API base URL (default: https://api.zazzy.app) |
memory.ingest(user_id, content, source_type=None, source_id=None, metadata=None)
Store content in a user's memory. Returns IngestResult(id, queued=True).
| Param | Type | Required | Description |
|---|---|---|---|
user_id |
str |
✓ | Your internal user ID |
content |
str |
✓ | Text to remember, max 100 KB |
source_type |
str |
"conversation", "document", "note", "meeting", "custom" |
|
source_id |
str |
Idempotency key — re-ingesting the same ID is a no-op | |
metadata |
dict |
title, author, timestamp, any custom fields |
memory.context(user_id, q=None)
Retrieve synthesized memory for a user. Returns ContextResult(static, dynamic, relevant).
| Param | Type | Required | Description |
|---|---|---|---|
user_id |
str |
✓ | Your internal user ID |
q |
str |
Optional query to retrieve relevant chunks |
ctx.format_for_prompt()
Format a context result into a ready-to-inject system prompt block (string).
Error handling
from anansi_memory import AnansiMemory, AnansiError
try:
memory.ingest(user_id=user_id, content=content)
except AnansiError as e:
print(e.status_code, e.args[0])
# 401 — invalid API key
# 402 — monthly quota exceeded
# 413 — content too large
# 429 — rate limit (retry after 60s)
Requirements
Python 3.9+. No external dependencies — uses stdlib urllib only.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anansi_memory-0.1.1.tar.gz.
File metadata
- Download URL: anansi_memory-0.1.1.tar.gz
- Upload date:
- Size: 3.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb130f6e7a7a99658648110808b26e8ee60c279061e7f6bff457c19d5dfa0ffa
|
|
| MD5 |
7d7f7836f3b7840a1b60961b870c8bae
|
|
| BLAKE2b-256 |
ed81591848235cedd1c64f12d11367e02fdc701069f0624bd5c495489d170309
|
File details
Details for the file anansi_memory-0.1.1-py3-none-any.whl.
File metadata
- Download URL: anansi_memory-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62876bf2232a4070aaf46551c31379d78a8c46c88749f35a9af5099d4637cb2a
|
|
| MD5 |
59df7cb7027767ba25fdecfae4361a45
|
|
| BLAKE2b-256 |
a24ee0a5448d51420e2baa5439dadb8ae2718ec916f1ea1e03f8587cfbd041cd
|