# エージェントセンター

エージェントセンターは、あらゆる接続にまたがる Claude Code と Codex のセッション —
tmux ウインドウ、ペイン、素のセッション — を 1 つのページに集め、目的のペインを
探し回らずにそのプロンプトへ回答できるようにします。**実験的機能** であり、
初期状態はオフです。**設定 → 実験的機能 → エージェントセンター** で有効に
してください。あとでオフにしても、ホストフックはアンインストールされません。

開くには、サイドバーの **エージェント** の項目（iPhone ではセッションタブの
セレクタの中にあり、対応が必要なエージェントがいるとタブにバッジが付きます）、
**⌘⇧A**、またはエージェントが待っているときに上部バーに現れる呼び出しボタンを
使います。フォーカス中のペインでエージェントが待っている場合は、
[スワイプパッド](https://bambouville.com/docs/ja/swipe-pad/#エージェントのライブ選択肢)もその選択肢を花びらと
して表示します。

## エージェントのページ

カードは状態ごとにまとめられます — **入力待ち**、**完了直後**、**実行中**、
**待機中**、**ステータスを取得できません** — その上には要約行（「N 件の
エージェント · N 件のセッション · N 台のホスト」）と、「対応が必要なエージェントが
あります／すべて対応済み」のバナーがあります。

各カードにはエージェントの現在のプロンプトが表示されます。カードからは次のことが
できます:

- **⇥** でカード間を移動し、**1**〜**9** で番号付きの選択肢を選ぶ、
- **⌘↩ 開く** — そのペインへ直接移動する、
- メッセージ欄に入力する — 「\<名前\> にメッセージ…」はキューに追加され、
  「\<名前\> にプロンプト…」はすぐに送信されます、
- エージェントを中断する。

回答は送信前にライブプロンプトを再確認し、送信時には内容が届いたかを検証します。
そのため、エージェントがすでに先へ進んだ質問に答えてしまうことはありません。
ターミナル側でエージェントが出力を流している間はスクロールが一時的にロックされ、
うっかりフリックして実行中に画面が上へ引っ張られることを防ぎます。自由に
スクロールしたい場合は、**設定 → ターミナル → エージェント実行中のスクロール
ロック** でプロバイダごとに固定を解除できます（**claude code** と **codex**。
どちらも初期状態はオンです）。検出、カード、通知には影響しません。

![エージェントのページ。カードが入力待ち、完了直後、実行中、待機中ごとにまとめられ、各カードにプロバイダ、セッション、ホスト、ウインドウとペイン、さらにインラインの回答ボタンとプロンプト入力欄が表示されている。](https://bambouville.com/docs/assets/img/agent-center.png)

*先に対応が必要なものからカードがまとめられます。ブロックされているエージェントは、選択肢をインラインのボタンとして表示します。*


## 検出の仕組み

基本の検出はヒューリスティックで、ターミナルのテキストから読み取ります。
[スワイプパッドのプロファイル](https://bambouville.com/docs/ja/swipe-pad/#プロファイル)と同じ文法を使います
（Claude Code と Codex の組み込み文法に加え、自分で定義したカスタムプロファイル）。

**正確な状態表示** のために、Tessera はホストごとに任意で導入できる
**エージェントステータスフック** を用意しています。ターミナルからはプロセスの
有無とピクセルは分かりますが、エージェントが計算中なのか、待機中なのか、
ブロックされているのかは分かりません — 信頼できる情報源は、エージェント自身の
ライフサイクルフックです。これがない場合、カードは *ステータスを取得できません*
と表示され、センターはエージェントを検出するだけになります。状態を推測することは
決してありません。

フックのインストールは（状態を取得できないカード、または上部バーのアンバー色の
警告から行えます）、必ず先に何を変更するかを正確に示します。サーバーの
`~/.config/tessera` 配下に Tessera 所有のファイルを置き、Claude Code と Codex の
ユーザー設定には Tessera のハンドラのみをマージし — 既存のエイリアス、関数、
無関係なフックを書き換えることはありません — `.zshrc` / `.bashrc` にはガード付きの
読み込み行を 1 行追加します（`# TESSERA-AGENT-LIFECYCLE` の印が付きます）。
送り返されるのは状態のメタデータだけです。プロバイダ、ライフサイクルイベント、
状態、理由、セッション／ターンの識別子、通知の種類、権限モード、タイムスタンプ、
ローカルのプロセス ID であり、**プロンプト、応答、ソースコード、認証情報を送ることは
ありません**。

インストール後に知っておくとよいこと:

- シェルが読み込む必要があります — 新しいシェルまたは tmux ウインドウを開いて
  ください（Tessera がこれを提案するのは、空のプロンプトのときだけです）。
- Codex は独自のフック信頼の境界を持っています。統合後の初回起動時に、`/hooks` で
  フックを確認するよう求められることがあります。
- このページはホストごとにフックの状態を追跡し — 未インストール、有効、
  ここでは無効、古いバージョン — 壊れた統合は自動的に修復し、新しいバージョンが
  出たときは **ステータスフックを更新** を提案します。素の mosh では確認に
  キーのロック解除が必要になることがあるため、Tessera はポーリングせずに
  **今すぐ確認** のタップを待ちます。

## 呼び出しの通知

**エージェントが対応を必要とするときの通知** を有効にしていると、Tessera が
バックグラウンドにある間に画面外のエージェントが完了したり対応を求めたりしたとき、
iOS のバナーが表示されます — 「\<ホスト\> · \<ウインドウ\>」「Claude Code が
入力待ち」「… が完了しました」。バナーをタップすると、該当のペインへ直接
移動します。

- これを有効にすると、ターミナルのベルによるバックグラウンド[通知](https://bambouville.com/docs/ja/notifications/)
  が一度だけオフになります。エージェントのチャネルのほうが精度が高いためです。
- iOS はバックグラウンドで長時間のセッションを一時停止することがあるため、
  非常に長く動いているセッションでの配信はベストエフォートです。
