New dynaflow agents, tool registry & supervisor routing →

The agent stack that lives in your AWS account

Start with dynavec — a serverless hybrid vector database on Amazon DynamoDB + Amazon S3 Vectors — and grow into agents, traces and evals. One open-source Python library. Pay only when you use it; every byte stays in your region.

pip install dynavec
dynavec — 4-minute demo
dynavec demo video thumbnail
  • —GitHub stars
  • $469/mo at 1B vectors*
  • 100%in your account
  • 0servers to run

Built on AWS · works with the tools you already use

Amazon DynamoDBAmazon S3 VectorsAmazon BedrockAWS Lambda LangChainLlamaIndexCrewAIHaystackDSPySemantic KernelOpenAIAnthropicMCP

The agent lifecycle, in one library

Remember. Build. Observe. Measure.

Each stage is a pillar of dynavec — and they share one install, one AWS account and one mental model.

dynavecAvailable

Remember

A vector database that bills like S3 and answers like DynamoDB.

  • Hybrid search — S3 Vectors ANN + BM25 lexical, fused with RRF
  • Knowledge graph — weighted edges, GraphRAG, shortest-path
  • Hot tier & caching — in-memory ANN, semantic and DynamoDB caches
dynaflowIn progress

Build

Compose agents from typed nodes — and run them serverless.

  • Agents & tools — ReAct loop, planner, tool registry, MCP connectors
  • Multi-agent — supervisor routing and handoffs with shared state
  • Durable state — DynamoDB checkpointer to resume any run
  • Visual builder — code ⇄ canvas round-trip roadmap
dynalogsEarly

Observe

See every step your agent took — without data leaving your account.

  • Structured logs — per run and per node, correlated by run/span id
  • Secret redaction — keys and tokens scrubbed, token counts kept
  • Telemetry dashboard — latency, QPS, cache hit-rate, cost
  • Run history — searchable runs with trace drill-down roadmap
dynaevalsPartial

Measure

Score retrieval and answers, then track quality over time.

  • Retrieval metrics — recall@k, MRR, nDCG out of the box
  • LLM-judged quality — faithfulness and answer relevance
  • Trend tracking — compare runs across versions
  • CI gating — fail a build on regression roadmap

How they fit together

One loop, one account

dynaflow runs the agent, every step reads and writes memory through dynavec, dynalogs records what happened, and dynaevals scores it — feeding improvements back into the next run.

write memoryretrievetracescoreimprove prompts, steps & retrieval dynaflowbuild & run dynavecremember dynalogsobserve dynaevalsmeasure & improve
dynaflow → dynavecRetriever and memory nodes read and write the vector DB; run state is checkpointed to DynamoDB.
dynaflow → dynalogsEvery run and node emits structured, redacted, correlated log records.
dynalogs → dynaevalsRecorded runs become eval inputs, scored with retrieval and LLM-judged metrics.
dynaevals → dynaflowScores and trends guide prompt, step and retrieval changes for the next version.

Positioning

One library instead of five

The usual agent stack stitches together a hosted vector DB, a framework, a tracing SaaS and an eval tool. dynavec aims to cover the same jobs in-account. Here's where we honestly are today.

Job to be doneTypical assembled stackdynavec
Vector memory & RAGHosted vector DB (always-on cluster)✓ shippingDynamoDB + S3 Vectors, hybrid + graph, pay-per-use
Agents, tools & multi-agentAgent framework library◐ partialReAct, planner, tool registry, supervisor, checkpointer
Human-in-the-loop & durable runsFramework + hosted runtime○ roadmapInterrupts, Step Functions durable execution
Traces & logsSeparate tracing SaaS◐ partialStructured logs + redaction + dashboard, in your account
EvaluationSeparate eval library / service◐ partialRetrieval + LLM-judged metrics, trends; CI gating next
Visual builderSeparate no-code tool○ roadmapCode ⇄ canvas round-trip on one graph format
Where your data livesSeveral vendors' clouds✓ shippingOnly your AWS account and region

Status reflects the current release and the public roadmap.

Why teams start with dynavec

Cost-effective

No always-on cluster, no managed-service premium. You pay S3-priced vector storage plus DynamoDB on-demand. Idle cost approaches storage only.

Lowest latency

S3 Vectors returns the nearest keys; the actual documents are hydrated from DynamoDB in single-digit milliseconds via BatchGetItem.

Billion-scale

Amazon S3 Vectors searches across billions of vectors with 90%+ recall — the serverless ANN engine, managed by AWS.

Data compliance

Everything stays in your account, your region, your availability zones. dynavec only ever calls AWS with your credentials.

Secure & elastic

Serverless primitives scale to zero and back automatically. IAM is the only access boundary; assume-role and per-tenant namespaces built in.

Framework-native

LangChain and LlamaIndex vector stores plus a framework-agnostic retriever tool for LangGraph, CrewAI, and Strands.

How the memory layer works

Two AWS primitives, each doing the one job it is best at, joined by a shared key.

keys + distance traverse → scope query Embedder BYO key OpenAI · Cohere · BYO 1 S3 Vectors ANN · nearest keys 90%+ recall billions of vectors AMAZON AWS MANAGED 2 DynamoDB BatchGetItem · documents single-digit ms hydration 3 Graph / ER optional layer KG · adjacency lists ✓ rerank · results scored documents MMR · RRF · BM25 4

