Skip to content

Bedrock Knowledge Base Retriever

The BedrockKBRetrieverTool enables CrewAI agents to retrieve information from Amazon Bedrock Knowledge Bases using natural language queries.

Terminal window
uv pip install 'crewai[tools]'
  • AWS credentials configured (either through environment variables or AWS CLI)
  • boto3 and python-dotenv packages
  • Access to Amazon Bedrock Knowledge Base

Here’s how to use the tool with a CrewAI agent:

from crewai import Agent, Task, Crew
from crewai_tools.aws.bedrock.knowledge_base.retriever_tool import BedrockKBRetrieverTool
# Initialize the tool
kb_tool = BedrockKBRetrieverTool(
knowledge_base_id="your-kb-id",
number_of_results=5
)
# Create a CrewAI agent that uses the tool
researcher = Agent(
role='Knowledge Base Researcher',
goal='Find information about company policies',
backstory='I am a researcher specialized in retrieving and analyzing company documentation.',
tools=[kb_tool],
verbose=True
)
# Create a task for the agent
research_task = Task(
description="Find our company's remote work policy and summarize the key points.",
agent=researcher
)
# Create a crew with the agent
crew = Crew(
agents=[researcher],
tasks=[research_task],
verbose=2
)
# Run the crew
result = crew.kickoff()
print(result)
ArgumentTypeRequiredDefaultDescription
knowledge_base_idstrYesNoneThe unique identifier of the knowledge base (0-10 alphanumeric characters)
number_of_resultsintNo5Maximum number of results to return
retrieval_configurationdictNoNoneCustom configurations for the knowledge base query
guardrail_configurationdictNoNoneContent filtering settings
next_tokenstrNoNoneToken for pagination
Terminal window
BEDROCK_KB_ID=your-knowledge-base-id # Alternative to passing knowledge_base_id
AWS_REGION=your-aws-region # Defaults to us-east-1
AWS_ACCESS_KEY_ID=your-access-key # Required for AWS authentication
AWS_SECRET_ACCESS_KEY=your-secret-key # Required for AWS authentication

The tool returns results in JSON format:

{
"results": [
{
"content": "Retrieved text content",
"content_type": "text",
"source_type": "S3",
"source_uri": "s3://bucket/document.pdf",
"score": 0.95,
"metadata": {
"additional": "metadata"
}
}
],
"nextToken": "pagination-token",
"guardrailAction": "NONE"
}
kb_tool = BedrockKBRetrieverTool(
knowledge_base_id="your-kb-id",
retrieval_configuration={
"vectorSearchConfiguration": {
"numberOfResults": 10,
"overrideSearchType": "HYBRID"
}
}
)
policy_expert = Agent(
role='Policy Expert',
goal='Analyze company policies in detail',
backstory='I am an expert in corporate policy analysis with deep knowledge of regulatory requirements.',
tools=[kb_tool]
)
  • Amazon S3
  • Confluence
  • Salesforce
  • SharePoint
  • Web pages
  • Custom document locations
  • Amazon Kendra
  • SQL databases
  • Enable CrewAI agents to access your organization’s proprietary knowledge without exposing sensitive data
  • Allow agents to make decisions based on your company’s specific policies, procedures, and documentation
  • Create agents that can answer questions based on your internal documentation while maintaining data security
  • Connect CrewAI agents to domain-specific knowledge bases (legal, medical, technical) without retraining models
  • Leverage existing knowledge repositories that are already maintained in your AWS environment
  • Combine CrewAI’s reasoning with domain-specific information from your knowledge bases
  • Ground CrewAI agent responses in your actual company data rather than general knowledge
  • Ensure agents provide recommendations based on your specific business context and documentation
  • Reduce hallucinations by retrieving factual information from your knowledge bases
  • Access terabytes of organizational knowledge without embedding it all into your models
  • Dynamically query only the relevant information needed for specific tasks
  • Leverage AWS’s scalable infrastructure to handle large knowledge bases efficiently
  • Ensure CrewAI agents provide responses that align with your company’s approved documentation
  • Create auditable trails of information sources used by your agents
  • Maintain control over what information sources your agents can access