本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
中融合系統訊息
您可以將{"role": "system", ...}訊息附加至messages陣列。這會在對話過程中新增或更新系統指示,而不會使快取的字首失效。
先前,系統指示只能透過頂層system參數提供。這可讓您在不重設先前內容的情況下更新指示。
這在模型需要隨著任務進度進行調整的代理工作流程中非常有用。範例包括引入新的限制條件任務中、重新整理授權內容,或變更工具指引以供稍後使用。
支援的模型
此功能僅適用於 Claude Opus 4.8。不需要 Beta 標頭。在不支援的模型role: "system"messages[]中包含 的請求會傳回 400 invalid_request_error。
訊息欄位
| 欄位 | 類型 | Description |
|---|---|---|
role |
String | 必要. 必須為 system |
content |
文字區塊的字串或清單 | 必要. 使用純字串或內容區塊,與使用者或助理訊息相同。 |
cache_control |
物件 | 選用。與最上層系統參數相同的語意。 |
配置規則
中的{"role": "system"}訊息messages具有下列置放限制:
不能是 中的第一個項目
messages。使用最上層system欄位以取得從一開始套用的指示。必須立即遵循結束於伺服器工具使用的使用者訊息或助理訊息。
必須是 中的最後一個項目,
messages或接續助理轉彎。不能與另一個系統訊息相鄰。不允許連續的系統訊息。
違反這些置放規則的請求會傳回 400 invalid_request_error。
內容規則
系統角色訊息內容僅支援文字區塊。不支援映像、文件、工具區塊和引文。
content 設定為純字串或內容區塊。該指示從對話的該時間點開始套用。使用最上層system欄位以取得應套用至整個對話的指示,並使用中場對話系統訊息以取得稍後相關的指示。
提示快取
中融合系統訊息旨在使用提示快取。將 放置在請求間保持不變的最後一個區塊cache_control上,像往常一樣快取穩定的字首。然後在該中斷點之後附加系統訊息。由於新的指令會出現在快取的字首之後,因此不會變更字首雜湊,而且快取仍然可以命中。
一旦中融合系統訊息成為穩定歷史記錄的一部分,它本身就可以在後續轉彎時從快取中讀取。避免編輯或移除先前傳送的中繼對話系統訊息,因為變更先前的訊息會使快取從該時間點開始失效。
如需提示快取的詳細資訊,請參閱提示快取以取得更快速的模型推論。
回應行為
回應形狀保持不變。系統角色訊息不會出現在回應內容陣列中。模型會處理系統指示,但不會在其回應中回呼它們。
程式碼範例
下列 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"])