进阶 📋 7 个步骤 第 207 / 446 篇

用 Amazon Bedrock Agents 搭企业级智能体:Action Group + 知识库 + Guardrails 实战

Amazon Bedrock Agents 是 AWS 全托管的 Agent 服务:你只需定义大模型、Action Group(用 Lambda 暴露的工具)和 Knowledge Base(RAG),它就能自主规划、调 API、查文档。本教程从 IAM、建 Agent、写 OpenAPI schema、关联知识库到 Guardrails 与 SDK 集成,手把手带你跑通生产级 Agent。

2026.07.31· 22 分钟阅读· 约 1589 字· ☁️ Amazon Bedrock / 🤖 企业级Agent

如果你的 Agent 要真正调用公司后端 API、查内部文档、还能被成千上万用户稳定调用,自己从零写一个编排引擎成本很高。Amazon Bedrock Agents 是 AWS 的全托管 Agent 服务:你不用管调度、会话、重试,只要告诉它「用哪个大模型、能调哪些工具(Action Group)、能查哪个知识库(Knowledge Base)」,它就会自主规划、分步执行。本教程带你从零跑通一个生产级 Agent。

☁️ 本教程适合:已经熟悉 AWS 基础操作、想用托管方式快速落地「能调 API + 查文档」的企业 Agent 的开发者/架构师。你需要一个 AWS 账号和命令行环境。

先搞懂:Bedrock Agents 的三大积木

用一句话理解:Bedrock Agents = 大模型大脑 + 你暴露的工具 + 你接入的知识,AWS 帮你把「规划—调用—汇总」的循环托管起来。

积木作用你提供什么
Foundation ModelAgent 的推理大脑选 Claude / Nova / Llama 等模型
Action GroupAgent 可调用的工具OpenAPI schema + Lambda 函数
Knowledge BaseAgent 检索的内部文档(RAG)向量库 + 文档源(S3 等)
Guardrails安全护栏(拒答/脱敏/话题限制)配置策略并关联 Agent

新手先做一个 Action Group:最小可用 Agent = 1 个模型 + 1 个 Action Group(一个查订单的 Lambda)。知识库和 Guardrails 是锦上添花,等跑通再加。

Step 1:准备 AWS 环境与 IAM 权限

1 配置好能建 Agent 的账号

Bedrock Agents 涉及调用模型、Lambda、知识库,先确保权限齐全。

# 1. 安装并配置 AWS CLI(已有可跳过)
aws configure   # 填入 Access Key / Secret / region

# 2. 确认 Bedrock 模型访问已开通
#    控制台 → Bedrock → Model access → 勾选你要用的模型(如 Claude)

# 3. 准备一个 IAM 角色给 Agent 用,至少包含:
#    · bedrock:InvokeModel
#    · lambda:InvokeFunction
#    · 访问 Knowledge Base 的权限
# 在 IAM 控制台创建角色,信任实体选 bedrock.amazonaws.com
💡 区域选择:Bedrock Agents 并非所有区域都支持,建之前先查官方「Supported regions」,常见如 us-east-1 / eu-west-1。选错区域会建不出来。

Step 2:创建 Agent 并选择模型

2 在控制台建出 Agent 骨架

可以用控制台点,也可以用 AWS CLI / SDK。新手建议先用控制台点一遍理解结构。

1. 控制台 → Bedrock → Agents → Create agent
2. 填名称:如 order-assistant
3. 选基础模型:Anthropic Claude 3.5 Sonnet(推理强、工具调用稳)
4. 填一句 Instructions(总指令):
   「你是一个订单助手,帮用户查订单状态、
    解释退货政策。只调用提供的工具,不确定时问清楚。」
5. 关联 Step 1 建好的 IAM 角色
6. 点创建,进入 Agent 详情页
🔑 指令(Instructions)就是 Agent 的「岗前培训」。写得越具体,它越不容易乱调工具或瞎编。

Step 3:定义 Action Group(OpenAPI + Lambda)

3 把「查订单」暴露成 Agent 能用的工具

Action Group 的核心是两份东西:一个 OpenAPI schema(告诉 Agent 有哪些接口) + 一个 Lambda(真正执行)

