Agent.listSuspendedRuns()
追加バージョン: @mastra/core@1.43.0
.listSuspendedRuns() メソッドは、Workflow Snapshot Storage から中断中の Agent Run を一覧表示します。対象となるのは、承認が必要な Tool Call を待機している Run、または suspend() を呼び出した Tool を待機している Run です。検出にはメモリ内の状態ではなく Storage を使用するため、Server の再起動後や複数の Server インスタンス間でも機能します。
返された runId を resumeStream()、approveToolCall()、または declineToolCall() に渡すと、Run を再開できます。
Filter の仕様は Workflow Run の一覧 API(listWorkflowRuns)と同じで、さらに Agent レベルの threadId Filter を利用できます。
使用例使用例への直接リンク
Conversation の保留中の 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 に限定されます。Snapshot には所有する Agent の ID が保存されるため、同じ Mastra インスタンス上でほかの Agent が開始した Run は返されません。Supervisor 構成では、Supervisor には自身の外側の Run(再開対象の Run)が表示され、Subagent の内側の Run はその Subagent 自身からのみ確認できます。結果を1つの Conversation に限定するには、threadId と resourceId で絞り込みます。
Run の Snapshot は入力待ちの間だけ保存され、完了時に削除されます。そのため、Storage から検出できるのは中断中の Run だけです。再起動後も中断中の Run を維持するには、Mastra インスタンスに永続的な Storage Provider を設定する必要があります。デフォルトのメモリ内 Store では、再起動時に Snapshot が失われます。