Files
openclaw/docs/providers/anthropic.md
haoyu-haoyu 353dfeb108 fix(anthropic): migrate 1M context to GA handling
* feat(anthropic): migrate 1M context from beta to GA

Anthropic has graduated the 1M context window from beta to GA.
This commit:

- Stops injecting the context-1m-2025-08-07 beta header when
  context1m: true is configured
- Removes the OAuth token skip logic that was needed because
  Anthropic previously rejected the context-1m beta with OAuth auth
  (OAuth now supports 1M natively)
- Strips the legacy beta header from user-configured anthropicBeta
  arrays to prevent sending a stale header
- Removes the now-unused isAnthropic1MModel helper,
  ANTHROPIC_1M_MODEL_PREFIXES constant, and logger import from
  the stream wrappers

The context1m config param continues to be respected for context
window sizing in context.ts — only the beta header injection is
removed.

Closes #45550 (Phase 1)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(anthropic): migrate 1M context handling to GA

* fix(clownfish): address review for ghcrawl-156721-autonomous-smoke (1)

* fix(anthropic): restrict ga 1m context models

* docs(anthropic): align ga 1m context guidance

* fix(anthropic): normalize ga 1m model metadata

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-23 12:29:31 +01:00

11 KiB

summary, read_when, title
summary read_when title
Use Anthropic Claude via API keys or Claude CLI in OpenClaw
You want to use Anthropic models in OpenClaw
Anthropic

