juggler-ai/juggler
The Juggler Code Agent
해결하는 문제
Juggler는 대화가 선형적인 기록으로 남아서 탐색, 편집 또는 재개가 어려운 기존 AI 코딩 에이전트의 "둠 스크롤(doom-scroll)" 특성을 해결합니다. LLM이 코드베이스와 상호작용하는 방식에 대해 더 직접적인 제어를 원하는 개발자를 위해, 단순한 채팅 인터페이스를 넘어 구조화되고 검사 가능한 환경으로 전환할 수 있는 시각적 워크벤치를 제공합니다.
작동 방식
Juggler는 클라이언트-서버 아키텍처로 작동하며, Go 기반의 백엔드가 상태가 있는 세션 문서(Yjs 사용)를 관리하고 프론트엔드가 그래픽 사용자 인터페이스를 제공합니다. 선형 채팅 대신 세션은 분기되는 스레드 트리로 구성됩니다. UI는 Miller columns(macOS Finder와 유사)를 활용하여 사용자가 도구 호출, 항목 속성 및 중첩된 서브 스레드를 상세히 살펴볼 수 있도록 합니다. 시스템은 매우 모듈화되어 있으며, JavaScript 확장을 사용하여 컨텍스트 항목, LLM 루프 전략 및 슬래시 명령어를 정의합니다.
대상 사용자
AI 코딩 세션을 관리하기 위해 시각적이고 비선형적인 방식을 선호하는 개발자와, 에이전트의 상태(보류 중인 승인 포함)가 앱 재시작 또는 서로 다른 기기(데스크톱 및 브라우저) 간에 유지되어야 하는 개발자를 위해 설계되었습니다.
주요 특징
- 트리 기반 대화: 선형 기록 대신 분기되는 스레드와 서브 스레드를 지원하여 더 쉬운 역추적 및 비교를 가능하게 합니다.
- 영구적 상태: 세션이 디스크에 문서로 저장되므로, 사용자 승인 대기 상태를 포함한 에이전트의 정확한 상태가 앱을 종료한 후에도 보존됩니다.
- Miller Column UI: 도구 호출, 원시 컨텍스트 및 스레드 구조를 빠르게 검사할 수 있는 Finder 스타일의 탐색 시스템.
- 확장 가능한 아키텍처: 컨텍스트 항목, 루프 전략 및 명령어는 모두 검사하거나 교체할 수 있는 JavaScript 플러그인입니다.
- 멀티 클라이언트 동기화: 단일 서버 세션에 네이티브 데스크톱 앱과 여러 브라우저 탭을 통해 동시에 접속할 수 있습니다.