duckbugio/flock
Autonomous AI dev-team bot
Flock – 可透過聊天互動的 AI 驅動軟體開發團隊
是什麼 – Flock 是一個自包含的服務,讓您能在自己的伺服器上運行一個由 Claude-Code 驅動的開發團隊。您可透過聊天應用(Telegram、VK 或簡單的純文字「LO」介面)與團隊互動。僅需一條訊息,即可要求 AI 計畫、撰寫程式碼、測試、審查並開啟拉取請求(PR)。每個聊天會話都有獨立的隔離工作區與 Git 分支,因此多個使用者可並行執行獨立的專案。
為何重要 – 多數 AI 程式碼助手僅是單一提示工具,僅回傳一段程式碼片段。Flock 建立了一個 完整的開發流程(規劃者 → 編碼者 → 測試者 → 審查者 → 裁決者),在 Docker 內執行,與您的 Git 主機通訊,甚至可監控 CI 並在所有測試通過後自動合併。所有這些都在您自己的硬體上執行,僅需一個 Claude Pro/Max 訂閱(或 Anthropic API 金鑰),避免按 token 計費的開銷。
主要功能(如 README 所述)
| 功能 | 作用 |
|---|---|
| 聊天驅動的規格 | 在聊天中撰寫功能描述;AI 團隊將其轉化為具體計畫與程式碼。 |
| 完整的 CI 流程 | 團隊建立分支,執行倉儲的測試/檢查指令,開啟 PR,並可自動合併綠色建置。 |
| 自主循環 | 可選循環允許機器人驗證自身工作、重新評估目標(/goal)、執行定時任務(/schedule)、監控 CI 狀態(ENABLE_CI_WATCH)。 |
| 多平台適配器 | 提供 Telegram 和 VK 的即用型 Docker 鏡像;一個輕量級「LO」適配器可用於任何純文字頻道。 |
| 會話級隔離 | 每個聊天會話擁有獨立的工作區目錄與分支(duck/<chatid>/<slug>),防止交叉干擾,支援並行執行。 |
| Git 主機整合 | 透過 PAT 支援 GitHub、GitLab 或 Gitea;機器人可輪詢 PR 審查評論並路由回原始聊天。 |
| 可選語音指令 | 語音訊息可被轉錄(Mistral、OpenAI 或本地)並作為聊天指令處理。 |
| 僅 Docker 部署 | 預先建置鏡像(ghcr.io/duckbugio/flock-telegram、flock-vk)表示無需編譯或 Ansible 即可快速啟動。 |
| 安全控制 | 每個會話的成本上限、一個「裁決者」子代理可打破無限循環,以及嚴格的使用者白名單。 |
快速入門(Telegram 範例)
# 克隆倉儲並進入 Telegram 適配器目錄
git clone https://github.com/duckbugio/flock
cd flock/adapters/telegram
# 複製範例環境檔案並填入四個必要值
cp .env.example .env # 編輯 .env → 設定 BOT_TOKEN、BOT_USERNAME、ALLOWED_USERS、CLAUDE_CODE_OAUTH_TOKEN(或 ANTHROPIC_API_KEY)
# 啟動容器(Docker Compose 會拉取預先建置鏡像)
docker compose up -d
容器執行後,向 Telegram 上的機器人發送訊息,觀察其建立分支、執行測試並開啟 PR 的過程。
內部運作原理(高階)
- 使用者訊息 – 您描述一個功能。
- 主 Claude – 作為規劃者,確認範圍。
- 子代理 –
planner → coder → tester → reviewer → arbiter是定義在core/agents/中的 Claude-Code 子代理。 - 分支與 PR – 程式碼提交至名為
duck/<chatid>/<slug>的分支,並在設定的 Git 主機上開啟 PR。 - 反饋循環 – 審查評論被輪詢回聊天;裁決者可批准、要求修改或中止。
- 自主選項 – 運行後驗證、目標評估、定時任務、CI 監控和可選自動合併可透過環境變數切換。
典型使用情境
- 功能開發 – 產品經理可在聊天中描述新端點,接收一個完全測試過的 PR。
- Bug 修復 – 粘貼 Bug 描述;AI 團隊建立修復,執行倉儲測試套件,並開啟 PR。
- 無感 CI 監控 – 啟用 CI 監控,當建置失敗或成功時,機器人通知聊天,可選擇自動合併綠色 PR。
- 定時維護 – 使用
/schedule執行定期的程式碼格式化、相依性升級或其他例行任務。
安裝與操作說明
- 先決條件 – Docker Compose、Claude Pro/Max 金鑰(或 Anthropic API 金鑰)、具有寫入權限的 Git 主機 PAT。
- 支援的傳輸方式 – Telegram(預建置鏡像)、VK(預建置鏡像)、可本地建置的通用「LO」適配器。
- 環境設定 – 多數設定位於
.env;必要金鑰列於 README 表格中。可選功能透過ENABLE_*標誌切換。 - 安全性 – 僅
ALLOWED_USERS(或 VK 等效項目)中的使用者可呼叫機器人;代理在容器內以非 root 使用者執行,並被沙箱限制於工作區目錄內。 - 可擴展性 – 新增聊天平台只需撰寫一個輕量級適配器,重用核心代理;倉儲包含設計文件(
docs/multi-transport-plan.md)。
授權與貢獻
- 授權:MIT(參見
LICENSE)。 - 貢獻:遵循標準的 fork-branch-PR 工作流程;倉儲提供
Taskfile用於 lint、測試與建置(task lint、task tests、task build)。 - 安全揭露:透過
SECURITY.md進行私密報告。
總結:Flock 將 Claude-Code 訂閱轉化為一個完全自動化、聊天驅動的開發團隊,可在您自己的伺服器上規劃、編碼、測試、審查並合併功能,具備強大的隔離性與可選的自主控制能力。
相關
- 專案
- 專案
- 專案
- 專案
- 專案