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 anyembeddercallable to use Cohere, OpenAI, a local model, etc. - Each
addstores an item{id, content, embedding (List<Number>), metadata, createdAt};searchembeds the query and runs the ANN search. - The table is created automatically if absent —
PAY_PER_REQUESTwith a vector index on theembeddingattribute.
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).
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). Earlierstrands-dynamodb-storereleases (0.1.x) were an alias of that storage package; from 0.2.0 it is aMemoryStore.
License
MIT
Metadata
Release files for strands-dynamodb-store 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 | Provenance | |
|---|---|---|---|---|
| strands_dynamodb_store-0.2.0.tar.gz | 5.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| strands_dynamodb_store-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.4 kB
Release files / strands_dynamodb_store-0.2.0.tar.gz
| Download URL | strands_dynamodb_store-0.2.0.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a3ae558ea2517f81551aa78aceadf17beb661d439c236376cf23242ff9646cf
|
|
BLAKE2b-256 checksum How to use checksums |
f7c0fed094717aab6d963159622ee59924e4a6fbcabe01558569256bccbef31d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / strands_dynamodb_store-0.2.0-py3-none-any.whl
| Download URL | strands_dynamodb_store-0.2.0-py3-none-any.whl |
|---|---|
| Size | 5.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
da187829c3c3860ec275744dc6cbed148d1db5db62aa6bfdc52b74099d6d8337
|
|
BLAKE2b-256 checksum How to use checksums |
3b826e605835aafcdc3cd4fabdc138d0d3ef9ad744e2b03090fa90c09f09d0cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Security for strands-dynamodb-store 0.2.0
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.