用語集
『状態管理と永続化: 長いタスクを中断から生き延びさせる』の用語 65 件。レッスン本文で初出の箇所にホバーすると定義を確認できます。
| 用語 | 定義 | 出典 |
|---|---|---|
| メモリ | モデルに与えるコンテキストのこと。「モデルは何を見てきたか?」に答えるものであり、NOTES.mdのようにすでにディスクへ書かれていることもあれば、まだプロセスのメモリ上にしか存在しないこともある。 | How we built our multi-agent research system — Anthropic Engineering |
| 実行状態 | ハーネスのプロセス自身が抱えている実行中の場面。messages配列、turnsやtokensUsedといったカウンタ、まだ記録されていないツール呼び出しがこれにあたる。既定ではプロセスのメモリ上にしか存在せず、プロセスの終了とともに消える。 | How we built our multi-agent research system — Anthropic Engineering |
| messages | ハーネスがメモリ上に抱える会話履歴の配列全体。モデルへコンテキストを復元する唯一の情報源であり、チェックポイントの中で最大のフィールドでもある。 | How we built our multi-agent research system — Anthropic Engineering |
| turns | すでに何ターン走ったかを数えるカウンタ。最大ターン数の上限のような停止条件の判定に使われ、再開時はゼロからではなくチェックポイントの値から数え続けなければならない。 | How we built our multi-agent research system — Anthropic Engineering |
| tokensUsed | 累積のトークン消費量のカウンタ。再開時はチェックポイントから引き継がなければならず、それがコンテキスト圧縮のしきい値の判断を狂わせない唯一の道である。 | How we built our multi-agent research system — Anthropic Engineering |
| pendingToolUse | モデルが指名したが結果がまだ記録されていないツール呼び出しを印づける、チェックポイントのフィールド。nullか{ id, name, input }の形のレコードを取る。 | How we built our multi-agent research system — Anthropic Engineering |
| 宙ぶらりんの呼び出し | モデルが指名したtool_useブロックのうち、その結果がmessagesに押し戻される前にプロセスが落ちたもの。対応するtool_resultを持たないまま履歴の末尾に残る。 | How we built our multi-agent research system — Anthropic Engineering |
| チェックポイント | 実行状態(messages、turns、tokensUsed、pendingToolUse)をディスクへシリアライズし、クラッシュ後にプロセスが拾い直せるようにしたもの。モデルの適応力と組み合わせる決定論的なセーフガードのひとつ。 | How we built our multi-agent research system — Anthropic Engineering |
| checkpoint.json | version、task、turns、tokensUsed、messages、pendingToolUseの6つのフィールドを持つチェックポイントファイル。実行中の場面の完全なスナップショットである。 | How we built our multi-agent research system — Anthropic Engineering |
| version | checkpoint.json内のプロトコルのバージョン番号。loadCheckpointがフォーマットの互換性を確認し、知らないバージョンの読み込みを拒否するために使う。 | How we built our multi-agent research system — Anthropic Engineering |
| task | 元のユーザータスクを言葉で書いた文字列。checkpoint.jsonに保存され、再起動したハーネスがこの場面はどのタスクのものかを知り、進捗を報告できるようにする。 | How we built our multi-agent research system — Anthropic Engineering |
| saveCheckpoint | 現在の状態をディスクへ書き出す関数。正しい実装は先に一時ファイルへ書き、それからアトミックにリネームして、書きかけのファイルが残らないようにする。 | How we built our multi-agent research system — Anthropic Engineering |
| 保存地点A | 1ターンの中の最初のチェックポイント。モデルがツールを指名した後、それが実行される前に書かれ、pendingToolUseにこのターンのtool_useブロックを記録する。 | How we built our multi-agent research system — Anthropic Engineering |
| 保存地点B | 1ターンの中の2番目のチェックポイント。ツール結果がmessagesに押し戻された後に書かれ、pendingToolUseをnullへ戻す。 | How we built our multi-agent research system — Anthropic Engineering |
| 一時ファイル | アトミックなチェックポイント書き込みで先に書かれる中間ファイル(checkpoint.json.tmpなど)。完全に書き終えてから、本物のファイル名へリネームして置き換える。 | How we built our multi-agent research system — Anthropic Engineering |
| fs.renameSync | 同一ファイルシステム上でアトミックに働くリネーム操作。ディレクトリエントリは新しいファイルを丸ごと指すか古いファイルを指したままかのどちらかであり、途中まで名前が変わった状態は存在しない。 | How we built our multi-agent research system — Anthropic Engineering |
| その場で上書き | fs.writeFileSyncでチェックポイントファイルに直接書き重ねるやり方。アトミックではなく、書き込みの途中でプロセスが落とされると途中で切れたJSONが残る。 | How we built our multi-agent research system — Anthropic Engineering |
| 再開 | クラッシュ後にチェックポイントからループを起動し直すこと。状態を読み戻し、messagesを復元し、1ターン目からやり直すのではなくエラーが起きた地点から続ける。 | How we built our multi-agent research system — Anthropic Engineering |
| loadCheckpoint | チェックポイントファイルを読んでパースする関数。versionを検証し、バージョンの不一致やパース失敗では黙って空の状態へ落ちるのではなく、大きな声で失敗すべきものである。 | How we built our multi-agent research system — Anthropic Engineering |
| reconcile | 再開時に宙ぶらりんのpendingToolUseを処理する関数。ツールの性質(読み取り専用か高影響か)と台帳の状態から、再実行するか、保存済みの結果を再利用するか、is_errorを返すかを決める。 | Handle tool calls — Claude API |
| READ_ONLY_TOOLS | 副作用がないと判定したツール名の集合(read_file、grep、list_dir、web_search)。reconcileは再開時にこの集合のツールを安心して再実行する。 | Handle tool calls — Claude API |
| 読み取り専用ツール | 副作用がまったくないツール(ファイルを読む、検索するなど)。何度再実行しても外の世界は変わらないため、そのまま繰り返して安全である。 | Handle tool calls — Claude API |
| 高影響ツール | 外部の状態を変えるツール(send_email、create_ticket、delete_file)。再実行の前に、すでに実行済みかどうかを確認しなければ副作用が重複する。 | Handle tool calls — Claude API |
| is_error | tool_resultの任意フィールド。trueにするとツールの実行が失敗した、または実行状態が不明であることをモデルに伝え、成功を前提にせず適応させられる。 | Handle tool calls — Claude API |
| tool_result | 各tool_useに対してモデルへ返すコンテンツブロック。プロトコルはすべてのtool_useに対応するtool_resultを要求し、tool_use_idで紐づけて、まとめて次のユーザーメッセージに入れることを求める。 | Handle tool calls — Claude API |
| tool_use | モデルの応答の中で呼ぶべきツールを名指しするコンテンツブロック。id、name、inputのフィールドを持つ。プロセスが落ちると、対応するtool_resultを持たない宙ぶらりんのtool_useが残る。 | Handle tool calls — Claude API |
| 冪等 | 1回実行しても何回実行しても最終的な効果が同じになる操作の性質。判定の対象は各呼び出しの戻り値ではなく、外の世界に残る最終状態である。 | How we built our multi-agent research system — Anthropic Engineering |
| 副作用台帳 | どの副作用が実際に起きたかをtool_use_idをキーにしてディスクへ記録する、チェックポイントとは別のファイル。ツールが成功したその瞬間に書かれ、再開が「走った」と「走っていない」を判別できるようにする。 | How we built our multi-agent research system — Anthropic Engineering |
| effects.json | 副作用台帳のファイル。tool_use_idをキーに、ツール名・結果・時刻を記録する。ツールが成功した瞬間、保存地点Bよりも一拍早く書かれる。 | How we built our multi-agent research system — Anthropic Engineering |
| tool_use_id | モデルが各tool_useブロックに与える一意な識別子。再開時のリプレイでも変わらないため、副作用台帳の冪等キーとしてそのまま使える。 | Handle tool calls — Claude API |
| at-least-once | チェックポイントによる再開が本質的に持つ実行セマンティクス。ツールが完了しても結果が記録される前にクラッシュしうるため、「走っていない」と「走ったが記録されていない」を区別できない。 | How we built our multi-agent research system — Anthropic Engineering |
| loadEffects | 副作用台帳を読み出す関数。ファイルが無い、あるいはパースに失敗した場合は空のオブジェクトを返し、「まだ記録がない」として扱って再開を止めない。 | How we built our multi-agent research system — Anthropic Engineering |
| saveEffect | 副作用台帳をディスクへ書き戻す関数。一時ファイル+リネームのアトミックな書き込みを使い、ツールの実行が成功して本物の結果を手にした後にだけ呼ばれなければならない。 | How we built our multi-agent research system — Anthropic Engineering |
| 承認ゲート | 高影響ツールの実行前に人間の確認を求めるチェック。問うているのは「これはやるべきか」であり、副作用台帳の「これはもうやったか」とは別の問いである。 | How we built our multi-agent research system — Anthropic Engineering |
| ensureTicket | 「作成する」を「存在を保証する」に設計し直した例。タイトルで検索し、あればそれを返し、なければ作る。設計そのものによって冪等になっている。 | How we built our multi-agent research system — Anthropic Engineering |
| 追記型の書き込み | 累積する書き込みのやり方(array.push、ログファイルへの追記など)。呼び出すたびに本当にもう1件増えるため、最終状態が呼び出し回数によって変わり、たいてい冪等ではない。 | How we built our multi-agent research system — Anthropic Engineering |
| 上書き型の書き込み | 置き換える書き込みのやり方(ある行を固定の値にする、write_fileでファイル全体を書くなど)。1回呼んでも10回呼んでも最終状態は同じで、たいてい冪等である。 | How we built our multi-agent research system — Anthropic Engineering |
| runToolUses | 1ターン分のtool_useブロックをまとめて実行する関数。副作用台帳と承認ゲートを組み込むと、順序は「台帳を確認→承認→実行→台帳へ記録」になる。 | How we built our multi-agent research system — Anthropic Engineering |
| 巻き戻し | クラッシュではなくタスクが進路を外れたときに、判断の場面を以前のターンへ戻してやり直すこと。戻るのはチェックポイントであって、すでにコミットされた外部の副作用ではない。 | Checkpointing — Claude Code Docs |
| フォーク | 同じチェックポイントから独立したタイムラインを2本コピーし、別々のルートを探索すること。各タイムラインは専用のチェックポイント列と空の副作用台帳を持つ。 | Checkpointing — Claude Code Docs |
| rewindTo | ターンごとに保持されたチェックポイント列から、特定のターンの場面を取り出す関数。既定ではそのターンで最後に書かれた保存地点を返す。 | Checkpointing — Claude Code Docs |
| forkFrom | 特定のターンのチェックポイントから独立したタイムラインをコピーする関数。新しいタイムラインは専用のチェックポイント列と空の副作用台帳を持ち、本線から隔離される。 | Checkpointing — Claude Code Docs |
| turn-014-A.json | ターンごとのチェックポイント列のファイル名の例。ターン番号と保存地点の記号をファイル名に埋め込み、どのターンのどの瞬間かを正確に特定できるようにする。 | Checkpointing — Claude Code Docs |
| pickLatestPoint | あるターンの中で最後に書かれた保存地点を見つける関数。AとBの辞書順が「ツール実行の前→ツール結果の記録後」という時間順とちょうど一致することに依拠している。 | Checkpointing — Claude Code Docs |
| 判断の場面 | 巻き戻しが実際に戻すもの。messages、turns、pendingToolUseなど、スナップショットに定義した状態フィールドであって、すでにコミットされた外の世界のアクションではない。 | Checkpointing — Claude Code Docs |
| ドライランモード | フォークの間、外部のアクションを実際には実行しないモード。2本のタイムラインが同じ高影響ツールを起動して副作用が二重になることを防ぐ。 | How we built our multi-agent research system — Anthropic Engineering |
| チェックポイント列 | 最新の1つだけを上書き保持するのではなく、ターンごとに残されるチェックポイントファイルの連なり。巻き戻しとフォークの前提であり、フォークしたタイムラインはそれぞれ独立したコピーを持つ。 | Checkpointing — Claude Code Docs |
| Git | コードの恒久的で共同作業のための履歴を管理するバージョン管理システム。分単位のセッション復旧を担うチェックポイントとも、外部の副作用を記録する副作用台帳とも別の領域を担当する。 | Checkpointing — Claude Code Docs |
| CRASH_AFTER | 疑似クラッシュのタイミングを制御する環境変数(たとえばCRASH_AFTER=after-effect-write:3は3回目の台帳書き込みの後でクラッシュを起こす)。 | How we built our multi-agent research system — Anthropic Engineering |
| SimulatedCrash | プロセスのキルを模すための専用の例外型。main()はこれだけを捕まえてログを1行出し、137で終了するので、デモがスタックトレースではなく本物のキルのように読める。 | How we built our multi-agent research system — Anthropic Engineering |
| crashPoint | 環境変数で制御される疑似クラッシュのトリガー関数。現在の操作のラベルをCRASH_AFTERと突き合わせ、一致したらSimulatedCrashを投げる。 | How we built our multi-agent research system — Anthropic Engineering |
| --resume | 今回の起動がloadCheckpointを通して復旧の経路を取ることを示すコマンドラインフラグ。これが無い場合、main()は前回のチェックポイントと台帳のファイルを明示的に片付ける。 | How we built our multi-agent research system — Anthropic Engineering |
| レスポンスキュー | 本物のモデルクライアントを差し替える検証用のスタブ。あらかじめ書いたレスポンスを決まった順に返し、タスクの実行を決定的に、クラッシュのタイミングを再現可能にする。 | How we built our multi-agent research system — Anthropic Engineering |
| makeStubClient | レスポンスキューからスタブのモデルクライアントを組み立てるファクトリ関数。検証時に本物のclient.messages.createの呼び出しを置き換えるために使う。 | How we built our multi-agent research system — Anthropic Engineering |
| main() | プログラムのエントリポイント関数。下す判断はちょうど1つ、--resumeがあるかどうかであり、そこから復旧の経路と新規開始の経路へ振り分け、SimulatedCrashを一括して捕まえてログを出し終了する。 | How we built our multi-agent research system — Anthropic Engineering |
| 3分岐 | 宙ぶらりんの呼び出しに対するreconcileの3つの分岐。台帳ヒットなら保存済みの結果を再利用、台帳ミスかつ読み取り専用なら再実行、台帳ミスかつ副作用ありならis_errorをモデルへ返す。 | Handle tool calls — Claude API |
| 実行が先、記録が後 | 副作用台帳の規律。ツールの本物の実行結果を手にしてから台帳へ書かなければならず、順序を逆にすれば一度も走っていないものを「完了済み」として記録することになる。 | How we built our multi-agent research system — Anthropic Engineering |
| 137 | SIGKILLで落とされたプロセスの慣例的な終了コード。検証のデモでは、疑似クラッシュを例外ではなく本物のキルのように読ませるために使う。 | How we built our multi-agent research system — Anthropic Engineering |
| 検証ハーネス | 固定のレスポンスキューと制御されたクラッシュ地点を組み合わせ、非決定的な要素(モデルの応答、クラッシュのタイミング)を先に固定して、復旧の振る舞いを1行ずつアサートできるようにする検証の方法。 | How we built our multi-agent research system — Anthropic Engineering |
| 程度の問題 | チェックポイントの機構は、その複雑さが成果を明らかに改善する場合にのみ足すべきだという原則。短いタスクのすべてに一式の仕組みが要るわけではない。 | Building Effective AI Agents — Anthropic Engineering |
| CHECKPOINT_VERSION | コード側が受け付けるチェックポイントのプロトコルバージョンを表す定数。loadCheckpointはファイルのversionをこれと突き合わせ、一致しなければ読み込みを拒否する。 | How we built our multi-agent research system — Anthropic Engineering |
| CHECKPOINT_PATH | チェックポイントファイルの置き場所を固定する定数。saveCheckpointはこのパスに.tmpを付けた一時ファイルへ書いてから同じ場所へリネームするので、一時ファイルと本物のファイルが必ず同一ファイルシステム上に来る。 | How we built our multi-agent research system — Anthropic Engineering |
| EFFECTS_PATH | 副作用台帳のファイルの置き場所を固定する定数。チェックポイントとは別のパスであることが、「どのステップまで来たか」と「その副作用は起きたか」を別々のファイルが答えるという設計をそのまま表している。 | How we built our multi-agent research system — Anthropic Engineering |
| MAX_TURNS | ループの最大ターン数の上限。turnsがこの値に達したらハーネスは自主的に停止する。再開がturnsを引き継いで初めて機能し続ける停止条件である。 | Building Effective AI Agents — Anthropic Engineering |
| HIGH_IMPACT | 実行の前に人間の確認を要するツール名の集合(send_email、create_ticket、delete_file)。runToolUsesはこの集合に入るツールに対してだけ承認ゲートを通す。 | Building Effective AI Agents — Anthropic Engineering |