Skip to main content

strands-dynamodb-store

A DynamoDB-native-vector MemoryStore for Strands Agents — semantic long-term agent memory backed by DynamoDB's native vector search (SearchVectors). No external vector database, no separate Storage layer — the store talks to DynamoDB directly, the way BedrockKnowledgeBaseStore talks to Bedrock.

pip install strands-dynamodb-store
from strands import Agent
from strands.memory import MemoryManager
from strands_dynamodb_store import DynamoDBMemoryStore

store = DynamoDBMemoryStore(name="user-memories", table_name="agent_memory")
agent = Agent(memory_manager=MemoryManager(stores=[store]))

# or use it directly
await store.add("The user prefers dark mode", metadata={"kind": "pref"})
hits = await store.search("what theme does the user like?")

How it works

  • Semantic recall via DynamoDB search_vectors (approximate nearest-neighbor over a vector index) — ranked by similarity, at DynamoDB scale.
  • You bring the embeddings. DynamoDB does not generate them; by default the store embeds with Amazon Bedrock Titan Text v2 (amazon.titan-embed-text-v2:0, 1024-dim, cosine). Pass any embedder callable to use Cohere, OpenAI, a local model, etc.
  • Each add stores an item {id, content, embedding (List<Number>), metadata, createdAt}; search embeds the query and runs the ANN search.
  • The table is created automatically if absent — PAY_PER_REQUEST with a vector index on the embedding attribute.

Configuration

DynamoDBMemoryStore(name, table_name, *, description=None, max_search_results=None, writable=True, extraction=None, embedder=None, dimensions=1024, distance_function="COSINE", index_name="vector_index", vector_attribute="embedding", region_name=None, boto_session=None, endpoint_url=None)

Implements the Strands MemoryStore protocol: search(query, options) and add(content, metadata).

Each result's metadata carries _score, a similarity (higher is better; for COSINE it is 1 - distance), and _distance, DynamoDB's raw value (lower is better). 0.2.0 reported the raw distance as _score; fixed in 0.2.1.

Requirements

  • boto3>=1.43.78 (DynamoDB vector search, GA 2026-08-05)
  • A region where DynamoDB vector search is available, plus Bedrock model access for the default embedder.

This package (the memory store) is distinct from strands-storage-dynamodb (the byte storage backend). Earlier strands-dynamodb-store releases (0.1.x) were an alias of that storage package; from 0.2.0 it is a MemoryStore.

License

MIT

Metadata

Release files for strands-dynamodb-store 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for strands-dynamodb-store 0.2.1
File Size Uploaded Provenance
strands_dynamodb_store-0.2.1.tar.gz 6.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for strands-dynamodb-store 0.2.1
File Interpreter ABI Platform
strands_dynamodb_store-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.0 kB

Release files / strands_dynamodb_store-0.2.1.tar.gz

Download URL strands_dynamodb_store-0.2.1.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
36b91c6595503d2bf3477e387edd20d94e4045b9bb4f9050fae37718ab80db10
BLAKE2b-256 checksum
How to use checksums
25a756d5a21cf0592476b1e8af0ecee33ccec9222969f7edf0e8fea1320d4b48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / strands_dynamodb_store-0.2.1-py3-none-any.whl

Download URL strands_dynamodb_store-0.2.1-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8454f291796c714fd34d331c0c8871a0d98412402910c5f6964661072d4e1225
BLAKE2b-256 checksum
How to use checksums
2ce3da893b5100a6c8362b496f8789ced3d6f395df332469116b16baa26280e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for strands-dynamodb-store 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page