---
title: Effort pro Nachricht
url: https://platform.claude.com/docs/de/build-with-claude/effort-per-message
description: Verwende eine System-Nachricht, um das Effort-Level mitten in einer Konversation zu ändern und den Prompt-Cache zu behalten.
featureMetadata:
  status: beta
  betaHeader: mid-conversation-output-config-2026-07-01
  supportedModels:
    - claude-fable-5-2
    - claude-mythos-5-2
    - claude-fable-5-1
    - claude-mythos-5-1
    - claude-opus-5-5
    - claude-opus-5
    - claude-sonnet-5-5
    - claude-haiku-5-5
  supportedPlatforms:
    Claude API: beta
    Amazon Bedrock: beta
    Amazon Bedrock (bedrock-runtime):
      availability: beta
      note: Sende den Beta-Wert im Array `anthropic_beta` des Request-Bodys.
    Claude Platform on AWS: beta
    Claude Models on Google Cloud (Anthropic managed): beta
    Claude Models on Google Cloud (Google managed): beta
    Microsoft Foundry: beta
---

Eine Effort-Änderung pro Nachricht legt ein neues Effort-Level für spätere Turns einer Konversation fest, ohne den Wert auf oberster Ebene der Anfrage zu ändern, sodass das gecachte Präfix weiterhin übereinstimmt.

## Das Effort-Level ändern

So änderst du das Level mitten in einer Konversation:

