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"])

# Chat (RAG + LLM answer)
result = memory.chat("What does the user prefer for their UI?")
print(result["answer"])
print(result["sources"])

# 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)
chat(query) Ask a question — LLM answers using your memories
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.6.0.tar.gz (8.6 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.6.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sharedmemory_ai-0.6.0.tar.gz
  • Upload date:
  • Size: 8.6 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.6.0.tar.gz
Algorithm Hash digest
SHA256 f071777b103b3629fb92d2503071304cf46a20dc11e4580aa18e5ea46a624afe
MD5 b6f530140d836ff9698c65b6f20b73a3
BLAKE2b-256 25661adf281c855232c91552917618d6f96123444830210c009a8db697414eb3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sharedmemory_ai-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0dbe05b7a6a4eeb6d5295e1fc68eb810065f8c9fd9ccc329af4c0b64fa36755e
MD5 64e592fd811240714c82d3b49125b0e9
BLAKE2b-256 e058d9e97441f15cec3efb7f449e84db8a6b11664f782df3c1c59399711a8b7e

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