
Agent Officeの機能
Agent Officeは、AI支援によるソフトウェア開発を、共有のカートゥーン調3Dオフィスに変えます。各GitHubリポジトリは独立したフロアになり、デスク、コーディングワーカー、ターミナル、Issueボードとプルリクエストボード、タスクキュー、サービス、プロジェクト固有の設定が用意されます。
デスクにはClaude Code、OpenCode、またはCodexのワーカーを配置できます。デスクのノートパソコンでライブターミナルを確認したり、チームメイトと同じターミナルを開いたりできます。ワーカーはメインのチェックアウト、または分離されたGit worktreeで動作できるため、作業ディレクトリを共有せずに複数のタスクを並行して実行できます。
このアプリケーションには、マルチプレイヤー移動、音声、画面共有、永続的なチャットとターミナル履歴、ワーカー通知、マシン監視、プロジェクトナビゲーション、GitHub Issueとプルリクエストのワークフロー、構造化されたマルチエージェント会議も備わっています。
基本概念
リポジトリごとに1つのフロア
Agent Officeを初めて起動すると、エレベーターで始まり、認証済みのGitHub CLIアカウントから参照できるリポジトリを選択するよう求められます。owner/name形式でリポジトリを入力することもできます。
リポジトリは次の場所にクローンされます。
~/agent-office/<owner>/<repo>各プロジェクトフロアには、独立したワーカー、デスク、ボード、キュー、サービス、画像、色があります。あるフロアにいる人には、そのフロアにいる他の人だけが見え、声も聞こえます。
デスクのワーカー
空いているデスクでは、Claude Code、OpenCode、Codex、または共有ログインシェルを起動できます。使用中のデスクには、ワーカーのライブターミナルとステータスが表示されます。エージェントフックまたはプラグインによって、ワーカーが作業中、入力待ち、完了のいずれであるかが報告されます。
GitHubボードとタスク自動化
Issueボードでは、Issueをオープン、進行中、クローズ済みのグループに整理します。プルリクエストボードには、下書き、レビュー、承認、マージ、クローズ、CIの状態、差分サイズが表示されます。タスクはワーカーに直接渡すことも、自動実行用の永続キューに追加することもできます。
前提条件とインストール
付属のREADMEではAgent Officeの操作方法を説明していますが、パッケージマネージャーによるインストールコマンドは記載されていません。リポジトリの配布手順またはビルド手順に従ってプロジェクトをインストールし、シェルからagent-office実行ファイルを利用できるようにしてください。
起動前に、サーバーで使用するGitHub CLIアカウントを認証します。
gh auth status認証されていない場合は、GitHub CLIのログインフローを完了します。
gh auth login選択したアカウントによって、Agent Officeが検出できるリポジトリと、Issueコメントの投稿などのGitHub操作で使用されるIDが決まります。
また、その種類のワーカーを雇う場合は、対応するコーディングエージェントCLIを少なくとも1つマシンに設定しておく必要があります。Agent OfficeはClaude Code、OpenCode、Codexのワーカーに対応しています。
最初のオフィスを開始する
次のコマンドでアプリケーションを起動します。
agent-office- アプリケーションに表示されたアドレスを使い、ブラウザーでAgent Officeのインターフェースを開きます。
- エレベーターのプロジェクトセレクターで、
ghから利用できるリポジトリを選ぶか、完全なowner/nameを入力します。 - Agent Officeがリポジトリを
~/agent-office配下にクローンするまで待ちます。 - キャラクターの肌の色、髪型、髪色、シャツを選びます。
- 新しいプロジェクトフロアに入ります。
後から別のプロジェクトを追加または訪問するには、北側の壁にあるエレベーターまで歩いてEを押します。左上のプロジェクト名をクリックして別のフロアを選ぶこともできます。
任意の起動設定
READMEには、便利なサーバーオプションがいくつか記載されています。例:
agent-office --city Berlin --max-workers 4--city Berlinオプションを指定すると、日の出、日の入り、天候がベルリンに合わせられます。--max-workers 4オプションは、全フロアで同時に実行できるワーカー数にサーバー全体の上限を設定します。共有シェルとボードエージェントもこの上限に含まれます。
チーム通知は、SlackまたはDiscordの受信Webhookに接続できます。
agent-office --webhook <incoming-webhook-url>予算警告と雇用停止は、--budgetおよび--budget-pauseで利用できます。これらの制御が使用するのは、追跡対象となるClaude Codeの支出のみです。OpenCodeまたはCodexの支出を直接上限設定することはできませんが、追跡対象の雇用しきい値に達すると、すべての新しいワーカーが一時停止します。
基本操作を覚える
- WASD: フロア内を歩きます。
- Space: ジャンプします。
- マウスドラッグ: カメラを回転させます。
- E: デスク、ボード、エレベーター、座席、はしごなどのオフィスオブジェクトを操作します。
- Tab: メインメニューを開きます。
- T: 最近のチャット行を読みます。
- P: 空いているデスクで雇用する前にタスクを書きます。
- B: 空いているデスクで共有ログインシェルを開きます。
- C: 使用中のデスクで変更内容を確認します。
- N: 最も長く待機しているワーカーを訪ねます。
- R: 終了した対応ワーカーのセッションを再開します。
- /: チャットとワーカーのターミナル履歴を検索します。
メインメニューから、ワーカー、人、Issue、プルリクエスト、キュー、サービス、検索、音声、画面共有、設定、その他のステータスパネルのウィンドウを開けます。頻繁に使う項目はトップバーの上部に固定でき、ブラウザー固有のレイアウト設定は保持されます。
最初のコーディングワーカーを雇う
- 空いているデスクまで歩きます。
- Eキーを押します。
- Claude Code、OpenCode、またはCodexを選択します。
- ワーカーに完了させたいタスクを入力します。
- 必要に応じて専用のGit worktreeを有効にします。
- 雇用を確定し、ノートパソコンにワーカーのターミナルが表示されるのを確認します。
エージェントを選ぶ前にタスクを作成したい場合は、空いているデスクでPキーを押します。Agent Officeには16台のデスクがあります。すべて使用中の場合は、臨時のビーズクッション式ワークステーションで最大12人のワーカーを追加収容できます。
並列タスクには分離されたworktreeを使用する
複数のワーカーが同時にリポジトリを編集する可能性がある場合は、専用のGit worktreeを有効にします。Agent Officeはoffice/<name>ブランチを作成し、チェックアウトを次の場所に配置します。
.agent-office/worktrees/これにより、並列で動作するワーカーが同じチェックアウトを変更するのを防げます。worktreeを使用するワーカーを帰宅させる際は、ブランチとworktreeを保持する、worktreeのみ削除する、または両方を削除することを選択できます。Agent Officeは、未コミットの変更やリモートに到達していないコミットがある場合に警告します。
保持したworktreeを安全に整理するには、次を実行します。
agent-office pruneワーカーのターミナルを開いて共同作業する
使用中のデスクでEキーを押すと、WebSocket経由で実際のPTYターミナルが開きます。複数のチームメイトが同時にセッションへ入力でき、途中から参加した人も既存のスクロールバックを受け取れます。
ターミナルのヘッダーには、現在ターミナルを開いている人が表示されます。また、別の人が入力中の場合は入力通知も表示されるため、共同作業者が互いの入力を上書きする可能性を減らせます。
ワーカーのターミナルと直近3,000行は保存されます。Agentのプロセスはメインサーバーとは別に実行されるため、サーバーの再読み込みやプロセスの再起動中もワーカーは作業を継続できます。サーバーが復旧すると、開いていたターミナルは自動的に再接続されます。
ワーカーのライブ状態を確認する
ワーカーのアンテナとアニメーションは、その状態を示します。ワーカーは作業中、入力待ち、または完了として表示されます。アニメーションには、ファイルの読み取り、コードの編集、テストの実行、Web検索、繰り返し発生する失敗などのアクションも反映されます。
ワーカーが助けを必要とする場合やタスクを完了した場合、Agent Officeは通知音を鳴らし、そのワーカーを待機数に表示します。最も長く待機しているワーカーへ移動するにはNキーを押します。Nキーを繰り返し押すと、待機中のワーカーを順番に切り替えられます。
変更を確認してプルリクエストを開く
使用中のデスクでCキーを押すか、ターミナルから変更を選択します。変更ビューには、変更されたファイルと、Officeが開かれたブランチとの差分が継続的に更新されて表示されます。
このビューでは、次の操作ができます。
- 変更されたファイルとその差分を確認する。
- ワーカーの変更をコミットする。
- 不要な変更を破棄する。
- ブランチをプッシュする。
- プルリクエストを開く。
分離されたworktreeを使用するワーカーの場合、作業の準備ができたらデスクでOキーを押します。Agent Officeはブランチをプッシュし、タスクから作成したタイトルと説明を付けてプルリクエストを開きます。GitHub Issueから開始した作業には、Closes #n参照が含まれます。もう一度Oキーを押すと、プルリクエストを表示できます。
GitHub Issueを扱う
Issueボードには、オープン、進行中、クローズ済みのIssueが表示されます。Issueを選択すると、説明やコメントの確認、コメントの投稿、ワーカーへの送信、タスクキューへの追加ができます。
Issueカードを実際に持ち運ぶこともできます。
- Issueのメモを指してEキーを押すか、Issueウィンドウで持ち上げるを使用します。
- カードを空いているデスクまで運び、新しいワーカーを雇います。
- カードを使用中のデスクまで運び、そのワーカーに渡します。
- カードをタスクキューまで運び、キューに追加します。
- カードをボードに戻したい場合はQキーを押します。
ワーカーがIssueカードを受け取ると、Agent OfficeはGitHubを通じてそのIssueを割り当て、進行中の状態に移します。Issueは、任意のコメントを添えて、完了または対応予定なしとしてクローズすることもできます。
プルリクエストを確認してマージする
PRボードでは、プルリクエストをドラフト、レビュー中、承認済み、マージ済み、クローズ済みの状態に分類します。CIの状態と差分サイズも表示されます。
プルリクエストを開き、変更されたファイルを選択すると差分を確認できます。ファイルはフォルダーツリーまたはフラットリストで表示できます。レビューコメントは、対応する行の下に表示されます。
- Vキーを押すと、ファイルをレビュー済みとしてマークします。
- JキーとKキーでファイル間を移動します。
- レビューを選択すると、PRをワーカーに引き渡します。
- コメントを修正してマージを選択すると、ワーカーがフィードバックに対応し、チェックを通過させてマージします。
- ブランチがベースブランチと競合している場合は、競合を修正してマージを使用します。
Agent Officeでは、プルリクエストをスカッシュ、マージ、またはリベースできます。必要なチェックに合格した後にGitHubへ自動マージを依頼することもできます。プルリクエストがマージされると、Officeはマージゴングを鳴らし、紙吹雪を飛ばし、作業中のワーカーをアニメーション表示します。
タスクキューで作業を自動化する
タスクキューは、北側の壁にあるホワイトボードまたはメインメニューから利用できます。自由入力のタスクを追加するか、Issueをキューに入れると、Agent Officeが作業を自動的に割り当てます。
デスクが空いていて、キューの同時実行数の設定が別のワーカーを許可している場合、次のタスクに分離されたGit worktreeで新しいワーカーが割り当てられます。キューの同時実行数の既定値は3人です。同時に実行するワーカーを0に設定すると、キューが一時停止します。
キューに入れられた課題の作業はGitHubで割り当てられ、作成されたプルリクエストは表示されるとキューボードにリンクされます。完了したワーカーは、キューが別のタスクのために席を必要とするまで、確認できるようデスクに残ります。キューの状態は再起動後も維持されます。
専門ボードエージェントを使う
課題ボード、PRボード、タスクキューには、それぞれキオスクエージェントがあります。キオスクまで歩いて、Eを押してプロンプトを入力します。
- 課題エージェント:
ghを使って課題を検索、作成、トリアージ、ラベル付け、クローズします。 - PRエージェント: プルリクエストを要約、レビュー、コメント、マージします。
- キューエージェント: リクエストを1つ以上のキュータスクに変換し、キューの状態を報告して、タスクを削除します。
キューエージェント自身がコード変更を実装することはありません。新しいワーカーが分離されたワークツリーで作業できるよう、キュータスクを作成します。キオスクでOを押すと端末を確認でき、Xを押すとエージェントを帰宅させられます。
構造化されたマルチエージェント会議を実行する
会議室では、2人から5人のワーカーによるグループをサポートします。会議室、メインメニュー、課題、またはプルリクエストから会議を開始できます。各参加者には役割があり、名前を変更できます。
利用できるパターンは次のとおりです。
- ディベート: ワーカーが方法を提案し、互いに批評し、最終決定をまとめます。
- リード&チーム: リードがタスクを分割して各部分を委任し、結果を統合します。
- Map-reduce: マッパーが別々のファイル、モジュール、課題、その他の部分を処理し、1人のワーカーが結果を統合します。
- レッド/ブルー: レッドチームのワーカーがバグ、セキュリティリスク、エッジケースを特定し、ブルーチームのワーカーが妥当な指摘に対応します。
- レビューパネル: レビュアーが異なる観点からプルリクエストを調査し、リードがレビューを統合して投稿します。
すべての会議では出力ファイルを宣言し、独自のブランチで実行します。出力の準備ができたら、Open PRを使ってプルリクエストを作成します。会議にはラウンド上限とテーブル全体のトークン予算があり、無制限に続くことを防ぎます。
サービス、リソース、支出を監視する
開発サービス
ワーカーがnpm run dev、プレビュービルド、python -m http.serverなどのウェブサーバーを起動すると、数秒以内にサービスボードに表示されます。各項目にはワーカー、ブランチ、ページタイトルが示されます。項目を選択すると、自分のコンピューターからそのサーバーを開くコマンドがコピーされます。
マシンの負荷とワーカー制限
西壁のモニターには、現在のCPUとメモリ使用量、5分間の履歴、実行中のワーカー数が表示されます。メモリ使用量が90パーセントに達するか、CPU使用率が約30秒間90パーセントの状態にとどまると、Agent Officeはマシンに負荷がかかっていると警告します。
サーバーレベルの--max-workers値が上限を設定します。管理者は設定でアクティブな上限を下げられますが、起動時の値を超えて引き上げることはできません。容量がいっぱいの場合、手動での雇用は理由とともに拒否され、キュータスクは空きができるまで待機します。
使用量とコストのレポート
Claude Codeのワーカーは、追跡対象のセッションコストとトークンを報告します。OpenCodeは、利用可能な場合は子セッションを含め、トークンとモデル/プロバイダーの推定値を報告します。Codexは、キャッシュと推論の内訳を含む、記録されたルートセッションのトークンを報告しますが、コストやAPI呼び出し回数は報告しません。
メニューからClaude limitsを有効にすると、5時間のセッション、週間許容量、モデル固有の週間制限について、Claudeプランの使用量が表示されます。このパネルは、ClaudeがプランではなくAPIキーを使用している場合は非表示になり、OpenCodeやCodexは含まれません。
高度なコラボレーションのヒント
- 同時コーディングではデフォルトでワークツリーを使う: ワーカーが未コミットのファイルを共有したり、互いのブランチを変更したりするのを防ぎます。
- 計画と実装を分ける: 課題エージェントとキューエージェントで作業を整理し、新しいワークツリーのワーカーにコード変更を任せます。
- キューの同時実行数をマシンの上限未満に保つ: 対話型ワーカー、共有シェル、ボードエージェントのために容量を残します。
- デスクトップ通知を使う: オフィスのタブがバックグラウンドにあるときでも、入力を必要としているワーカーや完了したワーカーへ直接移動できます。
- チームのWebhookを設定する: SlackやDiscordの通知により、放置されたままのワーカーにチームが気づきやすくなります。
- セッションを再開する前に検索する: /を押すと、再起動前の履歴を含め、チャットと保持されているすべての端末出力を検索できます。
- サポート作業には共有シェルを使う: AIワーカーを雇わずに、テスト、Gitコマンド、開発サーバー用の共同ターミナルが必要なときは、空いているデスクでBを押します。
- ワーカーを帰宅させる前に確認する: 端末の履歴と変更を確認してから、ワーカーのブランチとワークツリーを保持するか削除するかを決めます。
まとめ
Agent Officeは、AIコーディングエージェント、Gitワークツリー、共有ターミナル、GitHubボード、キュー、通知、マルチプレイヤーコラボレーションを1つの空間インターフェースに統合します。まずは1つのプロジェクトフロアと1人の分離されたワーカーから始め、チームがAI支援による並列開発に慣れてきたら、キュータスク、ボードエージェント、プルリクエストのワークフロー、構造化された会議を導入してください。
