Amazon Bedrock Knowledge Base¶
Connect your ADK agents to Amazon Bedrock Managed Knowledge Bases for retrieval-augmented generation (RAG). Agents can search enterprise documents and get grounded answers without hallucinating.
Why Bedrock Knowledge Bases for ADK?¶
Amazon Bedrock Managed Knowledge Bases provide fully managed RAG infrastructure — no vector store to provision, no embeddings to configure, automatic scaling. Combined with ADK agents, your agent can:
- Search enterprise documents (PDFs, web pages, databases) in natural language
- Use agentic retrieval for multi-hop reasoning across documents
- Get grounded answers with source citations
- Scale automatically without managing infrastructure
Use cases¶
- Enterprise Q&A agents: Answer questions from internal documentation, policies, and knowledge bases
- Customer support agents: Retrieve relevant help articles and product information
- Research assistants: Search across large document collections with multi-hop reasoning
- Compliance agents: Look up regulatory documents and provide cited answers
Prerequisites¶
- AWS account with Amazon Bedrock access
- A Bedrock Managed Knowledge Base created (via AWS Console or Terraform)
- AWS credentials configured (environment variables, IAM role, or AWS profile)
- Python 3.10+
Installation¶
Use with agent¶
from google.adk.agents import Agent
from google.adk_community.tools.bedrock_kb import bedrock_kb_retrieve
# Create an agent with Bedrock KB retrieval
agent = Agent(
model="gemini-2.0-flash",
tools=[bedrock_kb_retrieve],
instruction="You are a helpful assistant. Use bedrock_kb_retrieve to search the knowledge base when answering questions about company policies or documentation.",
)
The agent will automatically call bedrock_kb_retrieve when it needs information from the knowledge base.
Configuration via environment variables¶
export KNOWLEDGE_BASE_ID="YOUR_KB_ID"
export AWS_REGION="us-west-2"
export USE_AGENTIC_RETRIEVAL="true" # Multi-hop reasoning (default)
Configuration via function arguments¶
# Pass knowledge_base_id directly (overrides env var)
result = bedrock_kb_retrieve(
query="What is our refund policy?",
knowledge_base_id="YOUR_KB_ID",
max_results=5,
)
Available tools¶
| Tool | Description |
|---|---|
bedrock_kb_retrieve |
Searches a Bedrock Managed Knowledge Base and returns relevant passages with sources and scores. Supports agentic retrieval (multi-hop reasoning) with automatic fallback to standard search. |
Tool parameters¶
| Parameter | Type | Description |
|---|---|---|
query |
str |
The natural language question or search query (required) |
knowledge_base_id |
str |
Bedrock KB ID. Defaults to KNOWLEDGE_BASE_ID env var |
max_results |
int |
Maximum results to return. Defaults to 5 |
Retrieval modes¶
Agentic retrieval (default)¶
Uses AgenticRetrieveStream — the model reasons over multiple retrieval passes, decomposes complex queries, and applies managed reranking for better results.
Standard retrieval¶
Uses Retrieve with managedSearchConfiguration — single-pass semantic search.
IAM permissions¶
Your AWS credentials need:
{
"Effect": "Allow",
"Action": [
"bedrock:Retrieve",
"bedrock:AgenticRetrieveStream"
],
"Resource": "arn:aws:bedrock:REGION:ACCOUNT:knowledge-base/KB_ID"
}