# openapi.json(节选)
{
  "openapi": "3.0.0",
  "paths": {
    "/orders/{orderId}": {
      "get": {
        "summary": "查询订单状态",
        "parameters": [{ "name": "orderId", "in": "path", "required": true }],
        "responses": { "200": { "description": "订单详情" } }
      }
    }
  }
}

# Lambda(Python 伪代码)
def lambda_handler(event, context):
    order_id = event["parameters"][0]["value"]
    # 调你的订单系统 API
    return {"status": "shipped", "eta": "2026-08-02"}

Lambda 返回要干净:Agent 把 Lambda 的输出再喂回模型。返回里别塞大段原始 JSON 或错误堆栈,否则 token 暴涨、还容易让模型困惑。只回结构化关键字段。

Step 4:关联 Knowledge Base 做 RAG

4 让 Agent 能查「退货政策」这类文档

光有工具还不够,很多问题是「政策类」的,得查文档。Bedrock Knowledge Base 帮你把 S3 里的文档向量化。

1. Bedrock → Knowledge bases → Create
2. 数据源选 S3(放《退货政策.pdf》《FAQ.docx》)
3. 向量库选 Aurora / OpenSearch(或用托管默认)
4. 同步数据,等索引完成
5. 回到 Agent 详情 → 关联这个 Knowledge Base
   → Agent 会自动在回答前先做检索增强
🚀 一个 Agent 可以同时有多个 Action Group 和多个 Knowledge Base。比如再加一个「改地址」Action Group,它就既能查又能改,进阶玩法就出来了。

Step 5:用 Guardrails 加安全护栏

5 拦住越权、敏感、跑题

面向真实用户时,Guardrails 是必选项:限制话题、脱敏、拒答违规内容。

1. Bedrock → Guardrails → Create
2. 配置:
   · 被禁话题:如「透露其他用户订单」
   · 敏感信息过滤:自动遮掩手机号/邮箱/身份证
   · 内容过滤:仇恨/暴力/违规
3. 保存后在 Agent 详情里「关联 Guardrails」
4. 测试:故意问越权问题,确认被拦截

别省这一步:企业 Agent 一旦把 A 客户的订单透给 B 客户,就是事故。Guardrails + 严格的 IAM 是最低防线。

Step 6:测试与查看 Trace

6 看 Agent 每一步怎么想、怎么调

Bedrock 的 Trace 功能能完整回放 Agent 的规划与工具调用,是调试神器。

1. Agent 详情 → Test 窗口
2. 输入:「帮我查订单 A123 到哪了,能退货吗?」
3. 打开 Trace,你会看到:
   · 模型先决定调 getOrder(A123)
   · Lambda 返回 shipped
   · 模型再检索 Knowledge Base 的退货政策
   · 最后汇总成自然语言回答
4. 哪一步不对,就改对应 Action Group / 指令 / 知识库
💡 Trace 还能看 token 消耗和延时。如果某次回答特别慢/贵,多半是 Lambda 返回太大或检索太宽,针对性优化即可。

Step 7:用 SDK 集成到你的应用

7 把 Agent 接到网站/App 后端

建好、测好之后,通过 InvokeAgent API 把它嵌进你的系统。

# Python (boto3)
import boto3
client = boto3.client('bedrock-agent-runtime')
resp = client.invoke_agent(
    agentId='YOUR_AGENT_ID',
    agentAliasId='YOUR_ALIAS_ID',
    sessionId='user-123',          # 同一 session 保持上下文
    inputText='查一下 A123 的物流'
)
# 流式读取 resp['completion'] 拿到回答

# 上线前先建 Alias(版本别名),避免改了草稿影响线上
🎉 恭喜!你已跑通「建 Agent → 选模型 → 定义工具 → 接知识库 → 加护栏 → 看 Trace → SDK 集成」的生产级链路。这就是 AWS 上最标准的 Agent 落地姿势。

常见问题速查

现象大概率原因 & 解决
控制台找不到 Agents 入口区域不支持,换 us-east-1 等支持区域
Agent 不调我的工具OpenAPI schema 描述不清,或 Lambda 权限没给 Agent 角色
回答不引用知识库Knowledge Base 未同步完成,或未在 Agent 里关联
InvokeAgent 报错 AccessDeniedIAM 角色缺 bedrock-agent-runtime 权限或 Alias 不存在
← 返回教程中心