Claude Code で小さな自動運用を作っています。予約したジョブが公式APIでXに投稿し、Gumroadでデジタル商品を販売し、夜中にスクリプトが記録を付ける、という規模のものです。大きなシステムではありませんが、寝ている間にお金を失ったり、恥をかいたりする可能性はどれにもあります。
この記事は、エージェント・ボット・定期ジョブに「人が見ていない状態で書き込み」をさせる前に、今の私が必ず確認している7項目です。どれも実際に起きたこと(または起きかけたこと)から追加しました。架空の事例はありません。
この7項目を「どの順番で、どう仕組みにするか」は、本『AIエージェントに無人で書き込ませる前の実装ガイド ― 二重送信・暴走・夜間停止を防ぐPython』の第2章に書きました。第2章は無料で読めます。
無料・登録不要:この記事の内容を含む「AIエージェント 本番前チェックリスト」(25項目・1ページPDF・日本語)を、そのままダウンロードできます。
https://github.com/neuralalpha-ai/downloads/blob/main/agent-ops-preflight-checklist-ja-v1.0.pdf
1. 最初の書き込みの前に「自分は誰か」を確認する
同じPCに、別プロジェクト用のXアカウントもログインしています。そこで投稿スクリプトは、送信の前に毎回APIへ「今の認証ユーザーは誰か」を問い合わせ、コードに直書きしたアカウント名と照合します。違えば止まります。警告を出して続行、はしません。
APIの読み取りが1日1回増えるだけ(キャッシュしています)なので、いちばん安い保険です。
2. 古いパイプラインは「まだ動ける」前提で疑う
運用を作り直したとき、以前のパイプラインが本番投稿できる設定のまま残っているのを見つけました。投稿されていなかったのは、品質フィルターがたまたま全部はじいていたからでした。安全設計ではなく、ただの運です。
今は「止めた」と言える条件を、目に見える変更にしています。フラグを外す、日付付きのバックアップを残す、何をいつ止めたかを台帳に書く、の3つです。
3. 結果が分からない書き込みは、次の送信を止める
書き込みのたびに、送信の前に「attempt(試行)」を記録し、送信後に sent / failed / unknown のどれかを記録します。タイムアウトは unknown です。unknown が残っている間は、人が確認するまで次の送信をしません。自動リトライもしません。再送された投稿・メール・決済は、ただの重複だからです。
# 送信前に必ず attempt を書く(クラッシュしても痕跡が残る)
ledger.guarded_write("post-001", payload, send)
# タイムアウト → unknown → 以降の送信は LedgerBlocked で止まる
「HTTP 200 は確認ではなく主張」と考えています。大事な書き込みは、作ったものを読み返して確かめます。
4. 費用の上限はコードではなくプロバイダー側に置く
スクリプトには1日5投稿の上限があり、API呼び出しごとに費用を記録しています。それでも本当に信用しているのは、プロバイダーの管理画面で設定した上限の方です。コード側の上限は、コードにバグがあるときにこそ効かないからです。残高の推定も出していて、尽きる約1週間前に警告が来るようにしています。
5. 自分の商品を自分で買って、ファイルを開く
これは痛かった失敗です。自分のデジタル商品をテスト購入して、購入者と同じようにZIPを開いたら、中身の約半分が社内用の資料(ローンチ計画やメモ)でした。
購入者向けのファイルだけで作り直し、もう一度テスト購入して届く中身を確認しました。今はビルドを再現可能にしてあり、同じ入力からは必ず同じSHA-256になるので、購入者が受け取ったファイルを特定できます。
6. 本番と同じスケジューラで、夜に一度動かす
無人のジョブが夜中に UnicodeEncodeError で止まりました。Windowsのコンソールの文字コード(cp932)が、ログ中の非ASCII文字を出力できなかったのが原因です。手で実行したときは毎回動いていました。
本番と同じスケジューラ・ユーザー・ロケール・文字コードで一度動かし、失敗がログファイルではなく人に届くことを確かめるまでは、テスト済みとは呼ばないことにしています。
7. 自動化で解決したのは「投稿」で、「届くこと」ではなかった
以前、完全自動のXアカウントで33投稿しました。インプレッションの中央値は約5です。自動化は完璧に動いていて、誰にも見られていませんでした。
それ以来、自分の投稿と返信を分けて計測しています。今の数字では、関連するスレッドへの短い返信の方が、予約投稿より数倍見られています。エージェントは下書きと予約はできますが、会話に加わるのはまだ人の仕事です。
(補足:その後、短時間に返信を続けすぎて X の検索から外れる、という失敗もしました。人の振る舞いを機械的に増やすと、プラットフォームは嫌がります。)
まとめ
ひとつでも「いいえ」があれば、そのエージェントは「いいえ」が「はい」になるまでドライラン(送信しないモード)で動かします。遅くはなりますが、勝手に動いたものの後始末よりずっと安くつきます。
続きを読む
この記事の7項目を仕組みにする順番は、本『AIエージェントに無人で書き込ませる前の実装ガイド ― 二重送信・暴走・夜間停止を防ぐPython』の第2章「全体像:無人で書き込ませる前の7つの確認」(無料)にまとめています。
3番の「二重送信を防ぐ記録帳」の実装は第3章です。
本の第1章・第2章は無料で読めます。まず無料の章から合うか確かめてください。
Kindle 版(Amazon)もあります。端末で読みたい方はこちらからどうぞ。
この7項目を25項目の1ページのチェックリスト(日本語・PDF)にまとめて、無料で配布しています。
https://neuralalpha.gumroad.com/l/agent-ops-preflight-ja?utm_source=qiita&utm_medium=article
3番の「二重送信を防ぐ記録帳」は、Python標準ライブラリだけで書いた1ファイルのコードとして公開しています。
https://github.com/neuralalpha-ai/agent-write-ledger
手元の仕組みをまず15分で点検したい方には、無料の本も用意しました(実際に起きた5つの失敗と、それぞれ3分で確かめる手順)。
https://zenn.dev/neuralalpha/books/agent-ops-free-checks