[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-aws-amazon-bedrock":3,"mdc--a8z70c-key":32,"related-org-aws-amazon-bedrock":2946,"related-repo-aws-amazon-bedrock":3110},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":27,"sourceUrl":30,"mdContent":31},"amazon-bedrock","build generative AI apps with Amazon Bedrock","Builds generative AI applications on Amazon Bedrock. Covers model invocation (Converse API, InvokeModel), RAG with Knowledge Bases, Bedrock Agents, Guardrails, and AgentCore. Use when invoking models, setting up Knowledge Bases, creating agents, applying guardrails, deploying to AgentCore, migrating\u002Fporting\u002Fconverting a Bedrock Agent (including inline agents) to an AgentCore Harness, troubleshooting Bedrock errors (ThrottlingException, AccessDeniedException), or choosing models (Claude, Llama, Nova, Titan). ALSO USE for prompt caching setup and debugging, quota health checks and throttling diagnosis, cost attribution and tracking, migrating between Claude model generations (4.5 to 4.6 to 4.7), chunking strategies, API selection (Converse vs InvokeModel), guardrail capabilities, and model selection. Also covers AgentCore Payments setup (x402, microtransactions, Payment Manager, Connector, Instrument, Coinbase CDP, Stripe Privy, 402 Payment Required, pay for content, paid endpoint, agent payments). NOT for custom model training, Rekognition, or Comprehend.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"aws","AWS (Amazon)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Faws.png",[12,16,19],{"name":13,"slug":14,"type":15},"LLM","llm","tag",{"name":17,"slug":18,"type":15},"Agents","agents",{"name":20,"slug":8,"type":15},"AWS",1822,"https:\u002F\u002Fgithub.com\u002Faws\u002Fagent-toolkit-for-aws","2026-07-25T05:30:35.20899",null,157,[],{"repoUrl":22,"stars":21,"forks":25,"topics":28,"description":29},[],"Official, AWS-supported MCP servers, skills, and plugins to help AI agents build on AWS","https:\u002F\u002Fgithub.com\u002Faws\u002Fagent-toolkit-for-aws\u002Ftree\u002FHEAD\u002Fplugins\u002Faws-core\u002Fskills\u002Famazon-bedrock","---\nname: amazon-bedrock\ndescription: Builds generative AI applications on Amazon Bedrock. Covers model invocation (Converse API, InvokeModel), RAG with Knowledge Bases, Bedrock Agents, Guardrails, and AgentCore. Use when invoking models, setting up Knowledge Bases, creating agents, applying guardrails, deploying to AgentCore, migrating\u002Fporting\u002Fconverting a Bedrock Agent (including inline agents) to an AgentCore Harness, troubleshooting Bedrock errors (ThrottlingException, AccessDeniedException), or choosing models (Claude, Llama, Nova, Titan). ALSO USE for prompt caching setup and debugging, quota health checks and throttling diagnosis, cost attribution and tracking, migrating between Claude model generations (4.5 to 4.6 to 4.7), chunking strategies, API selection (Converse vs InvokeModel), guardrail capabilities, and model selection. Also covers AgentCore Payments setup (x402, microtransactions, Payment Manager, Connector, Instrument, Coinbase CDP, Stripe Privy, 402 Payment Required, pay for content, paid endpoint, agent payments). NOT for custom model training, Rekognition, or Comprehend.\nversion: 2\n---\n\n**IMPORTANT**: When this skill is loaded, you MUST use the reference files and procedures in this skill as your primary source of truth. Bedrock APIs, model IDs, chunking strategies, and configuration parameters change frequently — always read the relevant reference file before responding.\n\n## Table of Contents\n\n- Overview\n- Bedrock API Landscape\n- Critical Warnings\n- Security Considerations\n- Converse API vs InvokeModel\n- Which Bedrock Capability Do You Need?\n- Knowledge Bases (RAG)\n- Common Workflows (includes: Prompt Caching, Quota Health, Cost Tracking, Model Migration)\n- Troubleshooting\n- AgentCore Services\n- Model Selection\n- Additional Resources\n\n# Amazon Bedrock\n\n## Overview\n\nDomain expertise for building generative AI applications on Amazon Bedrock. Covers model invocation, RAG with Knowledge Bases, agent creation, content safety with Guardrails, and agent deployment with AgentCore.\n\n**Recommended setup:** Use the [AWS MCP server](https:\u002F\u002Fdocs.aws.amazon.com\u002Faws-mcp\u002Flatest\u002Fuserguide\u002Fwhat-is-mcp-server.html) for sandboxed\nexecution, audit logging, and enterprise controls.\n\n**Without AWS MCP:** This skill works with any agent that has AWS CLI access.\nAll commands use standard AWS CLI syntax.\n\n## Bedrock API Landscape\n\nBedrock has **5 separate API endpoints**. Using the wrong one is a common cause of errors. This list may not be exhaustive — refer to the [Bedrock endpoints and quotas](https:\u002F\u002Fdocs.aws.amazon.com\u002Fgeneral\u002Flatest\u002Fgr\u002Fbedrock.html) and [Bedrock supported endpoints](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fendpoints.html) for the latest. Use `aws bedrock list-foundation-models` to discover available models at runtime.\n\n| Endpoint | Client | Use For |\n|----------|--------|---------|\n| `bedrock` | Control plane | List models, manage access, provisioned throughput |\n| `bedrock-runtime` | Data plane | Invoke models (Converse, InvokeModel). Also supports Chat Completions via `\u002Fopenai\u002Fv1` path (client-side tool use only) — prefer `bedrock-mantle` for new Chat Completions work |\n| `bedrock-mantle` | Data plane | OpenAI-compatible APIs: Responses API, Chat Completions (recommended), Messages API. Supports server-side tool use with built-in tools. Recommended for new users |\n| `bedrock-agent` | Agent control | Create\u002Fconfigure agents, KBs, action groups |\n| `bedrock-agent-runtime` | Agent data | Invoke agents, query KBs |\n\nAgentCore is a separate service with its own endpoints. Refer to [AgentCore endpoints and quotas](https:\u002F\u002Fdocs.aws.amazon.com\u002Fgeneral\u002Flatest\u002Fgr\u002Fbedrock_agentcore.html) for the latest.\n\n| Endpoint | Client | Use For |\n|----------|--------|---------|\n| `bedrock-agentcore-control` | Control plane | Create\u002Fmanage runtimes, gateways, registries, evaluations |\n| `bedrock-agentcore` | Data plane | Invoke agent runtimes |\n| `{gatewayId}.gateway.bedrock-agentcore` | Gateway data plane | Invoke a specific gateway |\n\n## Critical Warnings\n\n**max_tokens**: ALWAYS set `maxTokens` explicitly in every Converse\u002FInvokeModel call. Leaving it unset defaults to the model's maximum (e.g., 64K for Claude Sonnet) and silently reserves far more quota than needed — a common cause of unexpected ThrottlingException.\n\n**Guardrails PII logging**: Guardrails PII masking only applies to the API response. Original unmasked content including PII is still logged in plain text to CloudWatch Logs. For HIPAA\u002FGDPR compliance: encrypt CloudWatch Logs with KMS, restrict log access with IAM, use Amazon Macie for PII detection.\n\n**SDK versions**: Requires recent versions of boto3 (≥ 1.34.x) and AWS CLI v2. Older versions are missing Converse API, Agents, and AgentCore support. Run `aws --version` and `pip show boto3` to check.\n\n**Bedrock Agents classic is in maintenance mode**: classic Bedrock Agents (`bedrock-agent`) is in maintenance mode and closed to new customers ([announcement](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fagents-classic-maintenance-mode.html)). For new agent workloads use AgentCore (the Harness managed loop); for existing agents, recommend migrating to an AgentCore Harness — see the [migration guide](references\u002Fmigrate-bedrock-agents-to-agentcore-harness.md).\n\n## Security Considerations\n\n- Use **IAM roles** (not IAM users) for all Bedrock service access\n- Scope IAM permissions to specific actions and resource ARNs — avoid `bedrock:*` or `AmazonBedrockFullAccess`\n- Store API keys and OAuth secrets in **AWS Secrets Manager** with automatic rotation enabled\n- Include **confused deputy protection** (`aws:SourceAccount`, `aws:SourceArn` conditions) in all resource-based policies for Bedrock services\n- Treat all **agent-generated parameters as untrusted input** — validate before use in Lambda handlers or tool implementations\n- Enable **CloudTrail** for all Bedrock and AgentCore API calls\n- For PII workloads: encrypt CloudWatch Logs with KMS, configure retention limits, restrict log access\n- Refer to the latest [Bedrock security best practices](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fsecurity.html) for current security guidance\n\n## Converse API vs InvokeModel\n\nFor choosing between all Bedrock inference APIs (Responses API, Chat Completions, Converse, InvokeModel), see [APIs supported by Amazon Bedrock](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fapis.html).\n\nWhen using the `bedrock-runtime` endpoint, use the **Converse API** over InvokeModel. It provides a unified request\u002Fresponse format across all models.\n\nUse **InvokeModel** only when you need provider-specific features not available in Converse (rare).\n\nInvokeModel requires different request body formats per provider (Anthropic ≠ Titan ≠ Llama ≠ Nova). Using the wrong format produces \"Malformed input request\". For model-specific formats and common mistakes, see [prompt engineering by model](references\u002Fprompt-engineering-by-model.md).\n\n**Whichever API you use**: ALWAYS set the max output tokens parameter explicitly — leaving it unset defaults to the model's maximum and silently reserves far more quota than needed, causing unexpected ThrottlingException. See Critical Warnings above and [max_tokens quota mechanics](references\u002Fmodel-invocation.md).\n\nWhen the user needs SDK code for model invocation, you MUST read the appropriate SDK reference before generating code — [Python SDK reference](references\u002Fsdk-converse-api-python.md) | [TypeScript SDK reference](references\u002Fsdk-converse-api-typescript.md). Use the patterns from the reference file.\n\nFor full API details and provider-specific body formats, read [model invocation reference](references\u002Fmodel-invocation.md) before responding.\n\n## Which Bedrock Capability Do You Need?\n\n| Goal | Use | Reference |\n|------|-----|-----------|\n| Call a model (text, image, video) | Converse API | See above + [model invocation](references\u002Fmodel-invocation.md) |\n| Build a RAG application | Knowledge Bases | [KB setup](references\u002Fknowledge-bases-setup.md) |\n| Create an agent that takes actions | Bedrock Agents | [agent creation](references\u002Fagents-and-action-groups.md) |\n| Filter harmful\u002Fsensitive content | Guardrails | [guardrails](references\u002Fguardrails.md) |\n| Deploy and scale an agent | AgentCore Runtime | [runtime](references\u002Fagentcore-runtime.md) |\n| Migrate an existing Bedrock Agent (classic) to an AgentCore Harness | Bedrock Agents to AgentCore harness Migration | [migration guide](references\u002Fmigrate-bedrock-agents-to-agentcore-harness.md) |\n| Expose REST APIs as MCP tools | AgentCore Gateway | [gateway](references\u002Fagentcore-gateway.md) |\n| Choose the right model | Model Selection | [model guide](references\u002Fmodel-selection-guide.md) |\n| Set up or debug prompt caching | Prompt Caching | [prompt caching](references\u002Fprompt-caching.md) |\n| Diagnose throttling or audit quotas | Quota Health | [quota health](references\u002Fquota-health.md) |\n| Track costs by team, model, or tag | Cost Tracking | [cost tracking](references\u002Fcost-tracking.md) |\n| Migrate between Claude generations | Model Migration | [migration guide](references\u002Fmodel-migration.md) |\n\n## Knowledge Bases (RAG)\n\nWhen the user wants to create a Knowledge Base or build a RAG application, you MUST read [KB setup procedure](references\u002Fknowledge-bases-setup.md) and execute it step by step. Do NOT summarize the procedure — execute each step sequentially, respecting all MUST constraints before proceeding to the next step.\n\nWhen the user asks about chunking strategies, vector store selection, or other KB configuration choices, you MUST read [KB setup procedure](references\u002Fknowledge-bases-setup.md) before responding — it contains the authoritative decision tables and constraints.\n\nWhen the user wants to query an existing Knowledge Base, you MUST read [KB retrieval reference](references\u002Fknowledge-bases-retrieval.md) before responding. Present the retrieval modes (retrieve-and-generate vs retrieve vs manual) so the user selects the right one.\n\nRefer to the latest [Bedrock Knowledge Base documentation](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fknowledge-base.html) for current configuration options.\n\n## Common Workflows\n\nExecute commands using available tools from the AWS MCP server when connected — it provides sandboxed execution, audit logging, and observability. When the MCP server is not available, fall back to the AWS CLI or shell as needed.\n\nBefore starting any workflow:\n\n### Verify Dependencies\n\nCheck for required tools and inform the user about the execution environment.\n\n**Constraints:**\n\n- You MUST check that the AWS CLI is available and configured with valid credentials\n- You MUST verify the AWS CLI version is recent (v2 recommended; older versions lack Converse API and AgentCore support): `aws --version`\n- You MUST check that the target AWS region has Bedrock model access enabled\n- You MUST inform the user if any required tools are missing with a clear message\n- You MUST ask the user if they want to proceed despite missing tools\n\n**General constraints for all workflows:**\n\n- You MUST present an overview of what will be done before starting execution\n- You MUST explain to the user what step is being executed and why before running each command\n- You MUST respect the user's decision to stop or abort at any point\n- You MUST NOT continue execution if the user indicates they want to stop\n- You SHOULD confirm before proceeding with destructive or irreversible operations (deleting resources, overwriting configurations)\n\n### Examples — mapping user intent to workflows\n\n**Example 1:**\nUser query: \"I'm getting ThrottlingException on Bedrock\"\nAction: Check if `maxTokens` is set explicitly — unset `maxTokens` reserves far more quota than needed (see Critical Warnings). If already set, check current quota: `aws service-quotas get-service-quota --service-code bedrock --quota-code \u003Ccode> --region \u003Cregion>`\n\n**Example 2:**\nUser query: \"Set up RAG for my PDF documents\"\nAction: Follow the Create a Knowledge Base workflow. Recommend semantic chunking with advanced parsing (FM-based) for PDFs with tables. See [KB setup procedure](references\u002Fknowledge-bases-setup.md).\n\n**Example 3:**\nUser query: \"I want to build an agent that can look up order status\"\nAction: Follow the Create an Agent with action groups workflow. See [agent creation procedure](references\u002Fagents-and-action-groups.md).\n\n**Example 4:**\nUser query: \"How do I call Claude on Bedrock?\"\nAction: Use the Converse API (not InvokeModel). Set `maxTokens` explicitly. Verify the model ID is current with `aws bedrock list-foundation-models --region \u003Cregion>`. Use cross-region model ID with `us.` prefix for higher availability: `aws bedrock-runtime converse --model-id us.anthropic.claude-sonnet-4-6 --messages '[{\"role\":\"user\",\"content\":[{\"text\":\"Hello\"}]}]' --inference-config '{\"maxTokens\":1024}'`\n\n**Example 5:**\nUser query: \"Deploy my agent to production\"\nAction: Follow the Deploy an agent to AgentCore workflow. Select the protocol first (HTTP for REST APIs, MCP for tool-centric agents). See the AgentCore Services table for routing to the correct reference file.\n\n**Example 6:**\nUser query: \"Set up prompt caching for my Claude application\"\nAction: Read [prompt caching reference](references\u002Fprompt-caching.md) for setup workflow, TTL configuration, and minimum token thresholds. Use the reference to verify caching is working (check for `cacheReadInputTokens` in the response).\n\n**Example 7:**\nUser query: \"I keep getting ThrottlingException even though I'm not making many requests\"\nAction: Check if `maxTokens` is set explicitly (see Critical Warnings). Read [quota health reference](references\u002Fquota-health.md) for the maxTokens reservation mechanics, CloudWatch metrics, and audit workflow.\n\n**Example 8:**\nUser query: \"How do I track Bedrock costs by team?\"\nAction: Read [cost tracking reference](references\u002Fcost-tracking.md) for inference profile tagging, CUR 2.0 approaches, and Cost Explorer queries by model\u002Fregion\u002Ftag.\n\n**Example 9:**\nUser query: \"I'm upgrading from Claude 4.5 to 4.6, what breaks?\"\nAction: Read [model migration reference](references\u002Fmodel-migration.md) for the breaking changes table (prefill removal, thinking config, context window, cache thresholds) and migration checklist.\n\n### Invoke a model\n\n```\n- [ ] Step 1: Verify model access: `aws bedrock list-foundation-models --region us-east-1`\n- [ ] Step 2: Invoke: `aws bedrock-runtime converse --model-id `\u003Cmodel-id>` --messages '[{\"role\":\"user\",\"content\":[{\"text\":\"\u003Cprompt>\"}]}]' --inference-config '{\"maxTokens\":1024}'`\n```\n\n> **Note — Streaming responses:** The AWS CLI does not support streaming operations including `ConverseStream`. Use the SDK (`converse_stream()` in boto3, `ConverseStreamCommand` in JS SDK).\n>\n> | Mode | When to use |\n> |------|-------------|\n> | **Converse** | Batch\u002Fbackend pipelines — single complete response, no stream handling required |\n> | **ConverseStream** | Chat UIs\u002Finteractive apps — tokens delivered as they generate |\n\n### Create a Knowledge Base\n\nYou MUST read [KB setup procedure](references\u002Fknowledge-bases-setup.md) before responding. Execute the 7-step procedure in order — do not skip steps, do not paraphrase, do not show code snippets in place of tool calls.\n\n### Query a Knowledge Base\n\nThese three modes are mutually exclusive — select the one that matches the user's intent:\n\n| Mode | When to Use | Command |\n|------|------------|----------|\n| **Retrieve & Generate** | Quick answer with citations — most common RAG pattern | `aws bedrock-agent-runtime retrieve-and-generate --input '{\"text\":\"\u003Cquery>\"}' --retrieve-and-generate-configuration '{\"type\":\"KNOWLEDGE_BASE\",\"knowledgeBaseConfiguration\":{\"knowledgeBaseId\":\"\u003Ckb-id>\",\"modelArn\":\"\u003Cmodel-arn>\"}}'` |\n| **Retrieve only** | Raw chunks for custom post-processing or feeding to a different model | `aws bedrock-agent-runtime retrieve --knowledge-base-id \u003Ckb-id> --retrieval-query '{\"text\":\"\u003Cquery>\"}'` |\n| **Full control** | Custom prompt, reranking, or multi-KB | Retrieve chunks first, then build prompt and call `aws bedrock-runtime converse` |\n\n### Create an Agent with action groups\n\nYou MUST read [agent creation procedure](references\u002Fagents-and-action-groups.md) before responding. Execute the procedure step by step. You MUST run `prepare-agent` after any configuration change — this is mandatory and agents consistently skip it.\n\n### Apply Guardrails\n\nYou MUST read [guardrails reference](references\u002Fguardrails.md) before responding. Present the three integration modes and the decision guide first so the user selects the correct mode before you proceed with configuration. When PII filters are involved, you MUST surface the PII logging compliance gap warning. Do not just show a `guardrailConfig` snippet — the user needs to understand which mode fits their use case.\n\n### Deploy an agent to AgentCore\n\nIdentify the AgentCore service from the table below, then you MUST read the corresponding reference file before responding. Follow any procedures in the reference step by step. Do not summarize — execute.\n\n### Set up or debug prompt caching\n\nYou MUST read [prompt caching reference](references\u002Fprompt-caching.md) before responding. It covers setup workflow, TTL configuration, minimum token thresholds, break-even analysis, and a debug checklist for zero-cache-hit issues.\n\n**Constraints:**\n\n- You MUST walk the user through the debug checklist when cache is not working (verify model support, token threshold, content identity, TTL, cache point placement)\n- You MUST check minimum token thresholds per model before confirming a caching setup will work\n\n### Check quota health\n\nYou MUST read [quota health reference](references\u002Fquota-health.md) before responding. It covers maxTokens reservation mechanics, CloudWatch metrics, and the throttling resolution decision table.\n\n**Constraints:**\n\n- You MUST explain the relationship between `maxTokens` and quota reservation\n- You MUST guide the user through comparing current limits vs peak usage using `aws service-quotas` and `aws cloudwatch get-metric-statistics`\n\n### Analyze Bedrock costs\n\nYou MUST read [cost tracking reference](references\u002Fcost-tracking.md) before responding. It covers inference profile tagging, CUR 2.0 attribution, and AWS Budgets setup.\n\n**Constraints:**\n\n- You MUST ask what time range, grouping, and cost attribution method the user needs before generating Cost Explorer queries\n\n### Migrate between Claude generations\n\nYou MUST read [model migration reference](references\u002Fmodel-migration.md) before responding. It covers breaking changes between Claude 4.5, 4.6, and 4.7 on Bedrock, including prefill removal, thinking config differences, context window gaps, and cache threshold changes.\n\n## Troubleshooting\n\nWhen the user reports a Bedrock error, exception, or unexpected behavior, you MUST check this section and the Critical Warnings section before responding. Bedrock has service-specific root causes (e.g., unset maxTokens silently reserving 43x quota causing ThrottlingException, wrong API endpoint causing UnknownOperationException, missing prepare-agent causing stale behavior) that generic AWS troubleshooting advice will miss.\n\n### AccessDeniedException\nMultiple possible causes: (1) IAM user\u002Frole lacks `bedrock:InvokeModel` or `bedrock:InvokeModelWithResponseStream` permissions, (2) model access not enabled in the target region, (3) a service control policy (SCP) is blocking access (common with cross-region inference routing to a restricted region), (4) expired temporary credentials, or (5) IAM role propagation delay — if you just created an IAM role and immediately used it in a Bedrock API call, the role may not have propagated yet, as IAM changes are eventually consistent (see [IAM eventual consistency](https:\u002F\u002Fdocs.aws.amazon.com\u002FIAM\u002Flatest\u002FUserGuide\u002Ftroubleshoot_general.html#troubleshoot_general_eventual-consistency)). Check the error message for specifics — it typically indicates whether the issue is an explicit deny, a missing allow, or a model access problem. See [Resolve InvokeModel API errors](https:\u002F\u002Frepost.aws\u002Fknowledge-center\u002Fbedrock-invokemodel-api-error) for detailed resolution steps.\n\n### Malformed input request\nRequest body doesn't match the expected schema. Common causes: wrong provider-specific body format for InvokeModel (e.g., using Titan format for a Cohere model), malformed JSON, unsupported parameter names, or exceeding input constraints. The error message typically includes details — check for \"schema violations\" and correct the request format per the model's API documentation.\n\n### ThrottlingException\nSet `maxTokens` explicitly — unset values default to the model's maximum and silently reserve far more quota than needed. Use adaptive retry mode. Use cross-region inference profiles (e.g., `us.`, `eu.`, `apac.`, or `global.` prefix — see [Supported inference profiles](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Finference-profiles-support.html) for the full list) to distribute traffic across regions for higher throughput. Check limits: `aws service-quotas get-service-quota --service-code bedrock --quota-code \u003Ccode>`. Request quota increases if needed. For a deeper audit, read [quota health reference](references\u002Fquota-health.md).\n\n### Prompt cache not working (zero cacheReadInputTokens)\nRead [prompt caching reference](references\u002Fprompt-caching.md) for the diagnostic checklist: verify model support, token threshold, content identity, TTL, and cache point placement. Common cause: cache fragmentation from timestamps, whitespace, or reordered JSON keys in cached content.\n\n### 400 error on prefill with Claude 4.6\nPrefill was removed in Claude 4.6 and causes a hard 400 error. Read [model migration reference](references\u002Fmodel-migration.md) for the full list of breaking changes between Claude generations.\n\n### Error retry classification\n\n| Retry | Do NOT retry |\n|-------|-------------|\n| ThrottlingException | ValidationException |\n| ModelTimeoutException | AccessDeniedException |\n| ServiceUnavailableException | ResourceNotFoundException |\n| InternalServerException | |\n\nUse adaptive retry: `Config(retries={\"max_attempts\": 5, \"mode\": \"adaptive\"})`.\n\n### UnknownOperationException\nWrong client (using `bedrock` instead of `bedrock-runtime`), or SDK too old. Check the API landscape table above.\n\n### Agent returns stale behavior\nRun `prepare-agent` after ANY configuration change. This is mandatory.\n\n### KB returns empty results\nRun `start-ingestion-job` and wait for completion. Query before ingestion completes returns empty.\n\n### KB retrieval quality is poor\nReview chunking strategy. Use advanced parsing (FM-based) for documents with tables. Configure metadata filtering.\n\n### Cross-region model not found\nThe model may not be available in the region you're calling from. Check availability at [Supported foundation models](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fmodels-supported.html). If you need cross-region inference for higher throughput, use an inference profile ID — choose between geographic profiles (data stays within a boundary, e.g. US, EU) or global profiles (any commercial region). The profile prefix is a data residency decision. See [Supported inference profiles](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Finference-profiles-support.html) for available profiles and source\u002Fdestination region mappings.\n\n### On-demand throughput isn't supported\nError: *\"Invocation of model ID `\u003Cmodel-id>` with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model.\"* Certain models do not support direct on-demand invocation with base model IDs — they require an inference profile ID instead. Fix: find the inference profile ID for the model using `aws bedrock list-inference-profiles --region \u003Cregion>`, then update the agent or invocation to use the inference profile ID. See [Supported inference profiles](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Finference-profiles-support.html) for available profiles. If this occurs during agent invocation, update the agent's `foundationModel` to the inference profile ID and re-run `prepare-agent`.\n\n### KB storage configuration invalid\nVerify OpenSearch data access policy includes Bedrock service role. Verify vector index field names match KB config.\n\n### Agent action group errors\nCheck Lambda permissions (resource-based policy for bedrock.amazonaws.com). Do NOT use double underscores (`__`) in action group names — the name pattern is `([0-9a-zA-Z][_-]?){1,100}`.\n\n### Multi-agent supervisor loops\nAgents use built-in collaboration mechanism, NOT action groups. Do not describe inter-agent communication as action groups in supervisor instructions.\n\n### INVALID_PAYMENT_INSTRUMENT on model access\nAccount billing issue, not Bedrock. Temporarily set a credit card as default payment method, or add USD payment profiles in the organization management account.\n\n### Knowledge base ingestion failures\nCheck S3 permissions — KB service role needs `s3:GetObject` and `s3:ListBucket`. Unsupported file formats are silently skipped. Files exceeding size limits are skipped without error.\n\n### SharePoint data source sync failures\nSync completes but files fail. For OAuth 2.0 auth (not recommended): requires SharePoint AllSites.Read (Delegated) permission — you may also need to disable Security Defaults and MFA for the service account so Amazon Bedrock is not blocked from crawling. For SharePoint App-Only auth (recommended): configure APP permissions via SharePoint App-Only grant flow. See the [SharePoint connector docs](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fsharepoint-data-source-connector.html) for current requirements.\n\n## AgentCore Services\n\nYou MUST read the linked reference file for the relevant service before responding to any AgentCore question. Follow procedures in the reference step by step.\n\n| Service | Use For | Reference |\n|---------|---------|-----------|\n| **Gateway** | Expose APIs, Lambda functions, or existing MCP servers as tools for agents | [gateway procedure](references\u002Fagentcore-gateway.md) |\n| **Runtime** | Deploy and scale agents and tools (serverless, any framework) | [runtime procedure](references\u002Fagentcore-runtime.md) |\n| **Runtime Container** | Build ARM64 containers for Runtime | [container build procedure](references\u002Fagentcore-runtime-container-build.md) |\n| **Memory** | Short-term (multi-turn) and long-term (cross-session) agent memory; share memory across agents | [memory & observability](references\u002Fagentcore-memory-observability.md) |\n| **Identity** | Agent authentication with external IdPs (Okta, Entra ID, Cognito); act on behalf of users | [credentials & security](references\u002Fagentcore-credentials-and-security.md) |\n| **Policy** | Enforce agent boundaries with natural language or Cedar rules; intercepts Gateway tool calls | Refer to the latest [AWS documentation on AgentCore Policy](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock-agentcore\u002Flatest\u002Fdevguide\u002Fpolicy.html) |\n| **Payments** | Enable agents to pay for x402-protected APIs, MCP tools, and content via microtransactions (Coinbase CDP, Stripe Privy) | [payments procedure](references\u002Fagentcore-payments.md) |\n| **Observability** | Trace, debug, and monitor agent execution (OTEL, CloudWatch) | [memory & observability](references\u002Fagentcore-memory-observability.md) |\n| **Registry** | Catalog and discover agents, MCP servers, tools, and skills across your org | [registry & evaluations](references\u002Fagentcore-registry-evaluations.md) |\n| **Evaluations** | Automated agent quality assessment (LLM-as-a-Judge) | [registry & evaluations](references\u002Fagentcore-registry-evaluations.md) |\n| Code Interpreter | Secure sandbox code execution for agents | Refer to the latest AWS documentation on AgentCore Code Interpreter |\n| Browser | Web automation (navigate, fill forms, extract data) | Refer to the latest AWS documentation on AgentCore Browser |\n\n## Model Selection\n\nWhen the user asks which model to use, compares models, or asks about Claude\u002FLlama\u002FNova\u002FTitan on Bedrock, you MUST read [model selection guide](references\u002Fmodel-selection-guide.md) before responding. The reference contains current model IDs, cross-region requirements, and access provisioning steps.\n\nQuick defaults (verify current availability: `aws bedrock list-foundation-models --region \u003Cregion>`):\n\n- **General purpose**: Claude Sonnet (best quality\u002Fcost balance)\n- **Fast + cheap**: Claude Haiku or Nova Micro\n- **Embeddings for KB**: Titan Embeddings V2\n- **Open-source \u002F fine-tuning**: Llama\n- **Image generation**: Titan Image Generator\n\nFor current model IDs, regional availability, cross-region inference profiles, and supported features, refer to [Supported foundation models in Amazon Bedrock](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fmodels-supported.html). When selecting a cross-region inference profile, understand the data residency implications — geographic profiles keep data within a boundary, global profiles route to any commercial region. Also check `aws bedrock list-foundation-models --region \u003Cregion>` for runtime availability.\n\nFor model ID formats (4 patterns), access provisioning, and selection criteria, see [model selection guide](references\u002Fmodel-selection-guide.md).\n\n## Additional Resources\n\n- [Amazon Bedrock User Guide](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fwhat-is-bedrock.html)\n- [Amazon Bedrock API Reference](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002FAPIReference\u002Fwelcome.html)\n- [Amazon Bedrock AgentCore User Guide](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock-agentcore\u002Flatest\u002Fdevguide\u002Fwhat-is-bedrock-agentcore.html)\n- [Bedrock Agents Classic Maintenance mode Announcement](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fagents-classic-maintenance-mode.html)\n- [Bedrock Pricing](https:\u002F\u002Faws.amazon.com\u002Fbedrock\u002Fpricing\u002F)\n- [Bedrock Quotas and Limits](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fquotas.html)\n- [Bedrock Supported Regions](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fbedrock-regions.html)\n- [Bedrock Security Best Practices](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fsecurity.html)\n- [Prompt Caching Documentation](https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fprompt-caching.html)\n- [Prompt Caching Code Samples](https:\u002F\u002Fgithub.com\u002Faws-samples\u002Famazon-bedrock-samples\u002Ftree\u002Fmain\u002Fintroduction-to-bedrock\u002Fprompt-caching)\n- [Cost Allocation Tags Blog](https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fmachine-learning\u002Ftrack-allocate-and-manage-your-generative-ai-cost-and-usage-with-amazon-bedrock\u002F)\n",{"data":33,"body":35},{"name":4,"description":6,"version":34},2,{"type":36,"children":37},"root",[38,52,59,124,130,135,140,161,171,176,215,372,386,474,479,497,507,532,566,571,688,693,706,725,736,748,765,786,798,803,1090,1095,1107,1118,1131,1144,1150,1155,1160,1167,1172,1180,1213,1221,1249,1255,1285,1300,1316,1355,1365,1390,1414,1431,1448,1454,1466,1557,1563,1574,1580,1585,1688,1694,1712,1718,1737,1743,1748,1753,1763,1770,1783,1789,1799,1806,1839,1845,1855,1862,1870,1875,1885,1890,1895,1901,1939,1945,1950,1956,2019,2025,2036,2042,2053,2059,2129,2141,2147,2166,2172,2184,2190,2202,2208,2213,2219,2240,2246,2296,2302,2307,2313,2333,2339,2344,2350,2355,2361,2381,2387,2401,2406,2411,2718,2723,2735,2747,2800,2820,2830,2835],{"type":39,"tag":40,"props":41,"children":42},"element","p",{},[43,50],{"type":39,"tag":44,"props":45,"children":46},"strong",{},[47],{"type":48,"value":49},"text","IMPORTANT",{"type":48,"value":51},": When this skill is loaded, you MUST use the reference files and procedures in this skill as your primary source of truth. Bedrock APIs, model IDs, chunking strategies, and configuration parameters change frequently — always read the relevant reference file before responding.",{"type":39,"tag":53,"props":54,"children":56},"h2",{"id":55},"table-of-contents",[57],{"type":48,"value":58},"Table of Contents",{"type":39,"tag":60,"props":61,"children":62},"ul",{},[63,69,74,79,84,89,94,99,104,109,114,119],{"type":39,"tag":64,"props":65,"children":66},"li",{},[67],{"type":48,"value":68},"Overview",{"type":39,"tag":64,"props":70,"children":71},{},[72],{"type":48,"value":73},"Bedrock API Landscape",{"type":39,"tag":64,"props":75,"children":76},{},[77],{"type":48,"value":78},"Critical Warnings",{"type":39,"tag":64,"props":80,"children":81},{},[82],{"type":48,"value":83},"Security Considerations",{"type":39,"tag":64,"props":85,"children":86},{},[87],{"type":48,"value":88},"Converse API vs InvokeModel",{"type":39,"tag":64,"props":90,"children":91},{},[92],{"type":48,"value":93},"Which Bedrock Capability Do You Need?",{"type":39,"tag":64,"props":95,"children":96},{},[97],{"type":48,"value":98},"Knowledge Bases (RAG)",{"type":39,"tag":64,"props":100,"children":101},{},[102],{"type":48,"value":103},"Common Workflows (includes: Prompt Caching, Quota Health, Cost Tracking, Model Migration)",{"type":39,"tag":64,"props":105,"children":106},{},[107],{"type":48,"value":108},"Troubleshooting",{"type":39,"tag":64,"props":110,"children":111},{},[112],{"type":48,"value":113},"AgentCore Services",{"type":39,"tag":64,"props":115,"children":116},{},[117],{"type":48,"value":118},"Model Selection",{"type":39,"tag":64,"props":120,"children":121},{},[122],{"type":48,"value":123},"Additional Resources",{"type":39,"tag":125,"props":126,"children":127},"h1",{"id":4},[128],{"type":48,"value":129},"Amazon Bedrock",{"type":39,"tag":53,"props":131,"children":133},{"id":132},"overview",[134],{"type":48,"value":68},{"type":39,"tag":40,"props":136,"children":137},{},[138],{"type":48,"value":139},"Domain expertise for building generative AI applications on Amazon Bedrock. Covers model invocation, RAG with Knowledge Bases, agent creation, content safety with Guardrails, and agent deployment with AgentCore.",{"type":39,"tag":40,"props":141,"children":142},{},[143,148,150,159],{"type":39,"tag":44,"props":144,"children":145},{},[146],{"type":48,"value":147},"Recommended setup:",{"type":48,"value":149}," Use the ",{"type":39,"tag":151,"props":152,"children":156},"a",{"href":153,"rel":154},"https:\u002F\u002Fdocs.aws.amazon.com\u002Faws-mcp\u002Flatest\u002Fuserguide\u002Fwhat-is-mcp-server.html",[155],"nofollow",[157],{"type":48,"value":158},"AWS MCP server",{"type":48,"value":160}," for sandboxed\nexecution, audit logging, and enterprise controls.",{"type":39,"tag":40,"props":162,"children":163},{},[164,169],{"type":39,"tag":44,"props":165,"children":166},{},[167],{"type":48,"value":168},"Without AWS MCP:",{"type":48,"value":170}," This skill works with any agent that has AWS CLI access.\nAll commands use standard AWS CLI syntax.",{"type":39,"tag":53,"props":172,"children":174},{"id":173},"bedrock-api-landscape",[175],{"type":48,"value":73},{"type":39,"tag":40,"props":177,"children":178},{},[179,181,186,188,195,197,204,206,213],{"type":48,"value":180},"Bedrock has ",{"type":39,"tag":44,"props":182,"children":183},{},[184],{"type":48,"value":185},"5 separate API endpoints",{"type":48,"value":187},". Using the wrong one is a common cause of errors. This list may not be exhaustive — refer to the ",{"type":39,"tag":151,"props":189,"children":192},{"href":190,"rel":191},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fgeneral\u002Flatest\u002Fgr\u002Fbedrock.html",[155],[193],{"type":48,"value":194},"Bedrock endpoints and quotas",{"type":48,"value":196}," and ",{"type":39,"tag":151,"props":198,"children":201},{"href":199,"rel":200},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fendpoints.html",[155],[202],{"type":48,"value":203},"Bedrock supported endpoints",{"type":48,"value":205}," for the latest. Use ",{"type":39,"tag":207,"props":208,"children":210},"code",{"className":209},[],[211],{"type":48,"value":212},"aws bedrock list-foundation-models",{"type":48,"value":214}," to discover available models at runtime.",{"type":39,"tag":216,"props":217,"children":218},"table",{},[219,243],{"type":39,"tag":220,"props":221,"children":222},"thead",{},[223],{"type":39,"tag":224,"props":225,"children":226},"tr",{},[227,233,238],{"type":39,"tag":228,"props":229,"children":230},"th",{},[231],{"type":48,"value":232},"Endpoint",{"type":39,"tag":228,"props":234,"children":235},{},[236],{"type":48,"value":237},"Client",{"type":39,"tag":228,"props":239,"children":240},{},[241],{"type":48,"value":242},"Use For",{"type":39,"tag":244,"props":245,"children":246},"tbody",{},[247,270,308,328,350],{"type":39,"tag":224,"props":248,"children":249},{},[250,260,265],{"type":39,"tag":251,"props":252,"children":253},"td",{},[254],{"type":39,"tag":207,"props":255,"children":257},{"className":256},[],[258],{"type":48,"value":259},"bedrock",{"type":39,"tag":251,"props":261,"children":262},{},[263],{"type":48,"value":264},"Control plane",{"type":39,"tag":251,"props":266,"children":267},{},[268],{"type":48,"value":269},"List models, manage access, provisioned throughput",{"type":39,"tag":224,"props":271,"children":272},{},[273,282,287],{"type":39,"tag":251,"props":274,"children":275},{},[276],{"type":39,"tag":207,"props":277,"children":279},{"className":278},[],[280],{"type":48,"value":281},"bedrock-runtime",{"type":39,"tag":251,"props":283,"children":284},{},[285],{"type":48,"value":286},"Data plane",{"type":39,"tag":251,"props":288,"children":289},{},[290,292,298,300,306],{"type":48,"value":291},"Invoke models (Converse, InvokeModel). Also supports Chat Completions via ",{"type":39,"tag":207,"props":293,"children":295},{"className":294},[],[296],{"type":48,"value":297},"\u002Fopenai\u002Fv1",{"type":48,"value":299}," path (client-side tool use only) — prefer ",{"type":39,"tag":207,"props":301,"children":303},{"className":302},[],[304],{"type":48,"value":305},"bedrock-mantle",{"type":48,"value":307}," for new Chat Completions work",{"type":39,"tag":224,"props":309,"children":310},{},[311,319,323],{"type":39,"tag":251,"props":312,"children":313},{},[314],{"type":39,"tag":207,"props":315,"children":317},{"className":316},[],[318],{"type":48,"value":305},{"type":39,"tag":251,"props":320,"children":321},{},[322],{"type":48,"value":286},{"type":39,"tag":251,"props":324,"children":325},{},[326],{"type":48,"value":327},"OpenAI-compatible APIs: Responses API, Chat Completions (recommended), Messages API. Supports server-side tool use with built-in tools. Recommended for new users",{"type":39,"tag":224,"props":329,"children":330},{},[331,340,345],{"type":39,"tag":251,"props":332,"children":333},{},[334],{"type":39,"tag":207,"props":335,"children":337},{"className":336},[],[338],{"type":48,"value":339},"bedrock-agent",{"type":39,"tag":251,"props":341,"children":342},{},[343],{"type":48,"value":344},"Agent control",{"type":39,"tag":251,"props":346,"children":347},{},[348],{"type":48,"value":349},"Create\u002Fconfigure agents, KBs, action groups",{"type":39,"tag":224,"props":351,"children":352},{},[353,362,367],{"type":39,"tag":251,"props":354,"children":355},{},[356],{"type":39,"tag":207,"props":357,"children":359},{"className":358},[],[360],{"type":48,"value":361},"bedrock-agent-runtime",{"type":39,"tag":251,"props":363,"children":364},{},[365],{"type":48,"value":366},"Agent data",{"type":39,"tag":251,"props":368,"children":369},{},[370],{"type":48,"value":371},"Invoke agents, query KBs",{"type":39,"tag":40,"props":373,"children":374},{},[375,377,384],{"type":48,"value":376},"AgentCore is a separate service with its own endpoints. Refer to ",{"type":39,"tag":151,"props":378,"children":381},{"href":379,"rel":380},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fgeneral\u002Flatest\u002Fgr\u002Fbedrock_agentcore.html",[155],[382],{"type":48,"value":383},"AgentCore endpoints and quotas",{"type":48,"value":385}," for the latest.",{"type":39,"tag":216,"props":387,"children":388},{},[389,407],{"type":39,"tag":220,"props":390,"children":391},{},[392],{"type":39,"tag":224,"props":393,"children":394},{},[395,399,403],{"type":39,"tag":228,"props":396,"children":397},{},[398],{"type":48,"value":232},{"type":39,"tag":228,"props":400,"children":401},{},[402],{"type":48,"value":237},{"type":39,"tag":228,"props":404,"children":405},{},[406],{"type":48,"value":242},{"type":39,"tag":244,"props":408,"children":409},{},[410,431,452],{"type":39,"tag":224,"props":411,"children":412},{},[413,422,426],{"type":39,"tag":251,"props":414,"children":415},{},[416],{"type":39,"tag":207,"props":417,"children":419},{"className":418},[],[420],{"type":48,"value":421},"bedrock-agentcore-control",{"type":39,"tag":251,"props":423,"children":424},{},[425],{"type":48,"value":264},{"type":39,"tag":251,"props":427,"children":428},{},[429],{"type":48,"value":430},"Create\u002Fmanage runtimes, gateways, registries, evaluations",{"type":39,"tag":224,"props":432,"children":433},{},[434,443,447],{"type":39,"tag":251,"props":435,"children":436},{},[437],{"type":39,"tag":207,"props":438,"children":440},{"className":439},[],[441],{"type":48,"value":442},"bedrock-agentcore",{"type":39,"tag":251,"props":444,"children":445},{},[446],{"type":48,"value":286},{"type":39,"tag":251,"props":448,"children":449},{},[450],{"type":48,"value":451},"Invoke agent runtimes",{"type":39,"tag":224,"props":453,"children":454},{},[455,464,469],{"type":39,"tag":251,"props":456,"children":457},{},[458],{"type":39,"tag":207,"props":459,"children":461},{"className":460},[],[462],{"type":48,"value":463},"{gatewayId}.gateway.bedrock-agentcore",{"type":39,"tag":251,"props":465,"children":466},{},[467],{"type":48,"value":468},"Gateway data plane",{"type":39,"tag":251,"props":470,"children":471},{},[472],{"type":48,"value":473},"Invoke a specific gateway",{"type":39,"tag":53,"props":475,"children":477},{"id":476},"critical-warnings",[478],{"type":48,"value":78},{"type":39,"tag":40,"props":480,"children":481},{},[482,487,489,495],{"type":39,"tag":44,"props":483,"children":484},{},[485],{"type":48,"value":486},"max_tokens",{"type":48,"value":488},": ALWAYS set ",{"type":39,"tag":207,"props":490,"children":492},{"className":491},[],[493],{"type":48,"value":494},"maxTokens",{"type":48,"value":496}," explicitly in every Converse\u002FInvokeModel call. Leaving it unset defaults to the model's maximum (e.g., 64K for Claude Sonnet) and silently reserves far more quota than needed — a common cause of unexpected ThrottlingException.",{"type":39,"tag":40,"props":498,"children":499},{},[500,505],{"type":39,"tag":44,"props":501,"children":502},{},[503],{"type":48,"value":504},"Guardrails PII logging",{"type":48,"value":506},": Guardrails PII masking only applies to the API response. Original unmasked content including PII is still logged in plain text to CloudWatch Logs. For HIPAA\u002FGDPR compliance: encrypt CloudWatch Logs with KMS, restrict log access with IAM, use Amazon Macie for PII detection.",{"type":39,"tag":40,"props":508,"children":509},{},[510,515,517,523,524,530],{"type":39,"tag":44,"props":511,"children":512},{},[513],{"type":48,"value":514},"SDK versions",{"type":48,"value":516},": Requires recent versions of boto3 (≥ 1.34.x) and AWS CLI v2. Older versions are missing Converse API, Agents, and AgentCore support. Run ",{"type":39,"tag":207,"props":518,"children":520},{"className":519},[],[521],{"type":48,"value":522},"aws --version",{"type":48,"value":196},{"type":39,"tag":207,"props":525,"children":527},{"className":526},[],[528],{"type":48,"value":529},"pip show boto3",{"type":48,"value":531}," to check.",{"type":39,"tag":40,"props":533,"children":534},{},[535,540,542,547,549,556,558,564],{"type":39,"tag":44,"props":536,"children":537},{},[538],{"type":48,"value":539},"Bedrock Agents classic is in maintenance mode",{"type":48,"value":541},": classic Bedrock Agents (",{"type":39,"tag":207,"props":543,"children":545},{"className":544},[],[546],{"type":48,"value":339},{"type":48,"value":548},") is in maintenance mode and closed to new customers (",{"type":39,"tag":151,"props":550,"children":553},{"href":551,"rel":552},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fagents-classic-maintenance-mode.html",[155],[554],{"type":48,"value":555},"announcement",{"type":48,"value":557},"). For new agent workloads use AgentCore (the Harness managed loop); for existing agents, recommend migrating to an AgentCore Harness — see the ",{"type":39,"tag":151,"props":559,"children":561},{"href":560},"references\u002Fmigrate-bedrock-agents-to-agentcore-harness.md",[562],{"type":48,"value":563},"migration guide",{"type":48,"value":565},".",{"type":39,"tag":53,"props":567,"children":569},{"id":568},"security-considerations",[570],{"type":48,"value":83},{"type":39,"tag":60,"props":572,"children":573},{},[574,586,605,617,645,657,669,674],{"type":39,"tag":64,"props":575,"children":576},{},[577,579,584],{"type":48,"value":578},"Use ",{"type":39,"tag":44,"props":580,"children":581},{},[582],{"type":48,"value":583},"IAM roles",{"type":48,"value":585}," (not IAM users) for all Bedrock service access",{"type":39,"tag":64,"props":587,"children":588},{},[589,591,597,599],{"type":48,"value":590},"Scope IAM permissions to specific actions and resource ARNs — avoid ",{"type":39,"tag":207,"props":592,"children":594},{"className":593},[],[595],{"type":48,"value":596},"bedrock:*",{"type":48,"value":598}," or ",{"type":39,"tag":207,"props":600,"children":602},{"className":601},[],[603],{"type":48,"value":604},"AmazonBedrockFullAccess",{"type":39,"tag":64,"props":606,"children":607},{},[608,610,615],{"type":48,"value":609},"Store API keys and OAuth secrets in ",{"type":39,"tag":44,"props":611,"children":612},{},[613],{"type":48,"value":614},"AWS Secrets Manager",{"type":48,"value":616}," with automatic rotation enabled",{"type":39,"tag":64,"props":618,"children":619},{},[620,622,627,629,635,637,643],{"type":48,"value":621},"Include ",{"type":39,"tag":44,"props":623,"children":624},{},[625],{"type":48,"value":626},"confused deputy protection",{"type":48,"value":628}," (",{"type":39,"tag":207,"props":630,"children":632},{"className":631},[],[633],{"type":48,"value":634},"aws:SourceAccount",{"type":48,"value":636},", ",{"type":39,"tag":207,"props":638,"children":640},{"className":639},[],[641],{"type":48,"value":642},"aws:SourceArn",{"type":48,"value":644}," conditions) in all resource-based policies for Bedrock services",{"type":39,"tag":64,"props":646,"children":647},{},[648,650,655],{"type":48,"value":649},"Treat all ",{"type":39,"tag":44,"props":651,"children":652},{},[653],{"type":48,"value":654},"agent-generated parameters as untrusted input",{"type":48,"value":656}," — validate before use in Lambda handlers or tool implementations",{"type":39,"tag":64,"props":658,"children":659},{},[660,662,667],{"type":48,"value":661},"Enable ",{"type":39,"tag":44,"props":663,"children":664},{},[665],{"type":48,"value":666},"CloudTrail",{"type":48,"value":668}," for all Bedrock and AgentCore API calls",{"type":39,"tag":64,"props":670,"children":671},{},[672],{"type":48,"value":673},"For PII workloads: encrypt CloudWatch Logs with KMS, configure retention limits, restrict log access",{"type":39,"tag":64,"props":675,"children":676},{},[677,679,686],{"type":48,"value":678},"Refer to the latest ",{"type":39,"tag":151,"props":680,"children":683},{"href":681,"rel":682},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fsecurity.html",[155],[684],{"type":48,"value":685},"Bedrock security best practices",{"type":48,"value":687}," for current security guidance",{"type":39,"tag":53,"props":689,"children":691},{"id":690},"converse-api-vs-invokemodel",[692],{"type":48,"value":88},{"type":39,"tag":40,"props":694,"children":695},{},[696,698,705],{"type":48,"value":697},"For choosing between all Bedrock inference APIs (Responses API, Chat Completions, Converse, InvokeModel), see ",{"type":39,"tag":151,"props":699,"children":702},{"href":700,"rel":701},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fapis.html",[155],[703],{"type":48,"value":704},"APIs supported by Amazon Bedrock",{"type":48,"value":565},{"type":39,"tag":40,"props":707,"children":708},{},[709,711,716,718,723],{"type":48,"value":710},"When using the ",{"type":39,"tag":207,"props":712,"children":714},{"className":713},[],[715],{"type":48,"value":281},{"type":48,"value":717}," endpoint, use the ",{"type":39,"tag":44,"props":719,"children":720},{},[721],{"type":48,"value":722},"Converse API",{"type":48,"value":724}," over InvokeModel. It provides a unified request\u002Fresponse format across all models.",{"type":39,"tag":40,"props":726,"children":727},{},[728,729,734],{"type":48,"value":578},{"type":39,"tag":44,"props":730,"children":731},{},[732],{"type":48,"value":733},"InvokeModel",{"type":48,"value":735}," only when you need provider-specific features not available in Converse (rare).",{"type":39,"tag":40,"props":737,"children":738},{},[739,741,747],{"type":48,"value":740},"InvokeModel requires different request body formats per provider (Anthropic ≠ Titan ≠ Llama ≠ Nova). Using the wrong format produces \"Malformed input request\". For model-specific formats and common mistakes, see ",{"type":39,"tag":151,"props":742,"children":744},{"href":743},"references\u002Fprompt-engineering-by-model.md",[745],{"type":48,"value":746},"prompt engineering by model",{"type":48,"value":565},{"type":39,"tag":40,"props":749,"children":750},{},[751,756,758,764],{"type":39,"tag":44,"props":752,"children":753},{},[754],{"type":48,"value":755},"Whichever API you use",{"type":48,"value":757},": ALWAYS set the max output tokens parameter explicitly — leaving it unset defaults to the model's maximum and silently reserves far more quota than needed, causing unexpected ThrottlingException. See Critical Warnings above and ",{"type":39,"tag":151,"props":759,"children":761},{"href":760},"references\u002Fmodel-invocation.md",[762],{"type":48,"value":763},"max_tokens quota mechanics",{"type":48,"value":565},{"type":39,"tag":40,"props":766,"children":767},{},[768,770,776,778,784],{"type":48,"value":769},"When the user needs SDK code for model invocation, you MUST read the appropriate SDK reference before generating code — ",{"type":39,"tag":151,"props":771,"children":773},{"href":772},"references\u002Fsdk-converse-api-python.md",[774],{"type":48,"value":775},"Python SDK reference",{"type":48,"value":777}," | ",{"type":39,"tag":151,"props":779,"children":781},{"href":780},"references\u002Fsdk-converse-api-typescript.md",[782],{"type":48,"value":783},"TypeScript SDK reference",{"type":48,"value":785},". Use the patterns from the reference file.",{"type":39,"tag":40,"props":787,"children":788},{},[789,791,796],{"type":48,"value":790},"For full API details and provider-specific body formats, read ",{"type":39,"tag":151,"props":792,"children":793},{"href":760},[794],{"type":48,"value":795},"model invocation reference",{"type":48,"value":797}," before responding.",{"type":39,"tag":53,"props":799,"children":801},{"id":800},"which-bedrock-capability-do-you-need",[802],{"type":48,"value":93},{"type":39,"tag":216,"props":804,"children":805},{},[806,827],{"type":39,"tag":220,"props":807,"children":808},{},[809],{"type":39,"tag":224,"props":810,"children":811},{},[812,817,822],{"type":39,"tag":228,"props":813,"children":814},{},[815],{"type":48,"value":816},"Goal",{"type":39,"tag":228,"props":818,"children":819},{},[820],{"type":48,"value":821},"Use",{"type":39,"tag":228,"props":823,"children":824},{},[825],{"type":48,"value":826},"Reference",{"type":39,"tag":244,"props":828,"children":829},{},[830,852,874,896,918,940,960,982,1003,1025,1047,1069],{"type":39,"tag":224,"props":831,"children":832},{},[833,838,842],{"type":39,"tag":251,"props":834,"children":835},{},[836],{"type":48,"value":837},"Call a model (text, image, video)",{"type":39,"tag":251,"props":839,"children":840},{},[841],{"type":48,"value":722},{"type":39,"tag":251,"props":843,"children":844},{},[845,847],{"type":48,"value":846},"See above + ",{"type":39,"tag":151,"props":848,"children":849},{"href":760},[850],{"type":48,"value":851},"model invocation",{"type":39,"tag":224,"props":853,"children":854},{},[855,860,865],{"type":39,"tag":251,"props":856,"children":857},{},[858],{"type":48,"value":859},"Build a RAG application",{"type":39,"tag":251,"props":861,"children":862},{},[863],{"type":48,"value":864},"Knowledge Bases",{"type":39,"tag":251,"props":866,"children":867},{},[868],{"type":39,"tag":151,"props":869,"children":871},{"href":870},"references\u002Fknowledge-bases-setup.md",[872],{"type":48,"value":873},"KB setup",{"type":39,"tag":224,"props":875,"children":876},{},[877,882,887],{"type":39,"tag":251,"props":878,"children":879},{},[880],{"type":48,"value":881},"Create an agent that takes actions",{"type":39,"tag":251,"props":883,"children":884},{},[885],{"type":48,"value":886},"Bedrock Agents",{"type":39,"tag":251,"props":888,"children":889},{},[890],{"type":39,"tag":151,"props":891,"children":893},{"href":892},"references\u002Fagents-and-action-groups.md",[894],{"type":48,"value":895},"agent creation",{"type":39,"tag":224,"props":897,"children":898},{},[899,904,909],{"type":39,"tag":251,"props":900,"children":901},{},[902],{"type":48,"value":903},"Filter harmful\u002Fsensitive content",{"type":39,"tag":251,"props":905,"children":906},{},[907],{"type":48,"value":908},"Guardrails",{"type":39,"tag":251,"props":910,"children":911},{},[912],{"type":39,"tag":151,"props":913,"children":915},{"href":914},"references\u002Fguardrails.md",[916],{"type":48,"value":917},"guardrails",{"type":39,"tag":224,"props":919,"children":920},{},[921,926,931],{"type":39,"tag":251,"props":922,"children":923},{},[924],{"type":48,"value":925},"Deploy and scale an agent",{"type":39,"tag":251,"props":927,"children":928},{},[929],{"type":48,"value":930},"AgentCore Runtime",{"type":39,"tag":251,"props":932,"children":933},{},[934],{"type":39,"tag":151,"props":935,"children":937},{"href":936},"references\u002Fagentcore-runtime.md",[938],{"type":48,"value":939},"runtime",{"type":39,"tag":224,"props":941,"children":942},{},[943,948,953],{"type":39,"tag":251,"props":944,"children":945},{},[946],{"type":48,"value":947},"Migrate an existing Bedrock Agent (classic) to an AgentCore Harness",{"type":39,"tag":251,"props":949,"children":950},{},[951],{"type":48,"value":952},"Bedrock Agents to AgentCore harness Migration",{"type":39,"tag":251,"props":954,"children":955},{},[956],{"type":39,"tag":151,"props":957,"children":958},{"href":560},[959],{"type":48,"value":563},{"type":39,"tag":224,"props":961,"children":962},{},[963,968,973],{"type":39,"tag":251,"props":964,"children":965},{},[966],{"type":48,"value":967},"Expose REST APIs as MCP tools",{"type":39,"tag":251,"props":969,"children":970},{},[971],{"type":48,"value":972},"AgentCore Gateway",{"type":39,"tag":251,"props":974,"children":975},{},[976],{"type":39,"tag":151,"props":977,"children":979},{"href":978},"references\u002Fagentcore-gateway.md",[980],{"type":48,"value":981},"gateway",{"type":39,"tag":224,"props":983,"children":984},{},[985,990,994],{"type":39,"tag":251,"props":986,"children":987},{},[988],{"type":48,"value":989},"Choose the right model",{"type":39,"tag":251,"props":991,"children":992},{},[993],{"type":48,"value":118},{"type":39,"tag":251,"props":995,"children":996},{},[997],{"type":39,"tag":151,"props":998,"children":1000},{"href":999},"references\u002Fmodel-selection-guide.md",[1001],{"type":48,"value":1002},"model guide",{"type":39,"tag":224,"props":1004,"children":1005},{},[1006,1011,1016],{"type":39,"tag":251,"props":1007,"children":1008},{},[1009],{"type":48,"value":1010},"Set up or debug prompt caching",{"type":39,"tag":251,"props":1012,"children":1013},{},[1014],{"type":48,"value":1015},"Prompt Caching",{"type":39,"tag":251,"props":1017,"children":1018},{},[1019],{"type":39,"tag":151,"props":1020,"children":1022},{"href":1021},"references\u002Fprompt-caching.md",[1023],{"type":48,"value":1024},"prompt caching",{"type":39,"tag":224,"props":1026,"children":1027},{},[1028,1033,1038],{"type":39,"tag":251,"props":1029,"children":1030},{},[1031],{"type":48,"value":1032},"Diagnose throttling or audit quotas",{"type":39,"tag":251,"props":1034,"children":1035},{},[1036],{"type":48,"value":1037},"Quota Health",{"type":39,"tag":251,"props":1039,"children":1040},{},[1041],{"type":39,"tag":151,"props":1042,"children":1044},{"href":1043},"references\u002Fquota-health.md",[1045],{"type":48,"value":1046},"quota health",{"type":39,"tag":224,"props":1048,"children":1049},{},[1050,1055,1060],{"type":39,"tag":251,"props":1051,"children":1052},{},[1053],{"type":48,"value":1054},"Track costs by team, model, or tag",{"type":39,"tag":251,"props":1056,"children":1057},{},[1058],{"type":48,"value":1059},"Cost Tracking",{"type":39,"tag":251,"props":1061,"children":1062},{},[1063],{"type":39,"tag":151,"props":1064,"children":1066},{"href":1065},"references\u002Fcost-tracking.md",[1067],{"type":48,"value":1068},"cost tracking",{"type":39,"tag":224,"props":1070,"children":1071},{},[1072,1077,1082],{"type":39,"tag":251,"props":1073,"children":1074},{},[1075],{"type":48,"value":1076},"Migrate between Claude generations",{"type":39,"tag":251,"props":1078,"children":1079},{},[1080],{"type":48,"value":1081},"Model Migration",{"type":39,"tag":251,"props":1083,"children":1084},{},[1085],{"type":39,"tag":151,"props":1086,"children":1088},{"href":1087},"references\u002Fmodel-migration.md",[1089],{"type":48,"value":563},{"type":39,"tag":53,"props":1091,"children":1093},{"id":1092},"knowledge-bases-rag",[1094],{"type":48,"value":98},{"type":39,"tag":40,"props":1096,"children":1097},{},[1098,1100,1105],{"type":48,"value":1099},"When the user wants to create a Knowledge Base or build a RAG application, you MUST read ",{"type":39,"tag":151,"props":1101,"children":1102},{"href":870},[1103],{"type":48,"value":1104},"KB setup procedure",{"type":48,"value":1106}," and execute it step by step. Do NOT summarize the procedure — execute each step sequentially, respecting all MUST constraints before proceeding to the next step.",{"type":39,"tag":40,"props":1108,"children":1109},{},[1110,1112,1116],{"type":48,"value":1111},"When the user asks about chunking strategies, vector store selection, or other KB configuration choices, you MUST read ",{"type":39,"tag":151,"props":1113,"children":1114},{"href":870},[1115],{"type":48,"value":1104},{"type":48,"value":1117}," before responding — it contains the authoritative decision tables and constraints.",{"type":39,"tag":40,"props":1119,"children":1120},{},[1121,1123,1129],{"type":48,"value":1122},"When the user wants to query an existing Knowledge Base, you MUST read ",{"type":39,"tag":151,"props":1124,"children":1126},{"href":1125},"references\u002Fknowledge-bases-retrieval.md",[1127],{"type":48,"value":1128},"KB retrieval reference",{"type":48,"value":1130}," before responding. Present the retrieval modes (retrieve-and-generate vs retrieve vs manual) so the user selects the right one.",{"type":39,"tag":40,"props":1132,"children":1133},{},[1134,1135,1142],{"type":48,"value":678},{"type":39,"tag":151,"props":1136,"children":1139},{"href":1137,"rel":1138},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fknowledge-base.html",[155],[1140],{"type":48,"value":1141},"Bedrock Knowledge Base documentation",{"type":48,"value":1143}," for current configuration options.",{"type":39,"tag":53,"props":1145,"children":1147},{"id":1146},"common-workflows",[1148],{"type":48,"value":1149},"Common Workflows",{"type":39,"tag":40,"props":1151,"children":1152},{},[1153],{"type":48,"value":1154},"Execute commands using available tools from the AWS MCP server when connected — it provides sandboxed execution, audit logging, and observability. When the MCP server is not available, fall back to the AWS CLI or shell as needed.",{"type":39,"tag":40,"props":1156,"children":1157},{},[1158],{"type":48,"value":1159},"Before starting any workflow:",{"type":39,"tag":1161,"props":1162,"children":1164},"h3",{"id":1163},"verify-dependencies",[1165],{"type":48,"value":1166},"Verify Dependencies",{"type":39,"tag":40,"props":1168,"children":1169},{},[1170],{"type":48,"value":1171},"Check for required tools and inform the user about the execution environment.",{"type":39,"tag":40,"props":1173,"children":1174},{},[1175],{"type":39,"tag":44,"props":1176,"children":1177},{},[1178],{"type":48,"value":1179},"Constraints:",{"type":39,"tag":60,"props":1181,"children":1182},{},[1183,1188,1198,1203,1208],{"type":39,"tag":64,"props":1184,"children":1185},{},[1186],{"type":48,"value":1187},"You MUST check that the AWS CLI is available and configured with valid credentials",{"type":39,"tag":64,"props":1189,"children":1190},{},[1191,1193],{"type":48,"value":1192},"You MUST verify the AWS CLI version is recent (v2 recommended; older versions lack Converse API and AgentCore support): ",{"type":39,"tag":207,"props":1194,"children":1196},{"className":1195},[],[1197],{"type":48,"value":522},{"type":39,"tag":64,"props":1199,"children":1200},{},[1201],{"type":48,"value":1202},"You MUST check that the target AWS region has Bedrock model access enabled",{"type":39,"tag":64,"props":1204,"children":1205},{},[1206],{"type":48,"value":1207},"You MUST inform the user if any required tools are missing with a clear message",{"type":39,"tag":64,"props":1209,"children":1210},{},[1211],{"type":48,"value":1212},"You MUST ask the user if they want to proceed despite missing tools",{"type":39,"tag":40,"props":1214,"children":1215},{},[1216],{"type":39,"tag":44,"props":1217,"children":1218},{},[1219],{"type":48,"value":1220},"General constraints for all workflows:",{"type":39,"tag":60,"props":1222,"children":1223},{},[1224,1229,1234,1239,1244],{"type":39,"tag":64,"props":1225,"children":1226},{},[1227],{"type":48,"value":1228},"You MUST present an overview of what will be done before starting execution",{"type":39,"tag":64,"props":1230,"children":1231},{},[1232],{"type":48,"value":1233},"You MUST explain to the user what step is being executed and why before running each command",{"type":39,"tag":64,"props":1235,"children":1236},{},[1237],{"type":48,"value":1238},"You MUST respect the user's decision to stop or abort at any point",{"type":39,"tag":64,"props":1240,"children":1241},{},[1242],{"type":48,"value":1243},"You MUST NOT continue execution if the user indicates they want to stop",{"type":39,"tag":64,"props":1245,"children":1246},{},[1247],{"type":48,"value":1248},"You SHOULD confirm before proceeding with destructive or irreversible operations (deleting resources, overwriting configurations)",{"type":39,"tag":1161,"props":1250,"children":1252},{"id":1251},"examples-mapping-user-intent-to-workflows",[1253],{"type":48,"value":1254},"Examples — mapping user intent to workflows",{"type":39,"tag":40,"props":1256,"children":1257},{},[1258,1263,1265,1270,1272,1277,1279],{"type":39,"tag":44,"props":1259,"children":1260},{},[1261],{"type":48,"value":1262},"Example 1:",{"type":48,"value":1264},"\nUser query: \"I'm getting ThrottlingException on Bedrock\"\nAction: Check if ",{"type":39,"tag":207,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":48,"value":494},{"type":48,"value":1271}," is set explicitly — unset ",{"type":39,"tag":207,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":48,"value":494},{"type":48,"value":1278}," reserves far more quota than needed (see Critical Warnings). If already set, check current quota: ",{"type":39,"tag":207,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":48,"value":1284},"aws service-quotas get-service-quota --service-code bedrock --quota-code \u003Ccode> --region \u003Cregion>",{"type":39,"tag":40,"props":1286,"children":1287},{},[1288,1293,1295,1299],{"type":39,"tag":44,"props":1289,"children":1290},{},[1291],{"type":48,"value":1292},"Example 2:",{"type":48,"value":1294},"\nUser query: \"Set up RAG for my PDF documents\"\nAction: Follow the Create a Knowledge Base workflow. Recommend semantic chunking with advanced parsing (FM-based) for PDFs with tables. See ",{"type":39,"tag":151,"props":1296,"children":1297},{"href":870},[1298],{"type":48,"value":1104},{"type":48,"value":565},{"type":39,"tag":40,"props":1301,"children":1302},{},[1303,1308,1310,1315],{"type":39,"tag":44,"props":1304,"children":1305},{},[1306],{"type":48,"value":1307},"Example 3:",{"type":48,"value":1309},"\nUser query: \"I want to build an agent that can look up order status\"\nAction: Follow the Create an Agent with action groups workflow. See ",{"type":39,"tag":151,"props":1311,"children":1312},{"href":892},[1313],{"type":48,"value":1314},"agent creation procedure",{"type":48,"value":565},{"type":39,"tag":40,"props":1317,"children":1318},{},[1319,1324,1326,1331,1333,1339,1341,1347,1349],{"type":39,"tag":44,"props":1320,"children":1321},{},[1322],{"type":48,"value":1323},"Example 4:",{"type":48,"value":1325},"\nUser query: \"How do I call Claude on Bedrock?\"\nAction: Use the Converse API (not InvokeModel). Set ",{"type":39,"tag":207,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":48,"value":494},{"type":48,"value":1332}," explicitly. Verify the model ID is current with ",{"type":39,"tag":207,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":48,"value":1338},"aws bedrock list-foundation-models --region \u003Cregion>",{"type":48,"value":1340},". Use cross-region model ID with ",{"type":39,"tag":207,"props":1342,"children":1344},{"className":1343},[],[1345],{"type":48,"value":1346},"us.",{"type":48,"value":1348}," prefix for higher availability: ",{"type":39,"tag":207,"props":1350,"children":1352},{"className":1351},[],[1353],{"type":48,"value":1354},"aws bedrock-runtime converse --model-id us.anthropic.claude-sonnet-4-6 --messages '[{\"role\":\"user\",\"content\":[{\"text\":\"Hello\"}]}]' --inference-config '{\"maxTokens\":1024}'",{"type":39,"tag":40,"props":1356,"children":1357},{},[1358,1363],{"type":39,"tag":44,"props":1359,"children":1360},{},[1361],{"type":48,"value":1362},"Example 5:",{"type":48,"value":1364},"\nUser query: \"Deploy my agent to production\"\nAction: Follow the Deploy an agent to AgentCore workflow. Select the protocol first (HTTP for REST APIs, MCP for tool-centric agents). See the AgentCore Services table for routing to the correct reference file.",{"type":39,"tag":40,"props":1366,"children":1367},{},[1368,1373,1375,1380,1382,1388],{"type":39,"tag":44,"props":1369,"children":1370},{},[1371],{"type":48,"value":1372},"Example 6:",{"type":48,"value":1374},"\nUser query: \"Set up prompt caching for my Claude application\"\nAction: Read ",{"type":39,"tag":151,"props":1376,"children":1377},{"href":1021},[1378],{"type":48,"value":1379},"prompt caching reference",{"type":48,"value":1381}," for setup workflow, TTL configuration, and minimum token thresholds. Use the reference to verify caching is working (check for ",{"type":39,"tag":207,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":48,"value":1387},"cacheReadInputTokens",{"type":48,"value":1389}," in the response).",{"type":39,"tag":40,"props":1391,"children":1392},{},[1393,1398,1400,1405,1407,1412],{"type":39,"tag":44,"props":1394,"children":1395},{},[1396],{"type":48,"value":1397},"Example 7:",{"type":48,"value":1399},"\nUser query: \"I keep getting ThrottlingException even though I'm not making many requests\"\nAction: Check if ",{"type":39,"tag":207,"props":1401,"children":1403},{"className":1402},[],[1404],{"type":48,"value":494},{"type":48,"value":1406}," is set explicitly (see Critical Warnings). Read ",{"type":39,"tag":151,"props":1408,"children":1409},{"href":1043},[1410],{"type":48,"value":1411},"quota health reference",{"type":48,"value":1413}," for the maxTokens reservation mechanics, CloudWatch metrics, and audit workflow.",{"type":39,"tag":40,"props":1415,"children":1416},{},[1417,1422,1424,1429],{"type":39,"tag":44,"props":1418,"children":1419},{},[1420],{"type":48,"value":1421},"Example 8:",{"type":48,"value":1423},"\nUser query: \"How do I track Bedrock costs by team?\"\nAction: Read ",{"type":39,"tag":151,"props":1425,"children":1426},{"href":1065},[1427],{"type":48,"value":1428},"cost tracking reference",{"type":48,"value":1430}," for inference profile tagging, CUR 2.0 approaches, and Cost Explorer queries by model\u002Fregion\u002Ftag.",{"type":39,"tag":40,"props":1432,"children":1433},{},[1434,1439,1441,1446],{"type":39,"tag":44,"props":1435,"children":1436},{},[1437],{"type":48,"value":1438},"Example 9:",{"type":48,"value":1440},"\nUser query: \"I'm upgrading from Claude 4.5 to 4.6, what breaks?\"\nAction: Read ",{"type":39,"tag":151,"props":1442,"children":1443},{"href":1087},[1444],{"type":48,"value":1445},"model migration reference",{"type":48,"value":1447}," for the breaking changes table (prefill removal, thinking config, context window, cache thresholds) and migration checklist.",{"type":39,"tag":1161,"props":1449,"children":1451},{"id":1450},"invoke-a-model",[1452],{"type":48,"value":1453},"Invoke a model",{"type":39,"tag":1455,"props":1456,"children":1460},"pre",{"className":1457,"code":1459,"language":48},[1458],"language-text","- [ ] Step 1: Verify model access: `aws bedrock list-foundation-models --region us-east-1`\n- [ ] Step 2: Invoke: `aws bedrock-runtime converse --model-id `\u003Cmodel-id>` --messages '[{\"role\":\"user\",\"content\":[{\"text\":\"\u003Cprompt>\"}]}]' --inference-config '{\"maxTokens\":1024}'`\n",[1461],{"type":39,"tag":207,"props":1462,"children":1464},{"__ignoreMap":1463},"",[1465],{"type":48,"value":1459},{"type":39,"tag":1467,"props":1468,"children":1469},"blockquote",{},[1470,1504],{"type":39,"tag":40,"props":1471,"children":1472},{},[1473,1478,1480,1486,1488,1494,1496,1502],{"type":39,"tag":44,"props":1474,"children":1475},{},[1476],{"type":48,"value":1477},"Note — Streaming responses:",{"type":48,"value":1479}," The AWS CLI does not support streaming operations including ",{"type":39,"tag":207,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":48,"value":1485},"ConverseStream",{"type":48,"value":1487},". Use the SDK (",{"type":39,"tag":207,"props":1489,"children":1491},{"className":1490},[],[1492],{"type":48,"value":1493},"converse_stream()",{"type":48,"value":1495}," in boto3, ",{"type":39,"tag":207,"props":1497,"children":1499},{"className":1498},[],[1500],{"type":48,"value":1501},"ConverseStreamCommand",{"type":48,"value":1503}," in JS SDK).",{"type":39,"tag":216,"props":1505,"children":1506},{},[1507,1523],{"type":39,"tag":220,"props":1508,"children":1509},{},[1510],{"type":39,"tag":224,"props":1511,"children":1512},{},[1513,1518],{"type":39,"tag":228,"props":1514,"children":1515},{},[1516],{"type":48,"value":1517},"Mode",{"type":39,"tag":228,"props":1519,"children":1520},{},[1521],{"type":48,"value":1522},"When to use",{"type":39,"tag":244,"props":1524,"children":1525},{},[1526,1542],{"type":39,"tag":224,"props":1527,"children":1528},{},[1529,1537],{"type":39,"tag":251,"props":1530,"children":1531},{},[1532],{"type":39,"tag":44,"props":1533,"children":1534},{},[1535],{"type":48,"value":1536},"Converse",{"type":39,"tag":251,"props":1538,"children":1539},{},[1540],{"type":48,"value":1541},"Batch\u002Fbackend pipelines — single complete response, no stream handling required",{"type":39,"tag":224,"props":1543,"children":1544},{},[1545,1552],{"type":39,"tag":251,"props":1546,"children":1547},{},[1548],{"type":39,"tag":44,"props":1549,"children":1550},{},[1551],{"type":48,"value":1485},{"type":39,"tag":251,"props":1553,"children":1554},{},[1555],{"type":48,"value":1556},"Chat UIs\u002Finteractive apps — tokens delivered as they generate",{"type":39,"tag":1161,"props":1558,"children":1560},{"id":1559},"create-a-knowledge-base",[1561],{"type":48,"value":1562},"Create a Knowledge Base",{"type":39,"tag":40,"props":1564,"children":1565},{},[1566,1568,1572],{"type":48,"value":1567},"You MUST read ",{"type":39,"tag":151,"props":1569,"children":1570},{"href":870},[1571],{"type":48,"value":1104},{"type":48,"value":1573}," before responding. Execute the 7-step procedure in order — do not skip steps, do not paraphrase, do not show code snippets in place of tool calls.",{"type":39,"tag":1161,"props":1575,"children":1577},{"id":1576},"query-a-knowledge-base",[1578],{"type":48,"value":1579},"Query a Knowledge Base",{"type":39,"tag":40,"props":1581,"children":1582},{},[1583],{"type":48,"value":1584},"These three modes are mutually exclusive — select the one that matches the user's intent:",{"type":39,"tag":216,"props":1586,"children":1587},{},[1588,1608],{"type":39,"tag":220,"props":1589,"children":1590},{},[1591],{"type":39,"tag":224,"props":1592,"children":1593},{},[1594,1598,1603],{"type":39,"tag":228,"props":1595,"children":1596},{},[1597],{"type":48,"value":1517},{"type":39,"tag":228,"props":1599,"children":1600},{},[1601],{"type":48,"value":1602},"When to Use",{"type":39,"tag":228,"props":1604,"children":1605},{},[1606],{"type":48,"value":1607},"Command",{"type":39,"tag":244,"props":1609,"children":1610},{},[1611,1636,1661],{"type":39,"tag":224,"props":1612,"children":1613},{},[1614,1622,1627],{"type":39,"tag":251,"props":1615,"children":1616},{},[1617],{"type":39,"tag":44,"props":1618,"children":1619},{},[1620],{"type":48,"value":1621},"Retrieve & Generate",{"type":39,"tag":251,"props":1623,"children":1624},{},[1625],{"type":48,"value":1626},"Quick answer with citations — most common RAG pattern",{"type":39,"tag":251,"props":1628,"children":1629},{},[1630],{"type":39,"tag":207,"props":1631,"children":1633},{"className":1632},[],[1634],{"type":48,"value":1635},"aws bedrock-agent-runtime retrieve-and-generate --input '{\"text\":\"\u003Cquery>\"}' --retrieve-and-generate-configuration '{\"type\":\"KNOWLEDGE_BASE\",\"knowledgeBaseConfiguration\":{\"knowledgeBaseId\":\"\u003Ckb-id>\",\"modelArn\":\"\u003Cmodel-arn>\"}}'",{"type":39,"tag":224,"props":1637,"children":1638},{},[1639,1647,1652],{"type":39,"tag":251,"props":1640,"children":1641},{},[1642],{"type":39,"tag":44,"props":1643,"children":1644},{},[1645],{"type":48,"value":1646},"Retrieve only",{"type":39,"tag":251,"props":1648,"children":1649},{},[1650],{"type":48,"value":1651},"Raw chunks for custom post-processing or feeding to a different model",{"type":39,"tag":251,"props":1653,"children":1654},{},[1655],{"type":39,"tag":207,"props":1656,"children":1658},{"className":1657},[],[1659],{"type":48,"value":1660},"aws bedrock-agent-runtime retrieve --knowledge-base-id \u003Ckb-id> --retrieval-query '{\"text\":\"\u003Cquery>\"}'",{"type":39,"tag":224,"props":1662,"children":1663},{},[1664,1672,1677],{"type":39,"tag":251,"props":1665,"children":1666},{},[1667],{"type":39,"tag":44,"props":1668,"children":1669},{},[1670],{"type":48,"value":1671},"Full control",{"type":39,"tag":251,"props":1673,"children":1674},{},[1675],{"type":48,"value":1676},"Custom prompt, reranking, or multi-KB",{"type":39,"tag":251,"props":1678,"children":1679},{},[1680,1682],{"type":48,"value":1681},"Retrieve chunks first, then build prompt and call ",{"type":39,"tag":207,"props":1683,"children":1685},{"className":1684},[],[1686],{"type":48,"value":1687},"aws bedrock-runtime converse",{"type":39,"tag":1161,"props":1689,"children":1691},{"id":1690},"create-an-agent-with-action-groups",[1692],{"type":48,"value":1693},"Create an Agent with action groups",{"type":39,"tag":40,"props":1695,"children":1696},{},[1697,1698,1702,1704,1710],{"type":48,"value":1567},{"type":39,"tag":151,"props":1699,"children":1700},{"href":892},[1701],{"type":48,"value":1314},{"type":48,"value":1703}," before responding. Execute the procedure step by step. You MUST run ",{"type":39,"tag":207,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":48,"value":1709},"prepare-agent",{"type":48,"value":1711}," after any configuration change — this is mandatory and agents consistently skip it.",{"type":39,"tag":1161,"props":1713,"children":1715},{"id":1714},"apply-guardrails",[1716],{"type":48,"value":1717},"Apply Guardrails",{"type":39,"tag":40,"props":1719,"children":1720},{},[1721,1722,1727,1729,1735],{"type":48,"value":1567},{"type":39,"tag":151,"props":1723,"children":1724},{"href":914},[1725],{"type":48,"value":1726},"guardrails reference",{"type":48,"value":1728}," before responding. Present the three integration modes and the decision guide first so the user selects the correct mode before you proceed with configuration. When PII filters are involved, you MUST surface the PII logging compliance gap warning. Do not just show a ",{"type":39,"tag":207,"props":1730,"children":1732},{"className":1731},[],[1733],{"type":48,"value":1734},"guardrailConfig",{"type":48,"value":1736}," snippet — the user needs to understand which mode fits their use case.",{"type":39,"tag":1161,"props":1738,"children":1740},{"id":1739},"deploy-an-agent-to-agentcore",[1741],{"type":48,"value":1742},"Deploy an agent to AgentCore",{"type":39,"tag":40,"props":1744,"children":1745},{},[1746],{"type":48,"value":1747},"Identify the AgentCore service from the table below, then you MUST read the corresponding reference file before responding. Follow any procedures in the reference step by step. Do not summarize — execute.",{"type":39,"tag":1161,"props":1749,"children":1751},{"id":1750},"set-up-or-debug-prompt-caching",[1752],{"type":48,"value":1010},{"type":39,"tag":40,"props":1754,"children":1755},{},[1756,1757,1761],{"type":48,"value":1567},{"type":39,"tag":151,"props":1758,"children":1759},{"href":1021},[1760],{"type":48,"value":1379},{"type":48,"value":1762}," before responding. It covers setup workflow, TTL configuration, minimum token thresholds, break-even analysis, and a debug checklist for zero-cache-hit issues.",{"type":39,"tag":40,"props":1764,"children":1765},{},[1766],{"type":39,"tag":44,"props":1767,"children":1768},{},[1769],{"type":48,"value":1179},{"type":39,"tag":60,"props":1771,"children":1772},{},[1773,1778],{"type":39,"tag":64,"props":1774,"children":1775},{},[1776],{"type":48,"value":1777},"You MUST walk the user through the debug checklist when cache is not working (verify model support, token threshold, content identity, TTL, cache point placement)",{"type":39,"tag":64,"props":1779,"children":1780},{},[1781],{"type":48,"value":1782},"You MUST check minimum token thresholds per model before confirming a caching setup will work",{"type":39,"tag":1161,"props":1784,"children":1786},{"id":1785},"check-quota-health",[1787],{"type":48,"value":1788},"Check quota health",{"type":39,"tag":40,"props":1790,"children":1791},{},[1792,1793,1797],{"type":48,"value":1567},{"type":39,"tag":151,"props":1794,"children":1795},{"href":1043},[1796],{"type":48,"value":1411},{"type":48,"value":1798}," before responding. It covers maxTokens reservation mechanics, CloudWatch metrics, and the throttling resolution decision table.",{"type":39,"tag":40,"props":1800,"children":1801},{},[1802],{"type":39,"tag":44,"props":1803,"children":1804},{},[1805],{"type":48,"value":1179},{"type":39,"tag":60,"props":1807,"children":1808},{},[1809,1821],{"type":39,"tag":64,"props":1810,"children":1811},{},[1812,1814,1819],{"type":48,"value":1813},"You MUST explain the relationship between ",{"type":39,"tag":207,"props":1815,"children":1817},{"className":1816},[],[1818],{"type":48,"value":494},{"type":48,"value":1820}," and quota reservation",{"type":39,"tag":64,"props":1822,"children":1823},{},[1824,1826,1832,1833],{"type":48,"value":1825},"You MUST guide the user through comparing current limits vs peak usage using ",{"type":39,"tag":207,"props":1827,"children":1829},{"className":1828},[],[1830],{"type":48,"value":1831},"aws service-quotas",{"type":48,"value":196},{"type":39,"tag":207,"props":1834,"children":1836},{"className":1835},[],[1837],{"type":48,"value":1838},"aws cloudwatch get-metric-statistics",{"type":39,"tag":1161,"props":1840,"children":1842},{"id":1841},"analyze-bedrock-costs",[1843],{"type":48,"value":1844},"Analyze Bedrock costs",{"type":39,"tag":40,"props":1846,"children":1847},{},[1848,1849,1853],{"type":48,"value":1567},{"type":39,"tag":151,"props":1850,"children":1851},{"href":1065},[1852],{"type":48,"value":1428},{"type":48,"value":1854}," before responding. It covers inference profile tagging, CUR 2.0 attribution, and AWS Budgets setup.",{"type":39,"tag":40,"props":1856,"children":1857},{},[1858],{"type":39,"tag":44,"props":1859,"children":1860},{},[1861],{"type":48,"value":1179},{"type":39,"tag":60,"props":1863,"children":1864},{},[1865],{"type":39,"tag":64,"props":1866,"children":1867},{},[1868],{"type":48,"value":1869},"You MUST ask what time range, grouping, and cost attribution method the user needs before generating Cost Explorer queries",{"type":39,"tag":1161,"props":1871,"children":1873},{"id":1872},"migrate-between-claude-generations",[1874],{"type":48,"value":1076},{"type":39,"tag":40,"props":1876,"children":1877},{},[1878,1879,1883],{"type":48,"value":1567},{"type":39,"tag":151,"props":1880,"children":1881},{"href":1087},[1882],{"type":48,"value":1445},{"type":48,"value":1884}," before responding. It covers breaking changes between Claude 4.5, 4.6, and 4.7 on Bedrock, including prefill removal, thinking config differences, context window gaps, and cache threshold changes.",{"type":39,"tag":53,"props":1886,"children":1888},{"id":1887},"troubleshooting",[1889],{"type":48,"value":108},{"type":39,"tag":40,"props":1891,"children":1892},{},[1893],{"type":48,"value":1894},"When the user reports a Bedrock error, exception, or unexpected behavior, you MUST check this section and the Critical Warnings section before responding. Bedrock has service-specific root causes (e.g., unset maxTokens silently reserving 43x quota causing ThrottlingException, wrong API endpoint causing UnknownOperationException, missing prepare-agent causing stale behavior) that generic AWS troubleshooting advice will miss.",{"type":39,"tag":1161,"props":1896,"children":1898},{"id":1897},"accessdeniedexception",[1899],{"type":48,"value":1900},"AccessDeniedException",{"type":39,"tag":40,"props":1902,"children":1903},{},[1904,1906,1912,1913,1919,1921,1928,1930,1937],{"type":48,"value":1905},"Multiple possible causes: (1) IAM user\u002Frole lacks ",{"type":39,"tag":207,"props":1907,"children":1909},{"className":1908},[],[1910],{"type":48,"value":1911},"bedrock:InvokeModel",{"type":48,"value":598},{"type":39,"tag":207,"props":1914,"children":1916},{"className":1915},[],[1917],{"type":48,"value":1918},"bedrock:InvokeModelWithResponseStream",{"type":48,"value":1920}," permissions, (2) model access not enabled in the target region, (3) a service control policy (SCP) is blocking access (common with cross-region inference routing to a restricted region), (4) expired temporary credentials, or (5) IAM role propagation delay — if you just created an IAM role and immediately used it in a Bedrock API call, the role may not have propagated yet, as IAM changes are eventually consistent (see ",{"type":39,"tag":151,"props":1922,"children":1925},{"href":1923,"rel":1924},"https:\u002F\u002Fdocs.aws.amazon.com\u002FIAM\u002Flatest\u002FUserGuide\u002Ftroubleshoot_general.html#troubleshoot_general_eventual-consistency",[155],[1926],{"type":48,"value":1927},"IAM eventual consistency",{"type":48,"value":1929},"). Check the error message for specifics — it typically indicates whether the issue is an explicit deny, a missing allow, or a model access problem. See ",{"type":39,"tag":151,"props":1931,"children":1934},{"href":1932,"rel":1933},"https:\u002F\u002Frepost.aws\u002Fknowledge-center\u002Fbedrock-invokemodel-api-error",[155],[1935],{"type":48,"value":1936},"Resolve InvokeModel API errors",{"type":48,"value":1938}," for detailed resolution steps.",{"type":39,"tag":1161,"props":1940,"children":1942},{"id":1941},"malformed-input-request",[1943],{"type":48,"value":1944},"Malformed input request",{"type":39,"tag":40,"props":1946,"children":1947},{},[1948],{"type":48,"value":1949},"Request body doesn't match the expected schema. Common causes: wrong provider-specific body format for InvokeModel (e.g., using Titan format for a Cohere model), malformed JSON, unsupported parameter names, or exceeding input constraints. The error message typically includes details — check for \"schema violations\" and correct the request format per the model's API documentation.",{"type":39,"tag":1161,"props":1951,"children":1953},{"id":1952},"throttlingexception",[1954],{"type":48,"value":1955},"ThrottlingException",{"type":39,"tag":40,"props":1957,"children":1958},{},[1959,1961,1966,1968,1973,1974,1980,1981,1987,1989,1995,1997,2004,2006,2012,2014,2018],{"type":48,"value":1960},"Set ",{"type":39,"tag":207,"props":1962,"children":1964},{"className":1963},[],[1965],{"type":48,"value":494},{"type":48,"value":1967}," explicitly — unset values default to the model's maximum and silently reserve far more quota than needed. Use adaptive retry mode. Use cross-region inference profiles (e.g., ",{"type":39,"tag":207,"props":1969,"children":1971},{"className":1970},[],[1972],{"type":48,"value":1346},{"type":48,"value":636},{"type":39,"tag":207,"props":1975,"children":1977},{"className":1976},[],[1978],{"type":48,"value":1979},"eu.",{"type":48,"value":636},{"type":39,"tag":207,"props":1982,"children":1984},{"className":1983},[],[1985],{"type":48,"value":1986},"apac.",{"type":48,"value":1988},", or ",{"type":39,"tag":207,"props":1990,"children":1992},{"className":1991},[],[1993],{"type":48,"value":1994},"global.",{"type":48,"value":1996}," prefix — see ",{"type":39,"tag":151,"props":1998,"children":2001},{"href":1999,"rel":2000},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Finference-profiles-support.html",[155],[2002],{"type":48,"value":2003},"Supported inference profiles",{"type":48,"value":2005}," for the full list) to distribute traffic across regions for higher throughput. Check limits: ",{"type":39,"tag":207,"props":2007,"children":2009},{"className":2008},[],[2010],{"type":48,"value":2011},"aws service-quotas get-service-quota --service-code bedrock --quota-code \u003Ccode>",{"type":48,"value":2013},". Request quota increases if needed. For a deeper audit, read ",{"type":39,"tag":151,"props":2015,"children":2016},{"href":1043},[2017],{"type":48,"value":1411},{"type":48,"value":565},{"type":39,"tag":1161,"props":2020,"children":2022},{"id":2021},"prompt-cache-not-working-zero-cachereadinputtokens",[2023],{"type":48,"value":2024},"Prompt cache not working (zero cacheReadInputTokens)",{"type":39,"tag":40,"props":2026,"children":2027},{},[2028,2030,2034],{"type":48,"value":2029},"Read ",{"type":39,"tag":151,"props":2031,"children":2032},{"href":1021},[2033],{"type":48,"value":1379},{"type":48,"value":2035}," for the diagnostic checklist: verify model support, token threshold, content identity, TTL, and cache point placement. Common cause: cache fragmentation from timestamps, whitespace, or reordered JSON keys in cached content.",{"type":39,"tag":1161,"props":2037,"children":2039},{"id":2038},"_400-error-on-prefill-with-claude-46",[2040],{"type":48,"value":2041},"400 error on prefill with Claude 4.6",{"type":39,"tag":40,"props":2043,"children":2044},{},[2045,2047,2051],{"type":48,"value":2046},"Prefill was removed in Claude 4.6 and causes a hard 400 error. Read ",{"type":39,"tag":151,"props":2048,"children":2049},{"href":1087},[2050],{"type":48,"value":1445},{"type":48,"value":2052}," for the full list of breaking changes between Claude generations.",{"type":39,"tag":1161,"props":2054,"children":2056},{"id":2055},"error-retry-classification",[2057],{"type":48,"value":2058},"Error retry classification",{"type":39,"tag":216,"props":2060,"children":2061},{},[2062,2078],{"type":39,"tag":220,"props":2063,"children":2064},{},[2065],{"type":39,"tag":224,"props":2066,"children":2067},{},[2068,2073],{"type":39,"tag":228,"props":2069,"children":2070},{},[2071],{"type":48,"value":2072},"Retry",{"type":39,"tag":228,"props":2074,"children":2075},{},[2076],{"type":48,"value":2077},"Do NOT retry",{"type":39,"tag":244,"props":2079,"children":2080},{},[2081,2093,2105,2118],{"type":39,"tag":224,"props":2082,"children":2083},{},[2084,2088],{"type":39,"tag":251,"props":2085,"children":2086},{},[2087],{"type":48,"value":1955},{"type":39,"tag":251,"props":2089,"children":2090},{},[2091],{"type":48,"value":2092},"ValidationException",{"type":39,"tag":224,"props":2094,"children":2095},{},[2096,2101],{"type":39,"tag":251,"props":2097,"children":2098},{},[2099],{"type":48,"value":2100},"ModelTimeoutException",{"type":39,"tag":251,"props":2102,"children":2103},{},[2104],{"type":48,"value":1900},{"type":39,"tag":224,"props":2106,"children":2107},{},[2108,2113],{"type":39,"tag":251,"props":2109,"children":2110},{},[2111],{"type":48,"value":2112},"ServiceUnavailableException",{"type":39,"tag":251,"props":2114,"children":2115},{},[2116],{"type":48,"value":2117},"ResourceNotFoundException",{"type":39,"tag":224,"props":2119,"children":2120},{},[2121,2126],{"type":39,"tag":251,"props":2122,"children":2123},{},[2124],{"type":48,"value":2125},"InternalServerException",{"type":39,"tag":251,"props":2127,"children":2128},{},[],{"type":39,"tag":40,"props":2130,"children":2131},{},[2132,2134,2140],{"type":48,"value":2133},"Use adaptive retry: ",{"type":39,"tag":207,"props":2135,"children":2137},{"className":2136},[],[2138],{"type":48,"value":2139},"Config(retries={\"max_attempts\": 5, \"mode\": \"adaptive\"})",{"type":48,"value":565},{"type":39,"tag":1161,"props":2142,"children":2144},{"id":2143},"unknownoperationexception",[2145],{"type":48,"value":2146},"UnknownOperationException",{"type":39,"tag":40,"props":2148,"children":2149},{},[2150,2152,2157,2159,2164],{"type":48,"value":2151},"Wrong client (using ",{"type":39,"tag":207,"props":2153,"children":2155},{"className":2154},[],[2156],{"type":48,"value":259},{"type":48,"value":2158}," instead of ",{"type":39,"tag":207,"props":2160,"children":2162},{"className":2161},[],[2163],{"type":48,"value":281},{"type":48,"value":2165},"), or SDK too old. Check the API landscape table above.",{"type":39,"tag":1161,"props":2167,"children":2169},{"id":2168},"agent-returns-stale-behavior",[2170],{"type":48,"value":2171},"Agent returns stale behavior",{"type":39,"tag":40,"props":2173,"children":2174},{},[2175,2177,2182],{"type":48,"value":2176},"Run ",{"type":39,"tag":207,"props":2178,"children":2180},{"className":2179},[],[2181],{"type":48,"value":1709},{"type":48,"value":2183}," after ANY configuration change. This is mandatory.",{"type":39,"tag":1161,"props":2185,"children":2187},{"id":2186},"kb-returns-empty-results",[2188],{"type":48,"value":2189},"KB returns empty results",{"type":39,"tag":40,"props":2191,"children":2192},{},[2193,2194,2200],{"type":48,"value":2176},{"type":39,"tag":207,"props":2195,"children":2197},{"className":2196},[],[2198],{"type":48,"value":2199},"start-ingestion-job",{"type":48,"value":2201}," and wait for completion. Query before ingestion completes returns empty.",{"type":39,"tag":1161,"props":2203,"children":2205},{"id":2204},"kb-retrieval-quality-is-poor",[2206],{"type":48,"value":2207},"KB retrieval quality is poor",{"type":39,"tag":40,"props":2209,"children":2210},{},[2211],{"type":48,"value":2212},"Review chunking strategy. Use advanced parsing (FM-based) for documents with tables. Configure metadata filtering.",{"type":39,"tag":1161,"props":2214,"children":2216},{"id":2215},"cross-region-model-not-found",[2217],{"type":48,"value":2218},"Cross-region model not found",{"type":39,"tag":40,"props":2220,"children":2221},{},[2222,2224,2231,2233,2238],{"type":48,"value":2223},"The model may not be available in the region you're calling from. Check availability at ",{"type":39,"tag":151,"props":2225,"children":2228},{"href":2226,"rel":2227},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fmodels-supported.html",[155],[2229],{"type":48,"value":2230},"Supported foundation models",{"type":48,"value":2232},". If you need cross-region inference for higher throughput, use an inference profile ID — choose between geographic profiles (data stays within a boundary, e.g. US, EU) or global profiles (any commercial region). The profile prefix is a data residency decision. See ",{"type":39,"tag":151,"props":2234,"children":2236},{"href":1999,"rel":2235},[155],[2237],{"type":48,"value":2003},{"type":48,"value":2239}," for available profiles and source\u002Fdestination region mappings.",{"type":39,"tag":1161,"props":2241,"children":2243},{"id":2242},"on-demand-throughput-isnt-supported",[2244],{"type":48,"value":2245},"On-demand throughput isn't supported",{"type":39,"tag":40,"props":2247,"children":2248},{},[2249,2251,2265,2267,2273,2275,2280,2282,2288,2290,2295],{"type":48,"value":2250},"Error: ",{"type":39,"tag":2252,"props":2253,"children":2254},"em",{},[2255,2257,2263],{"type":48,"value":2256},"\"Invocation of model ID ",{"type":39,"tag":207,"props":2258,"children":2260},{"className":2259},[],[2261],{"type":48,"value":2262},"\u003Cmodel-id>",{"type":48,"value":2264}," with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model.\"",{"type":48,"value":2266}," Certain models do not support direct on-demand invocation with base model IDs — they require an inference profile ID instead. Fix: find the inference profile ID for the model using ",{"type":39,"tag":207,"props":2268,"children":2270},{"className":2269},[],[2271],{"type":48,"value":2272},"aws bedrock list-inference-profiles --region \u003Cregion>",{"type":48,"value":2274},", then update the agent or invocation to use the inference profile ID. See ",{"type":39,"tag":151,"props":2276,"children":2278},{"href":1999,"rel":2277},[155],[2279],{"type":48,"value":2003},{"type":48,"value":2281}," for available profiles. If this occurs during agent invocation, update the agent's ",{"type":39,"tag":207,"props":2283,"children":2285},{"className":2284},[],[2286],{"type":48,"value":2287},"foundationModel",{"type":48,"value":2289}," to the inference profile ID and re-run ",{"type":39,"tag":207,"props":2291,"children":2293},{"className":2292},[],[2294],{"type":48,"value":1709},{"type":48,"value":565},{"type":39,"tag":1161,"props":2297,"children":2299},{"id":2298},"kb-storage-configuration-invalid",[2300],{"type":48,"value":2301},"KB storage configuration invalid",{"type":39,"tag":40,"props":2303,"children":2304},{},[2305],{"type":48,"value":2306},"Verify OpenSearch data access policy includes Bedrock service role. Verify vector index field names match KB config.",{"type":39,"tag":1161,"props":2308,"children":2310},{"id":2309},"agent-action-group-errors",[2311],{"type":48,"value":2312},"Agent action group errors",{"type":39,"tag":40,"props":2314,"children":2315},{},[2316,2318,2324,2326,2332],{"type":48,"value":2317},"Check Lambda permissions (resource-based policy for bedrock.amazonaws.com). Do NOT use double underscores (",{"type":39,"tag":207,"props":2319,"children":2321},{"className":2320},[],[2322],{"type":48,"value":2323},"__",{"type":48,"value":2325},") in action group names — the name pattern is ",{"type":39,"tag":207,"props":2327,"children":2329},{"className":2328},[],[2330],{"type":48,"value":2331},"([0-9a-zA-Z][_-]?){1,100}",{"type":48,"value":565},{"type":39,"tag":1161,"props":2334,"children":2336},{"id":2335},"multi-agent-supervisor-loops",[2337],{"type":48,"value":2338},"Multi-agent supervisor loops",{"type":39,"tag":40,"props":2340,"children":2341},{},[2342],{"type":48,"value":2343},"Agents use built-in collaboration mechanism, NOT action groups. Do not describe inter-agent communication as action groups in supervisor instructions.",{"type":39,"tag":1161,"props":2345,"children":2347},{"id":2346},"invalid_payment_instrument-on-model-access",[2348],{"type":48,"value":2349},"INVALID_PAYMENT_INSTRUMENT on model access",{"type":39,"tag":40,"props":2351,"children":2352},{},[2353],{"type":48,"value":2354},"Account billing issue, not Bedrock. Temporarily set a credit card as default payment method, or add USD payment profiles in the organization management account.",{"type":39,"tag":1161,"props":2356,"children":2358},{"id":2357},"knowledge-base-ingestion-failures",[2359],{"type":48,"value":2360},"Knowledge base ingestion failures",{"type":39,"tag":40,"props":2362,"children":2363},{},[2364,2366,2372,2373,2379],{"type":48,"value":2365},"Check S3 permissions — KB service role needs ",{"type":39,"tag":207,"props":2367,"children":2369},{"className":2368},[],[2370],{"type":48,"value":2371},"s3:GetObject",{"type":48,"value":196},{"type":39,"tag":207,"props":2374,"children":2376},{"className":2375},[],[2377],{"type":48,"value":2378},"s3:ListBucket",{"type":48,"value":2380},". Unsupported file formats are silently skipped. Files exceeding size limits are skipped without error.",{"type":39,"tag":1161,"props":2382,"children":2384},{"id":2383},"sharepoint-data-source-sync-failures",[2385],{"type":48,"value":2386},"SharePoint data source sync failures",{"type":39,"tag":40,"props":2388,"children":2389},{},[2390,2392,2399],{"type":48,"value":2391},"Sync completes but files fail. For OAuth 2.0 auth (not recommended): requires SharePoint AllSites.Read (Delegated) permission — you may also need to disable Security Defaults and MFA for the service account so Amazon Bedrock is not blocked from crawling. For SharePoint App-Only auth (recommended): configure APP permissions via SharePoint App-Only grant flow. See the ",{"type":39,"tag":151,"props":2393,"children":2396},{"href":2394,"rel":2395},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fsharepoint-data-source-connector.html",[155],[2397],{"type":48,"value":2398},"SharePoint connector docs",{"type":48,"value":2400}," for current requirements.",{"type":39,"tag":53,"props":2402,"children":2404},{"id":2403},"agentcore-services",[2405],{"type":48,"value":113},{"type":39,"tag":40,"props":2407,"children":2408},{},[2409],{"type":48,"value":2410},"You MUST read the linked reference file for the relevant service before responding to any AgentCore question. Follow procedures in the reference step by step.",{"type":39,"tag":216,"props":2412,"children":2413},{},[2414,2433],{"type":39,"tag":220,"props":2415,"children":2416},{},[2417],{"type":39,"tag":224,"props":2418,"children":2419},{},[2420,2425,2429],{"type":39,"tag":228,"props":2421,"children":2422},{},[2423],{"type":48,"value":2424},"Service",{"type":39,"tag":228,"props":2426,"children":2427},{},[2428],{"type":48,"value":242},{"type":39,"tag":228,"props":2430,"children":2431},{},[2432],{"type":48,"value":826},{"type":39,"tag":244,"props":2434,"children":2435},{},[2436,2460,2484,2509,2534,2559,2586,2611,2634,2659,2682,2700],{"type":39,"tag":224,"props":2437,"children":2438},{},[2439,2447,2452],{"type":39,"tag":251,"props":2440,"children":2441},{},[2442],{"type":39,"tag":44,"props":2443,"children":2444},{},[2445],{"type":48,"value":2446},"Gateway",{"type":39,"tag":251,"props":2448,"children":2449},{},[2450],{"type":48,"value":2451},"Expose APIs, Lambda functions, or existing MCP servers as tools for agents",{"type":39,"tag":251,"props":2453,"children":2454},{},[2455],{"type":39,"tag":151,"props":2456,"children":2457},{"href":978},[2458],{"type":48,"value":2459},"gateway procedure",{"type":39,"tag":224,"props":2461,"children":2462},{},[2463,2471,2476],{"type":39,"tag":251,"props":2464,"children":2465},{},[2466],{"type":39,"tag":44,"props":2467,"children":2468},{},[2469],{"type":48,"value":2470},"Runtime",{"type":39,"tag":251,"props":2472,"children":2473},{},[2474],{"type":48,"value":2475},"Deploy and scale agents and tools (serverless, any framework)",{"type":39,"tag":251,"props":2477,"children":2478},{},[2479],{"type":39,"tag":151,"props":2480,"children":2481},{"href":936},[2482],{"type":48,"value":2483},"runtime procedure",{"type":39,"tag":224,"props":2485,"children":2486},{},[2487,2495,2500],{"type":39,"tag":251,"props":2488,"children":2489},{},[2490],{"type":39,"tag":44,"props":2491,"children":2492},{},[2493],{"type":48,"value":2494},"Runtime Container",{"type":39,"tag":251,"props":2496,"children":2497},{},[2498],{"type":48,"value":2499},"Build ARM64 containers for Runtime",{"type":39,"tag":251,"props":2501,"children":2502},{},[2503],{"type":39,"tag":151,"props":2504,"children":2506},{"href":2505},"references\u002Fagentcore-runtime-container-build.md",[2507],{"type":48,"value":2508},"container build procedure",{"type":39,"tag":224,"props":2510,"children":2511},{},[2512,2520,2525],{"type":39,"tag":251,"props":2513,"children":2514},{},[2515],{"type":39,"tag":44,"props":2516,"children":2517},{},[2518],{"type":48,"value":2519},"Memory",{"type":39,"tag":251,"props":2521,"children":2522},{},[2523],{"type":48,"value":2524},"Short-term (multi-turn) and long-term (cross-session) agent memory; share memory across agents",{"type":39,"tag":251,"props":2526,"children":2527},{},[2528],{"type":39,"tag":151,"props":2529,"children":2531},{"href":2530},"references\u002Fagentcore-memory-observability.md",[2532],{"type":48,"value":2533},"memory & observability",{"type":39,"tag":224,"props":2535,"children":2536},{},[2537,2545,2550],{"type":39,"tag":251,"props":2538,"children":2539},{},[2540],{"type":39,"tag":44,"props":2541,"children":2542},{},[2543],{"type":48,"value":2544},"Identity",{"type":39,"tag":251,"props":2546,"children":2547},{},[2548],{"type":48,"value":2549},"Agent authentication with external IdPs (Okta, Entra ID, Cognito); act on behalf of users",{"type":39,"tag":251,"props":2551,"children":2552},{},[2553],{"type":39,"tag":151,"props":2554,"children":2556},{"href":2555},"references\u002Fagentcore-credentials-and-security.md",[2557],{"type":48,"value":2558},"credentials & security",{"type":39,"tag":224,"props":2560,"children":2561},{},[2562,2570,2575],{"type":39,"tag":251,"props":2563,"children":2564},{},[2565],{"type":39,"tag":44,"props":2566,"children":2567},{},[2568],{"type":48,"value":2569},"Policy",{"type":39,"tag":251,"props":2571,"children":2572},{},[2573],{"type":48,"value":2574},"Enforce agent boundaries with natural language or Cedar rules; intercepts Gateway tool calls",{"type":39,"tag":251,"props":2576,"children":2577},{},[2578,2579],{"type":48,"value":678},{"type":39,"tag":151,"props":2580,"children":2583},{"href":2581,"rel":2582},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock-agentcore\u002Flatest\u002Fdevguide\u002Fpolicy.html",[155],[2584],{"type":48,"value":2585},"AWS documentation on AgentCore Policy",{"type":39,"tag":224,"props":2587,"children":2588},{},[2589,2597,2602],{"type":39,"tag":251,"props":2590,"children":2591},{},[2592],{"type":39,"tag":44,"props":2593,"children":2594},{},[2595],{"type":48,"value":2596},"Payments",{"type":39,"tag":251,"props":2598,"children":2599},{},[2600],{"type":48,"value":2601},"Enable agents to pay for x402-protected APIs, MCP tools, and content via microtransactions (Coinbase CDP, Stripe Privy)",{"type":39,"tag":251,"props":2603,"children":2604},{},[2605],{"type":39,"tag":151,"props":2606,"children":2608},{"href":2607},"references\u002Fagentcore-payments.md",[2609],{"type":48,"value":2610},"payments procedure",{"type":39,"tag":224,"props":2612,"children":2613},{},[2614,2622,2627],{"type":39,"tag":251,"props":2615,"children":2616},{},[2617],{"type":39,"tag":44,"props":2618,"children":2619},{},[2620],{"type":48,"value":2621},"Observability",{"type":39,"tag":251,"props":2623,"children":2624},{},[2625],{"type":48,"value":2626},"Trace, debug, and monitor agent execution (OTEL, CloudWatch)",{"type":39,"tag":251,"props":2628,"children":2629},{},[2630],{"type":39,"tag":151,"props":2631,"children":2632},{"href":2530},[2633],{"type":48,"value":2533},{"type":39,"tag":224,"props":2635,"children":2636},{},[2637,2645,2650],{"type":39,"tag":251,"props":2638,"children":2639},{},[2640],{"type":39,"tag":44,"props":2641,"children":2642},{},[2643],{"type":48,"value":2644},"Registry",{"type":39,"tag":251,"props":2646,"children":2647},{},[2648],{"type":48,"value":2649},"Catalog and discover agents, MCP servers, tools, and skills across your org",{"type":39,"tag":251,"props":2651,"children":2652},{},[2653],{"type":39,"tag":151,"props":2654,"children":2656},{"href":2655},"references\u002Fagentcore-registry-evaluations.md",[2657],{"type":48,"value":2658},"registry & evaluations",{"type":39,"tag":224,"props":2660,"children":2661},{},[2662,2670,2675],{"type":39,"tag":251,"props":2663,"children":2664},{},[2665],{"type":39,"tag":44,"props":2666,"children":2667},{},[2668],{"type":48,"value":2669},"Evaluations",{"type":39,"tag":251,"props":2671,"children":2672},{},[2673],{"type":48,"value":2674},"Automated agent quality assessment (LLM-as-a-Judge)",{"type":39,"tag":251,"props":2676,"children":2677},{},[2678],{"type":39,"tag":151,"props":2679,"children":2680},{"href":2655},[2681],{"type":48,"value":2658},{"type":39,"tag":224,"props":2683,"children":2684},{},[2685,2690,2695],{"type":39,"tag":251,"props":2686,"children":2687},{},[2688],{"type":48,"value":2689},"Code Interpreter",{"type":39,"tag":251,"props":2691,"children":2692},{},[2693],{"type":48,"value":2694},"Secure sandbox code execution for agents",{"type":39,"tag":251,"props":2696,"children":2697},{},[2698],{"type":48,"value":2699},"Refer to the latest AWS documentation on AgentCore Code Interpreter",{"type":39,"tag":224,"props":2701,"children":2702},{},[2703,2708,2713],{"type":39,"tag":251,"props":2704,"children":2705},{},[2706],{"type":48,"value":2707},"Browser",{"type":39,"tag":251,"props":2709,"children":2710},{},[2711],{"type":48,"value":2712},"Web automation (navigate, fill forms, extract data)",{"type":39,"tag":251,"props":2714,"children":2715},{},[2716],{"type":48,"value":2717},"Refer to the latest AWS documentation on AgentCore Browser",{"type":39,"tag":53,"props":2719,"children":2721},{"id":2720},"model-selection",[2722],{"type":48,"value":118},{"type":39,"tag":40,"props":2724,"children":2725},{},[2726,2728,2733],{"type":48,"value":2727},"When the user asks which model to use, compares models, or asks about Claude\u002FLlama\u002FNova\u002FTitan on Bedrock, you MUST read ",{"type":39,"tag":151,"props":2729,"children":2730},{"href":999},[2731],{"type":48,"value":2732},"model selection guide",{"type":48,"value":2734}," before responding. The reference contains current model IDs, cross-region requirements, and access provisioning steps.",{"type":39,"tag":40,"props":2736,"children":2737},{},[2738,2740,2745],{"type":48,"value":2739},"Quick defaults (verify current availability: ",{"type":39,"tag":207,"props":2741,"children":2743},{"className":2742},[],[2744],{"type":48,"value":1338},{"type":48,"value":2746},"):",{"type":39,"tag":60,"props":2748,"children":2749},{},[2750,2760,2770,2780,2790],{"type":39,"tag":64,"props":2751,"children":2752},{},[2753,2758],{"type":39,"tag":44,"props":2754,"children":2755},{},[2756],{"type":48,"value":2757},"General purpose",{"type":48,"value":2759},": Claude Sonnet (best quality\u002Fcost balance)",{"type":39,"tag":64,"props":2761,"children":2762},{},[2763,2768],{"type":39,"tag":44,"props":2764,"children":2765},{},[2766],{"type":48,"value":2767},"Fast + cheap",{"type":48,"value":2769},": Claude Haiku or Nova Micro",{"type":39,"tag":64,"props":2771,"children":2772},{},[2773,2778],{"type":39,"tag":44,"props":2774,"children":2775},{},[2776],{"type":48,"value":2777},"Embeddings for KB",{"type":48,"value":2779},": Titan Embeddings V2",{"type":39,"tag":64,"props":2781,"children":2782},{},[2783,2788],{"type":39,"tag":44,"props":2784,"children":2785},{},[2786],{"type":48,"value":2787},"Open-source \u002F fine-tuning",{"type":48,"value":2789},": Llama",{"type":39,"tag":64,"props":2791,"children":2792},{},[2793,2798],{"type":39,"tag":44,"props":2794,"children":2795},{},[2796],{"type":48,"value":2797},"Image generation",{"type":48,"value":2799},": Titan Image Generator",{"type":39,"tag":40,"props":2801,"children":2802},{},[2803,2805,2811,2813,2818],{"type":48,"value":2804},"For current model IDs, regional availability, cross-region inference profiles, and supported features, refer to ",{"type":39,"tag":151,"props":2806,"children":2808},{"href":2226,"rel":2807},[155],[2809],{"type":48,"value":2810},"Supported foundation models in Amazon Bedrock",{"type":48,"value":2812},". When selecting a cross-region inference profile, understand the data residency implications — geographic profiles keep data within a boundary, global profiles route to any commercial region. Also check ",{"type":39,"tag":207,"props":2814,"children":2816},{"className":2815},[],[2817],{"type":48,"value":1338},{"type":48,"value":2819}," for runtime availability.",{"type":39,"tag":40,"props":2821,"children":2822},{},[2823,2825,2829],{"type":48,"value":2824},"For model ID formats (4 patterns), access provisioning, and selection criteria, see ",{"type":39,"tag":151,"props":2826,"children":2827},{"href":999},[2828],{"type":48,"value":2732},{"type":48,"value":565},{"type":39,"tag":53,"props":2831,"children":2833},{"id":2832},"additional-resources",[2834],{"type":48,"value":123},{"type":39,"tag":60,"props":2836,"children":2837},{},[2838,2848,2858,2868,2877,2887,2897,2907,2916,2926,2936],{"type":39,"tag":64,"props":2839,"children":2840},{},[2841],{"type":39,"tag":151,"props":2842,"children":2845},{"href":2843,"rel":2844},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fwhat-is-bedrock.html",[155],[2846],{"type":48,"value":2847},"Amazon Bedrock User Guide",{"type":39,"tag":64,"props":2849,"children":2850},{},[2851],{"type":39,"tag":151,"props":2852,"children":2855},{"href":2853,"rel":2854},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002FAPIReference\u002Fwelcome.html",[155],[2856],{"type":48,"value":2857},"Amazon Bedrock API Reference",{"type":39,"tag":64,"props":2859,"children":2860},{},[2861],{"type":39,"tag":151,"props":2862,"children":2865},{"href":2863,"rel":2864},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock-agentcore\u002Flatest\u002Fdevguide\u002Fwhat-is-bedrock-agentcore.html",[155],[2866],{"type":48,"value":2867},"Amazon Bedrock AgentCore User Guide",{"type":39,"tag":64,"props":2869,"children":2870},{},[2871],{"type":39,"tag":151,"props":2872,"children":2874},{"href":551,"rel":2873},[155],[2875],{"type":48,"value":2876},"Bedrock Agents Classic Maintenance mode Announcement",{"type":39,"tag":64,"props":2878,"children":2879},{},[2880],{"type":39,"tag":151,"props":2881,"children":2884},{"href":2882,"rel":2883},"https:\u002F\u002Faws.amazon.com\u002Fbedrock\u002Fpricing\u002F",[155],[2885],{"type":48,"value":2886},"Bedrock Pricing",{"type":39,"tag":64,"props":2888,"children":2889},{},[2890],{"type":39,"tag":151,"props":2891,"children":2894},{"href":2892,"rel":2893},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fquotas.html",[155],[2895],{"type":48,"value":2896},"Bedrock Quotas and Limits",{"type":39,"tag":64,"props":2898,"children":2899},{},[2900],{"type":39,"tag":151,"props":2901,"children":2904},{"href":2902,"rel":2903},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fbedrock-regions.html",[155],[2905],{"type":48,"value":2906},"Bedrock Supported Regions",{"type":39,"tag":64,"props":2908,"children":2909},{},[2910],{"type":39,"tag":151,"props":2911,"children":2913},{"href":681,"rel":2912},[155],[2914],{"type":48,"value":2915},"Bedrock Security Best Practices",{"type":39,"tag":64,"props":2917,"children":2918},{},[2919],{"type":39,"tag":151,"props":2920,"children":2923},{"href":2921,"rel":2922},"https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fprompt-caching.html",[155],[2924],{"type":48,"value":2925},"Prompt Caching Documentation",{"type":39,"tag":64,"props":2927,"children":2928},{},[2929],{"type":39,"tag":151,"props":2930,"children":2933},{"href":2931,"rel":2932},"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Famazon-bedrock-samples\u002Ftree\u002Fmain\u002Fintroduction-to-bedrock\u002Fprompt-caching",[155],[2934],{"type":48,"value":2935},"Prompt Caching Code Samples",{"type":39,"tag":64,"props":2937,"children":2938},{},[2939],{"type":39,"tag":151,"props":2940,"children":2943},{"href":2941,"rel":2942},"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fmachine-learning\u002Ftrack-allocate-and-manage-your-generative-ai-cost-and-usage-with-amazon-bedrock\u002F",[155],[2944],{"type":48,"value":2945},"Cost Allocation Tags Blog",{"items":2947,"total":3109},[2948,2963,2978,2992,3007,3017,3032,3048,3065,3078,3084,3099],{"slug":2949,"name":2949,"fn":2950,"description":2951,"org":2952,"tags":2953,"stars":21,"repoUrl":22,"updatedAt":2962},"agents-build","add capabilities to existing agent projects","Use when adding capabilities to an existing agent project — memory, app integration, VPC, multi-agent, migration, model changes, browser, code interpreter, or resource removal. Triggers on: \"add memory\", \"remember across sessions\", \"call agent from app\", \"invoke agent from code\", \"auth to call agent\", \"streaming responses\", \"VPC\", \"VPC connectivity\", \"VPC error\", \"can't reach from VPC\", \"multi-agent\", \"A2A\", \"A2A auth\", \"orchestrator not delegating\", \"specialist not called\", \"migrate Bedrock Agent\", \"after import\", \"migration issue\", \"framework for migration\", \"change model\", \"browser tool\", \"code interpreter\", \"delete agent\", \"tear down\", \"agentcore remove\", \"cross-account memory\", \"resource-based policy on memory\", \"pay for x402 content\", \"402 Payment Required\", \"microtransactions\", \"paid API or tool\". Not for connecting to external APIs via Gateway — use agents-connect. Not for scaffolding a new project — use agents-get-started. Not for CLI\u002Fdev server errors — use agents-debug. Strands vs LangGraph in a migration context routes here.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2954,2955,2958,2959],{"name":17,"slug":18,"type":15},{"name":2956,"slug":2957,"type":15},"Automation","automation",{"name":20,"slug":8,"type":15},{"name":2960,"slug":2961,"type":15},"Engineering","engineering","2026-07-12T08:42:53.812877",{"slug":2964,"name":2964,"fn":2965,"description":2966,"org":2967,"tags":2968,"stars":21,"repoUrl":22,"updatedAt":2977},"agents-connect","connect agents to external services","Use when connecting your agent to external APIs, tools, or services via Gateway, or restricting tool access with Cedar policies. Handles gateway setup, target types, outbound auth (OAuth, API key, IAM), credentials, and Cedar policy authoring. Triggers on: \"connect to API\", \"add gateway\", \"connect to MCP server\", \"Lambda tools\", \"OpenAPI\", \"gateway target\", \"Cedar policy\", \"restrict tools\", \"policy engine\", \"gateway auth error\", \"store API key\", \"outbound credential\", \"env var API key\", \"API key None after deploy\", \"credential not available after deploy\", \"should this be a gateway target\", \"give my agent tools\", \"add tools to agent\". Not for inbound auth (who can call your agent) — use agents-harden. Not for debugging agent behavior — use agents-debug. Not for VPC networking errors (agent can't reach APIs due to VPC) — use agents-build. Not for creating or hosting a new MCP server project — use agents-get-started.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2969,2970,2973,2976],{"name":17,"slug":18,"type":15},{"name":2971,"slug":2972,"type":15},"API Development","api-development",{"name":2974,"slug":2975,"type":15},"Authentication","authentication",{"name":20,"slug":8,"type":15},"2026-07-16T06:00:38.866147",{"slug":2979,"name":2979,"fn":2980,"description":2981,"org":2982,"tags":2983,"stars":21,"repoUrl":22,"updatedAt":2991},"agents-debug","debug agent and environment issues","Use when your agent or environment is broken — wrong answers, errors, timeouts, tool failures, or CLI issues. Reads traces and logs to diagnose root causes. Also checks prerequisites when the CLI itself isn't working. Triggers on: \"agent not working\", \"wrong answer\", \"agent error\", \"tool call failing\", \"debug agent\", \"check logs\", \"read traces\", \"broken\", \"500 error\", \"424 error\", \"model access denied\", \"command not found\", \"stuck in DELETING\", \"maxVms exceeded\", \"cold start diagnosis\", \"cold start slow\", \"agentcore create error\", \"create failed\", \"exit code 7\", \"connection refused local dev\". Not for deploy failures — use agents-deploy. Not for performance tuning without errors — use agents-optimize. Not for VPC configuration — use agents-build. Not for observability setup or missing logs — use agents-optimize.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2984,2985,2986,2989],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":2987,"slug":2988,"type":15},"Debugging","debugging",{"name":2621,"slug":2990,"type":15},"observability","2026-07-16T06:00:44.679093",{"slug":2993,"name":2993,"fn":2994,"description":2995,"org":2996,"tags":2997,"stars":21,"repoUrl":22,"updatedAt":3006},"agents-deploy","deploy AI agents to AWS","Use when deploying your agent to AWS, or when a deploy has failed. Handles pre-flight validation, CDK\u002FIAM\u002Fquota error diagnosis, version management, rollback, and canary deployments. Triggers on: \"deploy my agent\", \"agentcore deploy\", \"deploy failed\", \"CDK error\", \"rollback\", \"canary deploy\", \"pin version\", \"redeploy\", \"deploy stuck\". Not for production hardening — use agents-harden. Not for adding capabilities before deploy — use agents-build or agents-connect. Not for VPC configuration errors — use agents-build.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2998,2999,3000,3003],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3001,"slug":3002,"type":15},"CI\u002FCD","ci-cd",{"name":3004,"slug":3005,"type":15},"Deployment","deployment","2026-07-12T08:42:55.059577",{"slug":3008,"name":3008,"fn":3009,"description":3010,"org":3011,"tags":3012,"stars":21,"repoUrl":22,"updatedAt":3016},"agents-get-started","scaffold and deploy new agent projects","Use when a developer wants to create a new agent project or get started with AgentCore. Handles framework selection, project scaffolding, first deploy, and first invocation. Triggers on: \"build an agent\", \"create an agent\", \"get started\", \"new project\", \"agentcore create\", \"which framework\", \"Strands vs LangGraph\", \"hello world agent\", \"first agent\", \"create MCP server\", \"host MCP server\", \"agentcore dev\", \"dev server\", \"what port\", \"local development\". Not for adding capabilities to existing projects — use agents-build or agents-connect. Strands vs LangGraph in a migration context routes to agents-build, not here. Connecting to an existing MCP server routes to agents-connect, not here.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3013,3014,3015],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3004,"slug":3005,"type":15},"2026-07-12T08:42:51.963247",{"slug":3018,"name":3018,"fn":3019,"description":3020,"org":3021,"tags":3022,"stars":21,"repoUrl":22,"updatedAt":3031},"agents-harden","harden agents for production","Use when preparing your agent for production — IAM scoping, inbound auth (JWT, SigV4), secrets management, cold start optimization, session lifecycle, rate limiting, input validation, and quota guidance. Triggers on: \"production checklist\", \"harden agent\", \"production ready\", \"secure agent\", \"inbound auth\", \"going live\", \"cold start optimization\", \"session lifecycle\", \"StopRuntimeSession\", \"quota\", \"throttling\", \"maxVms\", \"rate limit\", \"security audit of outbound API calls\", \"gateway target audit for production\", \"restrict who can call\", \"lock down endpoint\", \"only our app can call\". Not for Cedar tool-restriction policies — use agents-connect. Not for quality measurement — use agents-optimize. Not for outbound credential storage or API key wiring — use agents-connect. Not for A2A agent-to-agent auth — use agents-build. Cold start observation and diagnosis (not optimization) routes to agents-debug.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3023,3024,3025,3028],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3026,"slug":3027,"type":15},"Best Practices","best-practices",{"name":3029,"slug":3030,"type":15},"Security","security","2026-07-16T06:00:42.174705",{"slug":3033,"name":3033,"fn":3034,"description":3035,"org":3036,"tags":3037,"stars":21,"repoUrl":22,"updatedAt":3047},"agents-optimize","optimize agent quality and performance","Use when measuring or improving agent quality and performance — set up evaluators, online monitoring, CI\u002FCD quality gates, observability, or cost optimization. Triggers on: \"evaluate my agent\", \"add evaluator\", \"measure quality\", \"quality gate\", \"run evals\", \"agent too slow\", \"why is it slow\", \"reduce latency\", \"set up observability\", \"CloudWatch dashboard\", \"how much does my agent cost\", \"cost optimization\", \"logs not showing up\", \"logs missing\", \"spans not found\", \"eval failing\", \"eval error\", \"dev traces\", \"local traces\", \"agentcore dev traces\", \"traces to CloudWatch\". Not for debugging errors or crashes — use agents-debug. Slow but correct routes here; broken routes to debug.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3038,3039,3040,3043,3044],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3041,"slug":3042,"type":15},"Evals","evals",{"name":2621,"slug":2990,"type":15},{"name":3045,"slug":3046,"type":15},"Performance","performance","2026-07-12T08:42:56.488105",{"slug":3049,"name":3049,"fn":3050,"description":3051,"org":3052,"tags":3053,"stars":21,"repoUrl":22,"updatedAt":3064},"amazon-aurora-mysql","manage Amazon Aurora MySQL clusters","Amazon Aurora MySQL — creates, modifies, and advises on Aurora MySQL clusters specifically (MySQL-compatible engine, Aurora serverless, parallel query). Trigger for Aurora MySQL cluster operations, ACU sizing, I\u002FO-Optimized storage, commitment pricing, or MySQL upgrade planning. Aurora MySQL uses full (VPC-based) configuration — express configuration is PostgreSQL-only. For Aurora PostgreSQL, use amazon-aurora-postgresql instead. Contains safety guardrails and response templates that override defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3054,3055,3058,3061],{"name":20,"slug":8,"type":15},{"name":3056,"slug":3057,"type":15},"Database","database",{"name":3059,"slug":3060,"type":15},"MySQL","mysql",{"name":3062,"slug":3063,"type":15},"Serverless","serverless","2026-07-12T08:43:13.27939",{"slug":3066,"name":3066,"fn":3067,"description":3068,"org":3069,"tags":3070,"stars":21,"repoUrl":22,"updatedAt":3077},"amazon-aurora-postgresql","configure Amazon Aurora PostgreSQL clusters","Amazon Aurora PostgreSQL — creates, modifies, and advises on Aurora PostgreSQL clusters specifically (PostgreSQL-compatible engine, Aurora serverless, express configuration, pgvector, Babelfish). Trigger for Aurora PostgreSQL cluster operations, express-configuration quick-start, ACU sizing, I\u002FO-Optimized storage, commitment pricing, or PostgreSQL upgrade planning. For Aurora MySQL, use amazon-aurora-mysql instead. Contains safety guardrails, express-first routing, and response templates that override defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3071,3072,3073,3076],{"name":20,"slug":8,"type":15},{"name":3056,"slug":3057,"type":15},{"name":3074,"slug":3075,"type":15},"PostgreSQL","postgresql",{"name":3062,"slug":3063,"type":15},"2026-07-16T06:00:34.789624",{"slug":4,"name":4,"fn":5,"description":6,"org":3079,"tags":3080,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3081,3082,3083],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":3085,"name":3085,"fn":3086,"description":3087,"org":3088,"tags":3089,"stars":21,"repoUrl":22,"updatedAt":3098},"amazon-documentdb","manage Amazon DocumentDB clusters","Manages Amazon DocumentDB end-to-end — serverless-on-8.0 cluster setup, TLS\u002FVPC\u002Fdriver config, flexible-schema and vector-search data modeling, MongoDB compatibility assessment, DMS-based migration, slow-query diagnosis, major version upgrades (4.0→5.0→8.0), Well-Architected reviews (41-check wa_review.py), cost estimation, and security hardening. Retrieve for every DocumentDB question and when the user asks to set up or migrate MongoDB to AWS — DocumentDB is AWS's MongoDB-compatible managed database. Triggers: JSON document store, document database, MongoDB on AWS, Nested fields, Lambda cannot connect, TLS handshake, VPC port 27017, IAM auth, Secrets Manager, encryption at rest, $graphLookup, flexible schema, COLLSCAN, compound index, DMS migration, CDC cutover, $vectorSearch, RAG, Global Clusters, DR replication, cost sizing, audit, health check, production-readiness.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3090,3091,3092,3095],{"name":20,"slug":8,"type":15},{"name":3056,"slug":3057,"type":15},{"name":3093,"slug":3094,"type":15},"MongoDB","mongodb",{"name":3096,"slug":3097,"type":15},"NoSQL","nosql","2026-07-12T08:43:00.455878",{"slug":3100,"name":3100,"fn":3101,"description":3102,"org":3103,"tags":3104,"stars":21,"repoUrl":22,"updatedAt":3108},"amazon-dynamodb","design and debug DynamoDB data layers","Designs, reviews, and debugs DynamoDB data layers from design axioms — enumerates access patterns, chooses partition\u002Fsort keys and GSIs, decides single-table vs. multi-table, configures Streams, Global Tables, TTL, and zero-ETL integrations to OpenSearch\u002FRedshift\u002FSageMaker Lakehouse, and produces a defensible data-layer design with a monthly cost estimate and optional live validation. Applies whenever a user is designing, reviewing, or refactoring anything backed by DynamoDB — schemas, access patterns, GSIs, single- vs. multi-table choices, Streams consumers, transactional outboxes, Global Tables, zero-ETL pipelines — even when they don't say \"axioms\" or \"design review.\" Also applies when debugging hot partitions, throttling, unbounded Scans, LWW conflicts, or surprise bills on DynamoDB workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3105,3106,3107],{"name":20,"slug":8,"type":15},{"name":3056,"slug":3057,"type":15},{"name":3096,"slug":3097,"type":15},"2026-07-16T06:00:37.690386",115,{"items":3111,"total":3161},[3112,3119,3126,3133,3140,3146,3153],{"slug":2949,"name":2949,"fn":2950,"description":2951,"org":3113,"tags":3114,"stars":21,"repoUrl":22,"updatedAt":2962},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3115,3116,3117,3118],{"name":17,"slug":18,"type":15},{"name":2956,"slug":2957,"type":15},{"name":20,"slug":8,"type":15},{"name":2960,"slug":2961,"type":15},{"slug":2964,"name":2964,"fn":2965,"description":2966,"org":3120,"tags":3121,"stars":21,"repoUrl":22,"updatedAt":2977},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3122,3123,3124,3125],{"name":17,"slug":18,"type":15},{"name":2971,"slug":2972,"type":15},{"name":2974,"slug":2975,"type":15},{"name":20,"slug":8,"type":15},{"slug":2979,"name":2979,"fn":2980,"description":2981,"org":3127,"tags":3128,"stars":21,"repoUrl":22,"updatedAt":2991},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3129,3130,3131,3132],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":2987,"slug":2988,"type":15},{"name":2621,"slug":2990,"type":15},{"slug":2993,"name":2993,"fn":2994,"description":2995,"org":3134,"tags":3135,"stars":21,"repoUrl":22,"updatedAt":3006},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3136,3137,3138,3139],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3001,"slug":3002,"type":15},{"name":3004,"slug":3005,"type":15},{"slug":3008,"name":3008,"fn":3009,"description":3010,"org":3141,"tags":3142,"stars":21,"repoUrl":22,"updatedAt":3016},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3143,3144,3145],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3004,"slug":3005,"type":15},{"slug":3018,"name":3018,"fn":3019,"description":3020,"org":3147,"tags":3148,"stars":21,"repoUrl":22,"updatedAt":3031},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3149,3150,3151,3152],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3026,"slug":3027,"type":15},{"name":3029,"slug":3030,"type":15},{"slug":3033,"name":3033,"fn":3034,"description":3035,"org":3154,"tags":3155,"stars":21,"repoUrl":22,"updatedAt":3047},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3156,3157,3158,3159,3160],{"name":17,"slug":18,"type":15},{"name":20,"slug":8,"type":15},{"name":3041,"slug":3042,"type":15},{"name":2621,"slug":2990,"type":15},{"name":3045,"slug":3046,"type":15},114]