duckbugio/flock

Autonomous AI dev-team bot

Flock – チャットで操作可能なAI駆動型ソフトウェア開発チーム

何であるか – Flockは自己完結型のサービスで、自前のサーバー上で Claude-Code を搭載した開発チームを運用できます。チャットアプリ(Telegram、VK、またはシンプルなテキスト専用「LO」インターフェース)を通じてチームとやり取りできます。1つのメッセージで、AIに新しい機能の計画、コード作成、テスト、レビュー、プルリクエストの開設を依頼できます。各チャットには独自の隔離されたワークスペースとGitブランチが割り当てられ、複数のユーザーが並行して独立したプロジェクトを実行可能です。

なぜ重要か – 多くのAIコードアシスタントは単一のプロンプトでスニペットを返すだけです。FlockはDocker内で実行される完全な開発パイプライン(プランナー → コーダー → テスター → レビュアー → アービター)を構築しており、Gitホストと連携し、CIの監視や成功時の自動マージも可能。すべての処理は自前のハードウェア上で実行され、Claude Pro/Maxのサブスクリプション(またはAnthropic APIキー)のみが必要で、トークン単位のコストは発生しません。


主な機能(READMEに記載)

機能 機能の内容
チャット駆動の仕様 チャットで機能の説明を記述;AIチームが具体的な計画とコードに変換します。
完全なCIパイプライン ブランチが作成され、リポジトリのテスト/チェックコマンドが実行され、プルリクエストが開設され、緑色のビルドは自動マージ可能。
自律ループ オプションのループにより、ボットが自身の作業を検証、目標の再評価(/goal)、スケジュールされたジョブの実行(/schedule)、CIステータスの監視(ENABLE_CI_WATCH)が可能。
マルチプラットフォームアダプタ TelegramとVK用の即時実行可能なDockerイメージ;任意のテキスト専用チャネル向けの軽量「LO」アダプタ。
チャットごとの隔離 各チャットに独自のワークスペースディレクトリとブランチ(duck/<chatid>/<slug>)が割り当てられ、相互干渉を防ぎ、並行実行を可能にします。
Gitホスト連携 GitHub、GitLab、Giteaに対応(PAT経由);ボットはPRのレビューコメントをポーリングし、元のチャットにルーティングします。
オプションの音声コマンド 音声メッセージは(Mistral、OpenAI、またはローカル)音声認識され、チャットコマンドとして扱われます。
Dockerのみのデプロイ 事前にビルドされたイメージ(ghcr.io/duckbugio/flock-telegramflock-vk)を使用することで、コンパイルやAnsible不要で迅速に開始可能。
セキュリティ制御 チャットごとのコスト制限、無限ループを中断する「アービター」サブエージェント、厳格なユーザー許可リスト。

クイックスタート(Telegram例)

# リポジトリをクローンし、Telegramアダプタへ移動
git clone https://github.com/duckbugio/flock
cd flock/adapters/telegram

# 例のenvファイルをコピーし、必要な4つの値を設定
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でボットにメッセージを送信し、ブランチ作成、テスト実行、プルリクエスト開設を観察してください。


内部の動作原理(概要)

  1. ユーザーのメッセージ – 機能の説明を記述。
  2. リードClaude – プランナーとして機能し、範囲を確認。
  3. サブエージェントplanner → coder → tester → reviewer → arbitercore/agents/ に定義されたClaude-Codeサブエージェント。
  4. ブランチとPR – コードは duck/<chatid>/<slug> という名前のブランチにコミットされ、設定されたGitホストにプルリクエストが開設。
  5. フィードバックループ – レビューコメントはチャットにポーリングされ、アービターは承認、変更要求、または中止を実行可能。
  6. 自律オプション – プルリクエスト後の検証、目標評価、スケジュールジョブ、CI監視、オプションの自動マージは環境変数で切り替え可能。

一般的な利用例

  • 機能開発 – プロダクトマネージャーがチャットで新しいエンドポイントを説明し、完全にテスト済みのPRを受け取る。
  • バグ修正 – バグの説明を貼り付ける;AIチームが修正を作成し、リポジトリのテストスイートを実行し、プルリクエストを開設。
  • 手間のかからないCI監視 – CI監視を有効化し、ビルドが失敗または成功した際にチャットに通知され、緑色のPRはオプションで自動マージ可能。
  • スケジュールされたメンテナンス/schedule を使って定期的なLint、依存関係のアップグレード、その他のルーティンタスクを実行。

インストールと運用ノート

  • 前提条件 – Docker Compose、Claude Pro/Maxトークン(またはAnthropic APIキー)、書き込み権限を持つGitホストのPAT。
  • 対応トランスポート – Telegram(事前ビルド済みイメージ)、VK(事前ビルド済みイメージ)、ローカルでビルド可能な汎用「LO」アダプタ。
  • 環境設定 – 多くの設定は .env に記述;必須キーはREADMEのテーブルに記載。オプション機能は ENABLE_* フラグで切り替え可能。
  • セキュリティALLOWED_USERS(またはVK同等)にリストされたユーザーのみがボットを呼び出せます;エージェントはコンテナ内で非rootユーザーとして実行され、ワークスペースディレクトリにサンドボックス化されています。
  • 拡張性 – 新しいチャットプラットフォームを追加するには、コアエージェントを再利用する薄いアダプタを作成するだけでOK。リポジトリには設計ドキュメント(docs/multi-transport-plan.md)が含まれています。

ライセンスと貢献

  • ライセンス: MIT(LICENSE を参照)。
  • 貢献: 標準的なフォーク・ブランチ・PRワークフローに従ってください;リポジトリには Taskfile があり、Lint、テスト、ビルドが可能(task linttask teststask build)。
  • セキュリティ報告: SECURITY.md を通じた非公開報告。

結論:FlockはClaude-Codeサブスクリプションを、完全に自動化され、チャット駆動の開発チームに変換します。自前のサーバー上で機能の計画、コード作成、テスト、レビュー、マージを実行でき、強力な隔離とオプションの自律制御を備えています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト