1つのプロジェクトで複数のAIエージェントの混乱を収める方法
最近、Claude Codeでモジュールのリファクタリングを試み、同時にGitHub Copilot CLIでテストの書き直しをしようとしたところ、すぐにターミナルタブのやり取りに迷い込み、ローカルブランチが互いの変更を上書きしてしまうという状況に陥りました。Kandevプロジェクトの開発者들도、AI開発者を管理するための独自のツールを構築しようとした際に、同じ問題に直面したようです。
Kandevは、Webインターフェースとカンバンボードを備えたオープンプラットフォームで、自律型コーダーとの混沌とした作業を明確で管理されたプロセスに変換します。
メインビジョンは何か
過去1年間で、Claude Code、Codex、Copilot CLI、Gemini、Cursor agent、Devin、そしてさらに数十もの代替ツールなど、コーディング用のCLIユーティリティが多数登場しました。 각각にはそれぞれ強みがありますが、ラップトップのターミナルで直接実行すると、標準的な問題が発生します:
- コンソール出力経由で変更を確認するのが不便。
- 同じフォルダで複数のエージェントを並行実行すると、Gitの競合が発生。
- ローカルCPUとRAMの負荷が、新しいプロセスごとに増加。
Kandev開発者が提案するアプローチは次のとおりです:人がタスクを設定し、ボード上の列に распределитьし、最終的な差分を確認し、すべてのルーチン生成はニューラルネットワークに残すというものです。
このプロジェクトは特定のベンダーのクラウドに依存せず、AGPL-3.0ライセンスで配布されています。テレメトリ収集はなく、サーバーをご自身のハードウェアまたは分離されたVPSで実行できます。
ブランチの競合なしでタスクを並行実行
エージェントが互いに干涉して作業ディレクトリを破損することを防ぐため、KandevはGit worktreeメカニズムを積極的に活用しています。各カードには独自のブランチを持つ分離環境が与えられます。3つの異なるニューラルネットワークを同時に実行できます:1つはレイアウトを修正し、2番目はSQLクエリを書き直し、3番目はドキュメントを処理します。
Kandev内のワークスペース画面は、おなじみのIDEのようにレイアウトされています。1つのウィンドウには以下が含まれます:
- エージェントとのチャットまたは直接CLIターミナル;
- LSPサポート付きの組み込みコードエディタ;
- ファイルツリーとGit変更パネル;
- ブラウザでの結果プレビューウィンドウ。
このレイアウトにより、コンソールで無数のテキスト行を解析しようとする代わりに、通常のビジュアルエディタで完成した結果と差分を確認できます。
異なるプロバイダーからのチェーンを構築する
Kandevの興味深い機能は、複数のニューラルネットワークからパイプラインを作成することです。このツールはオープンACP(Agent Client Protocol)をサポートしており、20以上の異なるエージェントが接続できます。
必要に応じて、タスクの段階的処理を設定できます:
- Claude Codeがアーキテクチャを設計し、プランを作成。
- GitHub Copilotがコンパイルされたプランに基づいてコードを生成。
- Codexが受信した変更のエラーと脆弱性をチェック。
ツールがまだACPを直接サポートしていない場合、Kandevは組み込みのPTYターミナルエミュレータ内でTUIモードで実行します。つまり、プロファイル設定を通じて、 literally数分でコンソールスクリプトを追加できます。
複数のリポジトリとサブタスクでの作業
多くの場合、タスクはバックエンドとフロントエンドの両方に同時に影響します。Kandevは1つのカードを複数のリポジトリにリンクできます。システムは各プロジェクトに対して個別のworktreeを作成しブランチを生成し、グループ化された変更を1つのレビュウィンドウに収集します。
タスクが大きくなりすぎる場合、エージェントは親セッションのコンテキストを継承するサブタスクを生成できます。これは、大きなリファクタリングを複数の独立したプルリクエストに分割する必要がある場合に便利です。
このプロジェクトには、組み込みのMCP(Model Context Protocol)サポートもあります。Kandev内のエージェントはユーティリティツールにアクセスできます:サブタスクの作成、隣接するカードへのメッセージ送信、他のエージェントのダイアログ履歴の読み取りが可能です。
エージェント自体はどこで実行するか
ヘビーなコードベースには 상당なリソースが必要です。ラップトップで3つの自律型エージェントを実行すると、ファンがすぐに最大回転数を始めます。Kandevは柔軟なランタイム選択でこの問題を解決します。
サーバーはタスクを実行環境に送信します:
- コンピュータ上のローカルプロセス;
- 分離されたDockerコンテナ;
- SSH経由のリモートサーバー;
- sprites.devなどのクラウドエミュレータ。
Kandevをオフィスまたは家庭内の強力なサーバーにデプロイし、ブラウザ経由でスマートフォンからもカードの管理と差分のレビューを行えます。外部ネットワークからの安全な接続には、作者들은Tailscaleまたはお好みのVPNを使用することをお勧めします。
内部の技術的構成
Kandevのアーキテクチャは非常にシンプルです。バックエンドはGoで記述され、プロセスのオーケストレーション、タスクのライフサイクル、WebSocketゲートウェイを処理します。データベースとセッション履歴全体がSQLiteにローカル存储されます(~/.kandev)。
フロントエンドはViteとZustandで状態管理を行うReactで構築されています。コード作業にはMonaco Editor、ターミナルにはxterm.js、柔軟なウィンドウグリッドはdockviewライブラリを使用しています。
ブラウザタブの代わりに отдельноеウィンドウを好む人のために、Tauriでデスクトップアプリケーションも開発中です。
現在開発中の自律性レイヤーに「Officeモード」という名前があります。これは独自の役割、予算制限、メモリを持ち、エージェント間の自動タスク引き継ぎを備えた、常駐エージェントチーム用のモードです。
クイックスタート
いくつかのコマンドでツールをインストールできます。macOSとLinux向けには、Homebrewパッケージが利用可能です:
brew install kdlbs/kandev/kandev
kandev
Node.jsを好む場合は、npx経由での起動で1ステップで完了します:
npx kandev@latest
Windowsユーザーの場合は、Scoopがあります:
scoop bucket add kandev https://github.com/kdlbs/scoop-kandev
scoop install kandev
kandev
起動後、サーバーはWebインターフェースを起動し、SQLiteを準備し、ローカルまたはリモートリポジトリを即座にアタッチできます。
このプロジェクトは誰に向いているか
たまにチャットボットに短いスクリプトを生成させるだけの人は、Kandevを必要とする可能性は低いでしょう。しかし、以下のような場合に多くの労力を節約できます:
- 日常的な開発でCLIエージェントを積極的に使用している;
- コミットへのコントロールを失わずにタスクを並行実行したい;
- ソースコードとセッションデータをご自身のサーバーに保持することを好む;
- ラップトップからリモートマシンへのヘビーなコード生成をオフロードする方法を探している。
このプロジェクトはまだ若く、GitHubでわずか500スター程度ですが、カンバン、Git worktree、異なるニューラルネットワークを1つのインターフェースに組み合わせるというアイデアは、使用 готов к применениюものです。
関連プロジェクト