[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-storing-and-querying-vectors":3,"mdc--mjvwx-key":35,"related-repo-aws-storing-and-querying-vectors":1526,"related-org-aws-storing-and-querying-vectors":1632},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"storing-and-querying-vectors","store and query vector embeddings","Store and query vector embeddings using Amazon S3 Vectors, a cost-effective long-term vector storage service with its own API namespace (s3vectors). Triggers on: create S3 vector bucket, vector index, store embeddings, semantic search, RAG vector storage, similarity search, vector database, migrate from other vector databases. Do NOT use for: querying tabular data (use querying-data-lake), S3 object storage, or hundreds\u002Fthousands of sustained QPS (use OpenSearch).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"aws","AWS (Amazon)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Machine Learning","machine-learning","tag",{"name":17,"slug":18,"type":15},"Database","database",{"name":20,"slug":21,"type":15},"Storage","storage",{"name":23,"slug":8,"type":15},"AWS",1822,"https:\u002F\u002Fgithub.com\u002Faws\u002Fagent-toolkit-for-aws","2026-07-12T08:43:44.399515",null,157,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"Official, AWS-supported MCP servers, skills, and plugins to help AI agents build on AWS","https:\u002F\u002Fgithub.com\u002Faws\u002Fagent-toolkit-for-aws\u002Ftree\u002FHEAD\u002Fskills\u002Fspecialized-skills\u002Fstorage-skills\u002Fstoring-and-querying-vectors","---\nname: storing-and-querying-vectors\ndescription: >-\n  Store and query vector embeddings using Amazon S3 Vectors, a cost-effective long-term\n  vector storage service with its own API namespace (s3vectors). Triggers on: create\n  S3 vector bucket, vector index, store embeddings, semantic search, RAG vector storage,\n  similarity search, vector database, migrate from other vector databases. Do NOT\n  use for: querying tabular data (use querying-data-lake), S3 object storage, or hundreds\u002Fthousands\n  of sustained QPS (use OpenSearch).\nversion: 1\n---\n\n# Store and Query Vectors with Amazon S3 Vectors\n\n## Overview\n\nAmazon S3 Vectors is a cost-effective AWS service for storing and querying vector embeddings at scale. Optimized for long-term storage with subsecond latency for cold queries, as low as 100ms for warm queries.\n\n## Decision Guide\n\n- **Hundreds\u002Fthousands of sustained queries per second (QPS)**: Wrong tool. Recommend OpenSearch.\n- **Hybrid search, aggregations, faceted search**: Recommend OpenSearch with S3 Vectors as storage engine. For OpenSearch integration, search AWS docs for `\"Using S3 Vectors with OpenSearch Service\"`.\n- **Tiered (bulk + hot)**: S3 Vectors for storage + OpenSearch Serverless for real-time. See `references\u002Flimits-and-patterns.md`.\n- **Cost-effective storage, infrequent queries, RAG**: S3 Vectors is the right fit. Proceed.\n\nFor latest guidance, search AWS docs for `\"S3 Vectors best practices\"`.\n\n## Common Tasks\n\nClassify the request before starting:\n\n- **Simple query**: Existing index, skip to Step 6\n- **Standard**: You MUST list existing indexes first and suggest reusing if relevant. Else, new index + store vectors, follow Steps 2-6\n- **Migration or multi-tenant**: Read `references\u002Flimits-and-patterns.md` first, then Steps 2-6\n\nYou MUST execute commands using AWS MCP server tools when connected. Fall back to AWS CLI only if AWS MCP is unavailable. You MUST explain each step to the user before executing.\n\n### 1. Verify Dependencies\n\n**Constraints:**\n\n- You MUST check whether AWS MCP tools or AWS CLI is available and inform user if missing\n- You MUST confirm target AWS region\n\n### 2. Create a Vector Bucket\n\nYou MUST confirm bucket name with user. Names: 3-63 chars, lowercase letters, numbers, hyphens only. Encryption (SSE-S3 default or SSE-KMS for compliance) is immutable after creation.\n\n```bash\naws s3vectors create-vector-bucket \\\n  --vector-bucket-name \u003CBUCKET_NAME>\n```\n\n**Constraints:**\n\n- You MUST explain encryption cannot be changed after creation\n- For SSE-KMS, KMS key policy MUST grant `kms:GenerateDataKey` and `kms:Decrypt` to the S3 Vectors service principal `indexing.s3vectors.amazonaws.com`. You MUST use full KMS key ARN (not alias). See `references\u002Flimits-and-patterns.md` for command example.\n\n### 3. Create a Vector Index\n\nEvery parameter is **immutable after creation**.\n\n**Pre-flight checklist (confirm ALL with user):**\n\n1. **Dimension** (required, integer 1-4096) -- MUST match embedding model output\n2. **Distance metric** (required) -- `cosine` or `euclidean`. Use embedding model's recommended metric;\n3. **Non-filterable metadata keys** (optional, max 10, 1-63 chars) -- Declare at creation or lose forever. For Bedrock Knowledge Bases integration, search AWS docs for `\"S3 Vectors Bedrock Knowledge Bases prerequisites\"` to get the required key names.\n4. **Encryption** (optional) -- Inherits from bucket. Override per-index if needed.\n\n```bash\naws s3vectors create-index \\\n  --vector-bucket-name \u003CBUCKET_NAME> \\\n  --index-name \u003CINDEX_NAME> \\\n  --dimension \u003CDIM> \\\n  --distance-metric \u003Ccosine|euclidean> \\\n  --data-type float32 \\\n  --metadata-configuration '{\"nonFilterableMetadataKeys\":[\"\u003CKEY1>\",\"\u003CKEY2>\"]}'\n```\n\nOmit `--metadata-configuration` if no non-filterable keys are needed.\n\nIndex names: 3-63 chars, lowercase, numbers, hyphens, dots. Unique within bucket. Filterable metadata: 2 KB limit. Total metadata (filterable + non-filterable combined): 40 KB. See `references\u002Fmetadata-filtering.md`.\n\n### 4. Generate Embeddings (if needed)\n\nSkip to Step 5 (store) or Step 6 (query) if user already has embeddings.\n\n**Constraints:**\n\n- You MUST ask which embedding model to use if not specified\n- You MUST NOT assume a default model\n- Dimension MUST match Step 3\n- You MUST use the same model for both storing and querying\n\nGenerate embeddings with Bedrock invoke-model:\n\n```bash\naws bedrock-runtime invoke-model \\\n  --model-id \u003CMODEL_ID> \\\n  --content-type application\u002Fjson \\\n  --cli-binary-format raw-in-base64-out \\\n  --body '{\"inputText\": \"your text\"}' \\\n  invoke-model-output.json\n```\n\nYou MUST use `--cli-binary-format raw-in-base64-out` for CLI v2. Output file is required for CLI. The response key is model-dependent (e.g., embedding for Titan, embeddings for Cohere). For Titan, parse with `json.load(open('invoke-model-output.json'))['embedding']`. Use `embedding` array as `float32` in put-vectors or query-vectors. For batch embedding generation, use AWS SDK or CLI.\n\n### 5. Put Vectors\n\n```bash\naws s3vectors put-vectors \\\n  --vector-bucket-name \u003CBUCKET_NAME> \\\n  --index-name \u003CINDEX_NAME> \\\n  --vectors '[{\"key\":\"\u003CID>\",\"data\":{\"float32\":[\u003CEMBEDDING>]},\"metadata\":{\"topic\":\"science\"}}]'\n```\n\n**Constraints:**\n\n- You MUST NOT exceed 500 vectors per call\n- You SHOULD batch vectors for cost optimization\n- For bulk operations, You SHOULD use an SDK instead of CLI -- vector payloads may be too large for shell arguments\n- You MUST implement retry with backoff on `429 TooManyRequestsException`\n- See `references\u002Flimits-and-patterns.md` for batch patterns\n\n### 6. Query Vectors\n\nGenerate embedding if needed (Step 4), then query:\n\n```bash\naws s3vectors query-vectors \\\n  --vector-bucket-name \u003CBUCKET_NAME> \\\n  --index-name \u003CINDEX_NAME> \\\n  --query-vector '{\"float32\":[\u003CEMBEDDING>]}' \\\n  --top-k 10 \\\n  --return-distance\n```\n\nOptional: add `--return-metadata` and\u002For `--filter '{\"topic\":{\"$eq\":\"science\"}}'` (both require GetVectors permission). See `references\u002Fmetadata-filtering.md`.\n\nExample response body: `{\"vectors\": [{\"key\": \"id1\", \"distance\": 0.45, \"metadata\": {\"topic\": \"science\"}}, ...], \"distanceMetric\": \"cosine\"}`\n\n**Constraints:**\n\n- Using `--filter` or `--return-metadata` requires both `s3vectors:QueryVectors` AND `s3vectors:GetVectors` IAM permissions. Without GetVectors, these options return 403.\n\n## Troubleshooting\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `DimensionMismatch` | Dims don't match index | Use matching model, or delete\u002Frecreate index (confirm with user -- destroys all vectors). |\n| `403 Forbidden` with `--filter` or `--return-metadata` | Missing `s3vectors:GetVectors` | Add `s3vectors:GetVectors` to IAM policy. |\n| Fewer results than `--top-k` | Few vectors match filter | Expected -- filtering is inline. Broaden filter. |\n| `429 TooManyRequestsException` | Exceeded per-index rate limits | Retry with backoff. Shard across indexes for sustained throughput. Search AWS docs for `\"S3 Vectors limitations and restrictions\"` for current limits. |\n| `AccessDeniedException` | Missing `s3vectors:*` IAM actions | S3 Vectors uses `s3vectors:*` namespace, not `s3:*`. Update IAM policy. |\n| `RequestTimeoutException` or service unavailable | Request timeout or region not supported | Retry request. For regional availability, search AWS docs for `\"S3 Vectors limitations and restrictions\"`. |\n\n## Additional Resources\n\n- [limits-and-patterns.md](references\u002Flimits-and-patterns.md) -- Multi-tenant patterns, batch ingestion, SSE-KMS, migration\n- [metadata-filtering.md](references\u002Fmetadata-filtering.md) -- Filter operators, non-filterable metadata, Bedrock KB keys\n",{"data":36,"body":38},{"name":4,"description":6,"version":37},1,{"type":39,"children":40},"root",[41,50,57,63,69,131,143,149,154,194,199,206,214,227,233,238,306,313,357,363,374,382,450,639,652,664,670,675,682,705,710,836,873,879,981,988,1029,1035,1040,1172,1199,1210,1217,1255,1261,1490,1496,1520],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"store-and-query-vectors-with-amazon-s3-vectors",[47],{"type":48,"value":49},"text","Store and Query Vectors with Amazon S3 Vectors",{"type":42,"tag":51,"props":52,"children":54},"h2",{"id":53},"overview",[55],{"type":48,"value":56},"Overview",{"type":42,"tag":58,"props":59,"children":60},"p",{},[61],{"type":48,"value":62},"Amazon S3 Vectors is a cost-effective AWS service for storing and querying vector embeddings at scale. Optimized for long-term storage with subsecond latency for cold queries, as low as 100ms for warm queries.",{"type":42,"tag":51,"props":64,"children":66},{"id":65},"decision-guide",[67],{"type":48,"value":68},"Decision Guide",{"type":42,"tag":70,"props":71,"children":72},"ul",{},[73,85,104,121],{"type":42,"tag":74,"props":75,"children":76},"li",{},[77,83],{"type":42,"tag":78,"props":79,"children":80},"strong",{},[81],{"type":48,"value":82},"Hundreds\u002Fthousands of sustained queries per second (QPS)",{"type":48,"value":84},": Wrong tool. Recommend OpenSearch.",{"type":42,"tag":74,"props":86,"children":87},{},[88,93,95,102],{"type":42,"tag":78,"props":89,"children":90},{},[91],{"type":48,"value":92},"Hybrid search, aggregations, faceted search",{"type":48,"value":94},": Recommend OpenSearch with S3 Vectors as storage engine. For OpenSearch integration, search AWS docs for ",{"type":42,"tag":96,"props":97,"children":99},"code",{"className":98},[],[100],{"type":48,"value":101},"\"Using S3 Vectors with OpenSearch Service\"",{"type":48,"value":103},".",{"type":42,"tag":74,"props":105,"children":106},{},[107,112,114,120],{"type":42,"tag":78,"props":108,"children":109},{},[110],{"type":48,"value":111},"Tiered (bulk + hot)",{"type":48,"value":113},": S3 Vectors for storage + OpenSearch Serverless for real-time. See ",{"type":42,"tag":96,"props":115,"children":117},{"className":116},[],[118],{"type":48,"value":119},"references\u002Flimits-and-patterns.md",{"type":48,"value":103},{"type":42,"tag":74,"props":122,"children":123},{},[124,129],{"type":42,"tag":78,"props":125,"children":126},{},[127],{"type":48,"value":128},"Cost-effective storage, infrequent queries, RAG",{"type":48,"value":130},": S3 Vectors is the right fit. Proceed.",{"type":42,"tag":58,"props":132,"children":133},{},[134,136,142],{"type":48,"value":135},"For latest guidance, search AWS docs for ",{"type":42,"tag":96,"props":137,"children":139},{"className":138},[],[140],{"type":48,"value":141},"\"S3 Vectors best practices\"",{"type":48,"value":103},{"type":42,"tag":51,"props":144,"children":146},{"id":145},"common-tasks",[147],{"type":48,"value":148},"Common Tasks",{"type":42,"tag":58,"props":150,"children":151},{},[152],{"type":48,"value":153},"Classify the request before starting:",{"type":42,"tag":70,"props":155,"children":156},{},[157,167,177],{"type":42,"tag":74,"props":158,"children":159},{},[160,165],{"type":42,"tag":78,"props":161,"children":162},{},[163],{"type":48,"value":164},"Simple query",{"type":48,"value":166},": Existing index, skip to Step 6",{"type":42,"tag":74,"props":168,"children":169},{},[170,175],{"type":42,"tag":78,"props":171,"children":172},{},[173],{"type":48,"value":174},"Standard",{"type":48,"value":176},": You MUST list existing indexes first and suggest reusing if relevant. Else, new index + store vectors, follow Steps 2-6",{"type":42,"tag":74,"props":178,"children":179},{},[180,185,187,192],{"type":42,"tag":78,"props":181,"children":182},{},[183],{"type":48,"value":184},"Migration or multi-tenant",{"type":48,"value":186},": Read ",{"type":42,"tag":96,"props":188,"children":190},{"className":189},[],[191],{"type":48,"value":119},{"type":48,"value":193}," first, then Steps 2-6",{"type":42,"tag":58,"props":195,"children":196},{},[197],{"type":48,"value":198},"You MUST execute commands using AWS MCP server tools when connected. Fall back to AWS CLI only if AWS MCP is unavailable. You MUST explain each step to the user before executing.",{"type":42,"tag":200,"props":201,"children":203},"h3",{"id":202},"_1-verify-dependencies",[204],{"type":48,"value":205},"1. Verify Dependencies",{"type":42,"tag":58,"props":207,"children":208},{},[209],{"type":42,"tag":78,"props":210,"children":211},{},[212],{"type":48,"value":213},"Constraints:",{"type":42,"tag":70,"props":215,"children":216},{},[217,222],{"type":42,"tag":74,"props":218,"children":219},{},[220],{"type":48,"value":221},"You MUST check whether AWS MCP tools or AWS CLI is available and inform user if missing",{"type":42,"tag":74,"props":223,"children":224},{},[225],{"type":48,"value":226},"You MUST confirm target AWS region",{"type":42,"tag":200,"props":228,"children":230},{"id":229},"_2-create-a-vector-bucket",[231],{"type":48,"value":232},"2. Create a Vector Bucket",{"type":42,"tag":58,"props":234,"children":235},{},[236],{"type":48,"value":237},"You MUST confirm bucket name with user. Names: 3-63 chars, lowercase letters, numbers, hyphens only. Encryption (SSE-S3 default or SSE-KMS for compliance) is immutable after creation.",{"type":42,"tag":239,"props":240,"children":245},"pre",{"className":241,"code":242,"language":243,"meta":244,"style":244},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","aws s3vectors create-vector-bucket \\\n  --vector-bucket-name \u003CBUCKET_NAME>\n","bash","",[246],{"type":42,"tag":96,"props":247,"children":248},{"__ignoreMap":244},[249,276],{"type":42,"tag":250,"props":251,"children":253},"span",{"class":252,"line":37},"line",[254,259,265,270],{"type":42,"tag":250,"props":255,"children":257},{"style":256},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[258],{"type":48,"value":8},{"type":42,"tag":250,"props":260,"children":262},{"style":261},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[263],{"type":48,"value":264}," s3vectors",{"type":42,"tag":250,"props":266,"children":267},{"style":261},[268],{"type":48,"value":269}," create-vector-bucket",{"type":42,"tag":250,"props":271,"children":273},{"style":272},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[274],{"type":48,"value":275}," \\\n",{"type":42,"tag":250,"props":277,"children":279},{"class":252,"line":278},2,[280,285,291,296,301],{"type":42,"tag":250,"props":281,"children":282},{"style":261},[283],{"type":48,"value":284},"  --vector-bucket-name",{"type":42,"tag":250,"props":286,"children":288},{"style":287},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[289],{"type":48,"value":290}," \u003C",{"type":42,"tag":250,"props":292,"children":293},{"style":261},[294],{"type":48,"value":295},"BUCKET_NAM",{"type":42,"tag":250,"props":297,"children":298},{"style":272},[299],{"type":48,"value":300},"E",{"type":42,"tag":250,"props":302,"children":303},{"style":287},[304],{"type":48,"value":305},">\n",{"type":42,"tag":58,"props":307,"children":308},{},[309],{"type":42,"tag":78,"props":310,"children":311},{},[312],{"type":48,"value":213},{"type":42,"tag":70,"props":314,"children":315},{},[316,321],{"type":42,"tag":74,"props":317,"children":318},{},[319],{"type":48,"value":320},"You MUST explain encryption cannot be changed after creation",{"type":42,"tag":74,"props":322,"children":323},{},[324,326,332,334,340,342,348,350,355],{"type":48,"value":325},"For SSE-KMS, KMS key policy MUST grant ",{"type":42,"tag":96,"props":327,"children":329},{"className":328},[],[330],{"type":48,"value":331},"kms:GenerateDataKey",{"type":48,"value":333}," and ",{"type":42,"tag":96,"props":335,"children":337},{"className":336},[],[338],{"type":48,"value":339},"kms:Decrypt",{"type":48,"value":341}," to the S3 Vectors service principal ",{"type":42,"tag":96,"props":343,"children":345},{"className":344},[],[346],{"type":48,"value":347},"indexing.s3vectors.amazonaws.com",{"type":48,"value":349},". You MUST use full KMS key ARN (not alias). See ",{"type":42,"tag":96,"props":351,"children":353},{"className":352},[],[354],{"type":48,"value":119},{"type":48,"value":356}," for command example.",{"type":42,"tag":200,"props":358,"children":360},{"id":359},"_3-create-a-vector-index",[361],{"type":48,"value":362},"3. Create a Vector Index",{"type":42,"tag":58,"props":364,"children":365},{},[366,368,373],{"type":48,"value":367},"Every parameter is ",{"type":42,"tag":78,"props":369,"children":370},{},[371],{"type":48,"value":372},"immutable after creation",{"type":48,"value":103},{"type":42,"tag":58,"props":375,"children":376},{},[377],{"type":42,"tag":78,"props":378,"children":379},{},[380],{"type":48,"value":381},"Pre-flight checklist (confirm ALL with user):",{"type":42,"tag":383,"props":384,"children":385},"ol",{},[386,396,422,440],{"type":42,"tag":74,"props":387,"children":388},{},[389,394],{"type":42,"tag":78,"props":390,"children":391},{},[392],{"type":48,"value":393},"Dimension",{"type":48,"value":395}," (required, integer 1-4096) -- MUST match embedding model output",{"type":42,"tag":74,"props":397,"children":398},{},[399,404,406,412,414,420],{"type":42,"tag":78,"props":400,"children":401},{},[402],{"type":48,"value":403},"Distance metric",{"type":48,"value":405}," (required) -- ",{"type":42,"tag":96,"props":407,"children":409},{"className":408},[],[410],{"type":48,"value":411},"cosine",{"type":48,"value":413}," or ",{"type":42,"tag":96,"props":415,"children":417},{"className":416},[],[418],{"type":48,"value":419},"euclidean",{"type":48,"value":421},". Use embedding model's recommended metric;",{"type":42,"tag":74,"props":423,"children":424},{},[425,430,432,438],{"type":42,"tag":78,"props":426,"children":427},{},[428],{"type":48,"value":429},"Non-filterable metadata keys",{"type":48,"value":431}," (optional, max 10, 1-63 chars) -- Declare at creation or lose forever. For Bedrock Knowledge Bases integration, search AWS docs for ",{"type":42,"tag":96,"props":433,"children":435},{"className":434},[],[436],{"type":48,"value":437},"\"S3 Vectors Bedrock Knowledge Bases prerequisites\"",{"type":48,"value":439}," to get the required key names.",{"type":42,"tag":74,"props":441,"children":442},{},[443,448],{"type":42,"tag":78,"props":444,"children":445},{},[446],{"type":48,"value":447},"Encryption",{"type":48,"value":449}," (optional) -- Inherits from bucket. Override per-index if needed.",{"type":42,"tag":239,"props":451,"children":453},{"className":241,"code":452,"language":243,"meta":244,"style":244},"aws s3vectors create-index \\\n  --vector-bucket-name \u003CBUCKET_NAME> \\\n  --index-name \u003CINDEX_NAME> \\\n  --dimension \u003CDIM> \\\n  --distance-metric \u003Ccosine|euclidean> \\\n  --data-type float32 \\\n  --metadata-configuration '{\"nonFilterableMetadataKeys\":[\"\u003CKEY1>\",\"\u003CKEY2>\"]}'\n",[454],{"type":42,"tag":96,"props":455,"children":456},{"__ignoreMap":244},[457,477,505,535,566,597,615],{"type":42,"tag":250,"props":458,"children":459},{"class":252,"line":37},[460,464,468,473],{"type":42,"tag":250,"props":461,"children":462},{"style":256},[463],{"type":48,"value":8},{"type":42,"tag":250,"props":465,"children":466},{"style":261},[467],{"type":48,"value":264},{"type":42,"tag":250,"props":469,"children":470},{"style":261},[471],{"type":48,"value":472}," create-index",{"type":42,"tag":250,"props":474,"children":475},{"style":272},[476],{"type":48,"value":275},{"type":42,"tag":250,"props":478,"children":479},{"class":252,"line":278},[480,484,488,492,496,501],{"type":42,"tag":250,"props":481,"children":482},{"style":261},[483],{"type":48,"value":284},{"type":42,"tag":250,"props":485,"children":486},{"style":287},[487],{"type":48,"value":290},{"type":42,"tag":250,"props":489,"children":490},{"style":261},[491],{"type":48,"value":295},{"type":42,"tag":250,"props":493,"children":494},{"style":272},[495],{"type":48,"value":300},{"type":42,"tag":250,"props":497,"children":498},{"style":287},[499],{"type":48,"value":500},">",{"type":42,"tag":250,"props":502,"children":503},{"style":272},[504],{"type":48,"value":275},{"type":42,"tag":250,"props":506,"children":508},{"class":252,"line":507},3,[509,514,518,523,527,531],{"type":42,"tag":250,"props":510,"children":511},{"style":261},[512],{"type":48,"value":513},"  --index-name",{"type":42,"tag":250,"props":515,"children":516},{"style":287},[517],{"type":48,"value":290},{"type":42,"tag":250,"props":519,"children":520},{"style":261},[521],{"type":48,"value":522},"INDEX_NAM",{"type":42,"tag":250,"props":524,"children":525},{"style":272},[526],{"type":48,"value":300},{"type":42,"tag":250,"props":528,"children":529},{"style":287},[530],{"type":48,"value":500},{"type":42,"tag":250,"props":532,"children":533},{"style":272},[534],{"type":48,"value":275},{"type":42,"tag":250,"props":536,"children":538},{"class":252,"line":537},4,[539,544,548,553,558,562],{"type":42,"tag":250,"props":540,"children":541},{"style":261},[542],{"type":48,"value":543},"  --dimension",{"type":42,"tag":250,"props":545,"children":546},{"style":287},[547],{"type":48,"value":290},{"type":42,"tag":250,"props":549,"children":550},{"style":261},[551],{"type":48,"value":552},"DI",{"type":42,"tag":250,"props":554,"children":555},{"style":272},[556],{"type":48,"value":557},"M",{"type":42,"tag":250,"props":559,"children":560},{"style":287},[561],{"type":48,"value":500},{"type":42,"tag":250,"props":563,"children":564},{"style":272},[565],{"type":48,"value":275},{"type":42,"tag":250,"props":567,"children":569},{"class":252,"line":568},5,[570,575,579,583,588,592],{"type":42,"tag":250,"props":571,"children":572},{"style":261},[573],{"type":48,"value":574},"  --distance-metric",{"type":42,"tag":250,"props":576,"children":577},{"style":287},[578],{"type":48,"value":290},{"type":42,"tag":250,"props":580,"children":581},{"style":261},[582],{"type":48,"value":411},{"type":42,"tag":250,"props":584,"children":585},{"style":287},[586],{"type":48,"value":587},"|",{"type":42,"tag":250,"props":589,"children":590},{"style":256},[591],{"type":48,"value":419},{"type":42,"tag":250,"props":593,"children":594},{"style":272},[595],{"type":48,"value":596},"> \\\n",{"type":42,"tag":250,"props":598,"children":600},{"class":252,"line":599},6,[601,606,611],{"type":42,"tag":250,"props":602,"children":603},{"style":261},[604],{"type":48,"value":605},"  --data-type",{"type":42,"tag":250,"props":607,"children":608},{"style":261},[609],{"type":48,"value":610}," float32",{"type":42,"tag":250,"props":612,"children":613},{"style":272},[614],{"type":48,"value":275},{"type":42,"tag":250,"props":616,"children":618},{"class":252,"line":617},7,[619,624,629,634],{"type":42,"tag":250,"props":620,"children":621},{"style":261},[622],{"type":48,"value":623},"  --metadata-configuration",{"type":42,"tag":250,"props":625,"children":626},{"style":287},[627],{"type":48,"value":628}," '",{"type":42,"tag":250,"props":630,"children":631},{"style":261},[632],{"type":48,"value":633},"{\"nonFilterableMetadataKeys\":[\"\u003CKEY1>\",\"\u003CKEY2>\"]}",{"type":42,"tag":250,"props":635,"children":636},{"style":287},[637],{"type":48,"value":638},"'\n",{"type":42,"tag":58,"props":640,"children":641},{},[642,644,650],{"type":48,"value":643},"Omit ",{"type":42,"tag":96,"props":645,"children":647},{"className":646},[],[648],{"type":48,"value":649},"--metadata-configuration",{"type":48,"value":651}," if no non-filterable keys are needed.",{"type":42,"tag":58,"props":653,"children":654},{},[655,657,663],{"type":48,"value":656},"Index names: 3-63 chars, lowercase, numbers, hyphens, dots. Unique within bucket. Filterable metadata: 2 KB limit. Total metadata (filterable + non-filterable combined): 40 KB. See ",{"type":42,"tag":96,"props":658,"children":660},{"className":659},[],[661],{"type":48,"value":662},"references\u002Fmetadata-filtering.md",{"type":48,"value":103},{"type":42,"tag":200,"props":665,"children":667},{"id":666},"_4-generate-embeddings-if-needed",[668],{"type":48,"value":669},"4. Generate Embeddings (if needed)",{"type":42,"tag":58,"props":671,"children":672},{},[673],{"type":48,"value":674},"Skip to Step 5 (store) or Step 6 (query) if user already has embeddings.",{"type":42,"tag":58,"props":676,"children":677},{},[678],{"type":42,"tag":78,"props":679,"children":680},{},[681],{"type":48,"value":213},{"type":42,"tag":70,"props":683,"children":684},{},[685,690,695,700],{"type":42,"tag":74,"props":686,"children":687},{},[688],{"type":48,"value":689},"You MUST ask which embedding model to use if not specified",{"type":42,"tag":74,"props":691,"children":692},{},[693],{"type":48,"value":694},"You MUST NOT assume a default model",{"type":42,"tag":74,"props":696,"children":697},{},[698],{"type":48,"value":699},"Dimension MUST match Step 3",{"type":42,"tag":74,"props":701,"children":702},{},[703],{"type":48,"value":704},"You MUST use the same model for both storing and querying",{"type":42,"tag":58,"props":706,"children":707},{},[708],{"type":48,"value":709},"Generate embeddings with Bedrock invoke-model:",{"type":42,"tag":239,"props":711,"children":713},{"className":241,"code":712,"language":243,"meta":244,"style":244},"aws bedrock-runtime invoke-model \\\n  --model-id \u003CMODEL_ID> \\\n  --content-type application\u002Fjson \\\n  --cli-binary-format raw-in-base64-out \\\n  --body '{\"inputText\": \"your text\"}' \\\n  invoke-model-output.json\n",[714],{"type":42,"tag":96,"props":715,"children":716},{"__ignoreMap":244},[717,738,768,785,802,828],{"type":42,"tag":250,"props":718,"children":719},{"class":252,"line":37},[720,724,729,734],{"type":42,"tag":250,"props":721,"children":722},{"style":256},[723],{"type":48,"value":8},{"type":42,"tag":250,"props":725,"children":726},{"style":261},[727],{"type":48,"value":728}," bedrock-runtime",{"type":42,"tag":250,"props":730,"children":731},{"style":261},[732],{"type":48,"value":733}," invoke-model",{"type":42,"tag":250,"props":735,"children":736},{"style":272},[737],{"type":48,"value":275},{"type":42,"tag":250,"props":739,"children":740},{"class":252,"line":278},[741,746,750,755,760,764],{"type":42,"tag":250,"props":742,"children":743},{"style":261},[744],{"type":48,"value":745},"  --model-id",{"type":42,"tag":250,"props":747,"children":748},{"style":287},[749],{"type":48,"value":290},{"type":42,"tag":250,"props":751,"children":752},{"style":261},[753],{"type":48,"value":754},"MODEL_I",{"type":42,"tag":250,"props":756,"children":757},{"style":272},[758],{"type":48,"value":759},"D",{"type":42,"tag":250,"props":761,"children":762},{"style":287},[763],{"type":48,"value":500},{"type":42,"tag":250,"props":765,"children":766},{"style":272},[767],{"type":48,"value":275},{"type":42,"tag":250,"props":769,"children":770},{"class":252,"line":507},[771,776,781],{"type":42,"tag":250,"props":772,"children":773},{"style":261},[774],{"type":48,"value":775},"  --content-type",{"type":42,"tag":250,"props":777,"children":778},{"style":261},[779],{"type":48,"value":780}," application\u002Fjson",{"type":42,"tag":250,"props":782,"children":783},{"style":272},[784],{"type":48,"value":275},{"type":42,"tag":250,"props":786,"children":787},{"class":252,"line":537},[788,793,798],{"type":42,"tag":250,"props":789,"children":790},{"style":261},[791],{"type":48,"value":792},"  --cli-binary-format",{"type":42,"tag":250,"props":794,"children":795},{"style":261},[796],{"type":48,"value":797}," raw-in-base64-out",{"type":42,"tag":250,"props":799,"children":800},{"style":272},[801],{"type":48,"value":275},{"type":42,"tag":250,"props":803,"children":804},{"class":252,"line":568},[805,810,814,819,824],{"type":42,"tag":250,"props":806,"children":807},{"style":261},[808],{"type":48,"value":809},"  --body",{"type":42,"tag":250,"props":811,"children":812},{"style":287},[813],{"type":48,"value":628},{"type":42,"tag":250,"props":815,"children":816},{"style":261},[817],{"type":48,"value":818},"{\"inputText\": \"your text\"}",{"type":42,"tag":250,"props":820,"children":821},{"style":287},[822],{"type":48,"value":823},"'",{"type":42,"tag":250,"props":825,"children":826},{"style":272},[827],{"type":48,"value":275},{"type":42,"tag":250,"props":829,"children":830},{"class":252,"line":599},[831],{"type":42,"tag":250,"props":832,"children":833},{"style":261},[834],{"type":48,"value":835},"  invoke-model-output.json\n",{"type":42,"tag":58,"props":837,"children":838},{},[839,841,847,849,855,857,863,865,871],{"type":48,"value":840},"You MUST use ",{"type":42,"tag":96,"props":842,"children":844},{"className":843},[],[845],{"type":48,"value":846},"--cli-binary-format raw-in-base64-out",{"type":48,"value":848}," for CLI v2. Output file is required for CLI. The response key is model-dependent (e.g., embedding for Titan, embeddings for Cohere). For Titan, parse with ",{"type":42,"tag":96,"props":850,"children":852},{"className":851},[],[853],{"type":48,"value":854},"json.load(open('invoke-model-output.json'))['embedding']",{"type":48,"value":856},". Use ",{"type":42,"tag":96,"props":858,"children":860},{"className":859},[],[861],{"type":48,"value":862},"embedding",{"type":48,"value":864}," array as ",{"type":42,"tag":96,"props":866,"children":868},{"className":867},[],[869],{"type":48,"value":870},"float32",{"type":48,"value":872}," in put-vectors or query-vectors. For batch embedding generation, use AWS SDK or CLI.",{"type":42,"tag":200,"props":874,"children":876},{"id":875},"_5-put-vectors",[877],{"type":48,"value":878},"5. Put Vectors",{"type":42,"tag":239,"props":880,"children":882},{"className":241,"code":881,"language":243,"meta":244,"style":244},"aws s3vectors put-vectors \\\n  --vector-bucket-name \u003CBUCKET_NAME> \\\n  --index-name \u003CINDEX_NAME> \\\n  --vectors '[{\"key\":\"\u003CID>\",\"data\":{\"float32\":[\u003CEMBEDDING>]},\"metadata\":{\"topic\":\"science\"}}]'\n",[883],{"type":42,"tag":96,"props":884,"children":885},{"__ignoreMap":244},[886,906,933,960],{"type":42,"tag":250,"props":887,"children":888},{"class":252,"line":37},[889,893,897,902],{"type":42,"tag":250,"props":890,"children":891},{"style":256},[892],{"type":48,"value":8},{"type":42,"tag":250,"props":894,"children":895},{"style":261},[896],{"type":48,"value":264},{"type":42,"tag":250,"props":898,"children":899},{"style":261},[900],{"type":48,"value":901}," put-vectors",{"type":42,"tag":250,"props":903,"children":904},{"style":272},[905],{"type":48,"value":275},{"type":42,"tag":250,"props":907,"children":908},{"class":252,"line":278},[909,913,917,921,925,929],{"type":42,"tag":250,"props":910,"children":911},{"style":261},[912],{"type":48,"value":284},{"type":42,"tag":250,"props":914,"children":915},{"style":287},[916],{"type":48,"value":290},{"type":42,"tag":250,"props":918,"children":919},{"style":261},[920],{"type":48,"value":295},{"type":42,"tag":250,"props":922,"children":923},{"style":272},[924],{"type":48,"value":300},{"type":42,"tag":250,"props":926,"children":927},{"style":287},[928],{"type":48,"value":500},{"type":42,"tag":250,"props":930,"children":931},{"style":272},[932],{"type":48,"value":275},{"type":42,"tag":250,"props":934,"children":935},{"class":252,"line":507},[936,940,944,948,952,956],{"type":42,"tag":250,"props":937,"children":938},{"style":261},[939],{"type":48,"value":513},{"type":42,"tag":250,"props":941,"children":942},{"style":287},[943],{"type":48,"value":290},{"type":42,"tag":250,"props":945,"children":946},{"style":261},[947],{"type":48,"value":522},{"type":42,"tag":250,"props":949,"children":950},{"style":272},[951],{"type":48,"value":300},{"type":42,"tag":250,"props":953,"children":954},{"style":287},[955],{"type":48,"value":500},{"type":42,"tag":250,"props":957,"children":958},{"style":272},[959],{"type":48,"value":275},{"type":42,"tag":250,"props":961,"children":962},{"class":252,"line":537},[963,968,972,977],{"type":42,"tag":250,"props":964,"children":965},{"style":261},[966],{"type":48,"value":967},"  --vectors",{"type":42,"tag":250,"props":969,"children":970},{"style":287},[971],{"type":48,"value":628},{"type":42,"tag":250,"props":973,"children":974},{"style":261},[975],{"type":48,"value":976},"[{\"key\":\"\u003CID>\",\"data\":{\"float32\":[\u003CEMBEDDING>]},\"metadata\":{\"topic\":\"science\"}}]",{"type":42,"tag":250,"props":978,"children":979},{"style":287},[980],{"type":48,"value":638},{"type":42,"tag":58,"props":982,"children":983},{},[984],{"type":42,"tag":78,"props":985,"children":986},{},[987],{"type":48,"value":213},{"type":42,"tag":70,"props":989,"children":990},{},[991,996,1001,1006,1017],{"type":42,"tag":74,"props":992,"children":993},{},[994],{"type":48,"value":995},"You MUST NOT exceed 500 vectors per call",{"type":42,"tag":74,"props":997,"children":998},{},[999],{"type":48,"value":1000},"You SHOULD batch vectors for cost optimization",{"type":42,"tag":74,"props":1002,"children":1003},{},[1004],{"type":48,"value":1005},"For bulk operations, You SHOULD use an SDK instead of CLI -- vector payloads may be too large for shell arguments",{"type":42,"tag":74,"props":1007,"children":1008},{},[1009,1011],{"type":48,"value":1010},"You MUST implement retry with backoff on ",{"type":42,"tag":96,"props":1012,"children":1014},{"className":1013},[],[1015],{"type":48,"value":1016},"429 TooManyRequestsException",{"type":42,"tag":74,"props":1018,"children":1019},{},[1020,1022,1027],{"type":48,"value":1021},"See ",{"type":42,"tag":96,"props":1023,"children":1025},{"className":1024},[],[1026],{"type":48,"value":119},{"type":48,"value":1028}," for batch patterns",{"type":42,"tag":200,"props":1030,"children":1032},{"id":1031},"_6-query-vectors",[1033],{"type":48,"value":1034},"6. Query Vectors",{"type":42,"tag":58,"props":1036,"children":1037},{},[1038],{"type":48,"value":1039},"Generate embedding if needed (Step 4), then query:",{"type":42,"tag":239,"props":1041,"children":1043},{"className":241,"code":1042,"language":243,"meta":244,"style":244},"aws s3vectors query-vectors \\\n  --vector-bucket-name \u003CBUCKET_NAME> \\\n  --index-name \u003CINDEX_NAME> \\\n  --query-vector '{\"float32\":[\u003CEMBEDDING>]}' \\\n  --top-k 10 \\\n  --return-distance\n",[1044],{"type":42,"tag":96,"props":1045,"children":1046},{"__ignoreMap":244},[1047,1067,1094,1121,1146,1164],{"type":42,"tag":250,"props":1048,"children":1049},{"class":252,"line":37},[1050,1054,1058,1063],{"type":42,"tag":250,"props":1051,"children":1052},{"style":256},[1053],{"type":48,"value":8},{"type":42,"tag":250,"props":1055,"children":1056},{"style":261},[1057],{"type":48,"value":264},{"type":42,"tag":250,"props":1059,"children":1060},{"style":261},[1061],{"type":48,"value":1062}," query-vectors",{"type":42,"tag":250,"props":1064,"children":1065},{"style":272},[1066],{"type":48,"value":275},{"type":42,"tag":250,"props":1068,"children":1069},{"class":252,"line":278},[1070,1074,1078,1082,1086,1090],{"type":42,"tag":250,"props":1071,"children":1072},{"style":261},[1073],{"type":48,"value":284},{"type":42,"tag":250,"props":1075,"children":1076},{"style":287},[1077],{"type":48,"value":290},{"type":42,"tag":250,"props":1079,"children":1080},{"style":261},[1081],{"type":48,"value":295},{"type":42,"tag":250,"props":1083,"children":1084},{"style":272},[1085],{"type":48,"value":300},{"type":42,"tag":250,"props":1087,"children":1088},{"style":287},[1089],{"type":48,"value":500},{"type":42,"tag":250,"props":1091,"children":1092},{"style":272},[1093],{"type":48,"value":275},{"type":42,"tag":250,"props":1095,"children":1096},{"class":252,"line":507},[1097,1101,1105,1109,1113,1117],{"type":42,"tag":250,"props":1098,"children":1099},{"style":261},[1100],{"type":48,"value":513},{"type":42,"tag":250,"props":1102,"children":1103},{"style":287},[1104],{"type":48,"value":290},{"type":42,"tag":250,"props":1106,"children":1107},{"style":261},[1108],{"type":48,"value":522},{"type":42,"tag":250,"props":1110,"children":1111},{"style":272},[1112],{"type":48,"value":300},{"type":42,"tag":250,"props":1114,"children":1115},{"style":287},[1116],{"type":48,"value":500},{"type":42,"tag":250,"props":1118,"children":1119},{"style":272},[1120],{"type":48,"value":275},{"type":42,"tag":250,"props":1122,"children":1123},{"class":252,"line":537},[1124,1129,1133,1138,1142],{"type":42,"tag":250,"props":1125,"children":1126},{"style":261},[1127],{"type":48,"value":1128},"  --query-vector",{"type":42,"tag":250,"props":1130,"children":1131},{"style":287},[1132],{"type":48,"value":628},{"type":42,"tag":250,"props":1134,"children":1135},{"style":261},[1136],{"type":48,"value":1137},"{\"float32\":[\u003CEMBEDDING>]}",{"type":42,"tag":250,"props":1139,"children":1140},{"style":287},[1141],{"type":48,"value":823},{"type":42,"tag":250,"props":1143,"children":1144},{"style":272},[1145],{"type":48,"value":275},{"type":42,"tag":250,"props":1147,"children":1148},{"class":252,"line":568},[1149,1154,1160],{"type":42,"tag":250,"props":1150,"children":1151},{"style":261},[1152],{"type":48,"value":1153},"  --top-k",{"type":42,"tag":250,"props":1155,"children":1157},{"style":1156},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1158],{"type":48,"value":1159}," 10",{"type":42,"tag":250,"props":1161,"children":1162},{"style":272},[1163],{"type":48,"value":275},{"type":42,"tag":250,"props":1165,"children":1166},{"class":252,"line":599},[1167],{"type":42,"tag":250,"props":1168,"children":1169},{"style":261},[1170],{"type":48,"value":1171},"  --return-distance\n",{"type":42,"tag":58,"props":1173,"children":1174},{},[1175,1177,1183,1185,1191,1193,1198],{"type":48,"value":1176},"Optional: add ",{"type":42,"tag":96,"props":1178,"children":1180},{"className":1179},[],[1181],{"type":48,"value":1182},"--return-metadata",{"type":48,"value":1184}," and\u002For ",{"type":42,"tag":96,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":48,"value":1190},"--filter '{\"topic\":{\"$eq\":\"science\"}}'",{"type":48,"value":1192}," (both require GetVectors permission). See ",{"type":42,"tag":96,"props":1194,"children":1196},{"className":1195},[],[1197],{"type":48,"value":662},{"type":48,"value":103},{"type":42,"tag":58,"props":1200,"children":1201},{},[1202,1204],{"type":48,"value":1203},"Example response body: ",{"type":42,"tag":96,"props":1205,"children":1207},{"className":1206},[],[1208],{"type":48,"value":1209},"{\"vectors\": [{\"key\": \"id1\", \"distance\": 0.45, \"metadata\": {\"topic\": \"science\"}}, ...], \"distanceMetric\": \"cosine\"}",{"type":42,"tag":58,"props":1211,"children":1212},{},[1213],{"type":42,"tag":78,"props":1214,"children":1215},{},[1216],{"type":48,"value":213},{"type":42,"tag":70,"props":1218,"children":1219},{},[1220],{"type":42,"tag":74,"props":1221,"children":1222},{},[1223,1225,1231,1232,1237,1239,1245,1247,1253],{"type":48,"value":1224},"Using ",{"type":42,"tag":96,"props":1226,"children":1228},{"className":1227},[],[1229],{"type":48,"value":1230},"--filter",{"type":48,"value":413},{"type":42,"tag":96,"props":1233,"children":1235},{"className":1234},[],[1236],{"type":48,"value":1182},{"type":48,"value":1238}," requires both ",{"type":42,"tag":96,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":48,"value":1244},"s3vectors:QueryVectors",{"type":48,"value":1246}," AND ",{"type":42,"tag":96,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":48,"value":1252},"s3vectors:GetVectors",{"type":48,"value":1254}," IAM permissions. Without GetVectors, these options return 403.",{"type":42,"tag":51,"props":1256,"children":1258},{"id":1257},"troubleshooting",[1259],{"type":48,"value":1260},"Troubleshooting",{"type":42,"tag":1262,"props":1263,"children":1264},"table",{},[1265,1289],{"type":42,"tag":1266,"props":1267,"children":1268},"thead",{},[1269],{"type":42,"tag":1270,"props":1271,"children":1272},"tr",{},[1273,1279,1284],{"type":42,"tag":1274,"props":1275,"children":1276},"th",{},[1277],{"type":48,"value":1278},"Error",{"type":42,"tag":1274,"props":1280,"children":1281},{},[1282],{"type":48,"value":1283},"Cause",{"type":42,"tag":1274,"props":1285,"children":1286},{},[1287],{"type":48,"value":1288},"Fix",{"type":42,"tag":1290,"props":1291,"children":1292},"tbody",{},[1293,1316,1363,1387,1416,1460],{"type":42,"tag":1270,"props":1294,"children":1295},{},[1296,1306,1311],{"type":42,"tag":1297,"props":1298,"children":1299},"td",{},[1300],{"type":42,"tag":96,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":48,"value":1305},"DimensionMismatch",{"type":42,"tag":1297,"props":1307,"children":1308},{},[1309],{"type":48,"value":1310},"Dims don't match index",{"type":42,"tag":1297,"props":1312,"children":1313},{},[1314],{"type":48,"value":1315},"Use matching model, or delete\u002Frecreate index (confirm with user -- destroys all vectors).",{"type":42,"tag":1270,"props":1317,"children":1318},{},[1319,1341,1351],{"type":42,"tag":1297,"props":1320,"children":1321},{},[1322,1328,1330,1335,1336],{"type":42,"tag":96,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":48,"value":1327},"403 Forbidden",{"type":48,"value":1329}," with ",{"type":42,"tag":96,"props":1331,"children":1333},{"className":1332},[],[1334],{"type":48,"value":1230},{"type":48,"value":413},{"type":42,"tag":96,"props":1337,"children":1339},{"className":1338},[],[1340],{"type":48,"value":1182},{"type":42,"tag":1297,"props":1342,"children":1343},{},[1344,1346],{"type":48,"value":1345},"Missing ",{"type":42,"tag":96,"props":1347,"children":1349},{"className":1348},[],[1350],{"type":48,"value":1252},{"type":42,"tag":1297,"props":1352,"children":1353},{},[1354,1356,1361],{"type":48,"value":1355},"Add ",{"type":42,"tag":96,"props":1357,"children":1359},{"className":1358},[],[1360],{"type":48,"value":1252},{"type":48,"value":1362}," to IAM policy.",{"type":42,"tag":1270,"props":1364,"children":1365},{},[1366,1377,1382],{"type":42,"tag":1297,"props":1367,"children":1368},{},[1369,1371],{"type":48,"value":1370},"Fewer results than ",{"type":42,"tag":96,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":48,"value":1376},"--top-k",{"type":42,"tag":1297,"props":1378,"children":1379},{},[1380],{"type":48,"value":1381},"Few vectors match filter",{"type":42,"tag":1297,"props":1383,"children":1384},{},[1385],{"type":48,"value":1386},"Expected -- filtering is inline. Broaden filter.",{"type":42,"tag":1270,"props":1388,"children":1389},{},[1390,1398,1403],{"type":42,"tag":1297,"props":1391,"children":1392},{},[1393],{"type":42,"tag":96,"props":1394,"children":1396},{"className":1395},[],[1397],{"type":48,"value":1016},{"type":42,"tag":1297,"props":1399,"children":1400},{},[1401],{"type":48,"value":1402},"Exceeded per-index rate limits",{"type":42,"tag":1297,"props":1404,"children":1405},{},[1406,1408,1414],{"type":48,"value":1407},"Retry with backoff. Shard across indexes for sustained throughput. Search AWS docs for ",{"type":42,"tag":96,"props":1409,"children":1411},{"className":1410},[],[1412],{"type":48,"value":1413},"\"S3 Vectors limitations and restrictions\"",{"type":48,"value":1415}," for current limits.",{"type":42,"tag":1270,"props":1417,"children":1418},{},[1419,1428,1440],{"type":42,"tag":1297,"props":1420,"children":1421},{},[1422],{"type":42,"tag":96,"props":1423,"children":1425},{"className":1424},[],[1426],{"type":48,"value":1427},"AccessDeniedException",{"type":42,"tag":1297,"props":1429,"children":1430},{},[1431,1432,1438],{"type":48,"value":1345},{"type":42,"tag":96,"props":1433,"children":1435},{"className":1434},[],[1436],{"type":48,"value":1437},"s3vectors:*",{"type":48,"value":1439}," IAM actions",{"type":42,"tag":1297,"props":1441,"children":1442},{},[1443,1445,1450,1452,1458],{"type":48,"value":1444},"S3 Vectors uses ",{"type":42,"tag":96,"props":1446,"children":1448},{"className":1447},[],[1449],{"type":48,"value":1437},{"type":48,"value":1451}," namespace, not ",{"type":42,"tag":96,"props":1453,"children":1455},{"className":1454},[],[1456],{"type":48,"value":1457},"s3:*",{"type":48,"value":1459},". Update IAM policy.",{"type":42,"tag":1270,"props":1461,"children":1462},{},[1463,1474,1479],{"type":42,"tag":1297,"props":1464,"children":1465},{},[1466,1472],{"type":42,"tag":96,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":48,"value":1471},"RequestTimeoutException",{"type":48,"value":1473}," or service unavailable",{"type":42,"tag":1297,"props":1475,"children":1476},{},[1477],{"type":48,"value":1478},"Request timeout or region not supported",{"type":42,"tag":1297,"props":1480,"children":1481},{},[1482,1484,1489],{"type":48,"value":1483},"Retry request. For regional availability, search AWS docs for ",{"type":42,"tag":96,"props":1485,"children":1487},{"className":1486},[],[1488],{"type":48,"value":1413},{"type":48,"value":103},{"type":42,"tag":51,"props":1491,"children":1493},{"id":1492},"additional-resources",[1494],{"type":48,"value":1495},"Additional Resources",{"type":42,"tag":70,"props":1497,"children":1498},{},[1499,1510],{"type":42,"tag":74,"props":1500,"children":1501},{},[1502,1508],{"type":42,"tag":1503,"props":1504,"children":1505},"a",{"href":119},[1506],{"type":48,"value":1507},"limits-and-patterns.md",{"type":48,"value":1509}," -- Multi-tenant patterns, batch ingestion, SSE-KMS, migration",{"type":42,"tag":74,"props":1511,"children":1512},{},[1513,1518],{"type":42,"tag":1503,"props":1514,"children":1515},{"href":662},[1516],{"type":48,"value":1517},"metadata-filtering.md",{"type":48,"value":1519}," -- Filter operators, non-filterable metadata, Bedrock KB keys",{"type":42,"tag":1521,"props":1522,"children":1523},"style",{},[1524],{"type":48,"value":1525},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1527,"total":1631},[1528,1545,1560,1575,1590,1600,1615],{"slug":1529,"name":1529,"fn":1530,"description":1531,"org":1532,"tags":1533,"stars":24,"repoUrl":25,"updatedAt":1544},"agents-build","add capabilities to existing agent projects","Use when adding capabilities to an existing agent project — memory, app integration, VPC, multi-agent, migration, model changes, browser, code interpreter, or resource removal. Triggers on: \"add memory\", \"remember across sessions\", \"call agent from app\", \"invoke agent from code\", \"auth to call agent\", \"streaming responses\", \"VPC\", \"VPC connectivity\", \"VPC error\", \"can't reach from VPC\", \"multi-agent\", \"A2A\", \"A2A auth\", \"orchestrator not delegating\", \"specialist not called\", \"migrate Bedrock Agent\", \"after import\", \"migration issue\", \"framework for migration\", \"change model\", \"browser tool\", \"code interpreter\", \"delete agent\", \"tear down\", \"agentcore remove\", \"cross-account memory\", \"resource-based policy on memory\", \"pay for x402 content\", \"402 Payment Required\", \"microtransactions\", \"paid API or tool\". Not for connecting to external APIs via Gateway — use agents-connect. Not for scaffolding a new project — use agents-get-started. Not for CLI\u002Fdev server errors — use agents-debug. Strands vs LangGraph in a migration context routes here.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1534,1537,1540,1541],{"name":1535,"slug":1536,"type":15},"Agents","agents",{"name":1538,"slug":1539,"type":15},"Automation","automation",{"name":23,"slug":8,"type":15},{"name":1542,"slug":1543,"type":15},"Engineering","engineering","2026-07-12T08:42:53.812877",{"slug":1546,"name":1546,"fn":1547,"description":1548,"org":1549,"tags":1550,"stars":24,"repoUrl":25,"updatedAt":1559},"agents-connect","connect agents to external services","Use when connecting your agent to external APIs, tools, or services via Gateway, or restricting tool access with Cedar policies. Handles gateway setup, target types, outbound auth (OAuth, API key, IAM), credentials, and Cedar policy authoring. Triggers on: \"connect to API\", \"add gateway\", \"connect to MCP server\", \"Lambda tools\", \"OpenAPI\", \"gateway target\", \"Cedar policy\", \"restrict tools\", \"policy engine\", \"gateway auth error\", \"store API key\", \"outbound credential\", \"env var API key\", \"API key None after deploy\", \"credential not available after deploy\", \"should this be a gateway target\", \"give my agent tools\", \"add tools to agent\". Not for inbound auth (who can call your agent) — use agents-harden. Not for debugging agent behavior — use agents-debug. Not for VPC networking errors (agent can't reach APIs due to VPC) — use agents-build. Not for creating or hosting a new MCP server project — use agents-get-started.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1551,1552,1555,1558],{"name":1535,"slug":1536,"type":15},{"name":1553,"slug":1554,"type":15},"API Development","api-development",{"name":1556,"slug":1557,"type":15},"Authentication","authentication",{"name":23,"slug":8,"type":15},"2026-07-16T06:00:38.866147",{"slug":1561,"name":1561,"fn":1562,"description":1563,"org":1564,"tags":1565,"stars":24,"repoUrl":25,"updatedAt":1574},"agents-debug","debug agent and environment issues","Use when your agent or environment is broken — wrong answers, errors, timeouts, tool failures, or CLI issues. Reads traces and logs to diagnose root causes. Also checks prerequisites when the CLI itself isn't working. Triggers on: \"agent not working\", \"wrong answer\", \"agent error\", \"tool call failing\", \"debug agent\", \"check logs\", \"read traces\", \"broken\", \"500 error\", \"424 error\", \"model access denied\", \"command not found\", \"stuck in DELETING\", \"maxVms exceeded\", \"cold start diagnosis\", \"cold start slow\", \"agentcore create error\", \"create failed\", \"exit code 7\", \"connection refused local dev\". Not for deploy failures — use agents-deploy. Not for performance tuning without errors — use agents-optimize. Not for VPC configuration — use agents-build. Not for observability setup or missing logs — use agents-optimize.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1566,1567,1568,1571],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1569,"slug":1570,"type":15},"Debugging","debugging",{"name":1572,"slug":1573,"type":15},"Observability","observability","2026-07-16T06:00:44.679093",{"slug":1576,"name":1576,"fn":1577,"description":1578,"org":1579,"tags":1580,"stars":24,"repoUrl":25,"updatedAt":1589},"agents-deploy","deploy AI agents to AWS","Use when deploying your agent to AWS, or when a deploy has failed. Handles pre-flight validation, CDK\u002FIAM\u002Fquota error diagnosis, version management, rollback, and canary deployments. Triggers on: \"deploy my agent\", \"agentcore deploy\", \"deploy failed\", \"CDK error\", \"rollback\", \"canary deploy\", \"pin version\", \"redeploy\", \"deploy stuck\". Not for production hardening — use agents-harden. Not for adding capabilities before deploy — use agents-build or agents-connect. Not for VPC configuration errors — use agents-build.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1581,1582,1583,1586],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1584,"slug":1585,"type":15},"CI\u002FCD","ci-cd",{"name":1587,"slug":1588,"type":15},"Deployment","deployment","2026-07-12T08:42:55.059577",{"slug":1591,"name":1591,"fn":1592,"description":1593,"org":1594,"tags":1595,"stars":24,"repoUrl":25,"updatedAt":1599},"agents-get-started","scaffold and deploy new agent projects","Use when a developer wants to create a new agent project or get started with AgentCore. Handles framework selection, project scaffolding, first deploy, and first invocation. Triggers on: \"build an agent\", \"create an agent\", \"get started\", \"new project\", \"agentcore create\", \"which framework\", \"Strands vs LangGraph\", \"hello world agent\", \"first agent\", \"create MCP server\", \"host MCP server\", \"agentcore dev\", \"dev server\", \"what port\", \"local development\". Not for adding capabilities to existing projects — use agents-build or agents-connect. Strands vs LangGraph in a migration context routes to agents-build, not here. Connecting to an existing MCP server routes to agents-connect, not here.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1596,1597,1598],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1587,"slug":1588,"type":15},"2026-07-12T08:42:51.963247",{"slug":1601,"name":1601,"fn":1602,"description":1603,"org":1604,"tags":1605,"stars":24,"repoUrl":25,"updatedAt":1614},"agents-harden","harden agents for production","Use when preparing your agent for production — IAM scoping, inbound auth (JWT, SigV4), secrets management, cold start optimization, session lifecycle, rate limiting, input validation, and quota guidance. Triggers on: \"production checklist\", \"harden agent\", \"production ready\", \"secure agent\", \"inbound auth\", \"going live\", \"cold start optimization\", \"session lifecycle\", \"StopRuntimeSession\", \"quota\", \"throttling\", \"maxVms\", \"rate limit\", \"security audit of outbound API calls\", \"gateway target audit for production\", \"restrict who can call\", \"lock down endpoint\", \"only our app can call\". Not for Cedar tool-restriction policies — use agents-connect. Not for quality measurement — use agents-optimize. Not for outbound credential storage or API key wiring — use agents-connect. Not for A2A agent-to-agent auth — use agents-build. Cold start observation and diagnosis (not optimization) routes to agents-debug.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1606,1607,1608,1611],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1609,"slug":1610,"type":15},"Best Practices","best-practices",{"name":1612,"slug":1613,"type":15},"Security","security","2026-07-16T06:00:42.174705",{"slug":1616,"name":1616,"fn":1617,"description":1618,"org":1619,"tags":1620,"stars":24,"repoUrl":25,"updatedAt":1630},"agents-optimize","optimize agent quality and performance","Use when measuring or improving agent quality and performance — set up evaluators, online monitoring, CI\u002FCD quality gates, observability, or cost optimization. Triggers on: \"evaluate my agent\", \"add evaluator\", \"measure quality\", \"quality gate\", \"run evals\", \"agent too slow\", \"why is it slow\", \"reduce latency\", \"set up observability\", \"CloudWatch dashboard\", \"how much does my agent cost\", \"cost optimization\", \"logs not showing up\", \"logs missing\", \"spans not found\", \"eval failing\", \"eval error\", \"dev traces\", \"local traces\", \"agentcore dev traces\", \"traces to CloudWatch\". Not for debugging errors or crashes — use agents-debug. Slow but correct routes here; broken routes to debug.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1621,1622,1623,1626,1627],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1624,"slug":1625,"type":15},"Evals","evals",{"name":1572,"slug":1573,"type":15},{"name":1628,"slug":1629,"type":15},"Performance","performance","2026-07-12T08:42:56.488105",114,{"items":1633,"total":1748},[1634,1641,1648,1655,1662,1668,1675,1683,1698,1711,1723,1738],{"slug":1529,"name":1529,"fn":1530,"description":1531,"org":1635,"tags":1636,"stars":24,"repoUrl":25,"updatedAt":1544},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1637,1638,1639,1640],{"name":1535,"slug":1536,"type":15},{"name":1538,"slug":1539,"type":15},{"name":23,"slug":8,"type":15},{"name":1542,"slug":1543,"type":15},{"slug":1546,"name":1546,"fn":1547,"description":1548,"org":1642,"tags":1643,"stars":24,"repoUrl":25,"updatedAt":1559},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1644,1645,1646,1647],{"name":1535,"slug":1536,"type":15},{"name":1553,"slug":1554,"type":15},{"name":1556,"slug":1557,"type":15},{"name":23,"slug":8,"type":15},{"slug":1561,"name":1561,"fn":1562,"description":1563,"org":1649,"tags":1650,"stars":24,"repoUrl":25,"updatedAt":1574},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1651,1652,1653,1654],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1569,"slug":1570,"type":15},{"name":1572,"slug":1573,"type":15},{"slug":1576,"name":1576,"fn":1577,"description":1578,"org":1656,"tags":1657,"stars":24,"repoUrl":25,"updatedAt":1589},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1658,1659,1660,1661],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1584,"slug":1585,"type":15},{"name":1587,"slug":1588,"type":15},{"slug":1591,"name":1591,"fn":1592,"description":1593,"org":1663,"tags":1664,"stars":24,"repoUrl":25,"updatedAt":1599},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1665,1666,1667],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1587,"slug":1588,"type":15},{"slug":1601,"name":1601,"fn":1602,"description":1603,"org":1669,"tags":1670,"stars":24,"repoUrl":25,"updatedAt":1614},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1671,1672,1673,1674],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1609,"slug":1610,"type":15},{"name":1612,"slug":1613,"type":15},{"slug":1616,"name":1616,"fn":1617,"description":1618,"org":1676,"tags":1677,"stars":24,"repoUrl":25,"updatedAt":1630},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1678,1679,1680,1681,1682],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1624,"slug":1625,"type":15},{"name":1572,"slug":1573,"type":15},{"name":1628,"slug":1629,"type":15},{"slug":1684,"name":1684,"fn":1685,"description":1686,"org":1687,"tags":1688,"stars":24,"repoUrl":25,"updatedAt":1697},"amazon-aurora-mysql","manage Amazon Aurora MySQL clusters","Amazon Aurora MySQL — creates, modifies, and advises on Aurora MySQL clusters specifically (MySQL-compatible engine, Aurora serverless, parallel query). Trigger for Aurora MySQL cluster operations, ACU sizing, I\u002FO-Optimized storage, commitment pricing, or MySQL upgrade planning. Aurora MySQL uses full (VPC-based) configuration — express configuration is PostgreSQL-only. For Aurora PostgreSQL, use amazon-aurora-postgresql instead. Contains safety guardrails and response templates that override defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1689,1690,1691,1694],{"name":23,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":1692,"slug":1693,"type":15},"MySQL","mysql",{"name":1695,"slug":1696,"type":15},"Serverless","serverless","2026-07-12T08:43:13.27939",{"slug":1699,"name":1699,"fn":1700,"description":1701,"org":1702,"tags":1703,"stars":24,"repoUrl":25,"updatedAt":1710},"amazon-aurora-postgresql","configure Amazon Aurora PostgreSQL clusters","Amazon Aurora PostgreSQL — creates, modifies, and advises on Aurora PostgreSQL clusters specifically (PostgreSQL-compatible engine, Aurora serverless, express configuration, pgvector, Babelfish). Trigger for Aurora PostgreSQL cluster operations, express-configuration quick-start, ACU sizing, I\u002FO-Optimized storage, commitment pricing, or PostgreSQL upgrade planning. For Aurora MySQL, use amazon-aurora-mysql instead. Contains safety guardrails, express-first routing, and response templates that override defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1704,1705,1706,1709],{"name":23,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":1707,"slug":1708,"type":15},"PostgreSQL","postgresql",{"name":1695,"slug":1696,"type":15},"2026-07-16T06:00:34.789624",{"slug":1712,"name":1712,"fn":1713,"description":1714,"org":1715,"tags":1716,"stars":24,"repoUrl":25,"updatedAt":1722},"amazon-bedrock","build generative AI apps with Amazon Bedrock","Builds generative AI applications on Amazon Bedrock. Covers model invocation (Converse API, InvokeModel), RAG with Knowledge Bases, Bedrock Agents, Guardrails, and AgentCore. Use when invoking models, setting up Knowledge Bases, creating agents, applying guardrails, deploying to AgentCore, migrating\u002Fporting\u002Fconverting a Bedrock Agent (including inline agents) to an AgentCore Harness, troubleshooting Bedrock errors (ThrottlingException, AccessDeniedException), or choosing models (Claude, Llama, Nova, Titan). ALSO USE for prompt caching setup and debugging, quota health checks and throttling diagnosis, cost attribution and tracking, migrating between Claude model generations (4.5 to 4.6 to 4.7), chunking strategies, API selection (Converse vs InvokeModel), guardrail capabilities, and model selection. Also covers AgentCore Payments setup (x402, microtransactions, Payment Manager, Connector, Instrument, Coinbase CDP, Stripe Privy, 402 Payment Required, pay for content, paid endpoint, agent payments). NOT for custom model training, Rekognition, or Comprehend.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1717,1718,1719],{"name":1535,"slug":1536,"type":15},{"name":23,"slug":8,"type":15},{"name":1720,"slug":1721,"type":15},"LLM","llm","2026-07-25T05:30:35.20899",{"slug":1724,"name":1724,"fn":1725,"description":1726,"org":1727,"tags":1728,"stars":24,"repoUrl":25,"updatedAt":1737},"amazon-documentdb","manage Amazon DocumentDB clusters","Manages Amazon DocumentDB end-to-end — serverless-on-8.0 cluster setup, TLS\u002FVPC\u002Fdriver config, flexible-schema and vector-search data modeling, MongoDB compatibility assessment, DMS-based migration, slow-query diagnosis, major version upgrades (4.0→5.0→8.0), Well-Architected reviews (41-check wa_review.py), cost estimation, and security hardening. Retrieve for every DocumentDB question and when the user asks to set up or migrate MongoDB to AWS — DocumentDB is AWS's MongoDB-compatible managed database. Triggers: JSON document store, document database, MongoDB on AWS, Nested fields, Lambda cannot connect, TLS handshake, VPC port 27017, IAM auth, Secrets Manager, encryption at rest, $graphLookup, flexible schema, COLLSCAN, compound index, DMS migration, CDC cutover, $vectorSearch, RAG, Global Clusters, DR replication, cost sizing, audit, health check, production-readiness.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1729,1730,1731,1734],{"name":23,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":1732,"slug":1733,"type":15},"MongoDB","mongodb",{"name":1735,"slug":1736,"type":15},"NoSQL","nosql","2026-07-12T08:43:00.455878",{"slug":1739,"name":1739,"fn":1740,"description":1741,"org":1742,"tags":1743,"stars":24,"repoUrl":25,"updatedAt":1747},"amazon-dynamodb","design and debug DynamoDB data layers","Designs, reviews, and debugs DynamoDB data layers from design axioms — enumerates access patterns, chooses partition\u002Fsort keys and GSIs, decides single-table vs. multi-table, configures Streams, Global Tables, TTL, and zero-ETL integrations to OpenSearch\u002FRedshift\u002FSageMaker Lakehouse, and produces a defensible data-layer design with a monthly cost estimate and optional live validation. Applies whenever a user is designing, reviewing, or refactoring anything backed by DynamoDB — schemas, access patterns, GSIs, single- vs. multi-table choices, Streams consumers, transactional outboxes, Global Tables, zero-ETL pipelines — even when they don't say \"axioms\" or \"design review.\" Also applies when debugging hot partitions, throttling, unbounded Scans, LWW conflicts, or surprise bills on DynamoDB workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1744,1745,1746],{"name":23,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"name":1735,"slug":1736,"type":15},"2026-07-16T06:00:37.690386",115]