juggler-ai/juggler
The Juggler Code Agent
解決する課題
Jugglerは、従来のAIコーディングエージェントにおける「ドゥーム・スクロール(際限のないスクロール)」的な性質、つまり会話が線形のトランスクリプト(記録)になってしまい、ナビゲーション、編集、再開が困難であるという課題を解決します。LLMがコードベースとどのように対話するかについて、より直接的な制御を求める開発者のために、単純なチャットインターフェースから、構造化され検査可能な環境へと移行するためのビジュアル・ワークベンチを提供します。
仕組み
Jugglerはクライアント・サーバーアーキテクチャとして動作し、Goベースのバックエンドが状態を持つセッションドキュメント(Yjsを使用)を管理し、フロントエンドがグラフィカルなユーザーインターフェースを提供します。線形のチャットの代わりに、セッションは分岐するスレッドのツリーとして構成されます。UIにはMiller columns(macOS Finderに類似)を採用しており、ユーザーはツール呼び出し、アイテムのプロパティ、ネストされたサブスレッドを詳細に掘り下げることができます。システムは高度にモジュール化されており、JavaScript拡張を使用してコンテキストアイテム、LLMループ戦略、スラッシュコマンドを定義します。
対象ユーザー
AIコーディングセッションを管理するために、視覚的で非線形な方法を好む開発者や、エージェントの状態(保留中の承認を含む)をアプリの再起動や異なるデバイス(デスクトップとブラウザ)間で保持する必要がある開発者向けに設計されています。
ハイライト
- ツリーベースの会話: 線形な履歴ではなく、分岐するスレッドとサブスレッドをサポートしており、より簡単なバックトラッキングと比較を可能にします。
- 永続的な状態: セッションはディスク上のドキュメントとして保存されるため、ユーザーの承認待ちを含むエージェントの正確な状態が、アプリを閉じた後も保持されます。
- Miller Column UI: ツール呼び出し、生のコンテキスト、スレッド構造を迅速に検査するためのFinderスタイルのナビゲーションシステム。
- 拡張可能なアーキテクチャ: コンテキストアイテム、ループ戦略、コマンドはすべて、検査または置換が可能なJavaScriptプラグインです。
- マルチクライアント同期: 単一のサーバーセッションに、ネイティブのデスクトップアプリと複数のブラウザタブから同時にアクセスできます。