推一下自己写的基于gitlab/github/forgejo等托管平台的多agent协作框架
内容提要
forge-bot 是一个基于 Rust 的编程智能体网关,可在 Issue 和 PR 评论中提及机器人来启动任务,智能体读取仓库、修改代码并回复结果。它支持 Forgejo、GitHub、GitLab 及多种智能体适配器,保留线程会话,并提供状态页、通知以及实现与审查智能体的自动交接。部署时需注意权限隔离,适合自托管团队使用。
延伸解读
部署与权限隔离的注意事项
forge-bot 以 root 管理的系统服务运行,但使用非 root Linux 用户执行智能体,并为每次运行创建 cgroup。智能体能执行命令,且多个适配器默认启用自动权限批准。账号和进程隔离不能视为运行不可信代码的完整沙箱。建议从可信用户和仓库开始,为代码托管令牌设置必要的权限范围,并保护状态页和管理接口。
多智能体协作与自动交接机制
你可以分别配置实现和审查智能体账号,每个账号拥有独立的代码托管身份、Linux 用户、工作目录和会话。提交或更新 PR 后,作者智能体会通过评论提及审查账号;审查智能体检查差异并测试,如需修改则提及作者并给出具体问题。审查通过后,审查智能体会将分支变基并压缩为一个提交,检查最终差异和测试结果,批准最终版本,再启用仅快进的自动合并。这些行为由智能体指令驱动,能否完成取决于智能体表现、代码托管权限和合并检查。
状态监控与通知功能
内置网页提供任务进度查看,/status 展示运行中、排队和空闲的讨论线程,以及使用的智能体和最近结果。粘贴 Issue 或评论链接即可找到对应讨论。详情页可查看运行历史、请求、结果摘要和实时输出。/status.json 提供状态快照,方便脚本或仪表盘接入。/admin 展示智能体可用状态和容量限制的剩余冷却时间,管理员可重置冷却时间。/notifications 可将提及转换为系统通知,但需注意这些页面和 API 没有内置登录验证,应通过反向代理认证保护或仅在可信网络中开放。
适配器选择与任务执行模式
forge-bot 支持 Forgejo、GitHub 和 GitLab,以及 Codex、Antigravity CLI、Pi、Claude Code 和 Kimi 等智能体适配器,也支持自定义命令。你可以在单次任务中指定适配器,例如 @agent --agent=claude。默认情况下各适配器使用自己的模型默认设置,协调任务并不需要所有智能体使用同一模型。同一线程内的任务按顺序执行,不同线程可在配置的并发上限内同时运行。当某个适配器遇到容量或配额限制时,可以尝试其他可用适配器。
Q&A
forge-bot 是什么?它主要解决什么问题?
forge-bot 是一个基于 Rust 的编程智能体网关,让你在 Issue 或 PR 评论中提及机器人账号来启动编程任务。智能体可以读取仓库和讨论、修改代码、执行检查、推送分支,并在原讨论中回复结果,从而避免切换到其他聊天窗口并重复背景信息。
forge-bot 支持哪些代码托管平台和智能体适配器?
forge-bot 支持 Forgejo、GitHub 和 GitLab 代码托管平台。已有的智能体适配器包括 Codex、Antigravity CLI、Pi、Claude Code 和 Kimi,也支持配置自定义命令。你还可以在单次任务中通过 --agent 参数指定适配器。
forge-bot 如何管理同一讨论中的多次交互?
forge-bot 为支持的适配器保留按讨论线程划分的会话,后续请求可以接着之前的上下文继续。默认的 Codex、Pi RPC 和 Kimi 集成还能在任务执行期间接收同一线程中的新请求作为追加指令;其他适配器会将后续请求排队,在下一轮处理。同一线程内的任务按顺序执行,不同线程则可以在配置的并发上限内同时运行。
forge-bot 提供了哪些状态查看和通知功能?
forge-bot 内置网页界面:/status 展示正在运行、排队和空闲的讨论线程,以及使用的智能体和最近结果;/status.json 提供状态快照供脚本接入;/admin 展示智能体可用状态和容量限制的剩余冷却时间,管理员可重置冷却;/notifications 可将对人工账号的提及转为系统通知,支持 Linux、Android、iOS、Windows 和 macOS。这些页面和 API 没有内置登录验证,应通过反向代理认证保护或仅在可信网络中开放。
forge-bot 如何实现实现智能体与审查智能体的自动交接?
你可以分别配置负责实现和审查的智能体账号,每个账号拥有自己的代码托管身份、Linux 用户、工作目录和会话。提交或更新 PR 后,作者智能体会通过评论提及审查账号;审查智能体检查差异并执行测试,如需修改则提及作者并给出具体问题。审查通过后,审查智能体会将分支变基并压缩为一个提交,检查最终差异和测试结果,批准最终版本,再启用仅快进的自动合并。
部署 forge-bot 时需要注意哪些安全事项?
forge-bot 以 root 管理的系统服务运行,使用配置好的非 root Linux 用户执行智能体,并为每次运行创建 cgroup。智能体能执行命令,多个适配器默认启用自动权限批准。账号和进程隔离不能视为运行不可信代码的完整沙箱。建议从可信用户和仓库开始,为代码托管令牌设置必要的权限范围,并保护状态页和管理接口。