Anthropic builds the Claude model family. OpenClaw supports two auth routes:

  • API key — direct Anthropic API access with usage-based billing (anthropic/* models)
  • Claude CLI — reuse an existing Claude CLI login on the same host
Anthropic staff told us OpenClaw-style Claude CLI usage is allowed again, so OpenClaw treats Claude CLI reuse and `claude -p` usage as sanctioned unless Anthropic publishes a new policy.

For long-lived gateway hosts, Anthropic API keys are still the clearest and most predictable production path.

Anthropic's current public docs:

Getting started

**Best for:** standard API access and usage-based billing.
<Steps>
  <Step title="Get your API key">
    Create an API key in the [Anthropic Console](https://console.anthropic.com/).
  </Step>
  <Step title="Run onboarding">
    ```bash
    openclaw onboard
    # choose: Anthropic API key
    ```

    Or pass the key directly:

    ```bash
    openclaw onboard --anthropic-api-key "$ANTHROPIC_API_KEY"
    ```
  </Step>
  <Step title="Verify the model is available">
    ```bash
    openclaw models list --provider anthropic
    ```
  </Step>
</Steps>

### Config example

```json5
{
  env: { ANTHROPIC_API_KEY: "example-anthropic-key-not-real" },
  agents: { defaults: { model: { primary: "anthropic/claude-opus-4-6" } } },
}
```
**Best for:** reusing an existing Claude CLI login without a separate API key.
<Steps>
  <Step title="Ensure Claude CLI is installed and logged in">
    Verify with:

    ```bash
    claude --version
    ```
  </Step>
  <Step title="Run onboarding">
    ```bash
    openclaw onboard
    # choose: Claude CLI
    ```

    OpenClaw detects and reuses the existing Claude CLI credentials.
  </Step>
  <Step title="Verify the model is available">
    ```bash
    openclaw models list --provider anthropic
    ```
  </Step>
</Steps>

<Note>
Setup and runtime details for the Claude CLI backend are in [CLI Backends](/gateway/cli-backends).
</Note>

### Config example

Prefer the canonical Anthropic model ref plus a CLI runtime override:

```json5
{
  agents: {
    defaults: {
      model: { primary: "anthropic/claude-opus-4-7" },
      models: {
        "anthropic/claude-opus-4-7": {
          agentRuntime: { id: "claude-cli" },
        },
      },
    },
  },
}
```

Legacy `claude-cli/claude-opus-4-7` model refs still work for
compatibility, but new config should keep provider/model selection as
`anthropic/*` and put the execution backend in provider/model runtime policy.

<Tip>
If you want the clearest billing path, use an Anthropic API key instead. OpenClaw also supports subscription-style options from [OpenAI Codex](/providers/openai), [Qwen Cloud](/providers/qwen), [MiniMax](/providers/minimax), and [Z.AI / GLM](/providers/zai).
</Tip>

Thinking defaults (Claude 4.6)

Claude 4.6 models default to adaptive thinking in OpenClaw when no explicit thinking level is set.

Override per-message with /think:<level> or in model params:

{
  agents: {
    defaults: {
      models: {
        "anthropic/claude-opus-4-6": {
          params: { thinking: "adaptive" },
        },
      },
    },
  },
}
Related Anthropic docs: - [Adaptive thinking](https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking) - [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)

Prompt caching

OpenClaw supports Anthropic's prompt caching feature for API-key auth.

Value Cache duration Description
"short" (default) 5 minutes Applied automatically for API-key auth
"long" 1 hour Extended cache
"none" No caching Disable prompt caching
{
  agents: {
    defaults: {
      models: {
        "anthropic/claude-opus-4-6": {
          params: { cacheRetention: "long" },
        },
      },
    },
  },
}
Use model-level params as your baseline, then override specific agents via `agents.list[].params`:
```json5
{
  agents: {
    defaults: {
      model: { primary: "anthropic/claude-opus-4-6" },
      models: {
        "anthropic/claude-opus-4-6": {
          params: { cacheRetention: "long" },
        },
      },
    },
    list: [
      { id: "research", default: true },
      { id: "alerts", params: { cacheRetention: "none" } },
    ],
  },
}
```

Config merge order:

1. `agents.defaults.models["provider/model"].params`
2. `agents.list[].params` (matching `id`, overrides by key)

This lets one agent keep a long-lived cache while another agent on the same model disables caching for bursty/low-reuse traffic.
- Anthropic Claude models on Bedrock (`amazon-bedrock/*anthropic.claude*`) accept `cacheRetention` pass-through when configured. - Non-Anthropic Bedrock models are forced to `cacheRetention: "none"` at runtime. - API-key smart defaults also seed `cacheRetention: "short"` for Claude-on-Bedrock refs when no explicit value is set.

Advanced configuration

OpenClaw's shared `/fast` toggle supports direct Anthropic traffic (API-key and OAuth to `api.anthropic.com`).
| Command | Maps to |
|---------|---------|
| `/fast on` | `service_tier: "auto"` |
| `/fast off` | `service_tier: "standard_only"` |

```json5
{
  agents: {
    defaults: {
      models: {
        "anthropic/claude-sonnet-4-6": {
          params: { fastMode: true },
        },
      },
    },
  },
}
```

<Note>
- Only injected for direct `api.anthropic.com` requests. Proxy routes leave `service_tier` untouched.
- Explicit `serviceTier` or `service_tier` params override `/fast` when both are set.
- On accounts without Priority Tier capacity, `service_tier: "auto"` may resolve to `standard`.

</Note>
The bundled Anthropic plugin registers image and PDF understanding. OpenClaw auto-resolves media capabilities from the configured Anthropic auth — no additional config is needed.
| Property        | Value                 |
| --------------- | --------------------- |
| Default model   | `claude-opus-4-7`     |
| Supported input | Images, PDF documents |

When an image or PDF is attached to a conversation, OpenClaw automatically
routes it through the Anthropic media understanding provider.
Anthropic's 1M context window is available on GA-capable Claude 4.x models such as Opus 4.6, Opus 4.7, and Sonnet 4.6. OpenClaw sizes those models at 1M automatically:
```json5
{
  agents: {
    defaults: {
      models: {
        "anthropic/claude-opus-4-6": {},
      },
    },
  },
}
```

Older configs can keep `params.context1m: true`, but OpenClaw no longer sends
the retired `context-1m-2025-08-07` beta header. Older `anthropicBeta` config
entries with that value are ignored during request header resolution and
unsupported older Claude models stay on their normal context window.

`params.context1m: true` also applies to the Claude CLI backend
(`claude-cli/*`) for eligible GA-capable Opus and Sonnet models, preserving
the runtime context window for those CLI sessions to match the direct-API
behavior.

<Warning>
Requires long-context access on your Anthropic credential. OAuth/subscription token auth keeps its required Anthropic beta headers, but OpenClaw strips the retired 1M beta header if it remains in older config.
</Warning>
`anthropic/claude-opus-4-7` and its `claude-cli` variant have a 1M context window by default — no `params.context1m: true` needed.

Troubleshooting

Anthropic token auth expires and can be revoked. For new setups, use an Anthropic API key instead. Anthropic auth is **per agent** — new agents do not inherit the main agent's keys. Re-run onboarding for that agent (or configure an API key on the gateway host), then verify with `openclaw models status`. Run `openclaw models status` to see which auth profile is active. Re-run onboarding, or configure an API key for that profile path. Check `openclaw models status --json` for `auth.unusableProfiles`. Anthropic rate-limit cooldowns can be model-scoped, so a sibling Anthropic model may still be usable. Add another Anthropic profile or wait for cooldown. More help: [Troubleshooting](/help/troubleshooting) and [FAQ](/help/faq). Choosing providers, model refs, and failover behavior. Claude CLI backend setup and runtime details. How prompt caching works across providers. Auth details and credential reuse rules.