

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 中融合系統訊息
<a name="claude-messages-mid-conversation-system"></a>

您可以將`{"role": "system", ...}`訊息附加至`messages`陣列。這會在對話過程中新增或更新系統指示，而不會使快取的字首失效。

先前，系統指示只能透過頂層`system`參數提供。這可讓您在不重設先前內容的情況下更新指示。

這在模型需要隨著任務進度進行調整的代理工作流程中非常有用。範例包括引入新的限制條件任務中、重新整理授權內容，或變更工具指引以供稍後使用。

## 支援的模型
<a name="claude-messages-mid-conversation-system-supported-models"></a>

此功能僅適用於 Claude Opus 4.8。不需要 Beta 標頭。在不支援的模型`role: "system"``messages[]`中包含 的請求會傳回 `400 invalid_request_error`。

## 訊息欄位
<a name="claude-messages-mid-conversation-system-fields"></a>


| **欄位** | **類型** | **Description** | 
| --- | --- | --- | 
| role | String | 必要. 必須為 system | 
| content | 文字區塊的字串或清單 | 必要. 使用純字串或內容區塊，與使用者或助理訊息相同。 | 
| cache\_control | 物件 | 選用。與最上層系統參數相同的語意。 | 

## 配置規則
<a name="claude-messages-mid-conversation-system-placement"></a>

中的`{"role": "system"}`訊息`messages`具有下列置放限制：
+ 不能是 中的第一個項目`messages`。使用最上層`system`欄位以取得從一開始套用的指示。
+ 必須立即遵循結束於伺服器工具使用的使用者訊息或助理訊息。
+ 必須是 中的最後一個項目，`messages`或接續助理轉彎。
+ 不能與另一個系統訊息相鄰。不允許連續的系統訊息。

違反這些置放規則的請求會傳回 `400 invalid_request_error`。

## 內容規則
<a name="claude-messages-mid-conversation-system-content-rules"></a>

系統角色訊息內容僅支援文字區塊。不支援映像、文件、工具區塊和引文。

`content` 設定為純字串或內容區塊。該指示從對話的該時間點開始套用。使用最上層`system`欄位以取得應套用至整個對話的指示，並使用中場對話系統訊息以取得稍後相關的指示。

## 提示快取
<a name="claude-messages-mid-conversation-system-caching"></a>

中融合系統訊息旨在使用提示快取。將 放置在請求間保持不變的最後一個區塊`cache_control`上，像往常一樣快取穩定的字首。然後在該中斷點之後附加系統訊息。由於新的指令會出現在快取的字首之後，因此不會變更字首雜湊，而且快取仍然可以命中。

一旦中融合系統訊息成為穩定歷史記錄的一部分，它本身就可以在後續轉彎時從快取中讀取。避免編輯或移除先前傳送的中繼對話系統訊息，因為變更先前的訊息會使快取從該時間點開始失效。

如需提示快取的詳細資訊，請參閱[提示快取以取得更快速的模型推論](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html)。

## 回應行為
<a name="claude-messages-mid-conversation-system-response"></a>

回應形狀保持不變。系統角色訊息不會出現在回應內容陣列中。模型會處理系統指示，但不會在其回應中回呼它們。

## 程式碼範例
<a name="claude-messages-mid-conversation-system-example"></a>

下列 Python 範例示範如何搭配 Amazon Bedrock 使用中樞融合系統提示：

```
import boto3
import json

client = boto3.client("bedrock-runtime", region_name="us-east-1")

response = client.invoke_model(
    modelId="us.anthropic.claude-opus-4-8",
    body=json.dumps({
        "anthropic_version": "bedrock-2023-05-31",
        "max_tokens": 1024,
        "system": "You are a helpful travel planning assistant.",
        "messages": [
            {"role": "user", "content": "Help me plan a week in Paris."},
            {"role": "assistant", "content": "I'd love to help! What kind of experience are you looking for?"},
            {"role": "user", "content": "I want to see the major sights. What should I do on day one?"},
            {"role": "system", "content": "The user has a budget of $150/day. Only suggest options that fit within this budget. Prioritize free attractions and affordable dining."}
        ]
    })
)

result = json.loads(response["body"].read())
print(result["content"][0]["text"])
```