Skip to Content

run.resume()

.resume() メソッドは一時停止されたワークフローステップの実行を再開し、オプションで新しいコンテキストデータを提供することができます。このデータはステップの inputData プロパティからアクセスできます。

使用方法

await run.resume({ runId: "abc-123", stepId: "stepTwo", context: { secondValue: 100, }, });

パラメータ

config:

object
ワークフローを再開するための設定

config

runId:

string
再開するワークフロー実行の一意の識別子

stepId:

string
再開する一時停止ステップのID

context?:

Record<string, any>
ステップのinputDataプロパティに注入する新しいコンテキストデータ

戻り値

Promise<WorkflowResult>:

object
再開されたワークフロー実行の結果

Async/Await フロー

ワークフローが再開されると、実行はステップの実行関数内のsuspend()呼び出しの直後の地点から継続されます。これにより、コード内で自然なフローが作成されます:

// 中断ポイントを持つステップ定義 const reviewStep = new Step({ id: "review", execute: async ({ context, suspend }) => { // 実行の最初の部分 const initialAnalysis = analyzeData(context.inputData.data); if (initialAnalysis.needsReview) { // ここで実行を中断 await suspend({ analysis: initialAnalysis }); // このコードはresume()が呼び出された後に実行される // context.inputDataには再開時に提供されたデータが含まれる return { reviewedData: enhanceWithFeedback( initialAnalysis, context.inputData.feedback, ), }; } return { reviewedData: initialAnalysis }; }, }); const { runId, resume, start } = workflow.createRun(); await start({ inputData: { data: "some data", }, }); // 後でワークフローを再開 const result = await resume({ runId: "workflow-123", stepId: "review", context: { // このデータは`context.inputData`で利用可能になる feedback: "良さそうですが、セクション3を改善してください", }, });

実行フロー

  1. ワークフローはreviewステップ内のawait suspend()に到達するまで実行されます
  2. ワークフローの状態が保存され、実行が一時停止します
  3. 後で、新しいコンテキストデータと共にrun.resume()が呼び出されます
  4. 実行はreviewステップのsuspend()の後の地点から継続されます
  5. 新しいコンテキストデータ(feedback)はinputDataプロパティを通じてステップで利用可能になります
  6. ステップが完了し、結果を返します
  7. ワークフローはその後のステップで継続します

エラー処理

resume関数はいくつかのタイプのエラーをスローする可能性があります:

try { await run.resume({ runId, stepId: "stepTwo", context: newData, }); } catch (error) { if (error.message === "No snapshot found for workflow run") { // ワークフローの状態が見つからない場合の処理 } if (error.message === "Failed to parse workflow snapshot") { // 破損したワークフロー状態の処理 } }

関連項目