두레클로 — 조선시대 두레(협동 경작) 정신을 AI 에이전트에 담다
분산된 디바이스의 AI 에이전트들이 하나의 채널로 묶여 실시간 협력한다.
Claude Code를 오케스트레이터로,
각 머신의 AI 에이전트들을 워커로 연결해
멀티머신 AI 팀을 구성한다.
/plugin marketplace add DureClaw/dureclaw
bash <(curl -fsSL https://dureclaw.baryon.ai/server)
Elixir 불필요 — Docker 또는 사전빌드 바이너리 자동 사용 · 소스 보기 ↗
Claude Code가 AI 팀장 역할. MCP 도구로 태스크를 에이전트에 배분하고 결과를 수집한다.
모든 에이전트가 WebSocket 채널로 연결. 태스크 배분, 진행 상황, 결과가 실시간으로 전달된다.
Mac, GPU 서버, Linux 박스, Raspberry Pi까지. Tailscale 사설망으로 어디서든 연결된다.
claude-cli, opencode, gemini, aider, codex 등 머신에 설치된 AI를 자동 감지해 태스크를 실행한다.
① Claude Code (오케스트레이터, 맥북) /plugin marketplace add DureClaw/dureclaw └─ MCP (oah-mcp) → Phoenix WebSocket ② Phoenix Server (메시지 버스) bash <(curl -fsSL https://dureclaw.baryon.ai/server) ws://host:4000 ③ oah-agent (워커, 각 머신) PHOENIX=ws://host:4000 ROLE=builder bash <(curl -fsSL https://dureclaw.baryon.ai/agent) → WebSocket 연결 → task.assign 수신 → AI 백엔드 실행 (claude / opencode / gemini / aider / codex) → task.result 반환
http://서버IP:4000/
새 머신에서 아래 명령어를 실행하면 설치·설정·연결이 자동 처리된다.
서버IP는 Tailscale IP(100.x.x.x) 또는 LAN IP로 교체하거나,
"워커 추가해줘"라고 Claude에게 말하면 자동으로 채워준다.
Work Key 생략 시 서버에서 자동 감지 · 에이전트 이름 미지정 시 역할@머신이름으로 자동 설정 · Windows는 PowerShell 스크립트 지원
3개의 에이전트가 협력해 레포지토리 버그를 자동 분석·수정·PR 생성하는 파이프라인.
| EVENT | DIRECTION | PAYLOAD (주요 필드) | 설명 |
|---|---|---|---|
| task.assign | orch → agent | to, task_id, role, instructions | 태스크 할당. 대상 agent가 AI 백엔드 실행. |
| task.progress | agent → all | task_id, message, output_tail | 10초마다 진행 상황 브로드캐스트. |
| task.result | agent → all | task_id, exit_code, artifacts[] | 태스크 완료 보고. ARTIFACT: 라인 자동 파싱. |
| task.cancel | orch → agent | task_id | 실행 중 태스크 취소. AbortController 신호. |
| task.blocked | any → all | task_id, reason | 진행 불가. orchestrator가 재배정 판단. |
| state.update | any → server | key: value | Work Key 상태 업데이트 (DETS 영속). |
| mailbox.post | any → target | to, body | 오프라인이면 큐잉, 온라인이면 즉시 전달. |
| agent.hello | server → all | agent, role, machine | 에이전트 JOIN 알림. |
| agent.bye | server → all | agent, role | 에이전트 퇴장 알림. |
| METHOD | ENDPOINT | 설명 |
|---|---|---|
| GET | /api/health | 서버 상태 · work_key 개수 |
| GET | /api/presence | 온라인 에이전트 목록 (name, role, machine) |
| GET | /api/work-keys | Work Key 목록 |
| GET | /api/work-keys/latest | 최신 Work Key (없으면 404) |
| POST | /api/work-keys | 새 Work Key 발급 |
| POST | /api/task | 태스크 디스패치 { role, to, instructions } |
| GET | /api/task/:id | 태스크 결과 폴링 |
| POST | /api/task/:id/result | 태스크 결과 저장 · 채널 브로드캐스트 |
| GET | /api/state/:wk | Work Key 상태 조회 |
| PATCH | /api/state/:wk | Work Key 상태 업데이트 |
| GET | /api/mailbox/:agent | 에이전트 mailbox 읽기 |
| POST | /api/mailbox/:agent | 에이전트 mailbox 메시지 전송 |