0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLMの多段処理をforループで回すのをやめる — Step Functionsで並列要約・リトライ・人間承認を組む入門

0
Posted at

LLMで100件の文書を要約するスクリプトを書いたら、途中でスロットリングに当たって止まり、どこまで終わったか分からなくなった。こういうときに使えるのが AWS Step Functions です。2026年10月時点の公式ドキュメントに沿って、AIワークフローの組み方をブログにまとめました。

この記事で分かること

  • スクリプトのループではなくワークフローエンジンを使う理由
  • AIワークフローの基本パターン3つ
  • 100件の記事を並列で要約し、人の承認を待つステートマシン定義(JSONata版)
  • 費用の目安(100件で約$1.30、そのほとんどがLLM代)

ループとの違い

  • 実行履歴に各ステップの入出力が残る(Standardなら90日)
  • 失敗した実行は、失敗したステップから再開(redrive)できる
  • リトライの待ち時間や回数は定義に書くだけでよい
  • 人の承認待ちで最長1年止めておける。止まっている間は課金されない

3つのパターン

  1. 直列チェーン: 生成→レビュー→修正。修正回数に上限を置いて、直らなければ人に回す
  2. Distributed Map: S3のJSONLを読んで1件ずつ並列処理。並列数はBedrockのクォータから逆算する
  3. 人間承認: .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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?