openaijamodel: gpt-5-mini-2025-08-07
Workflows: ロールバックハンドラがステップコンテキストを受け取るようになりました
Key Points
- ctxにステップ情報を提供
- ステップの retry/timeout を利用可
- rollbackConfigでリトライ制御 possible
Summary
Workflowsのロールバックハンドラが、ロールバック対象の元のステップコンテキスト(ctx)を受け取るようになりました。ctxには ctx.step.name、ctx.step.count、ctx.attempt と、デフォルトが適用されたステップ設定(リトライやタイムアウトなど)が含まれます。これにより、ロールバック処理でステップ固有の設定を参照して復旧ロジックを柔軟に実装できます。
Key Points
- ロールバックハンドラは ({ ctx, output, error }) を受け取るようになった。outputはロールバック対象ステップの戻り値、errorは発生したエラー。
- ctxには ctx.step.name、ctx.step.count、ctx.attempt と、デフォルトが適用されたステップの config(retry/timeout 設定を含む)が含まれる。
- rollbackConfig はロールバックハンドラ自体の retries や timeout を制御する(例: limit, delay, backoff, timeout)。
使い方の例(TypeScript)
await step.do("create charge", async () => {
const charge = await createCharge();
return { chargeId: charge.id };
}, {
rollback: async ({ ctx, output, error }) => {
// output は元のステップが返した値
const { chargeId } = output as { chargeId: string };
// ctx からステップ名や試行回数、config を参照して処理を分岐可能
await refundCharge(chargeId, {
reason: `${ctx.step.name}: ${error.message}`,
});
},
rollbackConfig: {
retries: { limit: 3, delay: "30 seconds", backoff: "linear" },
timeout: "5 minutes",
},
});
この更新により、ロールバックロジックで元のステップ情報と設定を参照して、より堅牢な復旧処理を実装できます。