Claude Code や Codex と組んだ開発がすっかり日常になり、今では複数のプロジェクトで AI エージェントを何体も並べて動かしています。エージェントは 1 体でもかなりの仕事をこなしますが、何体も並べて分担させると、設計役の結果を実装役に伝え、レビューの指摘を戻し、「この操作を実行してよいか」の確認に答え続ける人が要ります。気づけば私の仕事は、エージェント同士の伝言係と承認係になっていました。AI に仕事を任せたはずが、AI の秘書をやっている状態です。
そこで、その間をつなぐ Windows 向けのアプリ Holistic を作りました。エージェントを広いキャンバスに並べて線でつなぎ、伝言はエージェント同士に任せ、人は判断が要るところにだけ入ります。

機能を順に紹介します。
1. キャンバスにエージェントを並べる: 広いキャンバスにターミナルを置き、それぞれで Claude Code、Codex、OpenCode、Cursor などのエージェントを動かします。シェル (PowerShell・コマンドプロンプト・WSL) もそのまま置けます。ノートやスケッチも同じキャンバスに並べ、チームの作業場を 1 枚で見渡せます。エージェントは各社の CLI をそのまま動かすので、それぞれの契約やログインもそのまま使えます。
2. 線でつなぐと、エージェント同士が依頼し、返事を返す: キャンバス上でエージェント同士を線でつなぐと、進行役のエージェントが設計役に設計を、実装役に実装を頼み、レビュー役が確かめて、結果が進行役に戻ります。人が伝言役をする必要はありません。返事が要る依頼を返さずに止まったエージェントには、Holistic が返事を促します。エージェントは MCP の tool (send_to_node など) で、線の先のエージェントに送ったり、画面を読んだりします。

3. チーム作りも、エージェントに任せられる: エージェントを 1 体だけ置いてお題を渡すと、そのエージェントが必要な役割を考え、仲間のエージェントをキャンバスに作り、線でつないで仕事を割り振ります。面接も歓迎会もなしで仲間が増えていきます。作る時には、役割に合わせてエージェントの種類やモデル、考える深さ (effort) も選べます。設計は深く考えさせ、定型の作業は軽いモデルに任せる、といった使い分けもエージェントが決められます。エージェントは MCP の tool (create_node / connect_nodes) で、種類・役割・モデル・effort を指定してノードを作り、線を張ります。モデルと effort は、エージェントの種類ごとの起動の引数に Holistic が組み立てます。

4. AIde: 承認の判断と、止まったエージェントの知らせ: エージェントが作業の途中で出す「この操作を実行してよいか」という承認を、Holistic の AI アシスタント AIde が読んで判断します。merge、main への push、削除、公開などの取り消しにくい操作は自動では通さず、作業を頼んだ側 (進行役のエージェントや人) に判断を回します。どの操作を回すかはプロジェクトごとに選べます。判断を待って止まったエージェントがいれば通知で知らせ、サイドバーにはエージェントごとの要約と次のアクションを出します。AIde の判断に使う LLM は、PC の中で動く小さなモデルか、OpenAI 互換の API (Groq・OpenAI・OpenRouter など) から選べます。


5. シナリオ: 決まった進め方に沿って、エージェントを動かす: 調査、PoC、開発といった仕事の進め方をシナリオとして書いておき、エージェントにつなぐと、その順番どおりに進みます。段ごとに、やること・守ること・終わりの条件を書きます。エージェントが段を終えずに止まれば促し、守ることを破りそうな操作の直前には、守ることを突きつけて止めます。シナリオは Markdown で書き、プロジェクトごとに保存して使い回せます。段の完了はエージェントが tool で申告し、進み具合はシナリオのノードに表示されます。



6. 作業の記録と残りの作業を、エージェントが引き継ぐ: 「今日の作業を記録して」と頼めば、エージェントがやった作業と、まだ手を付けていない作業を台帳に書きます。エージェントは起動するたびにこの台帳を読むので、作業を中断して翌日に再開しても、続きから始められます。記録はプロジェクトごとに保存され、エージェントは MCP の tool (worklog_append / task_list など) で読み書きします。

7. 拡張機能: 外のサービスや道具を、エージェントにつなぐ: Slack の連絡や会議の音声など、エージェントの外にある情報を、拡張機能としてキャンバスに置き、線でつないだエージェントに使わせます。見本として、フォルダの監視と、会議の文字起こしが入っています。会議の文字起こしは Windows 11 のライブキャプションを使い、音声と字幕は PC の外に出ません。外へ何かを送る操作には、人の承認を挟めます。拡張機能は MCP server として作ります。書く操作には承認ダイアログの項目を宣言でき、承認された引数だけが拡張機能に届きます。


8. ロールとテンプレート: チームの組み方を使い回す: 「設計担当」「レビュー担当」のような役割の指示をロールとして保存し、エージェントに割り当てます。うまくいったチームの組み方は、エージェントと線ごとテンプレートとして保存し、別のプロジェクトですぐに作り直せます。ロールは Markdown のファイルで、テンプレートはノードの設定と線の向きを保存します。


9. ノート・スケッチ・会議: エージェントと資料を共有する: ノートの行を選んでエージェントに質問すると、答えがその場のカードで返ってきます。会議のノードでは、複数のエージェントに同じ問いを投げ、意見を出し合わせられます。図はスケッチに描けます。ノートは Markdown のファイルとしてプロジェクトに保存され、エージェントも同じファイルを読み書きします。


10. 携帯から: 席を外していても答えられる: 携帯のブラウザから、各エージェントの状態を見て、返事を送れます。判断を待つエージェントが出れば、携帯に通知が届きます。接続には Tailscale を使い、同じアカウントの端末からだけ開けます。

11. worktree: 作業を分けて、戻す: 1 つのプロジェクトの中で、作業ごとに別の作業場所を作り、エージェントのチームを分けて並行させられます。終わった作業は元のブランチへ戻します。作業場所は git worktree で、Hub で切り替え、Land で merge・squash・rebase を選んで戻します。


技術構成は Electron + React + TypeScript で、キャンバスは React Flow、ターミナルは xterm.js と node-pty (Windows の ConPTY)、スケッチは Excalidraw を組み込んでいます。エージェント同士のやり取りは Holistic の中で動く MCP サーバーが仲介し、AIde の PC 内のモデルは node-llama-cpp で Qwen3 1.7B を動かしています。
Holistic は現在、一般公開に向けて準備を進めています。先行しての導入や、業務に合わせたカスタマイズをご検討の場合は、会社概要に記載のメールアドレスからご連絡ください。
実際の受託案件を Holistic のチームで回した記録を、note の記事に書いています。
ご質問、カスタマイズのご相談、別途開発のご依頼も承っておりますので、お気軽にどうぞ。
