Bedrock Managed Knowledge Base 实战:几行代码搭企业 RAG,不用自己拼向量数据库

"老板说要搭个内部知识库,让 AI 能回答公司文档里的问题。"

听起来简单,但你搭过就知道——光是选型就够折腾:向量数据库用 OpenSearch 还是 PostgreSQL pgvector?文档解析用 Unstructured 还是自己写 parser?chunk 策略切多大?embedding 模型用哪个?reranker 要不要加?

每一步都是选择,每个选择都可能踩坑。最后搞了两周,效果还不一定好。

6 月 17 日 AWS Summit New York,亚马逊云科技发布了 Bedrock Managed Knowledge Base——一个全托管的 RAG 服务,把上面这些问题全给你兜底了。你只需要告诉它"数据在哪",剩下的事情它自己搞定。

它解决什么问题

传统搭 RAG 知识库,你需要自己拼这些组件:

数据源连接器 → 文档解析 → 分块 → Embedding → 向量存储 → 检索 → Rerank → 生成
    ↑             ↑         ↑        ↑           ↑         ↑        ↑
   自己写       自己选     自己调    自己选      自己部署   自己优化  自己管

Managed Knowledge Base 把整条链路收成一个托管服务:

import boto3

bedrock_agent = boto3.client('bedrock-agent', region_name='us-east-1')

# 创建知识库 —— 就这么简单
response = bedrock_agent.create_knowledge_base(
    name='company-docs-kb',
    description='公司内部文档知识库',
    knowledgeBaseConfiguration={
        'type': 'VECTOR',
        'vectorKnowledgeBaseConfiguration': {
            'embeddingModelArn': 'arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v2:0'
        }
    },
    storageConfiguration={
        'type': 'MANAGED'  # 关键:全托管存储,不用自己建向量数据库
    },
    roleArn='arn:aws:iam::123456789012:role/BedrockKBRole'
)

kb_id = response['knowledgeBase']['knowledgeBaseId']
print(f'知识库创建完成: {kb_id}')

注意那个 'type': 'MANAGED'——这意味着底层的向量存储、索引管理、扩缩容全部由服务自动处理。你不需要预置 OpenSearch 集群,不需要操心分片策略。

三个核心能力

1. 原生数据连接器(Native Data Connectors)

支持 6 种开箱即用的数据源:

数据源 说明
Amazon S3 PDF/Word/TXT/HTML/CSV/Markdown
SharePoint 企业文档协作平台
Confluence Wiki 和知识管理
Web Crawler 自动爬取网站内容
Google Drive Google Workspace 文件
OneDrive Microsoft 365 文件

连接 S3 的代码:

# 添加 S3 数据源
response = bedrock_agent.create_data_source(
    knowledgeBaseId=kb_id,
    name='product-docs',
    dataSourceConfiguration={
        'type': 'S3',
        's3Configuration': {
            'bucketArn': 'arn:aws:s3:::my-company-docs',
            'inclusionPrefixes': ['product-manuals/', 'api-docs/', 'faq/']
        }
    }
)

# 触发同步 —— 服务自动解析、分块、embedding、索引
bedrock_agent.start_ingestion_job(
    knowledgeBaseId=kb_id,
    dataSourceId=response['dataSource']['dataSourceId']
)

重点:权限继承是自动的。如果你的 SharePoint 文件夹有 ACL 控制,知识库检索时会自动尊重这些权限——A 部门的人搜不到 B 部门的机密文档。

2. Smart Parsing(智能解析)

不同格式的文档需要不同的处理策略:

  • PDF 里有表格?自动用表格提取而不是逐行文本
  • Word 文档有嵌套标题?自动按标题层级分块
  • HTML 有导航栏和页脚噪音?自动过滤

以前你得针对每种格式写不同的 parser,现在服务自动判断并选择策略。

3. Agentic Retriever(智能检索)

传统 RAG 的检索是"一问一搜"——用户问什么,就把问题扔进向量库搜一次。但很多真实问题需要多轮检索:

用户问:"我们的退款政策和竞品相比有什么优势?"

这个问题其实需要两步:

  1. 先搜"我们的退款政策"
  2. 再搜"竞品退款政策对比"

Agentic Retriever 会自动拆解复杂查询,多轮检索后汇总结果给模型。

# 检索时使用 Agentic Retriever
response = bedrock_agent_runtime.retrieve(
    knowledgeBaseId=kb_id,
    retrievalQuery={
        'text': '我们的退款政策和行业标准相比如何?需要改进哪些地方?'
    },
    retrievalConfiguration={
        'vectorSearchConfiguration': {
            'numberOfResults': 10,
            'overrideSearchType': 'SEMANTIC'
        }
    }
)

for result in response['retrievalResults']:
    print(f"来源: {result['location']['s3Location']['uri']}")
    print(f"相关度: {result['score']:.3f}")
    print(f"内容: {result['content']['text'][:200]}")
    print('---')

和 AgentCore Gateway 集成

Managed Knowledge Base 可以直接挂载到 AgentCore Gateway 上,让你的 Agent 通过 MCP 协议调用:

from strands import Agent
from strands.tools.mcp import MCPClient
from mcp import stdio_client

# Agent 通过 Gateway 访问知识库
agent = Agent(
    model='us.anthropic.claude-sonnet-4-20250514-v1:0',
    tools=[MCPClient(
        transport=stdio_client(
            command='npx',
            args=['-y', '@anthropic/bedrock-agentcore-mcp-client',
                  '--gateway-url', 'https://gateway.bedrock-agentcore.us-east-1.amazonaws.com/mygateway/mcp/sse']
        )
    )]
)

# Agent 自动决定何时查询知识库
response = agent.invoke(
    "帮我查一下产品 X 的技术规格,然后和用户反馈的问题做个对比"
)

Agent 会自动判断需要查哪个知识库,发多少次查询,怎么组合结果。

和自建 RAG 的对比

维度 自建 RAG Managed Knowledge Base
搭建时间 1-3 周 10 分钟
向量数据库 自己运维 OpenSearch/pgvector 全托管
数据源连接 自己写 connector 6 种原生支持
文档解析 自己选库、调参 Smart Parsing 自动
多轮检索 自己写逻辑 Agentic Retriever 自动
权限管理 自己实现 ACL 自动继承
扩缩容 自己配 按量自动

适合什么场景

适合:

  • 内部知识库/FAQ 机器人
  • 客服 Agent 需要查产品文档
  • 合规审查 Agent 需要查政策法规
  • 企业搜索升级(从关键词搜到语义搜)

不太适合:

  • 需要极度定制化检索逻辑的场景(比如金融实时行情)
  • 数据源不在上面 6 种里的(得先传到 S3)
  • 需要自己控制 embedding 模型微调的

现在怎么用

Managed Knowledge Base 今天已经 GA(正式可用)。进入 Bedrock AgentCore 控制台Bedrock 控制台,找到 Knowledge Bases → Create Managed KB 就能开始。

定价按存储量和查询量计费,具体价格建议查 官方定价页


本文基于 2026 年 6 月 17 日 AWS Summit New York 发布的功能撰写。这是 Summit 系列解析的第二篇,更多新功能解读持续更新中。

posted @ 2026-06-19 11:30  亚马逊云开发者  阅读(11)  评论(0)    收藏  举报