ChunkType
ChunkType 型別定義 Agent 在串流回應期間可發出之串流區塊的 Mastra 格式。
基本屬性「基本屬性」的直接連結
所有區塊都包含以下基本屬性:
type:
runId:
from:
AGENT:
USER:
SYSTEM:
WORKFLOW:
文字區塊「文字區塊」的直接連結
text-start「text-start」的直接連結
表示文字生成開始。
type:
payload:
id:
providerMetadata?:
text-delta「text-delta」的直接連結
生成期間逐步傳送的文字內容。
type:
payload:
id:
text:
providerMetadata?:
text-end「text-end」的直接連結
表示文字生成結束。
type:
payload:
id:
providerMetadata?:
推理區塊「推理區塊」的直接連結
reasoning-start「reasoning-start」的直接連結
表示推理生成開始(適用於支援推理的模型)。
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-delta「reasoning-delta」的直接連結
生成期間逐步傳送的推理文字。
type:
payload:
id:
text:
providerMetadata?:
reasoning-end「reasoning-end」的直接連結
表示推理生成結束。
type:
payload:
id:
signature?:
providerMetadata?:
reasoning-signature「reasoning-signature」的直接連結
包含支援進階推理之模型(例如 OpenAI o1 系列)的推理簽章。此簽章表示模型內部推理處理程序的中繼資料,例如投入程度或推理方式,但不包含實際的推理內容。
type:
payload:
id:
signature:
providerMetadata?:
Tool 區塊「Tool 區塊」的直接連結
tool-call「tool-call」的直接連結
正在呼叫 Tool。
type:
payload:
toolCallId:
toolName:
args?:
providerExecuted?:
output?:
providerMetadata?:
tool-result「tool-result」的直接連結
Tool 執行的結果。
type:
payload:
toolCallId:
toolName:
result:
isError?:
providerExecuted?:
args?:
providerMetadata?:
tool-call-input-streaming-start「tool-call-input-streaming-start」的直接連結
表示 Tool 呼叫引數的串流傳輸開始。
type:
payload:
toolCallId:
toolName:
providerExecuted?:
dynamic?:
providerMetadata?:
tool-call-delta「tool-call-delta」的直接連結
串流期間逐步傳送的 Tool 呼叫引數。
type:
payload:
argsTextDelta:
toolCallId:
toolName?:
providerMetadata?:
tool-call-input-streaming-end「tool-call-input-streaming-end」的直接連結
表示 Tool 呼叫引數的串流傳輸結束。
type:
payload:
toolCallId:
providerMetadata?:
tool-error「tool-error」的直接連結
Tool 執行期間發生錯誤。
type:
payload:
id?:
toolCallId:
toolName:
args?:
error:
providerExecuted?:
providerMetadata?:
來源與檔案區塊「來源與檔案區塊」的直接連結
source「source」的直接連結
包含內容的來源資訊。
type:
payload:
id:
sourceType:
title:
mimeType?:
filename?:
url?:
providerMetadata?:
file「file」的直接連結
包含檔案資料。
type:
payload:
data:
base64?:
mimeType:
providerMetadata?:
控制區塊「控制區塊」的直接連結
start「start」的直接連結
表示串流開始。
type:
payload:
[key: string]:
step-start「step-start」的直接連結
表示處理步驟開始。
type:
payload:
messageId?:
request:
warnings?:
step-finish「step-finish」的直接連結
表示處理步驟完成。
type:
payload:
id?:
messageId?:
stepResult:
output:
metadata:
totalUsage?:
response?:
providerMetadata?:
raw「raw」的直接連結
包含來自 Provider 的原始資料。
type:
payload:
[key: string]:
finish「finish」的直接連結
串流已成功完成。
type:
payload:
stepResult:
output:
metadata:
messages:
response:
error「error」的直接連結
串流期間發生錯誤。
type:
payload:
error:
abort「abort」的直接連結
串流已中止。
type:
payload:
[key: string]:
物件與輸出區塊「物件與輸出區塊」的直接連結
object「object」的直接連結
使用已定義 schema 的輸出生成時發出。包含符合指定 Zod 或 JSON schema 的部分或完整結構化資料。在某些執行情境中通常會略過此區塊;此區塊用於以串流方式生成結構化物件。
type:
object:
tool-output「tool-output」的直接連結
包含 Agent 或 Workflow 的執行輸出,尤其用於追蹤用量統計資料與完成事件。通常會包裝其他區塊類型(例如 finish 區塊),以提供巢狀執行情境。
type:
payload:
output:
step-output「step-output」的直接連結
包含 Workflow 步驟的執行輸出,主要用於追蹤用量與步驟完成事件。功能與 tool-output 類似,但專門用於個別 Workflow 步驟。
type:
payload:
output:
背景任務區塊「背景任務區塊」的直接連結
將 Tool 呼叫分派為背景任務並使用 streamUntilIdle() 時發出。
background-task-started「background-task-started」的直接連結
Tool 呼叫排入背景任務佇列並獲派 taskId 時發出。
type:
payload:
taskId:
toolName:
toolCallId:
background-task-running「background-task-running」的直接連結
工作執行處理程序取得任務並開始執行時發出。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
startedAt:
args:
background-task-progress「background-task-progress」的直接連結
定期提供 Agent 目前執行中背景任務數量的快照。
type:
payload:
taskIds:
runningCount:
elapsedMs:
background-task-output「background-task-output」的直接連結
由任務的 execute 函式發出的串流輸出區塊。此區塊會包裝一個內部 tool-output 區塊。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
payload:
background-task-completed「background-task-completed」的直接連結
任務成功完成時發出。由 Agent.streamUntilIdle() 取用時,會觸發後續回合。
type:
payload:
taskId:
toolName:
toolCallId:
agentId:
runId:
result:
completedAt:
isError?:
background-task-failed「background-task-failed」的直接連結
任務擲回例外或逾時時發出。由 Agent.streamUntilIdle() 取用時,會觸發後續回合。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
error:
completedAt:
background-task-suspended「background-task-suspended」的直接連結
Tool 在背景執行期間從內部呼叫 suspend() 時發出。此動作會暫停任務的 Workflow 執行,並保存其快照。使用 mastra.backgroundTaskManager.resume(taskId, resumeData) 恢復執行。
由 Agent.streamUntilIdle() 取用時,此區塊會將任務從迴圈的等待集合中移除,且不將後續工作排入佇列。Agent 的回應隨即結束;恢復執行的任務最終完成後,其結果會插入下一個使用者回合的訊息清單。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
suspendData?:
suspend(data) 的任何資料background-task-resumed「background-task-resumed」的直接連結
透過 mastra.backgroundTaskManager.resume(taskId, resumeData) 恢復已暫停的任務時發出。任務會轉回 running,接著重新啟動 Tool 的 execute,並填入 resumeData。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
startedAt:
args:
background-task-cancelled「background-task-cancelled」的直接連結
任務在完成前遭取消時發出。由 Agent.streamUntilIdle() 取用時,會觸發後續回合。
type:
payload:
taskId:
toolName:
toolCallId:
runId:
agentId:
completedAt:
中繼資料與特殊區塊「中繼資料與特殊區塊」的直接連結
response-metadata「response-metadata」的直接連結
包含 LLM Provider 回應的中繼資料。部分 Provider 會在文字生成後發出此區塊,以提供模型 ID、時間戳記與回應標頭等其他情境資訊。此區塊在內部用於追蹤狀態,不會影響訊息組合。
type:
payload:
signature?:
[key: string]:
watch「watch」的直接連結
包含 Agent 執行的監控與可觀測性資料。依使用 stream() 的情境而定,可能包含 Workflow 狀態資訊、執行進度或其他執行階段詳細資訊。
type:
payload:
workflowState?:
eventTimestamp?:
[key: string]:
goal「goal」的直接連結
每次評估 Agent 的目標時發出。取用端會使用此區塊呈現判定進度與執行期間的結果。未設定判定模型的目標不會產生 goal 區塊。
type:
payload:
objective:
iteration:
maxRuns:
passed:
status:
results:
reason?:
duration:
timedOut:
maxRunsReached:
suppressFeedback:
tripwire「tripwire」的直接連結
內容遭處理器封鎖而強制終止串流時發出。這項安全機制可防止有害或不適當的內容以串流方式傳送。酬載包含內容遭封鎖的原因,以及是否要求重試。
type:
payload:
reason:
retry?:
metadata?:
processorId?:
使用範例「使用範例」的直接連結
const stream = await agent.stream('Hello')
for await (const chunk of stream.fullStream) {
switch (chunk.type) {
case 'text-delta':
console.log('Text:', chunk.payload.text)
break
case 'tool-call':
console.log('Calling tool:', chunk.payload.toolName)
break
case 'tool-result':
console.log('Tool result:', chunk.payload.result)
break
case 'reasoning-delta':
console.log('Reasoning:', chunk.payload.text)
break
case 'finish':
console.log('Finished:', chunk.payload.stepResult.reason)
console.log('Usage:', chunk.payload.output.usage)
break
case 'error':
console.error('Error:', chunk.payload.error)
break
}
}
相關型別「相關型別」的直接連結
- .stream(): 回傳會發出這些區塊之串流的方法
- MastraModelOutput: 會發出這些區塊的串流物件
- workflow.stream(): 回傳會為 Workflow 發出這些區塊之串流的方法