LLMで100件の文書を要約するスクリプトを書いたら、途中でスロットリングに当たって止まり、どこまで終わったか分からなくなった。こういうときに使えるのが AWS Step Functions です。2026年10月時点の公式ドキュメントに沿って、AIワークフローの組み方をブログにまとめました。
この記事で分かること
- スクリプトのループではなくワークフローエンジンを使う理由
- AIワークフローの基本パターン3つ
- 100件の記事を並列で要約し、人の承認を待つステートマシン定義(JSONata版)
- 費用の目安(100件で約$1.30、そのほとんどがLLM代)
ループとの違い
- 実行履歴に各ステップの入出力が残る(Standardなら90日)
- 失敗した実行は、失敗したステップから再開(redrive)できる
- リトライの待ち時間や回数は定義に書くだけでよい
- 人の承認待ちで最長1年止めておける。止まっている間は課金されない
3つのパターン
- 直列チェーン: 生成→レビュー→修正。修正回数に上限を置いて、直らなければ人に回す
- Distributed Map: S3のJSONLを読んで1件ずつ並列処理。並列数はBedrockのクォータから逆算する
-
人間承認:
.waitForTaskTokenで止め、SendTaskSuccessで再開する
初心者がつまずきやすいところ
-
RetryのErrorEqualsは大文字小文字まで完全一致。最初は実行履歴でエラー名を確認する - ステート間で渡せるデータは256KiBまで。長い本文はS3に置いてキーだけを渡す
- Expressワークフローは最大5分で、ログ設定をしないと失敗しても何も見えない
- SNSの件名(Subject)は英数字のみ
2026年に出たBedrock AgentCoreとの統合(プレビュー、東京リージョン未対応)や、Lambda durable functionsとの使い分けも書いています。
※2026年10月時点の公開情報に基づきます。ASLは公式ドキュメントに沿って作成したもので、筆者環境でのデプロイ検証はしていません。
記事本文はこちら
https://shinichi.noguchi.jp.net/blog/2026-10-01-step-functions-ai-workflow.html