AWS Bedrock: Native RAG Features
AWS enriches Bedrock with native RAG features: improved Knowledge Bases, RAG agents, and seamless S3 integration.
AWS Strengthens Enterprise RAG Offering
Amazon Web Services announces major improvements to Bedrock's RAG capabilities. Knowledge Bases become more powerful, agents more sophisticated, and integration with the AWS ecosystem more seamless.
"Enterprises want production-ready RAG without the complexity," explains Swami Sivasubramanian, VP AI/ML at AWS. "Bedrock Knowledge Bases v2 meets this demand."
New Features
Knowledge Bases v2
Knowledge Bases evolve significantly:
| Feature | v1 | v2 |
|---|---|---|
| Supported sources | S3, Web | S3, Web, Confluence, SharePoint, DB |
| Max dataset size | 10GB | 100GB |
| Chunking | Fixed | Semantic, Hierarchical |
| Embeddings | Titan | Titan, Cohere, Custom |
| Vector DB | OpenSearch | OpenSearch, Pinecone, Qdrant |
| Real-time sync | No | Yes |
Simplified configuration:
DEVELOPERpythonimport boto3 bedrock = boto3.client('bedrock-agent') # Create a Knowledge Base response = bedrock.create_knowledge_base( name="company-docs", description="Internal documentation", roleArn="arn:aws:iam::123456789:role/BedrockKBRole", knowledgeBaseConfiguration={ "type": "VECTOR", "vectorKnowledgeBaseConfiguration": { "embeddingModelArn": "arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-multilingual-v3" } }, storageConfiguration={ "type": "OPENSEARCH_SERVERLESS", "opensearchServerlessConfiguration": { "collectionArn": "arn:aws:aoss:us-east-1:123456789:collection/kb-collection" } } ) # Add a data source bedrock.create_data_source( knowledgeBaseId=response['knowledgeBase']['knowledgeBaseId'], name="confluence-docs", dataSourceConfiguration={ "type": "CONFLUENCE", "confluenceConfiguration": { "sourceConfiguration": { "hostUrl": "https://company.atlassian.net", "hostType": "CLOUD" } } } )
Chunking strategies are now directly configurable.
Improved RAG Agents
Bedrock agents now support complex workflows:
1. Multi-Knowledge Base
DEVELOPERpythonagent = bedrock.create_agent( agentName="support-agent", foundationModel="anthropic.claude-3-opus-20240229-v1:0", instruction="You are a support agent using multiple knowledge bases.", agentResourceRoleArn="...", knowledgeBases=[ {"knowledgeBaseId": "kb-products", "description": "Product catalog"}, {"knowledgeBaseId": "kb-support", "description": "FAQ and procedures"}, {"knowledgeBaseId": "kb-internal", "description": "Internal documentation"} ] )
2. Custom Actions
Agents can call Lambda functions:
DEVELOPERpythonbedrock.create_agent_action_group( agentId=agent_id, agentVersion="DRAFT", actionGroupName="order-management", actionGroupExecutor={ "lambda": "arn:aws:lambda:us-east-1:123456789:function:OrderManagement" }, apiSchema={ "s3": { "s3BucketName": "api-schemas", "s3ObjectKey": "order-api.json" } } )
3. Persistent Memory
Conversations persist automatically:
DEVELOPERpythonresponse = bedrock.invoke_agent( agentId="agent-123", agentAliasId="alias-456", sessionId="session-789", # Persisted conversation inputText="What is my order status?" )
These features align with our guide on agentic RAG.
Improved S3 Integration
S3 synchronization becomes real-time:
DEVELOPERpython# Enable real-time sync bedrock.update_data_source( knowledgeBaseId="kb-123", dataSourceId="ds-456", dataSourceConfiguration={ "type": "S3", "s3Configuration": { "bucketArn": "arn:aws:s3:::my-bucket", "inclusionPrefixes": ["documents/"], "syncMode": "REAL_TIME" # New } } )
EventBridge automatically triggers reindexing on changes.
RAG Guardrails
New RAG-specific guardrails:
DEVELOPERpythonbedrock.create_guardrail( name="rag-guardrails", description="Guardrails for RAG applications", contentPolicyConfig={ "filtersConfig": [ {"type": "SEXUAL", "inputStrength": "HIGH", "outputStrength": "HIGH"}, {"type": "HATE", "inputStrength": "HIGH", "outputStrength": "HIGH"} ] }, contextualGroundingPolicyConfig={ # New "filtersConfig": [ {"type": "GROUNDING", "threshold": 0.8}, {"type": "RELEVANCE", "threshold": 0.7} ] } )
Check our guide on RAG guardrails.
Architecture and Performance
Recommended Architecture
S3 / Confluence / SharePoint
↓
[Data Sources]
↓
[Knowledge Base]
↓
OpenSearch Serverless
↓
[Bedrock Agent]
↓
Claude / Titan / Llama
↓
[Application]
Benchmarks
AWS publishes benchmarks on standard RAG workloads:
| Metric | KB v1 | KB v2 |
|---|---|---|
| P50 Latency | 1.8s | 1.1s |
| P99 Latency | 4.2s | 2.8s |
| Recall@5 | 72% | 84% |
| Throughput | 100 req/s | 500 req/s |
Limits
| Limit | Value |
|---|---|
| Knowledge Bases per account | 50 |
| Sources per KB | 20 |
| Max size per document | 50MB |
| Documents per sync | 10,000 |
| Requests per second | 500 |
Pricing
New Pricing Model
| Component | Price |
|---|---|
| KB Storage (GB/month) | $0.23 |
| Indexing (1K docs) | $0.05 |
| Queries (1K) | $0.02 |
| Agents (1K invocations) | $0.10 |
Comparison
| Solution | Estimated Monthly Cost* |
|---|---|
| Bedrock KB + Claude | $400-800 |
| OpenAI Assistants | $300-600 |
| Qdrant Cloud + Claude | $250-500 |
| Ailog | $50-200 |
*For 100K requests/month, 10GB of data
Check our guide on RAG cost optimization.
Use Cases
When to Use Bedrock KB
Ideal for:
- Enterprises already on AWS
- Need for native integration (S3, Lambda, etc.)
- Large volumes
- AWS compliance required
Less suitable for:
- Multi-cloud
- Startups/SMBs (cost)
- Need for open-source models
Complete Example
DEVELOPERpythonimport boto3 # 1. Create the KB bedrock = boto3.client('bedrock-agent') kb = bedrock.create_knowledge_base( name="support-kb", knowledgeBaseConfiguration={...}, storageConfiguration={...} ) # 2. Add documents bedrock.create_data_source( knowledgeBaseId=kb['knowledgeBase']['knowledgeBaseId'], name="docs", dataSourceConfiguration={ "type": "S3", "s3Configuration": { "bucketArn": "arn:aws:s3:::my-docs" } } ) # 3. Synchronize bedrock.start_ingestion_job( knowledgeBaseId=kb['knowledgeBase']['knowledgeBaseId'], dataSourceId=ds['dataSource']['dataSourceId'] ) # 4. Query runtime = boto3.client('bedrock-agent-runtime') response = runtime.retrieve_and_generate( input={"text": "How do I configure product X?"}, retrieveAndGenerateConfiguration={ "type": "KNOWLEDGE_BASE", "knowledgeBaseConfiguration": { "knowledgeBaseId": kb['knowledgeBase']['knowledgeBaseId'], "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-opus-20240229-v1:0" } } )
Our Take
Bedrock KB v2 represents an important evolution:
Strengths:
- Native AWS integration
- Advanced guardrails
- Improved performance
- Multiple data sources
Points of attention:
- AWS lock-in
- High cost
- Configuration complexity
- Limited regions
For AWS-first enterprises, Bedrock KB becomes a serious option. For others, more agnostic alternatives exist.
Platforms like Ailog offer a cloud provider-independent alternative, with French hosting and simplified setup.
Check our guide to best RAG platforms to compare.
Tags
Related Posts
Azure AI Search: Evolutions for RAG
Microsoft enriches Azure AI Search with advanced RAG features: improved vector search, native integrations, and semantic ranking.
RAG Cost Analysis 2026: Optimizing Your Budget
Detailed analysis of RAG costs in 2026: breakdown by component, optimization strategies, and solution comparison to control your budget.
RAG Enterprise Adoption: 2026 Study
Complete analysis of RAG adoption in large enterprises in 2026: trends, obstacles, and success factors identified by CIOs.