English · Русский · 中文 · Español · Deutsch · Français · Português (BR) · 日本語
# Flock **在你自己的服务器上运行一支 Claude Code AI 开发团队,并通过聊天来驱动它。** 在 Telegram 或 VK 中描述一项功能;团队会为它制定计划、在分支上构建、测试、评审,并发起一个 PR——每个聊天都拥有各自隔离的工作区。 [](https://github.com/duckbugio/flock/actions/workflows/ci.yml) [](LICENSE) [](go.mod) [](https://github.com/orgs/duckbugio/packages) 它基于你的 Claude **Pro/Max 订阅**(无按 token 计费)或一个 Anthropic API 密钥运行,以**预构建的 Docker 镜像**形式发布(无需构建步骤),并将每个聊天保持在各自的沙箱化工作区中。 ## 快速上手(Docker) ```bash git clone https://github.com/duckbugio/flock cd flock/adapters/telegram cp .env.example .env # fill in the REQUIRED block (4 values) docker compose up -d ``` 这会拉取预构建镜像 `ghcr.io/duckbugio/flock-telegram`——无需构建,也无需 Ansible——然后给你的机器人发消息即可。最简 `.env`: | 变量 | 含义 | |---|---| | `TELEGRAM_BOT_TOKEN` | 来自 [@BotFather](https://t.me/botfather) | | `TELEGRAM_BOT_USERNAME` | 你机器人的 @username(不带 `@`) | | `ALLOWED_USERS` | 允许使用该机器人的 Telegram 用户 ID,以逗号分隔 | | `CLAUDE_CODE_OAUTH_TOKEN` | `claude setup-token`(订阅)——*或者*设置 `ANTHROPIC_API_KEY` | [`.env.example`](adapters/telegram/.env.example) 中的其余一切都有合理的默认值。日后可用 `docker compose pull && docker compose up -d` 更新。 ### Telegram 秘书模式 先在 @BotFather 为机器人启用秘书模式,再在 Telegram 中选择允许访问的私人聊天。账户所有者必须列在 `ALLOWED_USERS` 中。`SECRETARY_MODE=approval` 将草稿发给账户所有者,由其发送或丢弃;`SECRETARY_MODE=auto` 会立即回复。回复使用为机器人单独选定的 AI 服务商和模型(`AI_BACKEND`);Telegram 不选择另一个 AI 模型。使用 Claude 时,秘书运行完整的 Flock 智能体,包含工具、MCP,以及每个 Business 聊天独立持久的会话。启用自动回复前,请在服务提供商处设置支出上限。[英文详情](README.md#telegram-secretary-mode)。 目前秘书模式仅支持 `AI_BACKEND=claude`;使用其他服务商时,机器人继续运行,但不会处理 Business 消息。 只允许您信任其参与者使用 Flock 工具和 MCP 的聊天接入。审核仅控制回复发送:工具可能在您确认前运行,取消执行也无法撤销已完成的操作。 > **地区:** 请托管在 **Anthropic 支持的地区**(部分国家/地区会被地理封锁,例如 RU/CN)——否则 Claude 调用会失败。 **VK** 在 [`adapters/vk/`](adapters/vk/) 下采用相同的模式,构建于同一套核心之上,并以 `ghcr.io/duckbugio/flock-vk` 形式发布。它只附带一个环境变量模板(没有 compose 文件):`cp .env.example .env`,然后 `docker run --env-file .env ghcr.io/duckbugio/flock-vk`。Claude 认证与核心设置都与 Telegram 一致;只有三个传输变量不同: | 变量 | 含义 | |---|---| | `VK_BOT_TOKEN` | 社区访问令牌(VK 社区 → 管理 → API 使用 → 访问令牌) | | `VK_GROUP_ID` | 你社区的数字 id(长轮询服务器 + 提及解析) | | `VK_ALLOWED_USERS` | 允许使用该机器人的 VK 用户 ID,以逗号分隔 | ## 亮点 - **对话即任务来源**——在聊天中描述你想要什么,然后评审返回的 PR;智能体的 shell 和编辑器都被沙箱化在容器内部。 - **一条真正的开发团队流水线,而非单个提示词**——规格优先的验收标准、构建/回归门禁,以及一位打破循环的仲裁者。 - **多传输通道**——如今有 **Telegram** 与 **VK**,二者都构建于同一套核心之上;新增一个平台只是一个轻量适配器,而非一次分叉。 - **无需入站 webhook 即可响应 PR**——机器人会向你的 git 主机*轮询*新的评审评论,并将每条评论路由回发起该 PR 的聊天。 - **对订阅友好**——使用 Claude Pro/Max 令牌(无按 token 计费)或 Anthropic API 密钥进行认证。 ## 工作原理 ``` You (in a chat): "implement X across the api + web services" → bot's Claude (Lead) → planner → confirm scope → coder ⇄ tester → PR per repo → reviewer (inline comments) ⇄ coder → arbiter ├ APPROVE → you merge └ ESCALATE → asks you ``` 五个子智能体——**planner → coder → tester → reviewer → arbiter**——作为原生 Claude Code 子智能体运行于 [`core/agents/`](core/agents/)。普通提问会被直接解答;构建请求则触发整个团队。**arbiter** 是感知风险、限制循环次数的打破循环者,让智能体永远不会无止境地空转。分支以 `duck/