1. Füge `messages` eine Nachricht mit `role: "system"` hinzu, mit leerem `content` und dem neuen [Effort](https://platform.claude.com/docs/de/build-with-claude/effort)-Level in `output_config.effort`.
2. Sende den [Beta-Header](https://platform.claude.com/docs/de/api/beta-headers) `mid-conversation-output-config-2026-07-01`.
3. Lass den Wert auf oberster Ebene unverändert.

Das folgende Beispiel behält den Wert auf oberster Ebene bei `high` und wechselt für eine routinemäßige Folgeanfrage zu `low`:

<CodeGroup>
  ```bash cURL
  # System-Nachricht nur für Effort: Die neue Stufe gilt ab dem nächsten Nutzer-Turn.
  curl https://api.anthropic.com/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2026-10-21" \
    -H "anthropic-beta: mid-conversation-output-config-2026-07-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-fable-5-1",
      "max_tokens": 4096,
      "output_config": {"effort": "high"},
      "messages": [
        {"role": "user", "content": "Plan a migration from SQLite to PostgreSQL in three short steps."},
        {"role": "assistant", "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."},
        {"role": "system", "content": [], "output_config": {"effort": "low"}},
        {"role": "user", "content": "Summarize the plan in one sentence."}
      ]
    }'
  ```

  ```bash CLI
  ant beta:messages create \
    --beta mid-conversation-output-config-2026-07-01 <<'YAML'
  model: claude-fable-5-1
  max_tokens: 4096
  output_config:
    effort: high
  messages:
    - role: user
      content: Plan a migration from SQLite to PostgreSQL in three short steps.
    - role: assistant
      content: "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."
    # Nur-Effort-Systemnachricht: Die neue Stufe gilt ab dem nächsten User-Turn.
    - role: system
      content: []
      output_config:
        effort: low
    - role: user
      content: Summarize the plan in one sentence.
  YAML
  ```

  ```python Python
  client = anthropic.Anthropic()

  response = client.beta.messages.create(
      model="claude-fable-5-1",
      max_tokens=4096,
      output_config={"effort": "high"},
      messages=[
          {
              "role": "user",
              "content": "Plan a migration from SQLite to PostgreSQL in three short steps.",
          },
          {
              "role": "assistant",
              "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.",
          },
          # Systemnachricht nur für Effort: Die neue Stufe gilt ab dem nächsten Benutzer-Turn.
          {"role": "system", "content": [], "output_config": {"effort": "low"}},
          {"role": "user", "content": "Summarize the plan in one sentence."},
      ],
      betas=["mid-conversation-output-config-2026-07-01"],
  )

  for block in response.content:
      if block.type == "text":
          print(block.text)
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  const response = await client.beta.messages.create({
    model: "claude-fable-5-1",
    max_tokens: 4096,
    output_config: { effort: "high" },
    messages: [
      {
        role: "user",
        content: "Plan a migration from SQLite to PostgreSQL in three short steps."
      },
      {
        role: "assistant",
        content:
          "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."
      },
      // System-Nachricht nur für Effort: Die neue Stufe gilt ab dem nächsten User-Turn.
      { role: "system", content: [], output_config: { effort: "low" } },
      { role: "user", content: "Summarize the plan in one sentence." }
    ],
    betas: ["mid-conversation-output-config-2026-07-01"]
  });

  for (const block of response.content) {
    if (block.type === "text") {
      console.log(block.text);
    }
  }
  ```

  ```csharp C#
  using Anthropic.Models.Beta;
  using Anthropic.Models.Beta.Messages;
  using Model = Anthropic.Models.Messages.Model;

  AnthropicClient client = new();

  var response = await client.Beta.Messages.Create(new MessageCreateParams
  {
      Model = Model.ClaudeFable5_1,
      MaxTokens = 4096,
      OutputConfig = new() { Effort = Effort.High },
      Messages =
      [
          new BetaUserMessageParam { Content = "Plan a migration from SQLite to PostgreSQL in three short steps." },
          new BetaAssistantMessageParam { Content = "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts." },
          // Reine Effort-Systemnachricht: Die neue Stufe gilt ab dem nächsten User-Turn.
          new BetaSystemMessageParam
          {
              Content = new([]),
              OutputConfig = new() { Effort = BetaSystemMessageOutputConfigEffort.Low },
          },
          new BetaUserMessageParam { Content = "Summarize the plan in one sentence." },
      ],
      Betas = [AnthropicBeta.MidConversationOutputConfig2026_07_01],
  });

  foreach (var block in response.Content)
  {
      if (block.TryPickText(out var textBlock))
      {
          Console.WriteLine(textBlock.Text);
      }
  }
  ```

  ```go Go
  client := anthropic.NewClient()

  response, err := client.Beta.Messages.New(context.Background(), anthropic.BetaMessageNewParams{
  	Model:     anthropic.ModelClaudeFable5_1,
  	MaxTokens: 4096,
  	OutputConfig: anthropic.BetaOutputConfigParam{
  		Effort: anthropic.BetaOutputConfigEffortHigh,
  	},
  	Messages: []anthropic.BetaMessageParam{
  		anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Plan a migration from SQLite to PostgreSQL in three short steps.")),
  		{OfAssistant: &anthropic.BetaAssistantMessageParam{
  			Content: []anthropic.BetaContentBlockParamUnion{anthropic.NewBetaTextBlock("1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.")},
  		}},
  		// System-Nachricht nur für Effort: Die neue Stufe gilt ab dem nächsten Nutzer-Turn.
  		anthropic.NewBetaSystemMessage(anthropic.BetaSystemMessageOutputConfigParam{
  			Effort: anthropic.BetaSystemMessageOutputConfigEffortLow,
  		}),
  		anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Summarize the plan in one sentence.")),
  	},
  	Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaMidConversationOutputConfig2026_07_01},
  })
  if err != nil {
  	log.Fatal(err)
  }

  for _, block := range response.Content {
  	if textBlock, ok := block.AsAny().(anthropic.BetaTextBlock); ok {
  		fmt.Println(textBlock.Text)
  	}
  }
  ```

  ```java Java
  import com.anthropic.models.beta.AnthropicBeta;
  import com.anthropic.models.beta.messages.BetaMessage;
  import com.anthropic.models.beta.messages.BetaOutputConfig;
  import com.anthropic.models.beta.messages.BetaSystemMessageOutputConfig;
  import com.anthropic.models.beta.messages.BetaSystemMessageParam;
  import com.anthropic.models.beta.messages.MessageCreateParams;
  import com.anthropic.models.messages.Model;

  void main() {
      AnthropicClient client = AnthropicOkHttpClient.fromEnv();

      MessageCreateParams params = MessageCreateParams.builder()
          .model(Model.CLAUDE_FABLE_5_1)
          .maxTokens(4096L)
          .addBeta(AnthropicBeta.MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01)
          .outputConfig(BetaOutputConfig.builder()
              .effort(BetaOutputConfig.Effort.HIGH)
              .build())
          .addUserMessage("Plan a migration from SQLite to PostgreSQL in three short steps.")
          .addAssistantMessage("1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.")
          // System-Nachricht nur für Effort: Die neue Stufe gilt ab dem nächsten User-Turn.
          .addMessage(BetaSystemMessageParam.builder()
              .contentOfBlocks(List.of())
              .outputConfig(BetaSystemMessageOutputConfig.builder()
                  .effort(BetaSystemMessageOutputConfig.Effort.LOW)
                  .build())
              .build())
          .addUserMessage("Summarize the plan in one sentence.")
          .build();

      BetaMessage response = client.beta().messages().create(params);
      response.content().stream()
          .flatMap(block -> block.text().stream())
          .forEach(textBlock -> IO.println(textBlock.text()));
  }
  ```

  ```php PHP
  use Anthropic\Beta\AnthropicBeta;
  use Anthropic\Beta\Messages\BetaMessageParam;
  use Anthropic\Beta\Messages\BetaOutputConfig;
  use Anthropic\Beta\Messages\BetaSystemMessageOutputConfig;
  use Anthropic\Beta\Messages\BetaTextBlock;
  use Anthropic\Client;
  use Anthropic\Messages\Model;

  $client = new Client();

  $response = $client->beta->messages->create(
      model: Model::CLAUDE_FABLE_5_1,
      maxTokens: 4096,
      outputConfig: BetaOutputConfig::with(effort: 'high'),
      messages: [
          BetaMessageParam::with(role: 'user', content: 'Plan a migration from SQLite to PostgreSQL in three short steps.'),
          BetaMessageParam::with(role: 'assistant', content: '1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.'),
          // Systemnachricht nur für Effort: Die neue Stufe gilt ab dem nächsten User-Turn.
          BetaMessageParam::with(
              role: 'system',
              content: [],
              outputConfig: BetaSystemMessageOutputConfig::with(effort: 'low'),
          ),
          BetaMessageParam::with(role: 'user', content: 'Summarize the plan in one sentence.'),
      ],
      betas: [AnthropicBeta::MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01],
  );

  foreach ($response->content as $block) {
      if ($block instanceof BetaTextBlock) {
          echo $block->text, PHP_EOL;
      }
  }
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  response = client.beta.messages.create(
    model: Anthropic::Model::CLAUDE_FABLE_5_1,
    max_tokens: 4096,
    output_config: {effort: :high},
    messages: [
      {role: "user", content: "Plan a migration from SQLite to PostgreSQL in three short steps."},
      {role: "assistant", content: "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."},
      # System-Nachricht nur mit Effort: Die neue Stufe gilt ab dem nächsten User-Turn.
      {role: "system", content: [], output_config: {effort: :low}},
      {role: "user", content: "Summarize the plan in one sentence."}
    ],
    betas: [Anthropic::AnthropicBeta::MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01]
  )

  response.content.each do |block|
    case block
    when Anthropic::Beta::BetaTextBlock
      puts block.text
    end
  end
  ```
</CodeGroup>

Die Position der Nachricht entscheidet, wann das neue Level beginnt:

* Direkt nach einem `user`-Turn mit neuer Eingabe: Claudes Antwort auf diesen Turn verwendet das neue Level.
* An jeder anderen Stelle, etwa zwischen einem `assistant`-Turn und dem nächsten `user`-Turn wie im vorherigen Beispiel: Das neue Level beginnt beim nächsten `user`-Turn mit neuer Eingabe.

Ein `user`-Turn, der nur `tool_result`-Blöcke enthält, zählt nicht als neue Eingabe.

Das neue Level bleibt wirksam, bis eine spätere Nachricht es ändert.

Platziere die Nachricht nach allem, was du bereits gesendet hast, und behalte sie bei späteren Anfragen an ihrer Stelle. Füge sie nicht vor Turns ein, die du bereits gesendet hast, und verschiebe oder entferne sie später nicht. Bei Modellen mit [bewahrtem Nachdenken](https://platform.claude.com/docs/de/build-with-claude/preserved-thinking) macht jede dieser Änderungen die Thinking-Blöcke in den `assistant`-Turns nach der Nachricht ungültig. [Was die API mit einem ungültigen Block macht](https://platform.claude.com/docs/de/build-with-claude/preserved-thinking#mismatch-behavior) beschreibt, was danach passiert.

Steht sie neben einer `system`-Nachricht mit Inhalt, müssen beide Nachrichten den [Platzierungsregeln für System-Nachrichten mitten in der Konversation](https://platform.claude.com/docs/de/build-with-claude/mid-conversation-system-messages#limitations) folgen.

Sende bei der Amazon Bedrock InvokeModel API den Beta-Wert im Array `anthropic_beta` des Request-Bodys statt im Header. Welche Modelle dort Effort pro Nachricht unterstützen, erfährst du unter [System-Nachrichten mitten in der Konversation auf Bedrock](https://platform.claude.com/docs/de/build-with-claude/claude-on-amazon-bedrock-legacy#mid-conversation-system-messages-on-bedrock).

## Fehler

* Ohne den Beta-Header gibt ein `output_config` pro Nachricht einen 400-Fehler zurück: `messages.N.output_config: Extra inputs are not permitted`, wobei `N` der Index der `system`-Nachricht in `messages` ist.
* Mit dem Beta-Header geben Modelle ohne Effort pro Nachricht, etwa Claude Fable 5, einen 400-Fehler zurück: `output_config.effort requires a model that supports per-turn effort; this model does not`. Auf Amazon Bedrock geben diese Modelle und Claude Opus 5 stattdessen `Extra inputs are not permitted` zurück.
* Bei Claude Sonnet 5.5 mit `thinking: {"type": "between_tools"}` und bei Claude Haiku 5.5 mit `thinking: {"type": "disabled"}` kannst du das Effort-Level nicht mitten in der Konversation ändern. Dort gibt ein `output_config.effort` pro Nachricht mit einem neuen Level einen 400-Fehler zurück. Um den Effort für jeden Turn zu variieren, verwende adaptives Nachdenken.

## Effort pro Nachricht oder auf oberster Ebene

Bevorzuge Effort pro Nachricht gegenüber dem [Ändern des Werts auf oberster Ebene](https://platform.claude.com/docs/de/build-with-claude/effort#top-level-effort-on-the-next-request) zwischen Anfragen. Eine Änderung pro Nachricht lässt alles davor unverändert, sodass das gecachte Präfix weiterhin übereinstimmt. Eine Änderung auf oberster Ebene startet den Cache neu. Bei Claude Fable 5.1 steuert eine Änderung auf oberster Ebene das Modell außerdem weniger zuverlässig. Die früheren Antworten des Modells wurden auf dem vorherigen Level geschrieben, und das Modell neigt dazu, mit ihnen konsistent zu bleiben.

## Verfügbarkeit

Effort pro Nachricht ist auf ausgewählten Modellen in der Beta.

### API-Unterstützung

#### [Messages API](https://platform.claude.com/docs/de/build-with-claude/working-with-messages)

* Verfügbarkeit: Verfügbar

| Status           | Cloud-Plattformen                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Modelle                                                                                                                                                                                                                                                                                                                                    |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Beta             | Claude API, [Amazon Bedrock](https://platform.claude.com/docs/de/build-with-claude/claude-in-amazon-bedrock), [Claude Platform on AWS](https://platform.claude.com/docs/de/build-with-claude/claude-platform-on-aws), [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/de/build-with-claude/claude-models-on-google-cloud/anthropic-managed), [Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/de/build-with-claude/claude-models-on-google-cloud/google-managed), [Microsoft Foundry](https://platform.claude.com/docs/de/build-with-claude/claude-in-microsoft-foundry) | [Claude Fable 5.1](https://platform.claude.com/docs/de/models/fable-5-1/overview), [Claude Opus 5.5](https://platform.claude.com/docs/de/models/opus-5-5/overview)                                                                                                                                                                         |
| Beta<sup>1</sup> | [Amazon Bedrock (bedrock-runtime)](https://platform.claude.com/docs/de/build-with-claude/claude-on-amazon-bedrock-legacy)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | [Claude Fable 5.2](https://platform.claude.com/docs/de/models/fable-5-2/overview), [Claude Mythos 5.2](https://platform.claude.com/docs/de/models/mythos-5-2/overview), [Claude Fable 5.1](https://platform.claude.com/docs/de/models/fable-5-1/overview), [Claude Opus 5.5](https://platform.claude.com/docs/de/models/opus-5-5/overview) |
| Beta             | Claude API, [Claude Platform on AWS](https://platform.claude.com/docs/de/build-with-claude/claude-platform-on-aws), [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/de/build-with-claude/claude-models-on-google-cloud/anthropic-managed), [Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/de/build-with-claude/claude-models-on-google-cloud/google-managed), [Microsoft Foundry](https://platform.claude.com/docs/de/build-with-claude/claude-in-microsoft-foundry)                                                                                                   | [Claude Fable 5.2](https://platform.claude.com/docs/de/models/fable-5-2/overview), [Claude Opus 5](https://platform.claude.com/docs/de/models/opus-5/overview), [Claude Sonnet 5.5](https://platform.claude.com/docs/de/models/sonnet-5-5/overview), [Claude Haiku 5.5](https://platform.claude.com/docs/de/models/haiku-5-5/overview)     |
| Beta             | Claude API, [Amazon Bedrock](https://platform.claude.com/docs/de/build-with-claude/claude-in-amazon-bedrock), [Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/de/build-with-claude/claude-models-on-google-cloud/google-managed), [Microsoft Foundry (hosted on Anthropic)](https://platform.claude.com/docs/de/build-with-claude/claude-in-microsoft-foundry)                                                                                                                                                                                                                                               | [Claude Mythos 5.1](https://platform.claude.com/docs/de/models/mythos-5-1/overview)                                                                                                                                                                                                                                                        |
| Beta             | Claude API, [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/de/build-with-claude/claude-models-on-google-cloud/anthropic-managed), [Claude Models on Google Cloud (Google managed)](https://platform.claude.com/docs/de/build-with-claude/claude-models-on-google-cloud/google-managed), [Microsoft Foundry (hosted on Anthropic)](https://platform.claude.com/docs/de/build-with-claude/claude-in-microsoft-foundry)                                                                                                                                                                                     | [Claude Mythos 5.2](https://platform.claude.com/docs/de/models/mythos-5-2/overview)                                                                                                                                                                                                                                                        |

1. Sende den Beta-Wert im Array `anthropic_beta` des Request-Bodys.

#### [Managed Agents](https://platform.claude.com/docs/de/managed-agents/overview)

* Verfügbarkeit: Nicht verfügbar
* Nutzung: Lege stattdessen den Effort für eine Sitzung fest, indem du die Modelleinstellungen des Agenten überschreibst.

### Erforderliche Beta-Header

[Übersicht über Beta-Header](https://platform.claude.com/docs/de/api/beta-headers)

Mit Beta-Headern kannst du auf experimentelle Funktionen und neue Modellfähigkeiten zugreifen, bevor sie Teil der Standard-API werden.

* `mid-conversation-output-config-2026-07-01`
