Back to Openclaw

Amazon Bedrock Mantle

docs/providers/bedrock-mantle.md

2026.7.18.4 KB
Original Source

OpenClaw includes a bundled Amazon Bedrock Mantle provider that connects to the Mantle OpenAI-compatible endpoint. Mantle hosts open-source and third-party models (GPT-OSS, Qwen, Kimi, GLM, and similar) through a standard /v1/chat/completions surface backed by Bedrock infrastructure. Mantle also exposes Anthropic Claude models through an Anthropic Messages route.

PropertyValue
Provider IDamazon-bedrock-mantle
APIopenai-completions for discovered OSS models, anthropic-messages for Claude models
AuthExplicit AWS_BEARER_TOKEN_BEDROCK or IAM credential-chain bearer-token generation
Default regionus-east-1 (override with AWS_REGION or AWS_DEFAULT_REGION)

Getting started

Choose your preferred auth method and follow the setup steps.

<Tabs> <Tab title="Explicit bearer token"> **Best for:** environments where you already have a Mantle bearer token.
<Steps>
  <Step title="Set the bearer token on the gateway host">
    ```bash
    export AWS_BEARER_TOKEN_BEDROCK="..."
    ```

    Optionally set a region (defaults to `us-east-1`):

    ```bash
    export AWS_REGION="us-west-2"
    ```
  </Step>
  <Step title="Verify models are discovered">
    ```bash
    openclaw models list
    ```

    Discovered models appear under the `amazon-bedrock-mantle` provider. No
    additional config is required unless you want to override defaults.
  </Step>
</Steps>
</Tab> <Tab title="IAM credentials"> **Best for:** using AWS SDK-compatible credentials (shared config, SSO, web identity, instance or task roles).
<Steps>
  <Step title="Configure AWS credentials on the gateway host">
    Any AWS SDK-compatible auth source works:

    ```bash
    export AWS_PROFILE="default"
    export AWS_REGION="us-west-2"
    ```
  </Step>
  <Step title="Verify models are discovered">
    ```bash
    openclaw models list
    ```

    OpenClaw generates a Mantle bearer token from the credential chain automatically.
  </Step>
</Steps>

<Tip>
When `AWS_BEARER_TOKEN_BEDROCK` is not set, OpenClaw mints the bearer token for you from the AWS default credential chain, including shared credentials/config profiles, SSO, web identity, and instance or task roles.
</Tip>
</Tab> </Tabs>

Automatic model discovery

When AWS_BEARER_TOKEN_BEDROCK is set, OpenClaw uses it directly. Otherwise, OpenClaw attempts to generate a Mantle bearer token from the AWS default credential chain. It then discovers available Mantle models by querying the region's /v1/models endpoint.

BehaviorDetail
Discovery cacheResults cached for 1 hour per region; a fetch failure returns the last cached result
IAM token refreshEvery 2 hours, cached per region

To keep the Mantle plugin enabled but suppress automatic discovery and IAM bearer-token generation, disable the plugin-owned discovery toggle:

bash
openclaw config set plugins.entries.amazon-bedrock-mantle.config.discovery.enabled false
<Note> The bearer token is the same `AWS_BEARER_TOKEN_BEDROCK` used by the standard [Amazon Bedrock](/providers/bedrock) provider. </Note>

Supported regions

us-east-1, us-east-2, us-west-2, ap-northeast-1, ap-south-1, ap-southeast-3, eu-central-1, eu-west-1, eu-west-2, eu-south-1, eu-north-1, sa-east-1.

Manual configuration

If you prefer explicit config instead of auto-discovery:

json5
{
  models: {
    providers: {
      "amazon-bedrock-mantle": {
        baseUrl: "https://bedrock-mantle.us-east-1.api.aws/v1",
        api: "openai-completions",
        auth: "api-key",
        apiKey: "env:AWS_BEARER_TOKEN_BEDROCK",
        models: [
          {
            id: "gpt-oss-120b",
            name: "GPT-OSS 120B",
            reasoning: true,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 32000,
            maxTokens: 4096,
          },
        ],
      },
    },
  },
}

