会話が25メッセージまで進んでいます。コンテキストを確立し、意思決定を行い、有望な方向に到達しました。そこで思いつきます:まったく別のアプローチを試したらどうだろう?
従来のチャットインターフェースでは、2つの悪い選択肢があります。最初からやり直してすべてを再説明する。または代替案を諦めて現在のパスがうまくいくことを祈る。
JieGouのセッションブランチングは第三の選択肢を提供します:会話をフォークする。
セッションブランチングとは
セッションブランチングは、履歴内の任意のメッセージから新しい会話ブランチを作成できます。ブランチはその時点までのすべてのコンテキスト — システムプロンプト、メッセージ履歴、圧縮済みサマリー — を引き継ぎ、そこから独立して続行します。
会話のためのgit branchと考えてください。
Message 1 ─── Message 2 ─── Message 3 ─── Message 4 ─── Message 5
│
└─── Branch A: Message 4a ─── Message 5a
│
└─── Branch B: Message 4b ─── Message 5b
両方のブランチはMessage 1-3の履歴を共有します。Message 3以降、完全に分岐します。一方のブランチでの変更は他方に影響しません。
ブランチの作成方法
ブランチングは単一アクションです。会話ビューで:
- 会話内の任意のメッセージにホバー
- Branchアイコンをクリック
- その時点から新しいブランチが作成
- 新しいブランチに移動し、続行可能
元の会話はそのまま残ります。いつでもブランチ間を切り替えられます。
APIとSDKからもブランチ可能:
const branch = await jiegou.conversations.branch({
conversationId: "conv_abc123",
fromMessageId: "msg_xyz789",
name: "Alternative approach — try SQL instead of NoSQL"
});
// 新しいメッセージでブランチを続行
const response = await jiegou.conversations.send({
conversationId: branch.id,
message: "Let's reconsider the data model using PostgreSQL instead."
});
ユースケース
プロンプトのA/Bテスト
コンテンツ生成タスクのプロンプトを改良中です。2つの言い回しを比較したい。最新のプロンプトの前で会話をブランチし、一方のブランチにバージョンAを、もう一方にバージョンBを送り、出力を並べて比較します。
コンテキスト設定 ─── 例の提供 ─── 指示の改善
│
├─── Prompt A: "Write a concise summary..."
│
└─── Prompt B: "Summarize the key points..."
仮説テスト
モデルの助けを借りてデータを分析中です。データセットをクリーニングし、分析フレームワークを確立しました。2つの仮説をどちらの探索も汚染せずにテストしたい。
データ読込 ─── クリーン&検証 ─── メトリクス定義
│
├─── 仮説1: "解約は使用頻度と相関する"
│
└─── 仮説2: "解約はサポートチケットと相関する"
各ブランチがクリーンなデータセットのコンテキストを取得。各探索は分離されています。
モデルの比較
Claude Sonnetで初期探索を開始。ブランチして、ブランチをGPT-4oに切り替え。両方のブランチで同じ質問をする。推論アプローチ、出力品質、レスポンス時間を比較。
安全な探索
本番設定で作業中?リスクのある変更を行う前にブランチ。ブランチが行き止まりになったら、メインの会話に戻って何事もなかったかのように続行。
協調的意思決定
チームがアーキテクチャ決定について議論中。会話をブランチして各オプションを独立して探索。探索後、両方のブランチをレビューし、洞察を最終決定に統合。
ブランチ管理
ブランチは使い捨てではありません。完全なライフサイクルサポートを持つファーストクラスの会話オブジェクトです:
- 命名 — 識別しやすいようにブランチに説明的な名前を付ける(「SQLアプローチ」「NoSQLアプローチ」)
- 一覧 — 会話のすべてのブランチをツリービューで確認
- 切り替え — 状態を失わずにブランチ間をジャンプ
- 比較 — ブランチを並べて分岐の様子を比較
- アーカイブ — 不要なブランチを削除せずにアーカイブ
ブランチングとコンパクションの連携
セッションブランチングはJieGouの反復コンパクションシステムと統合されます。コンパクトされた会話からブランチする場合:
- ブランチはコンパクトされたサマリーを基盤として引き継ぐ
- ブランチポイント前のすべての完全な最近のメッセージも引き継ぐ
- 各ブランチは成長に応じて独立してコンパクト
- 一方のブランチでのコンパクションは他方に影響しない
つまり、2回コンパクトされた100メッセージの会話からブランチでき、完全なコンパクトされたコンテキストで開始します — 情報の損失なし。
ブランチ比較ビュー
比較ビューは2つのブランチを並べて表示し、分岐点をハイライトします:
| Branch A (SQL) | Branch B (NoSQL) |
|---|---|
| 「リレーショナルモデルは強い一貫性を…」 | 「ドキュメントストレージはスキーマの反復を…」 |
| 推定レイテンシ:12ms p99 | 推定レイテンシ:8ms p99 |
| 移行工数:3週間 | 移行工数:1週間 |
これによりトレードオフの評価が簡単になり、両方の探索からのエビデンスで意思決定に到達できます。
洞察の統合
ブランチは独立していますが、洞察はサイロ化されません。一方のブランチの発見を他方で参照できます:
- 持ち込みたい洞察のあるブランチを開く
- 関連するメッセージまたはサマリーをコピー
- ターゲットブランチに切り替え
- 次のメッセージのコンテキストとして貼り付け
ブランチ間の発見を統一サマリーに自動合成する専用マージアシスタントも構築中です。2026年Q2のロードマップに含まれています。
APIとSDKサポート
セッションブランチングはJieGou SDKとREST APIで完全サポートされています。プログラマティックにブランチの作成、会話のブランチ一覧、特定ブランチへのメッセージ送信が可能です。
// 会話のすべてのブランチを一覧
const branches = await jiegou.conversations.listBranches("conv_abc123");
// ブランチツリー構造を取得
const tree = await jiegou.conversations.getBranchTree("conv_abc123");
// 2つのブランチを比較
const diff = await jiegou.conversations.compareBranches({
branchA: "conv_branch_001",
branchB: "conv_branch_002"
});
これにより代替案を体系的に探索する自動ワークフローが可能になります — 例えば、会話をブランチし、3つの異なるプロンプトを試し、評価基準に基づいて最良の結果を選択するワークフローステップ。
利用可能プラン
セッションブランチングはProプラン以上で利用可能です。Proでは会話あたり最大10のアクティブブランチ、TeamとEnterpriseプランでは無制限のブランチが可能です。
ブランチは会話ストレージクォータにカウントされますが、LLM使用量制限にはカウントされません — 各ブランチで実際に送信したメッセージのみがトークンを消費します。
探索を始めましょう
最高のアイデアは「もしも?」と問うことから生まれます。セッションブランチングはその問いをコストフリーにします。フォークし、探索し、比較し、最良のパスに収束しましょう。