Agent.listSuspendedRuns()
新增於: @mastra/core@1.43.0
.listSuspendedRuns() 方法會從 Workflow 快照儲存空間列出已暫停的 Agent run:包括等待需要核准之 Tool 呼叫的 run,或等待呼叫了 suspend() 之 Tool 的 run。由於探索作業以儲存空間而非記憶體內狀態為依據,因此伺服器重新啟動後仍可運作,也支援多個伺服器執行個體。
將回傳的 runId 傳給 resumeStream()、approveToolCall() 或 declineToolCall(),即可繼續該 run。
篩選條件與 Workflow run 列表 API(listWorkflowRuns)相同,另外提供 Agent 層級的 threadId 篩選條件。
使用範例「使用範例」的直接連結
探索對話中待處理的 run 並繼續執行。請檢查 requiresApproval 以選擇正確的繼續方式:若因等待核准而暫停,請使用 approveToolCall() / declineToolCall();若因 suspend() 而暫停,請使用帶有恢復資料的 resumeStream():
const { runs } = await agent.listSuspendedRuns({
threadId: 'thread-123',
resourceId: 'user-456',
})
const run = runs[0]
const toolCall = run?.toolCalls[0]
if (run && toolCall) {
const stream = toolCall.requiresApproval
? await agent.approveToolCall({ runId: run.runId, toolCallId: toolCall.toolCallId })
: await agent.resumeStream({ name: 'San Francisco' }, { runId: run.runId })
}
參數「參數」的直接連結
options?:
threadId?:
resourceId?:
fromDate?:
toDate?:
perPage?:
page?:
回傳值「回傳值」的直接連結
result:
interface AgentListSuspendedRunsResult {
runs: AgentRun[]
/** Total number of matching runs, before pagination */
total: number
}
interface AgentRun {
/** Run ID accepted by resumeStream(), approveToolCall(), and declineToolCall() */
runId: string
status: 'suspended'
threadId?: string
resourceId?: string
/** When the run suspended */
suspendedAt: Date
/** Suspended tool calls awaiting approval or resume data */
toolCalls: AgentRunToolCall[]
}
interface AgentRunToolCall {
toolCallId?: string
toolName?: string
/** Arguments the model supplied (approval suspensions only) */
args?: unknown
/** True when the run is waiting on a tool-call approval */
requiresApproval: boolean
/** The tool-defined suspend payload when the tool called suspend() */
suspendPayload?: unknown
}
探索範圍「探索範圍」的直接連結
結果範圍僅限於由您呼叫 listSuspendedRuns() 的 Agent 所啟動之 run:快照會保存擁有該 run 之 Agent 的 id,因此不會回傳同一 Mastra 執行個體中其他 Agent 啟動的 run。在 supervisor 設定中,supervisor 會看到自己的外層 run(也就是要恢復的 run),而子 Agent 的內層 run 只有該子 Agent 本身可見。您可以依 threadId 與 resourceId 篩選,將結果限定至單一對話。
run 快照只會在 run 等待輸入時保存,並於 run 完成時刪除,因此只能從儲存空間探索已暫停的 run。只有在 Mastra 執行個體設定了持久化儲存 Provider時,已暫停的 run 才能在重新啟動後保留。若使用預設的記憶體內儲存空間,重新啟動時快照會遺失。