【要約】X自動投稿AIエージェントを作った — Research Agent → Claude → HITL承認 → 投稿の全体設計 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
投稿者は、SNS運用における継続的な作業負荷を軽減したいと考えていた。ネタの考案から投稿までのプロセスを自動化しつつ、投稿の質を維持することが課題であった。
- ・AI任せによる投稿内容の劣化や誤情報の防止。
- ・投稿内容の重複やマンネリ化の回避。
- ・Lambdaの実行時間制限(15分)を超える、長期的な承認待ち状態の管理。
// Approach
投稿者は、AWS Step Functionsを核としたオーケストレーションによる解決を図った。LLMによる生成と、Slackを介した人間による承認プロセスを統合している。
- ・
waitForTaskTokenを利用し、最大1年間の承認待ち状態を実現。 - ・Slackのボタン操作とAPI Gatewayを介し、DynamoDB経由でワークフローを再開するHITLの実装。
- ・過去の履歴に基づき、投稿タイプを動的に選択するロジックの導入。
- ・Claude SonnetとHaikuを使い分け、コストと精度の最適化を両立。
// Result
投稿者は、投稿作業を「エージェントの下書きを承認するだけ」の運用へと変革した。これにより、運用の手間を最小化しつつ、高い投稿品質を維持することに成功した。
- ・人間が介在するHITLにより、AIの暴走を防ぐ体制を構築。
- ・Step Functionsによる状態管理で、再生成ループを堅牢に実現。
- ・1日あたりのコストを数百円以内に抑え、実用的な運用を実現。
Senior Engineer Insight
> Step Functionsの
waitForTaskTokenを活用したHITLの実装は、非同期な人間判断を組み込む設計として極めて合理的である。Lambdaを単機能に保ち、ステートマシンで制御する構成は、保守性とスケーラビリティに優れる。ただし、X APIやSlackといった外部APIへの依存度が高いため、それらの仕様変更に対する耐性が運用の鍵となる。実戦投入可能な、非常に洗練されたアーキテクチャである。