An explicit non-empty models list is authoritative and replaces every discovered row, including the Claude rows below. Omit models to retain the automatic Mantle catalog, or include the complete Claude model entries you want to use.

Advanced configuration

<AccordionGroup> <Accordion title="Reasoning support"> Reasoning support is inferred from model IDs containing patterns like `thinking`, `reasoner`, `reasoning`, `deepseek.r`, `gpt-oss-120b`, or `gpt-oss-safeguard-120b`. OpenClaw sets `reasoning: true` automatically for matching models during discovery. </Accordion> <Accordion title="Endpoint unavailability"> If the Mantle endpoint is unavailable, returns no models, or bearer-token resolution fails, discovery returns an empty result and the implicit provider is skipped. OpenClaw does not error; other configured providers continue to work normally. </Accordion> <Accordion title="Claude via the Anthropic Messages route"> When automatic discovery owns the model list, OpenClaw appends four Claude models after a successful lookup, regardless of what `/v1/models` returns: `amazon-bedrock-mantle/anthropic.claude-sonnet-5` (Claude Sonnet 5), `amazon-bedrock-mantle/anthropic.claude-opus-4-7` (Claude Opus 4.7), and `amazon-bedrock-mantle/anthropic.claude-mythos-5` (Claude Mythos 5), plus `amazon-bedrock-mantle/anthropic.claude-mythos-preview` (Claude Mythos Preview). They use the `anthropic-messages` API surface and stream through the same bearer-authenticated Anthropic-compatible endpoint (`<mantle-base>/anthropic`), so the AWS bearer token is not treated like an Anthropic API key.
Claude Sonnet 5 always uses adaptive thinking and defaults to `high`
effort. `/think off` and `/think minimal` map to `low` because the Mantle
route cannot disable thinking. OpenClaw also omits custom temperature for
Sonnet 5 requests.

Claude Mythos 5 is limited access. It publishes a 1,000,000-token context
window and 128,000-token output limit, always uses adaptive thinking, maps
`/think off` and `/think minimal` to `low`, and omits caller-selected
sampling parameters.

Claude Mythos Preview always requests reasoning, defaulting to `high`
effort when no `/think` level is set (mapped from `xhigh`/`max` down to
`high`, and `minimal` up to `low`). Opus 4.7 on Mantle streams without
model-provided reasoning, and OpenClaw omits its `temperature` parameter
since Opus 4.7 does not accept sampling overrides on this route; Mythos
Preview accepts a `temperature` override normally.

A non-empty explicit `models.providers["amazon-bedrock-mantle"].models`
list replaces the complete discovered catalog. Omit that list when you
want these built-in Claude rows.
</Accordion> <Accordion title="Relationship to Amazon Bedrock provider"> Bedrock Mantle is a separate provider from the standard [Amazon Bedrock](/providers/bedrock) provider. Mantle uses an OpenAI-compatible `/v1` surface for its OSS catalog, while the standard Bedrock provider uses the native Bedrock Converse API.
Both providers share the same `AWS_BEARER_TOKEN_BEDROCK` credential when
present.
</Accordion> </AccordionGroup> <CardGroup cols={2}> <Card title="Amazon Bedrock" href="/providers/bedrock" icon="cloud"> Native Bedrock provider for Anthropic Claude, Titan, and other models. </Card> <Card title="Model selection" href="/concepts/model-providers" icon="layers"> Choosing providers, model refs, and failover behavior. </Card> <Card title="OAuth and auth" href="/gateway/authentication" icon="key"> Auth details and credential reuse rules. </Card> <Card title="Troubleshooting" href="/help/troubleshooting" icon="wrench"> Common issues and how to resolve them. </Card> </CardGroup>