セッションのホーム
Bromure Agentic Coding はセッションから始まります。セッションとは、1 台のマシン上の 1 つのフォルダで働く 1 つのコーディングエージェントとの 1 つの会話です。マシン(設定エディタでは「ワークスペース」)とは、コンセプトとアーキテクチャで説明している隔離された Linux VM のことです。やりたいことを伝えればセッションが始まります。アプリは必要ならマシンを起こし、正しいフォルダでエージェントを立ち上げ、そこからはチャットで対話します。ターミナルはその下に変わらずあり、クリック 1 回で開けますが、主役はチャットです。
この章ではチャットを取り巻くウィンドウを扱います。セッションを一覧するサイドバー、チャットの上のヘッダーとツールバー、⌘K コマンドパレット、アーカイブ・終了・削除がそれぞれ何をするのか、そしてキーボードです。セッションの開始はセッションを始める、チャットそのものはチャット、セッションの背後にあるマシンはマシンで扱います。
ウィンドウ
すべてのセッションは Bromure というタイトルの 1 つのウィンドウに収まります。ウィンドウは 2 つに分かれます。左はサイズを変えられるサイドバー、右はステージで、選んだものを表示します — セッションのチャット、新規セッション画面、ルーム、ボード、マシンのターミナルやダッシュボードです。
ウィンドウを開くと、ステージには最後に見ていたセッションが表示されます。ただしそれが終了済みかアーカイブ済みになっていた場合は別です。その場合は最も急ぎの状態にある最新のセッションを、それもなければ新規セッション画面を表示します。
仕切りをドラッグするとサイドバーの幅を変えられます(最大 600 ポイント)。およそ 100 ポイントより狭くすると、細いレールにスナップします。その位置より広くドラッグし戻せば再び展開します。⌃⌘S で 2 つを切り替えられます。
サイドバー
上から下へ、サイドバーには次のものがあります。
- セッションを検索フィールド。
- 新規セッションボタン(⌘N、ツールチップは「エージェントを開始(⌘N)」)。新規セッション画面を開きます。
- セッションセクション:スイッチボードの行、ルーム、そして状態別にまとめられたセッション。
- 何かをアーカイブすると現れるアーカイブ済みの折りたたみ。
- コーディングタスク — コーディングタスクのボード。+ で追加できます。
- オートメーション — スケジュール実行。+ で追加できます。
- 仮想マシン(サイドバーが狭いときは VM と表示)— マシン。既定では折りたたまれています。ヘッダーには実行中のマシン数が緑で表示され、+ で新しいマシンを作れます。展開するとターミナルのグリッド、各マシンとそのターミナルタブ、そして Kubernetes クラスタ・レジストリ・メッセージングコネクタが並びます。マシンを参照してください。
検索
セッションを検索に入力するとリストを絞り込めます。入力した文字がタイトル、最初のメッセージ、フォルダ、@ニックネームのいずれかに現れればそのセッションがヒットします(ニックネームは @ 付きでも無しでも構いません)。3 文字以上入力すると、会話の中身も検索します。会話にその語を含むセッションも一覧され、状態行の代わりに一致箇所の周辺の語がイタリックで表示されます。その行をクリックするとチャットが開き、その語を含む最初のメッセージまでスクロールします。
検索中は、一致が隠れないように折りたたまれたグループとアーカイブ済みの折りたたみがすべて開き、スイッチボードの行は隠れます。フィールドを空にする(または × をクリックする)と通常のリストに戻ります。
注: 会話の検索はこの Mac に保持されている各会話のコピーを読みます。このコピーは約 30 秒ごとに更新されるため、たった今話したメッセージが検索可能になるまで最大 30 秒ほどかかることがあります。⌘K パレットの会話の中も同じインデックスを使います。
セッションセクション
セッションのヘッダーをクリックするとリスト全体を折りたたむ/展開できます(ツールチップは「エージェントとの会話 — クリックでリストを折りたたむ」)。ヘッダーには対応待ちのセッション数を示す赤いバッジと、合計数が付きます。
その下には、順に次のものが並びます。
- スイッチボードの行 — 杖のアイコン、スイッチボード、そして「1 件が対応待ち · 2 件が作業中 · 2 件が準備完了」のような 1 行の集計。スイッチボードは他のすべてを見守る独立したセッションです。状況を尋ねたり、行き詰まったセッションに代わりに答えさせたり、新しい作業を始めたりできます。この行は 2 つ以上のセッションが動いている(作業中・準備完了・対応待ち)ときに現れ、スイッチボード自身が作業中だったり質問があるときにも現れます。クリックするとスイッチボードのチャットが開き、初回はそこで起動します。スイッチボードとメッセージングを参照してください。
- ルーム — 各ルームは色付きのタイル、名前、セッション数の集計を持つ 1 行です。そのセッションは下に入れ子になり、キャレットで折りたためます。ルームの行をクリックするとルームが開きます。セッションが並んで表示され、ルーム専用のスイッチボードが付きます。セッションをルームの行にドラッグすると移動できます。ルームを参照してください。
- 状態グループ(ルームに入っていないセッション向け):
| グループ | ドット | 入るもの |
|---|---|---|
| 対応が必要 | 赤 | エージェントが回答を待っている、またはサインインが必要 |
| 作業中 | オレンジ | エージェントが処理中、または起動したばかり |
| 準備完了 | 緑 | エージェントが自分の番を終え、次のメッセージを待っている |
| 一時停止中 | — | セッションのマシンがスリープまたは停止中。次のメッセージで起きる |
| 完了 | — | エージェントが終了した(あなたが終了させた、または自分で終了した)。次のメッセージで同じ会話のまま再開する |
グループはセッションがあるときだけ、必ずこの順で現れます。そのため対応が必要なものが一番上に来ます。完了は既定で折りたたまれています — ヘッダーをクリックして開いてください。
委任先は委任元の下に入れ子になります。 あるエージェントが別のエージェントに作業を渡すと、委任先のセッションはそれを始めたセッションの下にインデントされて表示されます(委任先がさらに委任すれば何段にもなります)。エージェントの協働を参照してください。
マシンやフォルダが失われたセッションは読めるままですが淡く表示され、状態行がその理由を示します — マシンが削除されましたまたはフォルダが削除されました(マージ後に片付けられたブランチは代わりに**… にマージ済み**と表示)。これらは「完了」グループにたまります。開くと「マシンが削除されました。会話はここで読めます。用が済んだらセッションを削除してください。」という注記とともに会話が表示されます — メッセージを送る相手はもういません。
セッションがまだ 1 つもないときは、セクションに「セッションがまだありません — 始めましょう:エージェントを選び、やりたいことを伝えて、どうぞ。」と表示されます。
ヒント: 新規セッション画面から始めていないエージェントもここに現れます。マシンのターミナルで手動で起動したエージェント、コーディングタスクの実行、オートメーションの実行は、それぞれリスト上のセッションになり、独自のチャットを持ちます。
アーカイブ済みの折りたたみ
アーカイブ済み(「片付けた会話 — 読めるまま、メッセージ 1 つで戻る」)にはアーカイブしたセッションが新しい順に入り、アーカイブ済みのルームもそのセッションとともに入ります。既定では折りたたまれています。ヘッダーをクリックして開いてください。他の場所(⌘K パレット、検索)からアーカイブ済みのセッションを開くと、その行を示すために折りたたみが自動で開き、離れると再び閉じます。
マシンやフォルダが失われたアーカイブ済みのセッションは 1 件ずつ並びません。「マシンまたはフォルダが失われたセッション 1 件」(または「… N 件」)という 1 行と、それらをまとめて削除する削除ボタンが表示されます。
セッションの行
各行には左から右へ、次のものが表示されます。
- エージェントのアバター。セッションのマシンの色のリングで囲まれ(アバターにカーソルを合わせるとマシン名が出ます)、角に状態ドットが付きます — 上の表と同じ赤・オレンジ・緑です。
- タイトル。 エージェントはタスクを理解した時点で自らセッションに名前を付けます(それまでは最初のメッセージからタイトルを取ります)。名前を変えるにはセッションヘッダーでタイトルをダブルクリックするか、ヘッダーの ⋯ メニューの**名前を変更…**を使います。2 つのセッションが同じタイトルのときは、区別できるもの(@ニックネーム、フォルダ、マシン、開始時刻)が行に追加されます。
- 経過時間。セッションが最後に何かをしてからの時間を短く示します:「今」「3分」「2時間」「5日」。⌘ を押している間は、先頭 9 行がここに ⌘1–⌘9 のショートカットを表示します。
- 状態行:セッションに @ニックネームがあればそれ、続いて状態 — 対応が必要、サインインが必要、作業中…、開始中…、起動中…、もう少しです…、準備完了、一時停止中、完了、アーカイブ済み、開始できませんでした、マシンが削除されました、フォルダが削除されました。ブランチセッションではブランチのグリフと作業の進み具合が加わります。たとえば「準備完了 · 3 コミット · 未コミット 2 ファイル」、あるいは進行中のマージが色付きで表示されます。
行にカーソルを合わせるとエージェントの最後の返信がツールチップで見えます。クリックするとセッションが開きます。行を別のセッションの行にドラッグすると 2 つを同じルームに入れられます(新しいルーム、または相手が属するルーム)。ルームの行にドラッグすればそのルームへ移動します。
行のメニュー
行を右クリックするとメニューが出ます。項目は該当するときだけ現れます。
| 項目 | 何をするか |
|---|---|
| アーカイブ / 終了してアーカイブ | セッションをアーカイブ済みの折りたたみに片付けます。エージェントが動いている間は、アーカイブが停止を伴うため終了してアーカイブと表示されます。 |
| アーカイブ解除 | (アーカイブ済みのセッション)リストに戻します。 |
| セッションを終了 | (エージェント実行中)エージェントを停止します。セッションは「完了」へ移ります。 |
| ニックネーム… | セッションに @ニックネームを付けます。他のエージェントやコンポーザーがそのセッションに届けるための名前です。英数字、ピリオド、ハイフン、アンダースコアが使えます。エージェントの協働を参照してください。 |
| 新規ブランチ… | このセッションのフォルダの専用 git ブランチで新しいセッションを始めます。ブランチとレビューを参照してください。 |
| ブランチセクション | (ブランチセッション)変更を確認、マージの各操作、プルリクエストを作成、ここでターミナルを開く、ブランチを破棄… — ブランチとレビューを参照してください。 |
| ルームに移動 › | セッションを既存のルームへ移します。**新規ルーム…**でそのセッションを中心に新しいルームを作れます。 |
| ルームから外す | (ルーム内のセッション)ルームから出してリストに戻します。 |
| 「マシン」の設定… | セッションのマシンの設定エディタを開きます。 |
| Linux ターミナルで開く | (エージェント実行中)エージェントが動いているターミナルタブを表示します。 |
| セッションを削除 | セッションを削除します。アーカイブ、終了、削除を参照してください。 |
折りたたんだレール
折りたたむと、サイドバーは 44 ポイント幅のアイコンのレールになります。
- + — 新規セッション(⌘N)。
- スイッチボードの杖。完全なサイドバーでスイッチボードの行が出る状況のときに表示されます。ツールチップに集計が入ります。
- セッションごとに 1 つのアバター。サイドバーの並び順のままで、それぞれ状態ドットが付きます。一時停止中と完了のセッションは淡く表示されます。アバターにカーソルを合わせるとタイトルと状態が出ます。クリックするとセッションが開きます。アーカイブ済みのセッションはレールに出ません。
- 区切り線、続いてグリッドボタン、そして実行中の各マシンについてターミナルタブごとに 1 つのアイコン。
⌃⌘S を押す、または仕切りを外側へドラッグすると、完全なサイドバーに戻ります。
セッションヘッダー
チャットの上のヘッダーは、そのセッションが何で、どこで動いているかを示します。
- タイトル。 ダブルクリックでセッション名を変更できます(Return で保存、Esc で取り消し)。右クリックするとマシンのメニュー(下記)が出ます。
- 詳細行(中点区切り):
- あれば @ニックネーム;
- 状態。ドット付きで、役に立つ場合は時間も — 「準備完了 · 6 分」「完了 · 5 分前」「作業中 · 開始中」;
- エージェント — アイコンと名前;
- マシン — 色と名前。クリックするとマシンの詳細(ダッシュボード)が開きます。右クリックで**「マシン」の設定…**、Linux ターミナルで開く(エージェント実行中)、マシンの詳細、このマシン上のブランチ…;
- フォルダ。ホーム以下のパスとして(
~/northwind-web); - ブランチセッションではブランチチップと進み具合(「3 コミット」「まだ変更なし」)。ブランチとレビューを参照してください;
- リポジトリから始めたセッションでは、チェックアウト元のリポジトリ;
- トークン数。「N トークン」で、会話が使った合計です。カーソルを合わせると内訳が出ます:「入力 · キャッシュ · 出力」。
- 右側には、ブランチセッションのマージボタン(ブランチとレビュー)、セッションが一時停止中または完了なら 再開(「起こして中断したところから続ける」/「中断したところから再開する」)、そして ⋯ メニュー。
⋯ メニューには名前を変更…、ニックネーム…、アーカイブ / 終了してアーカイブ(またはアーカイブ解除)、セッションを終了、そしてセッションが専用フォルダで働いている場合は変更を確認と新規ブランチ…があります。ブランチセッションではブランチセクションが加わります。続いてマシンの項目(「マシン」の設定…、Linux ターミナルで開く、マシンの詳細、このマシン上のブランチ…)、最後にセッションを削除です。
一時停止中と完了のセッション
エージェントが動いていないセッションは、その会話(この Mac に保持されたコピーから読むので、マシンがスリープ中でも読めます)と、コンポーザーの上の 1 行を表示します。
- 「一時停止中。次のメッセージでここから続きます。」 — マシンがスリープまたは停止中です。
- 「完了。次のメッセージでここから続きます。」 — エージェントが終了しました。
- 「アーカイブ済み。次のメッセージで戻し、ここから続きます。」
メッセージを入力して送る、再開をクリックする、または ⌘⏎ を押してください。アプリは必要ならマシンを起こし、同じ会話でエージェントを開き直し(以前のターミナルタブが残っていればそこで、なければ同じフォルダの新しいタブで)、エージェントが立ち上がったらメッセージを届けます。アーカイブ済みのセッションを再開すると、リストに戻ります。
ツールバー
セッションがステージにあるとき、ウィンドウ右上のツールバーには次のものがあります。
- Linux ピル(⌥⌘U)— 「このセッションの背後にある Linux マシン:マシン一覧内のターミナルタブ」。仮想マシンを展開し、エージェントが動いているターミナルタブをマシン専用のツールバーとともに表示します。そのターミナルからはピルがセッション(「このターミナルが受け持つセッションに戻る」)と表示され、同じキーでチャットに戻れます。セッションのタブが失われている場合は、代わりにマシンのダッシュボードを開きます。
- マシンメニュー — マシンの色と名前が入ったカプセル(「マシン:設定、トレース、再起動…」)。メニューには設定…、マシンの詳細、IP アドレスをコピー(アドレス)、トレースを調べる(トレースインスペクタ)、独立したウィンドウに切り出す、再起動があります。マシンが動いていないときは「実行していません — 次のメッセージで起動します」から始まり、設定…とマシンの詳細だけが並びます。
- 地球アイコン — 組み込みブラウザの表示・非表示(⌃⌘B)。
- ファイルペインのボタン — セッションのフォルダのファイルペインの表示・非表示(⌃⌘E)。マシンを参照してください。
新規セッション画面にはマシンの操作系は一切出ません。マシン単位の表示(エンジンのバッジ、Fusion の稲妻)は、セッションの上ではなくマシン自身のターミナルタブに現れます。
コマンドパレット(⌘K)
ウィンドウのどこでも ⌘K(ワークスペース › 移動…)を押すと、どこへでも飛べて、アクションも実行できます。
何も入力しない状態では、パレットはアクション、次に関連度の高いセッション(最大 8 件)とルーム(最大 4 件)を並べます。入力するとすべてを検索します。入力した語はすべて一致しなければなりません。結果はセクションに分かれます。
| セクション | 中身 |
|---|---|
| アクション | 新規セッション、新規ルーム…、セキュリティ タイムライン、コーディングタスク、オートメーション、環境設定、新しいマシン…。ステージにセッションがあるときは、新規ブランチ…と変更を確認(専用フォルダで働いている場合)、および**「ブランチ」にマージ**(ブランチセッションの場合)も。 |
| セッション | アーカイブ済みを含むすべてのセッション。マシンと状態付き。ニックネームとフォルダも一致対象です。 |
| ルーム | すべてのルーム。集計付き。 |
| マシン | 各マシンについて:マシン自身(マシンの詳細を開く)、「マシン」上のブランチ、「マシン」の設定…。 |
| 会話の中 | 3 文字以上入力すると、会話にその文字を含むセッションが、一致箇所の周辺の語とともに並びます。開くとチャットがそこまでスクロールします。 |
↑ と ↓ で移動、Return でハイライト中の項目を実行、Esc(または外側のクリック)で閉じます。パレットはリモートミラーのウィンドウでも使えます(リモートアクセスとクライアント)。
アーカイブ、終了、削除
セッションを終わりにする方法は 3 つあります。どれも通常はダイアログなしで即座に行われ、ウィンドウ下部にトーストが出ます — たとえば「「ログインを修正」をアーカイブしました」 — 取り消すボタン付きです。トーストが出ている間に ⌘Z を押しても取り消せます。トーストは約 6 秒後、または次のトーストに置き換わると消えます。
| 操作 | 何が起きるか | 取り消し |
|---|---|---|
| セッションを終了 | エージェントが停止し、ターミナルタブが閉じます。セッションは完了へ移ります。会話はフォルダに残り、再開できます。 | エージェントを再び起動します。 |
| アーカイブ(エージェント実行中は終了してアーカイブ) | エージェントが停止し、セッションはアーカイブ済みの折りたたみへ移ります。読めるままです。新しいメッセージ、再開、アーカイブ解除のいずれでも戻ります。 | アーカイブを解除します。 |
| セッションを削除 | セッションはリストから完全に消えます。フォルダとそのファイルはマシンに残ります。 | セッションと保存された会話を復元します(エージェントが動いていなかった場合のみ — 下記参照)。 |
いくつかの場合は先に確認します。
- ⌘W はステージのセッションを終了しますが、その前に「「タイトル」を終了しますか?」 — 「エージェントが停止します。会話はフォルダに残り、あとで再開できます。」 — と尋ね、セッションを終了とキャンセルを出します。確認すると、セッションを終了と同じ取り消す付きのトーストが出ます。⌘W はその下のターミナルタブを閉じることはありません。
- エージェントが動いているセッションのセッションを削除は「「タイトル」を削除しますか?」 — 「エージェントが停止し、セッションはリストから消えます。フォルダはマシンに残ります。」 — と尋ね、削除とキャンセルを出します。こうして確認した削除には取り消しがありません。
- 作業がマージされていないブランチセッションのアーカイブや削除は「「タイトル」をアーカイブしますか — ブランチも?」(または「削除…」)と尋ね、ブランチを保持とブランチを破棄を出します。ブランチとレビューを参照してください。
- セッションをルームから外すと「「ルーム」から外しました」と出て、取り消すと元に戻ります。
自動アーカイブ
リストは生きているものに集中し続けるため、一部のセッションを自分で片付けます。
- 3 日より前に完了したセッションは自動的にアーカイブされます。ルーム内のセッションとスイッチボードはこの方法でアーカイブされることはありません。
- 委任先のセッションは、受け持っていた委任が閉じられた・取り消された・失敗したときにアーカイブされます。コーディングタスクのセッションはタスクが統合された・完了にされた・破棄されたとき(レビュー中はアクティブなままなので、差し戻しや統合は同じ会話に届きます。レビューで約 2 時間アイドルだった場合もアーカイブされます)、オートメーション実行のセッションは実行が終わり、そのタブが終了時に閉じる設定のときです。
アーカイブ済みのセッションは読めるままで、メッセージ 1 つで戻ります。
キーボード
| ショートカット | 操作 |
|---|---|
| ⌘N | 新規セッション |
| ⌘K | コマンドパレット(移動…) |
| ⌘1 – ⌘9 | サイドバー順で先頭 9 件のセッションを開く(⌘ を押し続けると番号が見える) |
| ⌥⌘↑ / ⌥⌘↓ | サイドバー順で前/次のセッション(末尾で折り返す) |
| ⌘⏎ | ステージ上の一時停止中または完了のセッションを再開 |
| ⌘W | ステージ上のセッションを終了(先に確認) |
| ⌥⌘U | セッションとその Linux ターミナルの間を行き来 |
| ⌘Z | 画面上のトーストの操作を取り消す |
| ⌃⌘S | サイドバーを折りたたむ/展開する |
| ⌃⌘R | 次のルーム |
| ⌃⌘B | ブラウザペインの表示・非表示 |
| ⌃⌘E | ファイルペインの表示・非表示 |
⌘1–9 と ⌥⌘↑/↓ が使うサイドバー順は、まず各ルームのセッション、次に「対応が必要」から「一時停止中」までの独立したセッションです。完了とアーカイブ済みのセッションは飛ばされます。
セッションではなくマシンのターミナルタブ上では、従来のターミナルのキー操作が再び効きます — ⌘T で新しいタブ、⌘W で閉じる、⌘1–9 でそのタブ。完全な一覧は付録にあります。