1561 parent_tool_use_id: string | null;1561 parent_tool_use_id: string | null;
1562 error?: SDKAssistantMessageError;1562 error?: SDKAssistantMessageError;
1563 aborted?: true;1563 aborted?: true;
1564 agent_id?: string;
1564 timestamp?: string;1565 timestamp?: string;
1565 context_usage?: SDKContextUsage;1566 context_usage?: SDKContextUsage;
1566 user_message_uuid?: string;1567 user_message_uuid?: string;
1580 1581
1581當中斷或中止在串流完成前截斷助手訊息時,`aborted` 為 `true`:訊息沒有 `stop_reason`,內容可能在詞的中間結束。該欄位在正常完成的訊息上不存在。它需要 Agent SDK v0.3.214 或更新版本。1582當中斷或中止在串流完成前截斷助手訊息時,`aborted` 為 `true`:訊息沒有 `stop_reason`,內容可能在詞的中間結束。該欄位在正常完成的訊息上不存在。它需要 Agent SDK v0.3.214 或更新版本。
1582 1583
1584`agent_id` 識別產生該訊息的 subagent,主執行緒的訊息不會有此欄位。其值等於該 subagent 的 [`task_started`](#sdktaskstartedmessage) 及其他任務事件上的 `task_id`,且在 subagent [恢復](/docs/zh-TW/agent-sdk/subagents#resume-subagents)時保持不變。此欄位需要 Agent SDK v0.3.292 或更新版本。
1585
1586請依 `agent_id` 將 subagent 的訊息與其任務事件配對,而不是將訊息的 `parent_tool_use_id` 與任務事件的 `tool_use_id` 配對。當工具呼叫恢復 subagent 時,任務事件會帶有該呼叫的 `tool_use_id`,而訊息則保留最初啟動該 subagent 之工具呼叫的 `parent_tool_use_id`,因此兩者將不再相符。
1587
1583Claude Code 會在回合的第一個助手訊息上設定 `user_message_uuid` 和 `user_message_uuids`,條件請見 [`user_message_uuid`](#user_message_uuid)。當 Claude Code 重新執行被重新啟動中斷的回合時,重新執行中攜帶這些欄位的助手訊息也會攜帶 [`resume_reason`](#resume_reason)。1588Claude Code 會在回合的第一個助手訊息上設定 `user_message_uuid` 和 `user_message_uuids`,條件請見 [`user_message_uuid`](#user_message_uuid)。當 Claude Code 重新執行被重新啟動中斷的回合時,重新執行中攜帶這些欄位的助手訊息也會攜帶 [`resume_reason`](#resume_reason)。
1584 1589
1585`timestamp` 是訊息內容在產生它的程序上完成生成的 ISO 8601 時間。該值來自該機器的時鐘,因此僅用於顯示,不要依其排序訊息。一個 API 回合可以產生多個共用同一 `message.id` 的助手訊息,每個都有自己的 `timestamp`。當欄位不存在時,請改用您收到訊息的時間。1590`timestamp` 是訊息內容在產生它的程序上完成生成的 ISO 8601 時間。該值來自該機器的時鐘,因此僅用於顯示,不要依其排序訊息。一個 API 回合可以產生多個共用同一 `message.id` 的助手訊息,每個都有自己的 `timestamp`。當欄位不存在時,請改用您收到訊息的時間。
1597 type: "user";1602 type: "user";
1598 uuid?: UUID;1603 uuid?: UUID;
1599 session_id?: string;1604 session_id?: string;
1605 agent_id?: string;
1600 message: MessageParam; // From Anthropic SDK1606 message: MessageParam; // From Anthropic SDK
1601 pasted_content?: MessageParam["content"][];1607 pasted_content?: MessageParam["content"][];
1602 parent_tool_use_id: string | null;1608 parent_tool_use_id: string | null;
1636};1642};
1637```1643```
1638 1644
1645subagent 產生的使用者訊息(例如其自身某個工具呼叫的 `tool_result`)會帶有 `agent_id`。請參閱 [`SDKAssistantMessage`](#sdkassistantmessage),其中定義了此欄位及其版本需求。
1646
1639在帶有 `tool_result` 區塊的訊息上,`tool_use_result` 是工具的結構化輸出物件,而非傳送給模型的文字。其形狀取決於對應 `tool_use` 區塊所指名的工具,因此此欄位的型別為 `unknown`;內建形狀列於[工具輸出類型](#tool-output-types)。下列結果需要超出其所列形狀的處理:1647在帶有 `tool_result` 區塊的訊息上,`tool_use_result` 是工具的結構化輸出物件,而非傳送給模型的文字。其形狀取決於對應 `tool_use` 區塊所指名的工具,因此此欄位的型別為 `unknown`;內建形狀列於[工具輸出類型](#tool-output-types)。下列結果需要超出其所列形狀的處理:
1640 1648
1641* `Agent` 工具:`tool_use_result` 為 [`AgentOutput`](#agent-2)。請依據它來呈現,而非剖析 `tool_result` 文字。`completed` 結果的 `content` 包含 subagent 的報告;對於透過 `SubagentHandback` 工具呼叫交回報告的 subagent,則是以一段關於該交回的簡短說明取代報告。在 Claude Code v2.1.271 或更新版本的[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,每個產生 `completed` 結果的 subagent 都會以這種方式回報,除非它是 [fork](/docs/zh-TW/sub-agents#fork-the-current-conversation),且 Claude 會以來自 subagent 的獨立訊息接收報告。1649* `Agent` 工具:`tool_use_result` 為 [`AgentOutput`](#agent-2)。請依據它來呈現,而非剖析 `tool_result` 文字。`completed` 結果的 `content` 包含 subagent 的報告;對於透過 `SubagentHandback` 工具呼叫交回報告的 subagent,則是以一段關於該交回的簡短說明取代報告。在 Claude Code v2.1.271 或更新版本的[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,每個產生 `completed` 結果的 subagent 都會以這種方式回報,除非它是 [fork](/docs/zh-TW/sub-agents#fork-the-current-conversation),且 Claude 會以來自 subagent 的獨立訊息接收報告。
1992 `SDKPartialAssistantMessage`2000 `SDKPartialAssistantMessage`
1993</h3>2001</h3>
1994 2002
1995串流部分訊息(僅當 `includePartialMessages` 為 true 時)。`parent_tool_use_id` 欄位一律為 `null`:串流事件僅針對主工作階段發出。若要進行 subagent 歸屬,請使用攜帶 `parent_tool_use_id` 的完整訊息,或啟用 [`forwardSubagentText`](#options) 以完整訊息形式接收 subagent 的文字和思考。2003串流部分訊息(僅在 `includePartialMessages` 為 true 時)。
2004
2005`parent_tool_use_id` 欄位一律為 `null`:串流事件僅針對主工作階段發出。若要歸屬 subagent,請使用完整訊息(其帶有 [`agent_id`](#sdkassistantmessage) 和 `parent_tool_use_id`),或啟用 [`forwardSubagentText`](#options) 以完整訊息形式接收 subagent 的文字和思考內容。
1996 2006
1997```typescript theme={null}2007```typescript theme={null}
1998type SDKPartialAssistantMessage = {2008type SDKPartialAssistantMessage = {
5776 task_type?: string;5786 task_type?: string;
5777 is_backgrounded?: boolean;5787 is_backgrounded?: boolean;
5778 spawn_depth?: number;5788 spawn_depth?: number;
5789 parent_task_id?: string;
5779 ambient?: boolean;5790 ambient?: boolean;
5780 uuid: UUID;5791 uuid: UUID;
5781 session_id: string;5792 session_id: string;
5793 5804
5794[已恢復的 subagent](/docs/zh-TW/agent-sdk/subagents#resume-subagents) 始終報告 `is_backgrounded: true`,因為 Claude Code 在背景執行每個已恢復的 subagent。當前景工作稍後移至背景時,Claude Code 在 [`task_updated`](#sdktaskupdatedmessage) 訊息中報告新的 `is_backgrounded` 值,而不是傳送第二個 `task_started`。5805[已恢復的 subagent](/docs/zh-TW/agent-sdk/subagents#resume-subagents) 始終報告 `is_backgrounded: true`,因為 Claude Code 在背景執行每個已恢復的 subagent。當前景工作稍後移至背景時,Claude Code 在 [`task_updated`](#sdktaskupdatedmessage) 訊息中報告新的 `is_backgrounded` 值,而不是傳送第二個 `task_started`。
5795 5806
5807`parent_task_id` 保存啟動此工作的 subagent 的 `task_id`。使用它將每個工作歸類到啟動它的 subagent 之下。Claude Code 在 subagent、Bash 和 [Monitor](#monitor) 工作上設定它。該欄位需要 Agent SDK v0.3.292 或更新版本。在下列情況下,該欄位不存在:
5808
5809* 主執行緒啟動了該工作
5810* Claude Code 不再追蹤父工作
5811* [隊員](/docs/zh-TW/agent-teams)或工作流程內的 agent 啟動了該工作
5812
5813父工作可能是前景工作或已結束的工作,因此請將您不認識的 ID 視為沒有父工作。
5814
5796<h3 id="sdktaskprogressmessage">5815<h3 id="sdktaskprogressmessage">
5797 `SDKTaskProgressMessage`5816 `SDKTaskProgressMessage`
5798</h3>5817</h3>
5849 `SDKBackgroundTasksChangedMessage`5868 `SDKBackgroundTasksChangedMessage`
5850</h3>5869</h3>
5851 5870
5852每當即時背景工作集變更時發出:工作啟動、完成、被終止、前景 agent 被背景化,或工作的 `description` 或 `ambient` 欄位變更。5871每當即時背景工作集變更時發出:工作啟動、完成或被終止;前景 agent 被背景化;或工作的 `description`、`ambient` 或 `parent_task_id` 欄位變更。如需每個項目上的 `parent_task_id` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了該欄位及其版本要求。
5853 5872
5854`tasks` 陣列是完整的即時集。用每個 payload 替換任何快取集,而不是配對 `task_started` 和 `task_notification` 事件,如此下一個成員資格變更會更正您遺漏的任何事件。5873`tasks` 陣列是完整的即時集。用每個 payload 替換任何快取集,而不是配對 `task_started` 和 `task_notification` 事件,如此下一個成員資格變更會更正您遺漏的任何事件。
5855 5874
5856相對於這些每個工作事件的順序未指定,因此不要關聯兩個串流。5875當工作結束時,其 [`task_updated`](#sdktaskupdatedmessage) 和 [`task_notification`](#sdktasknotificationmessage) 會在將其從清單中移除的 `background_tasks_changed` 之前到達。除此之外,相對於每個工作事件的順序未指定。
5857 5876
5858啟動時不發出任何內容。每當工作階段的 CLI 程序啟動或重新啟動時重設為空集,並讓下一個成員資格變更重新填入它。5877啟動時不發出任何內容。每當工作階段的 CLI 程序啟動或重新啟動時重設為空集,並讓下一個成員資格變更重新填入它。
5859 5878
5870 task_type: string;5889 task_type: string;
5871 subagent_type?: string;5890 subagent_type?: string;
5872 description: string;5891 description: string;
5892 parent_task_id?: string;
5873 ambient?: boolean;5893 ambient?: boolean;
5874 }[];5894 }[];
5875 uuid: UUID;5895 uuid: UUID;