Skip to main content

Python SDK for SharedMemory.ai — the persistent memory layer for AI agents

Project description

SharedMemory Python SDK

The persistent memory layer for AI agents. Add, search, and manage long-term memories with knowledge graph, entity scoping, session lifecycle, and structured extraction.

Installation

pip install sharedmemory-ai

Quick Start

from sharedmemory import SharedMemory

memory = SharedMemory(
    api_key="sm_live_...",
    volume_id="your-volume-uuid",
)

# Add a memory
result = memory.add("User prefers dark mode and compact layout")
print(result["status"])  # "approved"

# Search memories
results = memory.search("what are the user's UI preferences?")
for source in results["sources"]:
    print(source["content"], source["score"])

# Batch add
memory.add_many([
    {"content": "User's name is Alice"},
    {"content": "Alice works at Acme Corp"},
    {"content": "Alice prefers Python over JavaScript"},
])

Entity Scoping

Scope memories to specific users, agents, or sessions:

memory = SharedMemory(
    api_key="sm_live_...",
    volume_id="vol-uuid",
    user_id="user-123",
    agent_id="chatbot-1",
)

# All operations are automatically scoped
memory.add("User asked about pricing", session_id="sess-abc")
results = memory.search("pricing", session_id="sess-abc")

Sessions

Track conversation sessions with automatic summarization:

# Start a session
memory.start_session("conv-001", user_id="user-123")

# Add memories during the session
memory.add("User asked about pricing", session_id="conv-001")
memory.add("User is interested in enterprise plan", session_id="conv-001")

# End session — automatically summarizes into long-term memory
summary = memory.end_session("conv-001", auto_summarize=True)

Advanced Search

# With reranking
results = memory.search(
    "project deadlines",
    rerank=True,
    rerank_method="llm",
    include_context=True,
)

# With metadata filters
results = memory.search("preferences", filters={
    "AND": [
        {"field": "memory_class", "op": "eq", "value": "preference"},
        {"field": "score", "op": "gte", "value": 0.5},
    ]
})

Knowledge Graph

# Get entity details
entity = memory.get_entity("Alice")
print(entity["summary"])
print(entity["facts"])

# Get full graph
graph = memory.get_graph()

Feedback

memory.feedback("memory-uuid", "POSITIVE", reason="Highly relevant")
memory.feedback("memory-uuid", "NEGATIVE", reason="Outdated information")

Context Assembly

Get an optimized context block for LLM prompting:

context = memory.assemble_context(template_id="conversational")
print(context["blocks"])  # Ready for system prompt injection

Structured Extraction

data = memory.extract(
    text="Alice is 28, works at Acme Corp as a Senior Engineer since 2022",
    schema_id="contact-info",
)
print(data)  # {"name": "Alice", "age": 28, "company": "Acme Corp", ...}

Async Client

from sharedmemory.async_client import AsyncSharedMemory

async with AsyncSharedMemory(api_key="sm_live_...") as memory:
    await memory.add("async memory")
    results = await memory.search("query")

API Reference

Method Description
add(content) Add a memory (alias: remember)
search(query) Semantic search (alias: recall)
get(memory_id) Get single memory
update(memory_id, content) Update memory
delete(memory_id) Soft-delete
add_many(memories) Batch write (up to 100)
delete_many(memory_ids) Batch delete
update_many(updates) Batch update
feedback(memory_id, feedback) Quality feedback
history(memory_id) Audit trail
get_entity(name) Knowledge graph entity
search_entities(query) Search entities by name
get_graph() Full knowledge graph
list_volumes() List accessible volumes
assemble_context() LLM context block
start_session(id) Start session
end_session(id) End + summarize session
get_session(id) Get session details
list_sessions() List sessions
webhook_subscribe(url, *, events) Register webhook
webhook_unsubscribe(url) Remove webhook
export_memories() Export all memories
import_memories(memories) Bulk import
extract(text, schema_id) Structured extraction
create_agent(org_id, project_id, name) Create agent
list_agents(org_id) List agents
get_agent(agent_id) Get agent details
update_agent(agent_id) Update agent
delete_agent(agent_id) Delete agent
rotate_agent_key(agent_id) Rotate agent API key
list_orgs() List organizations
get_org(org_id) Get org details
list_org_members(org_id) List org members
apply_promo(org_id, code) Apply promo code

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sharedmemory_ai-0.4.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sharedmemory_ai-0.4.1-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file sharedmemory_ai-0.4.1.tar.gz.

File metadata

  • Download URL: sharedmemory_ai-0.4.1.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for sharedmemory_ai-0.4.1.tar.gz
Algorithm Hash digest
SHA256 6e27b7b01290f87b59f364d5dfbddaf3be58abc22747a740f83ed68ace0a613b
MD5 65d68e3a5716801044f2a50858d5751c
BLAKE2b-256 4bbc575ce9ed769136b99fce0007d97a9ee50f6957c9dd14ef7a9c33a14dcafc

See more details on using hashes here.

File details

Details for the file sharedmemory_ai-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for sharedmemory_ai-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 896e2da9c8359c283096799d29c2f5bd65a4b68cbfb1b12d503afe8f3ce911ff
MD5 4849adc7fb93af46f3b6acdcefa0b10c
BLAKE2b-256 3a457d7b5134b52fada2b110a542f55b05ed3f337c6626c17f0fca6e80981d2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page