Flock AI 开发团队
通过聊天驱动自托管的 Claude Code 团队完成开发、测试、审查和 PR。
按维度查看评分与理由
材料显示了非 root 容器、按聊天隔离的工作区、用户白名单、作用域应受限的 Git 令牌以及 CI 的只读 contents 权限;构建流程还包含人工确认范围、风险仲裁和由用户合并 PR。README 说明了 Git 主机轮询、语音转录、外部模型服务、分支及 PR 等主要数据流和外部效果,SECURITY.md 给出了密钥保存与私下报告渠道,CI 同时运行 govulncheck 和 Trivy。扣分原因是部署级 Git 写令牌由各聊天共享,DinD 暴露 TCP Docker 服务,第三方传输和模型供应商的数据边界没有完整列举,也没有细粒度的逐项操作授权。回滚主要依赖未合并分支、人工合并和不可变 SHA 镜像标签,未说明任务产生的文件、分支或已开 PR 的自动恢复流程。许可证和 DuckBug 组织归属清楚,但给定材料不能验证发布者身份。
README、SECURITY.md、go.mod 与工作流对容器部署、测试入口、安全扫描和发布路径总体一致;依赖使用明确版本,文档也指出 Anthropic 区域限制及镜像更新方式。扣分原因是材料没有提供运行时错误处理实现、重试策略、超时行为或用户可见诊断示例;失败消息仅有地域调用失败提示和仲裁升级的概念性描述。对外部服务、滚动 latest 镜像及 Claude 认证的可用性仍有依赖。
材料明确面向通过 Telegram 或 VK 管理微服务开发的操作者,区分简单问答与构建请求,并说明 planner、coder、tester、reviewer、arbiter 的角色、循环上限、群聊 mention 开关、并发限制、语音提供商以及 GitHub、GitLab、Gitea 环境。扣分原因是触发分类规则只作概述,没有形式化判定或歧义处理;支持边界主要在说明文字中,LO 适配器只出现在工作流而未进入 README 的正式支持矩阵,且非 Docker、非受支持区域及更多代码托管环境的适配说明有限。
README 的快速开始、架构图、目录结构、配置表、安全说明和构建命令组织完整,多语言导航也清晰,因此信息架构充分。MIT 正文完整且与元数据一致,可给满分。扣分原因是安装说明依赖未展示的 env 模板和预构建镜像,VK 缺少 Compose 文件;有示例但没有完整 FAQ;限制虽提及地域、共享令牌和配置风险,却不是全面限制清单。版本发布支持 latest、自动版本、Git 标签和 SHA 标签,但材料中没有 changelog 或稳定性政策。SECURITY.md 提供维护响应预期,不过项目为志愿维护、邮箱可用性不确定,且发布者身份未验证。
预期输出是按仓库创建的分支和相互关联的 PR,并经过规划、测试、评审及仲裁,具有直接可审查的开发交付形式;多服务协调、评论回流和聊天隔离相对单一提示具有明确增量价值。成本方面支持订阅令牌或 API Key,并提供预构建镜像。扣分原因是材料没有静态可核验的产出样例、质量统计、资源消耗、延迟、并发容量或总拥有成本数据,因此无法证明通常情况下达到优秀的效益比。
主要主张可追溯到具体目录、配置项、Task 命令和工作流;安全扫描、构建检查、许可证及发布标签在不同文件间获得一定交叉印证,事实说明通常与未来计划或建议措辞分开。扣分原因是仅提供了少量文件,未包含所引用的 core 文档、代理提示、实现代码、测试、Taskfile、Dockerfile 或 env 模板;README 中关于完整自治流水线、沙箱隔离和测试行为的主张因而只能部分核对。CI 徽章和工作流定义也不能在本次静态审查中证明任何运行结果。
- 该代理拥有容器内 shell 和文件编辑能力;必须配置非空用户白名单,并将 Git 写令牌限制到必要仓库和最低权限。
- 部署级 Git 令牌在聊天之间共享,因此按聊天隔离工作区并不等于凭据或仓库权限隔离。
- 启用 DinD、语音转录或 PR 评论轮询会扩大外部接口和数据流;部署前应分别审查 Docker 服务暴露及第三方供应商的数据处理。
- 建议固定不可变的 SHA 镜像标签,而不是依赖滚动 latest,并为代理创建的分支、PR 和工作区文件制定人工恢复流程。
- 本评估未执行代码、测试或镜像,也未检查被引用但未提供的实现和配置文件。
这个 Agent 能做什么,适合哪些场景?
Flock 是一个自托管的 AI 开发团队机器人,通过 Telegram、VK 或文本优先的 LO 适配器接收开发任务。其平台无关核心位于 core/,由 planner、coder、tester、reviewer 和 arbiter 五个 Claude Code 子代理组成。每个聊天会获得独立工作区;构建任务经过需求规划、编码、测试和审查,并可为一个或多个代码仓库创建相互关联的 PR。系统还能执行完成后复验、独立目标评估、定时任务及可选的 CI 状态监控,并用每日自动任务成本上限和有限循环约束自主运行。它以预构建 Docker 镜像部署,核心执行依赖 Claude Code,可使用 Claude Pro/Max 的 OAuth 令牌或 Anthropic API 密钥。
用户在 Telegram、VK 或 LO 聊天中描述功能或修复需求后,Lead 判断请求类型;普通问题直接回答,构建请求则交给 core/agents/ 中的 planner、coder、tester、reviewer 和 arbiter。planner 制定范围和验收标准,coder 在隔离工作区的 duck/<chatid>/<slug> 分支中编辑代码,tester 运行仓库检查,reviewer 提交行级意见,coder 根据反馈修正,arbiter 在循环受限的情况下决定 APPROVE 或 ESCALATE。任务可跨多个微服务仓库,并为每个仓库产生交叉关联的 PR。ENABLE_POST_VERIFY 可重新运行 task、make、npm check、test 或 lint 等仓库检查入口;/goal 使用独立新会话评估器复查工作区和验收目标;/schedule 创建持久化周期任务。ENABLE_CI_WATCH 可轮询 GitHub check-runs 或 Gitea commit status,并在失败时触发修复,在成功时通知聊天;启用 ENABLE_AUTO_MERGE 后还可自动合并绿色 PR。PR 评论可由轮询器读取并路由回创建该分支的聊天,无需入站 webhook。
- 拥有多服务代码库的工程团队,希望从一条聊天需求生成多个协调分支及相互关联的 PR。
- 使用 Telegram、VK 或 LO 协作的开发者,希望在自己的服务器上远程安排编码、测试和代码审查。
- 需要让自动化修改接受真实仓库检查的维护者,可启用完成后复验和独立 /goal 评估。
- 无法向机器人开放入站 webhook 的自托管 Gitea、GitHub 或 GitLab 用户,可通过出站轮询接收 PR 审查意见。
- 希望定期执行维护任务或在 CI 失败后自动修复的团队,可使用 /schedule 和可选 CI watch。
- 需要隔离不同私聊或群聊代码工作区的运营者,可按聊天并行运行任务并限制允许访问的用户。
这个 Agent 有哪些优点和局限?
- 五角色流水线包含验收标准、编码、回归检查、行级审查和负责终止循环的 arbiter,比单次提示提供更明确的质量关卡。
- 同一核心提供 Telegram、VK 和 LO 适配器,且每个聊天使用独立工作区并可受 MAX_CONCURRENT_CHAT_RUNS 限制。
- 完成后复验会亲自重跑仓库检查,/goal 还使用与工作会话无共享上下文的独立评估器。
- 支持跨多个微服务仓库协调分支和 PR,并能通过轮询接收 Git 主机的审查评论,无需公网入站 webhook。
- 提供预构建 Docker 镜像,并允许使用 Claude Pro/Max 订阅令牌或 Anthropic API 密钥。
- 核心代理是原生 Claude Code 子代理,属于 Anthropic/Claude Code 专用架构,没有记录其他模型提供商的核心替代路径。
- 必须自托管 Docker 服务并授予代理 shell、编辑器、文件系统及网络能力,运营者需负责主机、镜像更新和工作区安全。
- 部署地点必须处于 Anthropic 支持地区;README 明确指出部分国家或地区会因地理封锁导致 Claude 调用失败。
- 创建 PR 需要写权限 Git 令牌;同一部署中的聊天共享该令牌,因此权限范围配置不当会扩大风险。
- CI watch、自动合并、语音转写、Git 主机轮询和 Docker-in-Docker 均需要额外配置,部分功能还引入其他凭据或更高权限。
如何安装或部署这个 Agent?
Telegram 快速部署:
- 运行
git clone https://github.com/duckbugio/flock。 - 运行
cd flock/adapters/telegram。 - 运行
cp .env.example .env。 - 在
.env中填写TELEGRAM_BOT_TOKEN、不含 @ 的TELEGRAM_BOT_USERNAME、逗号分隔的ALLOWED_USERS,以及CLAUDE_CODE_OAUTH_TOKEN;也可用ANTHROPIC_API_KEY代替 OAuth 令牌。 - 在 Anthropic 支持的地区运行
docker compose up -d。该命令拉取ghcr.io/duckbugio/flock-telegram预构建镜像。
VK 部署位于 adapters/vk/:复制 .env.example,配置 VK_BOT_TOKEN、VK_GROUP_ID、VK_ALLOWED_USERS 以及 Claude 凭据,然后运行 docker run --env-file .env ghcr.io/duckbugio/flock-vk。LO 使用 adapters/lo/ 和镜像 ghcr.io/duckbugio/flock-lo,但所给材料未列出其完整启动命令。
如何使用这个 Agent?
启动适配器后,从允许名单中的账户向机器人发送普通问题或开发请求,例如描述要在 API 和 Web 服务中实现的功能。普通问题由机器人直接回答;构建请求进入规划流程,必要时等待确认范围,然后在每个目标仓库的 duck/<chatid>/<slug> 分支上编码、测试、审查并创建 PR。使用 /goal all list views paginate correctly 可设置独立评估目标,使用 /goal off 取消;使用 /schedule 配置按聊天时区运行的周期任务。若要连接 Git 主机并创建 PR,在 .env 中设置 GIT_HOST、GIT_USER、具有写权限的 GIT_TOKEN、GIT_AUTHOR_NAME 和 GIT_AUTHOR_EMAIL;github.com 还需将 GH_TOKEN 设为同一令牌。若使用 Gitea PR 评论轮询,再设置 GITEA_API_URL、GITEA_POLL_INTERVAL 并启用 ENABLE_PR_REVIEW。
常见问题
必须按 Anthropic API 用量付费吗?
CLAUDE_CODE_OAUTH_TOKEN 在 Claude Pro/Max 订阅下运行,也可配置 ANTHROPIC_API_KEY。自动触发的任务还可用 AUTO_TASK_MAX_COST_PER_DAY 设置每个聊天的每日成本上限;直接消息不受该上限影响。机器人需要哪些代码仓库权限?
GIT_TOKEN。github.com 还要求配置 GH_TOKEN,并应尽量缩小令牌权限范围。它如何避免代理无限返工?
POST_VERIFY_MAX_FIXES 限制,/goal 评估循环受 GOAL_MAX_ATTEMPTS 限制。可以完全无人值守地修改并合并代码吗?
ENABLE_AUTO_MERGE=true,让绿色 PR 自动合并。默认可保持自动合并关闭,由人类完成最终合并;AUTO_APPROVE_SCOPE 默认也是 off。多个用户会访问同一个工作目录吗?
/workspace/chat_<id>;私聊是独立空间,群聊共享该群的一个工作区。Git 令牌仍由整个部署共享,访问还应通过各适配器的允许名单限制。