herdrdev/herdr
项目简介
herdr 是一款面向 AI 编码代理(coding agents)的运行时环境,核心定位是“你的编码 Agent 赖以生存的操作系统”。它结合了终端复用器(multiplexer)、工作区管理与 Agent 编排能力,让开发者可以同时运行、监控和协调多个编码代理(如 Claude Code、Codex 等),并通过统一的终端 UI 实现直观控制。它试图成为本地开发环境中连接 LLM、Agent、代码仓库与终端交互的枢纽层。
技术亮点
- 原生 Agent 编排:herdr 并非简单并列多个终端会话,而是为每个 Agent 分配独立的工作区与上下文,并支持消息级别的调度与路由,让多个 Agent 能在同一项目中并行协作而不互相干扰。
- 终端复用器 + TUI 的深度整合:基于 Rust 构建,herdr 将 tmux 类复用能力与现代 Terminal UI 融合,提供面板分割、会话持久化、日志回放和快捷键操作,使 Agent 的实时输出可视且可回溯。
- 跨 Agent 会话管理:支持冷启动/热挂起(suspend/resume)Agent 进程,开发者可以随时暂停某个 Agent 的任务,释放资源给其他更高优先级的 Agent,甚至在不同工作区之间迁移 Agent 状态。
- 轻量且高性能:Rust 实现的内存安全与零依赖开销,让 herdr 即便同时运行十余个 Agent 进程,依然保持极低的 CPU 与内存占用,适合在个人开发机上长期驻留。
- 工作区即代码:工作区配置以声明式文件管理,能够将 Agent 的运行参数、环境变量、工具权限等纳入版本控制,实现开发环境配置的可复制与团队共享。
架构解析
herdr 采用基于客户端-服务端的守护进程(daemon)架构。核心分为三层:底层为工作区管理器与进程监督器,负责创建、销毁和挂起 Agent 子进程,并为每个 Agent 维护独立的伪终端(PTY)与文件系统访问边界;中间层为消息总线与事件循环,负责采集 Agent 的 stdout/stderr、工具调用结果及系统事件,并将其规范化后推送给上层;顶层为 TUI 客户端与 REST/WebSocket API,TUI 用于本地交互,API 则允许开发者编写自定义插件或从远程挂钩。整个系统通过 SQLite 存储会话历史和元数据,确保 Agent 运行状态可审计、可恢复。
适用场景
- 多 Agent 并行开发:在大型重构任务中,同时启动多个 Agent 分别处理不同模块,herdr 负责协调其在共享工作区的依赖关系,避免文件冲突。
- Agent 评估与调优:对同一提示词或任务运行多个 Agent 候选,通过 herdr 的分屏对比输出结果,快速筛选最优模型或配置。
- 长时间运行的 Agent 任务:例如代码迁移、依赖升级等耗时操作,借助 herdr 的会话持久化功能,可在断网或关机后恢复 Agent 状态。
- 跨工具统一入口:将 Claude Code、Codex 等不同 CLI 工具纳入同一上下文,通过 herdr 统一的安全策略与权限管理,减少上下文切换成本。
- CI 环境中的 Agent 编排:在无头 Linux 环境中,通过 herdr 的 API 启动和管理 Agent,实现自动化的代码审查、修复或测试生成流水线。
生态对比
- vs tmux / screen:传统终端复用器只解决进程与窗口管理,不理解 Agent 语义。herdr 增加了工作区级隔离、Agent 状态感知和编排能力,相当于为 AI 编码场景重新设计了复用器。
- vs Claude Code / Codex 原生命令:这些官方 CLI 多以单 Agent 会话为中心,缺乏多 Agent 并行的调度机制。herdr 作为一种外部运行时,可以聚合多个这类 CLI,并提供统一的监控和恢复能力。
- vs 通用 Agent 框架(如 LangChain、CrewAI):后者多属于库级编排,运行在自己的抽象层中,与开发者的终端和文件系统交互不够直接。herdr 更贴近基础设施层,直接操作进程与 PTY,适合落地到真实工程环境。