如何在单个窗口中并行运行五个编码代理 笔记

如何在单个窗口中并行运行五个编码代理

NestMux 是一款桌面应用程序,允许用户在独立窗格的网格中运行多个 AI 命令行界面(CLI)和终端。每个窗格作为一个独立的环境运行,由各自的账户和 Git 工作树进行隔离。其核心功能依赖于通过 node-pty 启动 shell,重定向 HOME 目录,设置当前工作目录,并输入用户命令。一个关键特性是“广播”模式,该模式将单个按键输入同时发送到所有活动窗格,从而向多个 AI 代理发送统一的提示。这种简单的实现避免了复杂的协议,但意味着所有输入(包括控制命令)都会被无差别地广播。每个窗格资源的归属是一个重大挑战,因为 AI 代理通常作为子进程或重新父化进程运行,需要基于文件系统的启发式方法来确定属于特定工作树的进程。在审查方面,NestMux 为每个工作树生成并解析 Git 差异,并有意决定不对非常大的文件进行渲染,以防止性能问题。应用程序的状态(包括窗格配置和布局)会原子性地保存到 session.json 中,以确保从崩溃中恢复。然而,终端回滚和会话历史不会在重启后保留;窗格会重新生成,CLI 会重新运行。这一设计选择虽然通过将代理视为不透明进程来简化新代理的集成,但也导致了一个显著的限制:缺乏跨窗格的统一日志或时间线,使得跟踪交互和变更变得困难。这种缺乏跨窗格洞察力的情况,是不解析单个代理输出的权衡。NestMux 支持跨平台、采用本地优先架构,并在发布阶段免费提供。