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

この記事の要点
- セッションは、指示・道具の使用・結果・返答をまとめた会話の記録。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 は必要なだけ何往復もします。途中の確認や質問も呼び出しの中で処理されるので、セッションの管理が要るのは「複数回の指示で文脈を共有したい」時だけ です。

続き・再開・分岐の違い
続き(continue)と再開(resume)は、どちらも今ある会話に足していく方法 です。違いは会話の見つけ方です。
- 続き:今のフォルダで一番新しい会話を自動で見つける。何も覚えておかなくてよい。1度に1つの会話しか回さない使い方に向く
- 再開:セッション ID を指定して、その会話に戻る。利用者ごとに会話を分けるサービスや、直近ではない会話に戻りたい時に必要
分岐(fork)は性質がちがいます。 元の会話のコピーから新しいセッションを作り、そこから別の方向へ進めます。分岐したほうには新しい ID が付き、元の会話の ID と中身は変わりません。結果として、別々に再開できる2つの会話が手元に残ります。
セッション ID の取り方
再開と分岐には、セッション ID が要ります。ID は、呼び出しの最後に返る結果メッセージの session_id に入っています。 成功でも失敗でも必ず入るので、結果を受け取ったら毎回保存しておくと安心です。
公式が挙げる、再開がよく使われる場面は次の3つです。
- 終わった作業の続きを頼む:分析が済んだあと、ファイルを読み直させずに次の作業へ進める
- 上限で止まった作業を立て直す:往復回数や金額の上限で止まった会話を、上限を上げて再開する
- プログラムを再起動する:止める前に ID を取っておき、あとで会話を戻す
上限で止まった場合、1回で終わる呼び出しでは、エラーの結果を返したあとに例外が出ます。例外を受け止めてから再開する 形にしておきます。料金の上限の付け方は Agent SDK の料金確認 で解説しています。
Python と TypeScript で書き方が少しちがう
会話を続ける「入れ物」の有無が、2つの言語の一番の違い です。
| Python | TypeScript | |
|---|---|---|
| 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 の会話を再開する方法 で解説しています。
まとめ
- セッションは 会話の記録。SDK が自動で保存し、戻ると前の文脈のまま続けられる
- 続き=直近、再開=ID 指定、分岐=元を残して別の道。ID は結果メッセージの session_id から取る
- ファイルは戻らない。別のサーバーで続けるなら 保存先の共有か、結果だけを渡す形 にする
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


