duckbugio/flock

Autonomous AI dev-team bot

Flock – 채팅으로 조작 가능한 AI 기반 소프트웨어 개발 팀

무엇인가요 – Flock은 자체적으로 완전한 서비스로, 자신의 서버에서 Claude-Code 기반 개발 팀을 운영할 수 있게 해줍니다. Telegram, VK, 또는 단순한 텍스트 전용 "LO" 인터페이스를 통해 팀과 상호작용할 수 있습니다. 단일 메시지로 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-telegram, flock-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. 리드 클로드 – 플래너 역할을 하며 범위를 확인합니다.
  3. 서브에이전트planner → coder → tester → reviewer → arbitercore/agents/에 정의된 Claude-Code 서브에이전트입니다.
  4. 브랜치 및 PR – 코드는 duck/<chatid>/<slug>라는 이름의 브랜치에 커밋되며, 설정된 Git 호스트에 풀 리퀘스트가 열립니다.
  5. 피드백 루프 – 리뷰어의 댓글은 채팅으로 페칭되며, 아비터는 승인, 수정 요청, 또는 중단을 수행할 수 있습니다.
  6. 자율 옵션 – 실행 후 검증, 목표 평가, 스케줄된 작업, CI 모니터링, 선택적 자동 머지 등은 환경 변수로 전환 가능합니다.

일반적인 사용 사례

  • 기능 개발 – 프로덕트 매니저가 채팅에서 새로운 엔드포인트를 설명하면 완전히 테스트된 PR을 받을 수 있습니다.
  • 버그 수정 – 버그 설명을 붙여넣기만 하면 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 (see LICENSE).
  • 기여: 표준 fork-branch-PR 워크플로우를 따르세요. 리포지토리는 Taskfile을 제공하여 린트, 테스트, 빌드 가능 (task lint, task tests, task build).
  • 보안 공개: SECURITY.md를 통한 비공개 보고.

결론: Flock은 Claude-Code 구독을 완전히 자동화되고 채팅 기반의 개발 팀으로 전환하여, 자체 서버에서 기능의 계획, 코드 작성, 테스트, 리뷰, 머지까지 수행할 수 있으며, 강력한 격리와 선택적 자율 제어 기능을 갖추고 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트