S3 Vectors — the scale tier

Holds the vector plus a small filterable metadata subset. AWS-managed approximate-nearest-neighbor over billions of vectors. Cosine or euclidean natively; cosine / dot / euclidean / manhattan (and weighted combinations) available as client-side rescoring.

DynamoDB — the speed & meaning tier

Canonical store for full text and rich metadata, hydrated by key in single-digit ms. Also holds the knowledge-graph adjacency lists that connect entities to embeddings, so you can traverse structure first and narrow the vector search.

Benchmarks

Cost across every common embedding dimension (384–3072) and 100K → 1 billion vectors. dynavec stays lowest at every point because its storage is priced like S3, not RAM.

Monthly cost by scale & dimension · 1536-dim · 1M queries/mo. dynavec (coral) is the lowest at every scale.
Cost by scale (768-d, 1M queries/mo) — log-log scale.
Raw float32 footprint — up to ~5.7 TiB at 1B × 1536-d.
Recall ÷ Latency score — higher recall at lower query latency. Representative estimates; run python -m benchmarks.report to reproduce.

1536-dim (e.g. OpenAI text-embedding-3-small) — $/month @ 1M queries/mo

Product100K1M10M100M1B
dynavec$3$3$8$50$469
Pinecone$9$10$27$197$1,897
OpenSearch$701$701$877$8,423$83,708
Qdrant$160$160$960$8,640$85,920
Weaviate$175$175$1,050$9,450$93,975
Milvus/Zilliz$150$150$900$8,100$80,550

Estimate your cost

Vectors stored 100 K
Dimensions 768
Queries / month 100 K
Writes / month 10 K
$0.00
dynavec / mo
vs
$0.00
Pinecone est. / mo
You save ~0%
S3 storage
$0.00
S3 reads
$0.00
DDB reads
$0.00
DDB writes
$0.00

Estimates based on public AWS list prices · verify before quoting

Quick start

Three steps to your first semantic search — everything runs inside your own AWS account.

01

Install

Python 3.9+. Base install is just boto3 + numpy; add an embedder extra when you want dynavec to embed for you.

pip install dynavec
# or: uv add dynavec
pip install "dynavec[openai]"
02

Grant AWS access

Create an IAM user with permission for S3 Vectors + DynamoDB, then export its keys. Full least-privilege policy in the Credentials & IAM guide.

export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_DEFAULT_REGION=us-east-1
03

Run your first query

Point dynavec at a bucket, index, and table. With auto_provision=True it creates them for you on first use.

db.upsert([Document(id="a",
    text="Mitochondria power the cell.")])
db.search("how do cells make energy?")

Full runnable snippet ↓ or read the Quickstart guide.

Pythonic by design

Clean, explicit, and framework-friendly. Bring your own embedder and API key, or your own vectors.

from dynavec import Dynavec, DynavecConfig, Document
from dynavec.embeddings import OpenAIEmbedder

cfg = DynavecConfig(
    vector_bucket="my-vectors",
    index="docs",
    table="dynavec_docs",
    dimension=1536,
    region="us-east-1",
    auto_provision=True,        # creates bucket + index + table
)
db = Dynavec(cfg, embedder=OpenAIEmbedder(model="text-embedding-3-small"))

db.upsert([
    Document(id="a", text="Mitochondria power the cell.", metadata={"topic": "bio"}),
    Document(id="b", text="Rockets reach orbit at ~28,000 km/h.", metadata={"topic": "space"}),
], auto_metadata=True)

for hit in db.search("how do cells make energy?", top_k=3):
    print(hit.score, hit.id, hit.text)

Everything in the box

  • Cosine · dot · euclidean · manhattan · weighted combos
  • GIL-aware thread concurrency for I/O-bound calls
  • Streaming, page-by-page result delivery
  • Namespace RAG & multi-tenancy
  • Product quantization for compact caching
  • Knowledge graph / entity-relationship traversal
  • Semantic · DynamoDB-TTL · Redis/ElastiCache caching
  • Update + in-account AWS Lambda transforms
  • IAM keys · profiles · cross-account assume-role
  • MCP ingestion from external sources
  • LangChain · LlamaIndex · LangGraph · CrewAI · Strands
  • Pluggable embedders: OpenAI · Gemini · Cohere · Bedrock · local

Contribute

dynavec is Apache-2.0 and community-built. Issues, PRs, and ideas are welcome.

→

Get set up

git clone https://github.com/\
codeforstartups/dynavec
cd dynavec
uv pip install -e ".[dev]"
pytest -q
→

Good first issues

Async client, an hnswlib hot tier, sort-key graph adjacency, file-parser ingestion sources, and a live-AWS test matrix are all open on the roadmap.

Browse issues →
→

Star & share

Stars help other developers find dynavec. If it saves you money or keeps your data in-account, let people know.

Star on GitHub (—) →

Built by the community

Every commit, fix, and idea counts. Meet the people who make dynavec better.

Core contributors

All contributors

View all contributors →

Ship agents without shipping your data

Install the library, point it at your AWS account, and you have memory today — with orchestration, traces and evals growing in the same package.