Agent SDK のセッション|続き・再開・分岐の使い分け

公開 更新 著者 永上裕之仕事の自動化
AIとの会話の記録を、続きから再開したり枝分かれさせたりしているイメージ

この記事の要点

  • セッションは、指示・道具の使用・結果・返答をまとめた会話の記録。SDK が自動で保存する
  • 続き(continue)は直近の会話、再開(resume)は ID を指定した会話、分岐(fork)は元を残したままコピーから別の道を試す
  • 記録は会話だけでファイルは戻らない。別のサーバーで再開するなら保存先を共有するか、結果だけ次の指示に渡す

AI エージェントを業務で使うと、「昨日の分析の続きをやって」「同じ調査から別の案も出して」と頼みたくなる場面がすぐに来ます。Claude Agent SDK の全体像は Claude Agent SDK とは で解説しました。

この記事では、公式ドキュメント「Work with sessions」(2026年11月9日確認)にもとづいて、Agent SDK のセッションの仕組みと、続き・再開・分岐の使い分け を整理します。

結論:やりたいことで3つの選択肢を選ぶ

セッションとは、AI が作業する間にたまる会話の記録 です。指示、AI が使った道具、その結果、返答がすべて入り、SDK が自動でディスクに保存します。戻ってくると、AI は読んだファイルや決めたことをそのまま覚えた状態で続きを始められます。

やりたいこと使うもの
1回で終わる作業何もいらない。1回の呼び出しで済む
1つのプログラムの中で会話を続けるPython は ClaudeSDKClient、TypeScript は continue
プログラムを再起動したあと、直近の続きからcontinue(ID はいらない)
直近ではない、特定の会話に戻るセッション ID を取っておき resume に渡す
元の会話を残したまま別の案を試すfork(分岐)
何もディスクに残したくないTypeScript は persistSession を false にする

なお、1回の呼び出しの中では、AI は必要なだけ何往復もします。途中の確認や質問も呼び出しの中で処理されるので、セッションの管理が要るのは「複数回の指示で文脈を共有したい」時だけ です。

1つの会話から、続き・再開・分岐の3本の道が伸びている図
1つの会話から、続き・再開・分岐の3本の道が伸びている図(イメージ)

続き・再開・分岐の違い

続き(continue)と再開(resume)は、どちらも今ある会話に足していく方法 です。違いは会話の見つけ方です。

分岐(fork)は性質がちがいます。 元の会話のコピーから新しいセッションを作り、そこから別の方向へ進めます。分岐したほうには新しい ID が付き、元の会話の ID と中身は変わりません。結果として、別々に再開できる2つの会話が手元に残ります。

セッション ID の取り方

再開と分岐には、セッション ID が要ります。ID は、呼び出しの最後に返る結果メッセージの session_id に入っています。 成功でも失敗でも必ず入るので、結果を受け取ったら毎回保存しておくと安心です。

公式が挙げる、再開がよく使われる場面は次の3つです。

  1. 終わった作業の続きを頼む:分析が済んだあと、ファイルを読み直させずに次の作業へ進める
  2. 上限で止まった作業を立て直す:往復回数や金額の上限で止まった会話を、上限を上げて再開する
  3. プログラムを再起動する:止める前に ID を取っておき、あとで会話を戻す

上限で止まった場合、1回で終わる呼び出しでは、エラーの結果を返したあとに例外が出ます。例外を受け止めてから再開する 形にしておきます。料金の上限の付け方は Agent SDK の料金確認 で解説しています。

Python と TypeScript で書き方が少しちがう

会話を続ける「入れ物」の有無が、2つの言語の一番の違い です。

PythonTypeScript
1つのプログラム内で続けるClaudeSDKClient を使う。同じ入れ物に何度話しかけても同じ会話になる2回目以降の呼び出しに continue を付ける
保存しない環境変数で会話の記録を書かない設定にするpersistSession を false にする

TypeScript には、以前「V2」と呼ばれる試験的な会話の仕組みがありましたが、公式によると SDK の版 0.3.142 で削除されています。今から作るなら、query の呼び出しとこの記事のセッションの設定を使います。

別のサーバーで再開する3つの方法

セッションの記録は、作ったマシンの中にだけ保存されます。 作業ごとに使い捨てのコンテナや、別のサーバーで再開したい場合は、公式の3つの方法から選びます。

方法やり方向いている場面
保存先を共有するセッションの保存先を自分のデータベースなどへ書き出す仕組み(SessionStore)をつなぐ複数のサーバーで同じ会話を引き継ぐ
記録のファイルを運ぶ最初のマシンの記録ファイルを、次のマシンの同じ場所に置いてから再開する小さな構成で手早く試す
再開に頼らない必要な結果(分析・決めたこと・変更点)だけをアプリ側で保存し、新しい会話の指示に入れる長く安定して動かしたい本番

公式は、3つめについて 「記録ファイルを持ち回るより、たいていはこちらのほうが壊れにくい」 と書いています。本番の構成全体の考え方は Claude Agent SDK の本番運用 も参考にしてください。

気をつけたい2つのこと

1つめは、記録するのは会話だけで、ファイルは戻らないこと です。分岐した側の AI がファイルを書き換えると、その変更は同じフォルダで動く全部の会話から見えます。ファイルの変更まで戻したい時は、Agent SDK のファイル巻き戻し を使います。

2つめは、会話の一覧や名前付けの機能があること です。保存された会話を一覧にする、中身を読む、名前やタグを付けるといった関数が用意されています。利用者ごとに会話を出し分ける画面を作るときは、ここから組み立てます。

CLI(ターミナル)で会話を再開する方法は Claude Code の会話を再開する方法 で解説しています。

まとめ

出典

永上裕之

ユニコスクール株式会社 代表取締役。AIエージェント専門のスクール&コミュニティを運営しています。

この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。

関連する記事