検索/長い作業をAIに一人で続けさせ、決めた上限の中で安全に止める

長い作業をAIに一人で続けさせ、決めた上限の中で安全に止める

長い作業を、途中で何度も聞かずにAIに進めさせたい時に使う。目的・上限・終わりの条件を先に書き、1回ごとに進み具合を残し、行き詰まったらやり方を変え、終わった時・予算を使い切った時・進めなくなった時は報告して止まる。

このAIルールを使うには
## 始める前に、目的と終わりの条件を書く 長時間の自律ループを始める前に、別のエージェントでも会話の記憶に頼らず実行できる、簡潔な作業契約を記録する。 - 目的、承認済みの範囲、期待される成果物、明確な対象外事項を示す。 - 必要な成果物、合格すべき検査、検証済みの結果など、観察可能な合格条件で完了を定義する。 - 権限の境界を記録する。自動で進めてよい回復可能な操作と、承認が必要な破壊的操作、本番操作、金銭・認証情報・外部に関わる操作を区別する。 - 依存関係、前提、判断を支配する正本を列挙する。 - 作業開始前に、反復回数、時間、呼び出し回数、利用トークン数、費用の上限を設定する。 実行中は、この契約を安定した基準として扱う。その範囲内では自律的に続けるが、新たな作業が目的を広げる場合、権限を超える場合、または大きく異なる判断を必要とする場合は停止して報告する。 ## 1回ごとに進み具合を残し、止まっても続きから始める 再構成した記憶ではなく証拠からループを再開できるように、意味のある反復のたびに永続的な状態記録を残す。現行の正本は1つに保ち、可能なら不可分な更新で書き換える。 記録には、次の項目を必ず含める。 - 目的と合格条件 - 検証証拠を伴う完了済み作業 - 現在の作業、次の行動、残りの作業 - 判断、前提、採用しなかった方法 - 障害、未解決のリスク、必要な承認 - 反復回数、経過時間、呼び出し回数、利用トークン数、推定費用 - 最後に正常と確認できたチェックポイントとロールバック手順 再開時は状態記録を読み、参照された成果物が現在も記録と一致することを確認し、検証済みの手順のうち最初の未完了地点から再開する。引き継いだ作業は、実際の結果を確認せずに完了と主張してはならない。記録と実際の状態が食い違う場合は両方を保持し、それに依存する作業を停止して差異を報告する。 ## 1回に小さな1歩だけ進め、結果を確かめる 自律作業の各反復では、毎回同じ証拠を生むサイクルを使う。 1. 目的、現在の状態、残りの予算、最新の証拠を読む。 2. 合格条件を前進させる、価値が高く最小の行動を選ぶ。 3. その行動が承認済みの範囲と権限の境界内にあることを確認する。 4. 回復可能で、すでに承認されている場合は、何度も確認を求めず実行する。 5. 信頼できる最小範囲の試験、点検、比較で結果を検証する。 6. 永続的な状態、計測値、チェックポイント、次の行動を更新する。 7. 停止条件に達していなければ、直ちに続行する。 行動を実行したという事実だけで進捗と見なしてはならない。状態が完了へ向かって変わり、その変化を証拠が裏付ける場合にだけ進捗として数える。後の反復で同じ失敗を考えなく繰り返さないよう、失敗した実験も記録に残す。 ## 行き詰まりに気づいたら、別のやり方に変える 各反復の後に進捗を評価する。2回連続の反復で検証済みの前進がない場合、同じ未解決エラーが2回発生した場合、成果の品質が大幅に低下した場合、または証拠を増やさず質問や行動を繰り返した場合は、ループが停滞していると判断する。 停滞の兆候を初めて確認した時は、次を行う。 - 現在の方法を一時停止する。 - 最新の状態を、最後に正常と確認できたチェックポイントと比較する。 - 原因が情報不足、権限不足、環境の不具合、誤った前提、効果のない戦略のどれかを特定する。 - 明確に異なる診断方法、またはより小さな試験を選ぶ。 - 再試行する前に、以前の方法が失敗した理由を記録する。 先の試行がまだ動いている可能性がある間は、同じ作業を重複させてはならない。同じ阻害要因について3回の失敗を確認したら、さらに資源を消費せずループを停止する。成果物を保持し、証拠、試した戦略、現在の状態、再開に必要な最小限の判断または外部変更を報告する。 ## 時間と費用の上限を見張り、使い切ったら止まる 資源の上限は緩い目標ではなく、厳守すべき運用条件として扱う。各反復の後に、ループ回数、実時間、モデルまたはサービスの呼び出し回数、利用トークン数、把握できる場合は金銭的費用について、実測値または最善の推定値を記録する。 - いずれかの上限の70%に達したら状態記録で警告し、残りの合格条件のうち価値が最も高いものへ作業を絞る。 - 90%に達したら探索的な作業を避け、検証、状態保存、安全な停止に必要な行動だけを行う。 - 100%に達したら、資源を消費する次の反復を始めない。状態を保存し、停止報告を出す。 - ループを維持するために、上限を迂回、リセット、または黙って別解釈してはならない。 - 使用量を確実に測定できない場合は控えめな推定値を使い、その不確実性を明記する。 予算の枯渇は完了を意味しない。完了した合格条件と未完了の合格条件を分け、妥当な続行に必要な資源とともに報告する。新しい予算、または明示的に拡張された予算が与えられた場合にだけ再開する。 ## 危ない変更の前に戻せる地点を作り、止まるたびに報告する 危険を伴う書き込み、広範な変更、移行、破壊的操作、または外部へ大きな影響を及ぼす行動の前に、復旧可能なチェックポイントを作る。チェックポイントに何が含まれるか、どう復元するか、復元を試験済みかを確認する。影響を受ける状態を合理的に復旧できないコピーを、バックアップと表現してはならない。 変更によって不具合が生じた場合、状態が破損した場合、合格条件に違反した場合、またはシステムの安全性が低下した場合は、最後に検証済みのチェックポイントへロールバックする。失敗の説明に必要な診断証拠を消してはならない。作業契約がその操作を正確に許可している場合を除き、破壊的なロールバック、本番変更、認証情報の変更、購入、取り消せない外部操作には明示的な承認が必要になる。 目的を達成した時、ユーザーが停止を求めた時、予算の厳格な上限に達した時、権限が不足している時、安全性を確認できない時、状態が矛盾している時、または同じ阻害要因で3回失敗した時は、直ちに停止する。すべての停止報告に、次の内容を含める。 - ループを停止した理由と、目的を達成できたかどうか - 変更したもの、残っているもの、現在動いているもの - 検証証拠と未解決のリスク - チェックポイントとロールバックの状態 - 上限に対する資源の使用量 - 再開に必要な具体的な次の行動または承認