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 插件。
  • 多客户端同步:单个服务器会话可以通过原生桌面应用和多个浏览器标签页同时访问。