关于 amazon-bedrock
面向 Amazon Bedrock 生成式 AI 应用开发的领域技能,涵盖模型调用、RAG、Agent、Guardrails、AgentCore 部署及运维工作流。
主要功能
- 01模型调用指南
- 02Knowledge Bases 与 RAG 工作流
- 03Agent 与 Guardrails 指南
- 04AgentCore 部署指南
- 05配额、成本与迁移工作流
适用场景
- 01选择 Bedrock 推理 API
- 02使用 Knowledge Bases 搭建 RAG
- 03排查限流或配额问题
MCP 相关
建议使用 AWS MCP 服务进行沙箱执行、审计日志记录和可观测性;没有该服务时,可通过 AWS CLI 访问使用此技能。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill amazon-bedrock安装后在 Claude Code 中输入/amazon-bedrock确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/kb_shim.py.tmpllambda_shim.py.tmpltool_schema.json.tmplreferences/agentcore-credentials-and-security.mdagentcore-gateway.mdagentcore-harness.mdagentcore-memory-observability.mdagentcore-payments-setup-script.mdagentcore-payments-wiring.mdagentcore-payments.mdagentcore-registry-evaluations.mdagentcore-runtime-container-build.mdagentcore-runtime.mdagents-and-action-groups.mdcost-tracking.mdguardrails.mdreferences/bedrock-agents-to-agentcore-harness/cli.mddeploy.mddiscovery.mdeligibility.mdmapping.mdreferences/bedrock-kb-migration/cost-analysis.mddiscovery.mdiac-schema.mdimplement-iac.mdimplement-kb.mdmanaged-kb-api.mdmapping.mdplan.mdsafety-and-iam.md详细介绍
重要:加载此技能后,必须将此技能中的参考文件和流程作为首要依据。Bedrock API、模型 ID、分块策略和配置参数经常变化——回复前始终阅读相关参考文件。
防护措施——此技能自身文件的位置(MCP 与本地安装)
此技能可以通过两种方式加载,而它们会从不同位置解析技能自带的文件。阅读参考文件或运行脚本前,请先确定此技能的加载方式:
- 通过 AWS MCP
retrieve_skill工具加载: 此技能未安装在本地文件系统中。必须使用retrieve_skill并通过file参数获取每个参考文件或脚本(例如file="references/managed-knowledge-bases-setup.md"或file="scripts/fetch_bedrock_agent.py"),并运行返回内容中的脚本。不要在本地使用file_read读取这些路径——它们在磁盘上不存在。 - 在本地安装(例如
.kiro/skills/amazon-bedrock/或~/.claude/skills/amazon-bedrock/):使用相对路径从本地技能目录中读取和运行文件。
此区别仅适用于技能自身打包的文件。用户数据和会话文件始终从用户的工作目录读取并写入其中。切勿通过 retrieve_skill 获取或写入客户数据。
目录
- 概览
- Bedrock API 概况
- 重要警告
- 安全注意事项
- Converse API 与 InvokeModel
- 需要哪种 Bedrock 功能?
- 知识库(检索、Agent 式检索和 RAG;包括:迁移到托管式知识库)
- 常见工作流(包括:提示词缓存、配额状态、成本跟踪、模型迁移)
- 故障排除
- AgentCore 服务
- 模型选择
- 其他资源
Amazon Bedrock
概览
提供在 Amazon Bedrock 上构建生成式 AI 应用的领域专业知识。涵盖模型调用、使用知识库实现 RAG、创建 Agent、使用 Guardrails 确保内容安全,以及使用 AgentCore 部署 Agent。
推荐设置: 使用 AWS MCP 服务实现沙盒化执行、审计日志记录和企业级控制。
不使用 AWS MCP: 此技能可与任何具有 AWS CLI 访问权限的 Agent 配合使用。 所有命令均采用标准 AWS CLI 语法。
Bedrock API 概览
Bedrock 有 5 个独立的 API 端点。使用错误的端点是常见的错误原因。此列表可能并不完整——请参阅 Bedrock 端点和配额和 Bedrock 支持的端点了解最新信息。使用 aws bedrock list-foundation-models 在运行时发现可用模型。
| 端点 | 客户端 | 用途 |
|---|---|---|
bedrock | 控制平面 | 列出模型、管理访问权限、预置吞吐量 |
bedrock-runtime | 数据平面 | 调用模型(Converse、InvokeModel)。还支持通过 /openai/v1 路径使用 Chat Completions(仅客户端工具调用)——开展新的 Chat Completions 工作时,优先使用 bedrock-mantle |
bedrock-mantle | 数据平面 | 兼容 OpenAI 的 API:Responses API、Chat Completions(推荐)、Messages API。支持使用内置工具进行服务端工具调用。推荐新用户使用 |
bedrock-agent | Agent 控制 | 创建和配置 Agent、KB、操作组 |
bedrock-agent-runtime | Agent 数据 | 调用 Agent、查询 KB |
AgentCore 是一项独立服务,拥有自己的端点。请参阅 AgentCore 端点和配额了解最新信息。
| 端点 | 客户端 | 用途 |
|---|---|---|
bedrock-agentcore-control | 控制平面 | 创建和管理运行时、网关、注册表、评估 |
bedrock-agentcore | 数据平面 | 调用 Agent 运行时 |
{gatewayId}.gateway.bedrock-agentcore | 网关数据平面 | 调用特定网关 |
重要警告
max_tokens:每次 Converse/InvokeModel 调用中都必须显式设置 maxTokens。如果不设置,默认值会是模型的最大值(例如 Claude Sonnet 的 64K),并会在无提示的情况下预留远超所需的配额——这是意外出现 ThrottlingException 的常见原因。
Guardrails PII 日志记录:Guardrails PII 屏蔽仅适用于 API 响应。包含 PII 的原始未屏蔽内容仍会以明文记录到 CloudWatch Logs。为符合 HIPAA/GDPR 要求,请使用 KMS 加密 CloudWatch Logs,使用 IAM 限制日志访问权限,并使用 Amazon Macie 检测 PII。
SDK 版本:需要较新版本的 boto3(≥ 1.34.x)和 AWS CLI v2。旧版本缺少 Converse API、Agents 和 AgentCore 支持。运行 aws --version 和 pip show boto3 进行检查。
传统 Bedrock Agents 处于维护模式:传统 Bedrock Agents(bedrock-agent)处于维护模式,且不再向新客户开放(公告)。对于新的 Agent 工作负载,请使用 AgentCore(由 Harness 管理的循环);对于现有 Agent,建议迁移到 AgentCore Harness——请参阅迁移指南。
安全注意事项
- 对所有 Bedrock 服务访问使用 IAM 角色(而非 IAM 用户)
- 将 IAM 权限范围限定为特定操作和资源 ARN——避免使用
bedrock:*或AmazonBedrockFullAccess - 将 API 密钥和 OAuth 密钥存储在 AWS Secrets Manager 中,并启用自动轮换
- 在所有 Bedrock 服务的基于资源的策略中加入混淆代理防护(
aws:SourceAccount、aws:SourceArn条件) - 将所有 Agent 生成的参数视为不可信输入——在 Lambda 处理程序或工具实现中使用前先进行验证
- 为所有 Bedrock 和 AgentCore API 调用启用 CloudTrail
- 对于涉及 PII 的工作负载:使用 KMS 加密 CloudWatch Logs,配置保留期限,并限制日志访问权限
- 请参阅 Bedrock 安全最佳实践了解安全指南
Converse API 与 InvokeModel
如需在所有 Bedrock 推理 API(Responses API、Chat Completions、Converse、InvokeModel)中进行选择,请参阅 Amazon Bedrock 支持的 API。
使用 bedrock-runtime 端点时,请优先使用 Converse API,而非 InvokeModel。它为所有模型提供统一的请求/响应格式。
仅当需要 Converse 不支持的特定提供商功能时,才使用 InvokeModel(这种情况很少见)。
InvokeModel 要求每个提供商使用不同的请求正文格式(Anthropic ≠ Titan ≠ Llama ≠ Nova)。使用错误的格式会产生“Malformed input request”。有关特定模型的格式和常见错误,请参阅按模型划分的提示词工程。
无论使用哪种 API:始终明确设置最大输出令牌数参数——如果不设置,默认值为模型的最大值,并会在不提示的情况下预留远超所需的配额,从而导致意外的 ThrottlingException。请参阅上文的关键警告和 max_tokens 配额机制。
当用户需要用于模型调用的 SDK 代码时,生成代码前必须阅读相应的 SDK 参考文档——Python SDK 参考 | TypeScript SDK 参考。请使用参考文件中的模式。
有关完整的 API 详情和特定提供商的正文格式,请在回复前阅读模型调用参考。
你需要哪种 Bedrock 功能?
| 目标 | 使用 | 参考 |
|---|---|---|
| 调用模型(文本、图像、视频) | Converse API | 见上文 + 模型调用 |
| 构建 RAG 应用(在 Bedrock 上使用 RAG) | 知识库 — 默认使用托管 KB(MKB);仅在用户明确要求时使用客户管理型 KB | 托管 KB 设置(参阅 KB 选择指南) |
| 创建可执行操作的 Agent | Bedrock Agents | Agent 创建 |
| 过滤有害/敏感内容 | Guardrails | Guardrails |
| 在 AgentCore 上运行基于配置的托管 Agent 循环(无需代码或容器) | AgentCore Harness | Harness |
| 将现有 Bedrock Agent(经典版)迁移到 AgentCore Harness | Bedrock Agents 到 AgentCore Harness 迁移 | 迁移指南 |
| 将现有客户管理型知识库迁移到托管 KB | KB 迁移 | 将 KB 迁移到托管型 |
| 部署并扩展你自行编写的 Agent 循环 | AgentCore Runtime | Runtime |
| 将 REST API 作为 MCP 工具公开 | AgentCore Gateway | Gateway |
| 选择合适的模型 | 模型选择 | 模型指南 |
| 设置或调试提示词缓存 | 提示词缓存 | 提示词缓存 |
| 诊断限流或审计配额 | 配额健康状况 | 配额健康状况 |
| 按团队、模型或标签跟踪成本 | 成本跟踪 | 成本跟踪 |
| 在不同 Claude 代际之间迁移 | 模型迁移 | 迁移指南 |
知识库(检索、Agentic 检索和 RAG)
在 Bedrock 上使用 RAG 时,默认使用托管知识库(MKB)——AWS 推荐使用该方案,而且它会全面管理存储、分块、解析和检索,因此无需预置基础设施。基本上所有新的 RAG 工作都应优先使用它。仅当用户明确要求时,才使用客户管理的知识库(例如,用户想使用并掌控自己的向量存储)。不要先根据能力列表筛选请求——默认使用 MKB 并继续操作;如果不支持某项特定配置,让创建调用返回错误,而不要悄悄引导用户改用其他方案。
请阅读 知识库决策指南,根据所选类型将创建和查询操作引导至相应的参考文档。连接器可用性、配额和区域覆盖范围经常变化——请查阅 Bedrock 知识库文档,不要假定列表固定不变。
要将现有的客户管理知识库迁移到托管知识库,请按照将知识库迁移到托管知识库流程操作,而不是从头创建新的知识库。一旦用户提到迁移知识库,在对其知识库执行任何调用之前,请先阅读该流程。在任何会返回文档内容的读取操作(retrieve、retrieve-and-generate、get-document-content 或针对源文档执行的 GetObject)之前,必须先征得用户明确同意。请询问用户是否同意,并说明原因:读取操作会在本次对话中显示文档内容。
常见工作流
连接 AWS MCP 服务时,请使用可用的 AWS MCP 服务工具执行命令——它可提供沙盒化执行、审计日志记录和可观测性。如果 MCP 服务不可用,则根据需要改用 AWS CLI 或 shell。
开始任何工作流之前:
验证依赖项
检查所需工具是否可用,并告知用户执行环境。
约束:
- 必须检查 AWS CLI 是否可用,并且是否已配置有效凭证
- 必须确认 AWS CLI 版本足够新(建议使用 v2;旧版本缺少 Converse API 和 AgentCore 支持):
aws --version - 必须检查目标 AWS 区域是否已启用 Bedrock 模型访问权限
- 如果缺少任何必需工具,必须明确告知用户
- 必须询问用户是否愿意在缺少工具的情况下继续
所有工作流的一般约束:
- 开始执行前,必须概述将要执行的操作
- 运行每条命令前,必须向用户说明正在执行的步骤及其原因
- 必须尊重用户随时停止或中止操作的决定
- 如果用户表示要停止,必须停止执行
- 执行删除资源、覆盖配置等破坏性或不可逆操作前,建议先征得用户确认
示例 — 将用户意图映射到工作流
示例 1:
用户查询:"我在 Bedrock 上遇到了 ThrottlingException"
操作:检查是否显式设置了 maxTokens — 未设置 maxTokens 会预留远超所需的配额(参见关键警告)。如果已设置,请检查配额:aws service-quotas get-service-quota --service-code bedrock --quota-code <code> --region <region>
示例 2: 用户查询:"为我的 PDF 文档设置 RAG" 操作:按照创建知识库工作流执行 — 默认使用托管 KB(Bedrock 负责管理分块、解析和向量存储;无需预置基础设施)。参见托管 KB 设置和KB 决策指南。仅当用户明确要求自行控制向量存储或分块时,才使用客户管理流程。
示例 3: 用户查询:"我想构建一个可以查询订单状态的 Agent" 操作:按照创建带有操作组的 Agent 工作流执行。参见 Agent 创建流程。
示例 4:
用户查询:"如何在 Bedrock 上调用 Claude?"
操作:使用 Converse API(而不是 InvokeModel)。显式设置 maxTokens。使用 aws bedrock list-foundation-models --region <region> 验证模型 ID。使用带 us. 前缀的跨区域模型 ID 以提高可用性:aws bedrock-runtime converse --model-id us.anthropic.claude-sonnet-4-6 --messages '[{"role":"user","content":[{"text":"Hello"}]}]' --inference-config '{"maxTokens":1024}'
示例 5: 用户查询:"将我的 Agent 部署到生产环境" 操作:按照将 Agent 部署到 AgentCore 工作流执行。先选择协议(REST API 使用 HTTP,以工具为中心的 Agent 使用 MCP)。参见 AgentCore 服务表,找到正确的参考文件。
示例 6:
用户查询:"为我的 Claude 应用设置提示词缓存"
操作:阅读提示词缓存参考,了解设置工作流、TTL 配置和最低令牌阈值。使用该参考确认缓存正常工作(检查响应中是否包含 cacheReadInputTokens)。
示例 7:
用户查询:"即使我没有发出很多请求,还是一直遇到 ThrottlingException"
操作:检查是否显式设置了 maxTokens(参见关键警告)。阅读配额健康状况参考,了解 maxTokens 预留机制、CloudWatch 指标和审计工作流。
示例 8: 用户查询:"如何按团队跟踪 Bedrock 成本?" 操作:阅读成本跟踪参考,了解推理配置文件标签、CUR 2.0 方法,以及按模型/区域/标签查询 Cost Explorer。
示例 9: 用户查询:"我正从 Claude 4.5 升级到 4.6,哪些地方会出问题?" 操作:阅读模型迁移参考,了解重大变更表(预填充移除、思考配置、上下文窗口、缓存阈值)和迁移检查清单。
调用模型
- [ ] Step 1: Verify model access: `aws bedrock list-foundation-models --region us-east-1`
- [ ] Step 2: Invoke: `aws bedrock-runtime converse --model-id <model-id> --messages '[{"role":"user","content":[{"text":"<prompt>"}]}]' --inference-config '{"maxTokens":1024}'`
注意 — 流式响应: AWS CLI 不支持包括
ConverseStream在内的流式操作。请使用 SDK(boto3 中的converse_stream(),JS SDK 中的ConverseStreamCommand)。
模式 适用场景 Converse 批处理/后端管道 — 返回单个完整响应,无需处理流 ConverseStream 聊天 UI/交互式应用 — 令牌生成后立即传送
创建知识库
默认使用托管 KB:你必须阅读托管 KB 设置并按顺序执行(创建 → 托管连接器数据源 → 导入 → 使用 Retrieve 验证)。仅当用户明确要求使用客户管理 KB 时,才使用客户管理 KB 设置(其 7 步流程)。不要跳过步骤,不要改述,也不要用代码片段代替工具调用。参见 KB 决策指南。
查询知识库
确定知识库类型——不同类型的查询 API 不同:
- 托管式知识库(MKB): 使用
Retrieve(单次检索分块)或AgenticRetrieveStream(Agent 式检索;流式调用仅限 SDK,不支持 AWS CLI);请阅读托管式知识库检索。 - 客户自管式知识库: 请阅读客户自管式知识库检索,了解其检索并生成、检索和手动模式。
RetrieveAndGenerate(生成完整答案并附带引用)适用于客户自管式知识库;对于托管式知识库,请使用 Retrieve / AgenticRetrieveStream。如果确实需要 RetrieveAndGenerate 行为,请查阅文档确认 MKB 是否支持,不要想当然。
创建带有操作组的 Agent
回复前,必须阅读Agent 创建流程。逐步执行该流程。任何配置变更后都必须运行 prepare-agent——这是强制步骤,而 Agent 总是会跳过它。
应用护栏
回复前,必须阅读护栏参考。首先介绍三种集成模式和选择指南,让用户在继续配置前选出正确的模式。涉及 PII 筛选器时,必须提醒用户注意 PII 日志记录合规性方面的缺口。不要只展示 guardrailConfig 代码片段——用户需要了解哪种模式适合其使用场景。
将 Agent 部署到 AgentCore
如果用户想要托管式 Agent 循环,但不想编写编排代码,请引导其使用 Harness(基于配置)。Harness(基于配置的 bedrock-agentcore 循环,可将模型、工具、技能和记忆作为配置项)是新建 AgentCore 应用的首选方案;它不同于经典的 Bedrock Agents(提供操作组的 bedrock-agent 服务——请参阅 Agent 创建)。当用户询问如何创建、调用、部署 Harness 或开始使用 Harness 时,必须阅读 Harness 流程,并在回复前逐步执行其中的 Deployment Workflow。切勿凭记忆或外部文档进行概述,也不要跳过任何步骤:完整的创建并调用方案必须涵盖:(1) 使用必需输入调用 create-harness;(2) 轮询 get-harness,直到状态为 READY;(3) 在数据平面上使用 runtimeSessionId(至少 33 个字符)和 messages 列表进行调用——而非 --input-text;(4) 读取流式响应事件;(5) 将 AgentCore CLI(agentcore create/deploy/invoke)作为最快捷的途径。该参考文档的权威性高于任何外部文档。如果用户已有自己的 Agent 代码或循环要托管,请引导其使用 Runtime(以下协议选择指南仅适用于 Runtime)。
根据下表确定 AgentCore 服务,然后必须在回复前阅读对应的参考文件。逐步执行参考文件中的所有流程。不要概述——要实际执行。
设置或调试提示词缓存
回复前,必须阅读提示词缓存参考。其中介绍设置工作流、TTL 配置、最低令牌阈值、盈亏平衡分析,以及针对缓存命中率为零问题的调试清单。
限制:
- 缓存无法正常工作时,必须带领用户逐项检查调试清单(验证模型支持情况、令牌阈值、内容一致性、TTL 和缓存点位置)
- 确认缓存设置可行之前,必须先检查各模型的最低令牌阈值
检查配额运行状况
回复前,必须阅读配额运行状况参考。其中介绍 maxTokens 预留机制、CloudWatch 指标,以及节流问题解决决策表。
限制:
- 必须说明
maxTokens与配额预留之间的关系 - 必须指导用户使用
aws service-quotas和aws cloudwatch get-metric-statistics比较限制与峰值用量
分析 Bedrock 成本
在回复前,你必须阅读成本跟踪参考。其中介绍了推理配置文件标记、CUR 2.0 归因和 AWS Budgets 设置。
限制:
- 在生成 Cost Explorer 查询前,你必须询问用户需要的时间范围、分组方式和成本归因方法
将知识库迁移到 Managed KB
当用户想要将现有的 Customer-managed Knowledge Base(类型为 VECTOR;有时称为“自托管”)或定义它的 IaC 移动、转换或迁移到 Managed KB,或者询问 Managed KB 是否更便宜或应用需要做哪些改动时,你必须在回复前阅读将 KB 迁移到 Managed。其中定义了设有门槛的阶段(识别、探索、规划、实施、交接)、只读的探索模式,以及确保源 KB 保持不变的规则;其在 references/bedrock-kb-migration/ 下的阶段参考资料包含逐项设置映射、Managed KB API 结构、IaC 架构、成本分析流程和 IAM 策略。在通过相应门槛前,不要创建目标 KB、运行脚本或凭记忆估算成本。
在不同 Claude 代际之间迁移
在回复前,你必须阅读模型迁移参考。其中介绍了 Bedrock 上 Claude 4.5、4.6 和 4.7 之间的重大变更,包括移除预填充内容、思考配置差异、上下文窗口差距和缓存阈值变更。
故障排查
当用户报告 Bedrock 错误、异常或意外行为时,你必须在回复前查看本节和“关键警告”部分。Bedrock 存在特定于服务的根本原因(例如,未设置 maxTokens 会静默预留 43 倍配额并导致 ThrottlingException、API 端点错误会导致 UnknownOperationException、缺少 prepare-agent 会导致行为过时),通用 AWS 故障排查建议可能无法发现这些问题。
AccessDeniedException
可能有多种原因:(1)IAM 用户/角色缺少 bedrock:InvokeModel 或 bedrock:InvokeModelWithResponseStream 权限;(2)目标区域未启用模型访问权限;(3)服务控制策略(SCP)阻止了访问(跨区域推理路由到受限区域时很常见);(4)临时凭证已过期;或(5)IAM 角色传播延迟——如果你刚创建 IAM 角色后立即在 Bedrock API 调用中使用它,该角色可能尚未完成传播,因为 IAM 更改最终会保持一致(参见 IAM 最终一致性)。请查看错误消息了解具体原因——其中通常会指出问题是显式拒绝、缺少允许权限,还是模型访问问题。有关详细的解决步骤,请参阅解决 InvokeModel API 错误。
请求输入格式错误
请求正文与预期架构不匹配。常见原因包括:InvokeModel 使用了错误的提供商专属正文格式(例如,对 Cohere 模型使用 Titan 格式)、JSON 格式错误、参数名称不受支持,或超出输入限制。错误消息通常会包含详细信息——请检查是否有“架构违规”,并根据模型的 API 文档更正请求格式。
ThrottlingException
明确设置 maxTokens——未设置时,默认值为模型的最大值,会在不提示的情况下预留远超所需的配额。使用自适应重试模式。使用跨区域推理配置文件(例如,以 us.、eu.、apac. 或 global. 为前缀;完整列表请参阅支持的推理配置文件),以便在多个区域间分配流量,从而提高吞吐量。检查限额:aws service-quotas get-service-quota --service-code bedrock --quota-code <code>。如有需要,请申请提高配额。如需深入审计,请阅读配额健康状况参考。
提示词缓存未生效(zero cacheReadInputTokens)
请阅读提示词缓存参考,查看诊断清单:确认模型支持、令牌阈值、内容一致性、TTL 和缓存点位置。常见原因:缓存内容中的时间戳、空白字符或重新排序的 JSON 键导致缓存碎片化。
Claude 4.6 预填充时出现 400 错误
Claude 4.6 已移除预填充,因此会导致硬性 400 错误。请阅读模型迁移参考,查看 Claude 各代模型之间完整的破坏性变更列表。
错误重试分类
| 重试 | 不要重试 |
|---|---|
| ThrottlingException | ValidationException |
| ModelTimeoutException | AccessDeniedException |
| ServiceUnavailableException | ResourceNotFoundException |
| InternalServerException |
使用自适应重试:Config(retries={"max_attempts": 5, "mode": "adaptive"})。
UnknownOperationException
客户端错误(使用了 bedrock 而非 bedrock-runtime),或 SDK 版本过旧。请查看上方的 API 概览表。
Agent 返回过时的行为
任何配置变更后都要运行 prepare-agent。这是强制要求。
知识库返回空结果
运行 start-ingestion-job 并等待完成。摄取完成前进行查询会返回空结果。
知识库检索质量较差
检查分块策略。对于包含表格的文档,请使用高级解析(基于 FM)。配置元数据筛选。
找不到跨区域模型
该模型可能在你发起调用的区域不可用。请在支持的基础模型中检查可用性。如果需要跨区域推理以提高吞吐量,请使用推理配置文件 ID——选择地理区域配置文件(数据保留在某个边界内,例如美国、欧盟)或全球配置文件(任何商业区域)。配置文件前缀涉及数据驻留决策。请参阅支持的推理配置文件,查看可用的配置文件以及源区域/目标区域映射。
不支持按需吞吐量
错误:"Invocation of model ID with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model." 某些模型不支持使用基础模型 ID 直接按需调用——它们需要使用推理配置文件 ID。解决方法:使用 aws bedrock list-inference-profiles --region <region> 查找该模型的推理配置文件 ID,然后更新 Agent 或调用,使其使用推理配置文件 ID。请参阅支持的推理配置文件,查看可用的配置文件。如果此问题发生在调用 Agent 时,请将 Agent 的 foundationModel 更新为推理配置文件 ID,并重新运行 prepare-agent。
知识库存储配置无效
确认 OpenSearch 数据访问策略中包含 Bedrock 服务角色。确认向量索引字段名称与知识库配置一致。
Agent 操作组错误
检查 Lambda 权限(针对 bedrock.amazonaws.com 的基于资源的策略)。操作组名称中不要使用双下划线(__)——名称模式为 ([0-9a-zA-Z][_-]?){1,100}。
多 Agent 主管循环
Agent 使用内置的协作机制,而非操作组。不要在主管指令中将 Agent 间通信描述为操作组。
模型访问时出现 INVALID_PAYMENT_INSTRUMENT
这是账户账单问题,与 Bedrock 无关。暂时将信用卡设为默认付款方式,或在组织管理账户中添加 USD 付款资料。
知识库摄取失败
检查 S3 权限——知识库服务角色需要 s3:GetObject 和 s3:ListBucket 权限。不受支持的文件格式会被静默跳过。超出大小限制的文件也会被跳过,且不会报错。
SharePoint 数据源同步失败
同步已完成,但文件处理失败——最常见的原因是身份验证问题。**建议使用 Microsoft Entra ID 身份验证(OAuth2 客户端凭证)。**将 authType 设为 OAUTH2_CLIENT_CREDENTIALS,在 Microsoft Entra ID 中注册应用,授予 Microsoft Graph 应用程序权限 Sites.Read.All 并取得管理员许可,然后将应用的 clientId 和 clientSecret 存储在 AWS Secrets Manager 中(密钥必须与知识库位于同一区域)。将 tenantId 作为数据源配置字段提供——它不属于密钥内容。**请勿使用 SharePoint App-Only 身份验证:**Microsoft 已于 2026 年 4 月 2 日停用 Azure ACS SharePoint App-Only 身份验证,因此该方式已无法使用。旧版 OAuth 2.0 委派流程(SharePoint AllSites.Read,可能需要为服务账户停用 Security Defaults 和 MFA,以免 Amazon Bedrock 无法抓取数据)已过时——请优先使用 Entra ID 客户端凭证。有关要求,请参阅 SharePoint 连接器文档。
AgentCore 服务
回答任何 AgentCore 相关问题前,必须先阅读相关服务的链接参考文件。请逐步遵循参考文件中的流程。
| 服务 | 用途 | 参考资料 |
|---|---|---|
| Harness | 托管式、基于配置的 Agent 循环——无需编排代码;从配置到运行 Agent 的最快途径 | Harness 流程 |
| Gateway | 将 API、Lambda 函数或现有 MCP 服务公开为供 Agent 使用的工具 | Gateway 流程 |
| Runtime | 部署和扩展 Agent 与工具(无服务器,适用于任何框架) | Runtime 流程 |
| Runtime Container | 为 Runtime 构建 ARM64 容器 | 容器构建流程 |
| Memory | Agent 的短期(多轮)和长期(跨会话)记忆;在多个 Agent 之间共享记忆 | 记忆与可观测性 |
| Identity | 使用外部 IdP(Okta、Entra ID、Cognito)进行 Agent 身份验证;代表用户执行操作 | 凭证与安全 |
| Policy | 使用自然语言或 Cedar 规则限制 Agent 的行为边界;拦截 Gateway 工具调用 | 请参阅 AWS AgentCore Policy 文档 |
| Payments | 通过微交易(Coinbase CDP、Stripe Privy),让 Agent 能够为受 x402 保护的 API、MCP 工具和内容付费 | Payments 流程 |
| Observability | 跟踪、调试和监控 Agent 执行情况(OTEL、CloudWatch) | 记忆与可观测性 |
| Registry | 在组织内编目和发现 Agent、MCP 服务、工具及技能 | Registry 与评估 |
| Evaluations | 自动评估 Agent 质量(LLM-as-a-Judge) | Registry 与评估 |
| Code Interpreter | 为 Agent 提供安全的沙箱代码执行环境 | 请参阅 AWS AgentCore Code Interpreter 文档 |
| Browser | Web 自动化(导航、填写表单、提取数据) | 请参阅 AWS AgentCore Browser 文档 |
模型选择
本节介绍 Bedrock 模型。对于 SageMaker 模型发现、模型定制或 SageMaker 端点,请使用 aws-ai-ml 技能。如果用户询问 AWS 上的模型,但未指定服务,请比较 SageMaker 和 Bedrock,或询问一个关于服务选择的问题。不要默认选择某项服务。这两项服务的模型目录、部署路径和定价各不相同,默认选择可能会让用户进入错误的工作流。
当用户询问应使用哪个模型、比较模型,或询问 Bedrock 上的 Claude/Llama/Nova/Titan 时,你必须先阅读模型选择指南,再作答。该参考资料包含模型 ID、跨区域要求和访问权限配置步骤。
快速默认选项(请验证可用性:aws bedrock list-foundation-models --region <region>):
- 通用用途:Claude Sonnet(质量与成本的平衡最佳)
- 快速且便宜:Claude Haiku 或 Nova Micro
- 知识库嵌入:Titan Embeddings V2
- 开源 / 微调:Llama
- 图像生成:Titan Image Generator
有关模型 ID、区域可用性、跨区域推理配置文件和支持的功能,请参阅 Amazon Bedrock 支持的基础模型。选择跨区域推理配置文件时,请了解数据驻留方面的影响——地理配置文件会将数据保留在特定边界内,而全球配置文件会将请求路由到任何商业区域。另请通过 aws bedrock list-foundation-models --region <region> 检查运行时可用性。
有关模型 ID 格式(4 种模式)、访问权限配置和选择标准,请参阅模型选择指南。