한 보드 위의 여러 AI 에이전트: 실전 가이드
중복 작업 없이 Claude Code, Codex, ChatGPT를 한 보드에서 돌리는 법: 작업 계약, 원자적 맡기, 리스, 하나의 검토 대기열.
Weft는 1인 창업자와 소규모 팀을 위한 AI 작업 관리 도구입니다.
글쓴이: Andrei Finogeev ·
네, 보드가 각 작업의 주인을 정해 주기만 하면 AI 클라이언트 두세 개가 한 보드를 함께 쓸 수 있습니다. Weft에서는 Claude Code, Codex, ChatGPT가 모두 같은 MCP 엔드포인트에 연결됩니다. 각각 start_task로 작업을 맡고, 하트비트로 유지하고, 영수증을 넘겨줍니다. 두 클라이언트가 같은 카드에 손을 뻗으면 두 번째는 already_claimed를 듣고, 아무도 같은 일을 두 번 하지 않습니다.
Weft는 우리가 만듭니다. 다른 제품에 대한 사실은 2026년 10월 27일에 확인한 공식 페이지에서 가져왔습니다.
이 가이드는 서로 발을 밟는 AI 클라이언트 두세 개를 돌리는 1인 창업자나 소규모 팀을 위한 것입니다.
두 번째 에이전트는 언제 실제로 도움이 될까?
에이전트가 많다고 저절로 일이 빨라지지는 않습니다. 일이 서로 닿지 않는 조각으로 나뉠 때는 도움이 되고, 파일이나 테스트 데이터베이스, 아직 아무도 내리지 않은 결정을 공유할 때는 해가 됩니다.
| 상황 | 에이전트 하나 혹은 여럿? | 이유 |
|---|---|---|
| 저장소 하나의 기능 하나를 한자리에서 끝내기 | 에이전트 하나(서브에이전트가 있다면 그것과 함께) | 컨텍스트 하나에 모든 것이 담기고, 보드는 부담만 늘림 |
| 코드의 서로 다른 영역에서 독립적인 수정 두 개 | 에이전트 둘, 각자의 브랜치나 worktree | 공유 파일이 없으므로 유일한 위험은 같은 카드를 고르는 것 |
| ChatGPT에서 계획과 분류, 터미널 에이전트에서 코딩 | 클라이언트 둘, 서로 다른 일 | ChatGPT가 작업을 쓰고 정리하고, 코딩 에이전트가 맡음 |
| 여러 에이전트가 같은 제품 결정을 기다림 | 당신이 결정한 뒤, 에이전트 하나 | 병렬 에이전트는 저마다 다르게 추측함 |
먼저 이야기도 나누지 않고 두 사람에게 일 두 개를 맡기지 않을 거라면, 두 에이전트에게도 맡기지 마세요.
에이전트가 가져가기 전에 작업에는 무엇이 적혀 있어야 할까?
에이전트는 작업을 글자 그대로 받아들이고 좀처럼 묻지 않습니다. 카드가 Backlog를 떠나기 전에 다음을 적어 주세요.
- 확인할 수 있는 결과 하나. "온보딩 개선"이 아니라 "프로젝트 페이지에 만들기 버튼이 있는 빈 상태 추가".
- 범위. 건드려도 되는 파일, 페이지, 시스템과 손대면 안 되는 것.
- 완료 확인. 제대로 됐음을 보여 주는 테스트, 빌드, URL.
- 돌려받고 싶은 증거. 풀 리퀘스트 링크, 커밋 해시, 배포된 URL.
- 멈추는 지점. 되돌릴 수 없는 일(게시, 프로덕션, 돈)은 행동이 아니라 당신에게 하는 질문으로 끝나야 합니다.
Weft의 기본 컬럼은 Backlog, Todo, Doing, Done입니다. 간단한 관례가 잘 통합니다. Todo에 있는 카드만 맡을 준비가 된 것으로 칩니다. 프로젝트는 저장소나 고객 하나를 나머지와 분리해 줍니다.
두 에이전트가 같은 카드에 start_task를 호출하면?
카드를 Doing으로 옮기는 것은 잠금이 아닙니다. 두 에이전트가 같은 Todo 카드를 읽고 둘 다 시작할 수 있습니다. 그래서 Weft에서는 맡기 자체가 잠금입니다.
start_task 호출은 고유 인덱스로 보호되는 한 번의 데이터베이스 삽입이므로, 누가 이기는지는 데이터베이스가 정합니다. 이긴 쪽은 runId와 leaseToken을 받고 카드는 Doing으로 갑니다. 진 쪽은 작업 id, 제목, 그리고 일을 중복하지 말라는 힌트가 담긴 already_claimed를 받습니다. 한 클라이언트가 터미널 에이전트이고 다른 하나가 채팅 앱이라도 상관없습니다.
에이전트에게 already_claimed는 오류가 아니라 정상적인 답입니다. 올바른 다음 동작은 get_my_work를 다시 호출해 다음 카드를 가져가는 것입니다. 전체 루프는 맡기, 하트비트, 영수증 루프에서 설명합니다.
하트비트와 20분 리스는 어떻게 동작할까?
맡기는 영구 배정이 아니라 리스입니다. start_task는 20분 리스를 주고 에이전트에게 300초마다 갱신하라고 알립니다. 에이전트는 runId와 leaseToken으로 report_progress를 호출해 갱신합니다. 그사이 에이전트가 리스를 잃었다면 호출은 lease_lost를 돌려주고, 에이전트는 계속 고치는 대신 멈춰야 합니다.
세션이 죽으면 그 사실을 알릴 이가 남아 있지 않습니다. 보드가 받는 신호는 침묵뿐이므로, Weft는 침묵을 신호로 다룹니다.
- 하트비트 없이 20분이 지나면 실행이 stale로 표시되고, 토큰이 지워지고, 작업이 미배정으로 돌아갑니다.
- 정리 작업이 10분마다 돌고, 다른 클라이언트가 stale 작업을 맡으려 하면 즉시 풀리기도 합니다.
- 에이전트가 당신에게 한 질문의 답을 기다리는 동안에는 작업을 60분 동안 쥐고 있습니다. 그 뒤에는 리스가 풀리지만 질문은 열린 채로 남습니다.
하트비트도 도구 호출입니다. 5분마다 하트비트를 보내는 40분짜리 작업은 하트비트에만 약 8회를 쓰고, 무료는 월 200회이므로 매일 돌리는 에이전트 셋이면 금방 넘칩니다. Pro에는 호출 한도가 없습니다.
보드는 어느 에이전트가 무엇을 했는지 어떻게 알까?
Weft에 로그인하는 OAuth 클라이언트는 각각 별도의 행위자입니다. Claude Code, Codex, ChatGPT는 각자 따로 등록하고, 보드에는 각 클라이언트가 등록한 이름이 표시됩니다. 모든 이력 이벤트에 어느 클라이언트가 만들었는지 기록됩니다.
OAuth가 없는 클라이언트는 개인 액세스 토큰을 쓸 수 있습니다. 토큰 하나하나도 별도의 행위자이지만, 토큰에는 범위가 없습니다(액세스 토큰). 권한은 OAuth 연결마다 정합니다.
- full(기본값): 도구 32개 전부.
- write: 파괴적 도구 세 개(휴지통, 아카이브, 스프린트 완료)를 뺀 전부.
- read: 읽기 전용 도구 11개만.
합리적인 분배: 코딩 에이전트는 write, 실험적인 것은 read. 클라이언트 하나의 연결을 끊으면 다른 것은 건드리지 않고 그 토큰만 취소됩니다. Weft는 리프레시 토큰을 발급하므로, 연결된 클라이언트는 스스로 로그인을 갱신합니다.
보드 위의 신원이 디스크 위의 격리는 아닙니다. 이름이 다른 두 에이전트도 하나의 체크아웃에서는 서로의 작업을 덮어쓸 수 있습니다. 코딩 에이전트마다 자기 브랜치나 worktree를 주세요.
끝난 일은 어디로 가고, 얼마나 많이 당신을 기다릴 수 있을까?
기본적으로 완료된 작업은 곧바로 Done으로 갑니다. 작업에 검토가 필요하거나 검증 확인이 실패하면 대신 받은편지함에 멈춥니다. 거기서 수락, 재작업, 나중에, 폐기 중에서 고릅니다. 재작업에는 메모가 필요합니다. request_input의 질문도 같은 받은편지함과 휴대폰 푸시로 도착하므로, 어느 에이전트가 물었든 볼 곳은 하나입니다.
complete_task의 영수증에는 결과, 확인할 수 있는 산출물, 하지 않은 일, 모르는 점, nextStep이 담깁니다. nextStep은 수락 버튼 위에 표시되므로, 수락은 정확히 그 단계를 승인합니다. 자세한 내용은 내 AI 에이전트는 무엇을 했을까에 있습니다.
받은편지함에는 한도가 있고, 에이전트가 여럿이면 그 한도에 닿게 됩니다. 1인 워크스페이스에서는 5개, 팀에서는 10개, 또는 예상 검토 시간 45분 중 먼저 닿는 쪽까지 담깁니다. 질문도 포함됩니다. 가득 차면 start_task가 attention_queue_full로 거절하고, 진행 보고나 보드 읽기처럼 에이전트가 여전히 할 수 있는 일을 알려 줍니다. 에이전트 셋은 한 사람이 검토할 수 있는 것보다 빨리 일을 만들어 낼 수 있습니다. 한도는 당신이 결코 읽지 못할 결과가 쌓이는 것을 막습니다.
무엇이 망가지고, 어떻게 복구할까?
| 실패 | 보이는 것 | Weft가 하는 일 | 당신이 할 일 |
|---|---|---|---|
| 두 클라이언트가 같은 작업을 시작함 | Doing에 카드 하나, 한 클라이언트는 already_claimed를 들음 | 데이터베이스가 한쪽 맡기만 이기게 하고, 다른 쪽은 거절됨 | 진 에이전트가 다른 일로 넘어가면 할 일 없음. 그래도 계속 일했다면 지시를 더 엄격하게 |
| 세션이 죽거나 노트북이 잠듦 | 진행 없이 Doing에 있는 카드 | 하트비트 없이 20분이 지나면 실행이 stale이 되고 작업이 미배정으로 돌아감 | 다른 에이전트가 가져가기 전에 브랜치에 반쯤 된 작업이 있는지 확인 |
| 에이전트가 일을 끝냈지만 complete_task를 호출하지 않음 | 작업은 병합됐는데 카드는 여전히 Doing | 리스가 만료되고, 작업은 닫히지 않고 풀림 | 직접 닫거나, 에이전트에게 증거와 함께 완료하라고 요청 |
| 에이전트에게 당신만 내릴 수 있는 결정이 필요함 | 받은편지함의 질문, 어쩌면 푸시 | 맡은 상태를 60분 유지하고, 답은 에이전트의 다음 start_task나 get_my_work에 도착 | 에이전트가 준 선택지 중 하나로 답하기 |
| 당신을 기다리는 것이 너무 많음 | 가득 찬 받은편지함 | start_task가 attention_queue_full로 거절 | 항목을 검토하거나 폐기. 대기열이 줄면 에이전트가 다시 시작할 수 있음 |
| 두 에이전트가 하나의 체크아웃을 고침 | 관계없는 변경이 diff 하나에 섞임 | 아무것도 하지 않음. Weft는 당신의 파일을 보지 못함 | 에이전트를 병렬로 돌리기 전에 worktree나 브랜치를 분리 |
클라이언트 두세 개는 어떻게 설정할까?
셋 모두 같은 엔드포인트에 연결하고 브라우저로 로그인하며, 복사할 키는 없습니다.
# Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcp
# Codex: add to ~/.codex/config.toml, then sign in
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"
codex mcp login weftChatGPT는 디렉터리의 Weft 앱으로 연결하며, 무료를 포함한 모든 요금제에서 됩니다. 단계별 페이지: Claude Code, Codex, ChatGPT, Cursor(클릭 한 번 설치). 로그인은 MCP 인증 사양을 따릅니다.
ChatGPT는 턴 단위로 일합니다. 당신이 대화에 있는 동안 움직입니다. 계획, 작업 작성, 질문에 답하기에 맞습니다. 몇 분마다 하트비트를 보내려면 계속 돌아가는 세션이 필요하므로, 긴 코딩 작업은 터미널 에이전트가 더 잘 맞습니다.
일주일 시험은 어떻게 할까?
- 1일차: 클라이언트 두 개 연결. Claude Code와 Codex, 또는 코딩 에이전트 하나와 ChatGPT. 코딩 에이전트에는 write 권한을 줍니다.
- 1~2일차: 위의 계약대로 작업 5~10개 쓰기. 결과 하나, 범위, 완료 확인, 증거. Todo에 둡니다. 이미 Linear, Jira, Notion, Trello에 작업이 있다면 먼저 가져오세요. 가져오기는 모든 요금제에서 무료입니다.
- 2~5일차: 두 에이전트를 같은 Todo 대기열에서 돌리기. 각자 자기 worktree에서, start_task로 맡고 complete_task와 산출물로 끝내라고 지시합니다.
- 5일차: 일부러 실패를 시험하기. 두 에이전트에게 같은 카드를 가리키고 하나가 already_claimed를 받는 것을 지켜보세요. 작업 도중 세션 하나를 죽이고 20분 뒤 카드가 다시 풀리는지 확인합니다.
- 7일차: 보드만 보고 점검하기. 두 번 실행된 작업이나 끝난 뒤에도 Doing에 남은 작업이 있었나요? 모든 결과를 산출물로 확인할 수 있었나요? 세 번째 에이전트를 더하기 전에 작업 템플릿을 고치세요.
Hypertask의 방식과 비교하면?
Hypertask의 리스 모델은 탄탄합니다. 맡기, 하트비트, 해제, 그리고 만료. 차이는 그 모델이 사는 곳입니다. Hypertask 문서는 작업 리스, 증거, 에스컬레이션을 설계상 REST 엔드포인트로만 제공한다고 밝히고, 도구 레퍼런스의 MCP 도구 21개에는 리스 도구가 없습니다(MCP 개요). Weft에서는 맡기, 하트비트, 질문, 영수증이 MCP 도구이므로, 어떤 MCP 클라이언트든 추가 코드 없이 씁니다.
| Weft | Hypertask | |
|---|---|---|
| 맡기와 리스 | MCP 안에서: start_task, report_progress(20분 리스) | 설계상 REST 엔드포인트로만(문서) |
| MCP 도구 | 32 | 21(문서) |
| 로그인 | 브라우저의 OAuth와 리프레시 토큰. 선택 사항인 개인 액세스 토큰 | 문서화된 설정은 30일 후 만료되는 복사형 API 키. 브라우저에서 승인한 연결은 리프레시 없이 90일 유지(문서) |
| 에이전트 신원 | OAuth 클라이언트나 토큰 각각이 별도의 행위자 | 자체 신원을 가진 서비스 계정 형태의 에이전트 |
| ChatGPT 경로 | ChatGPT 디렉터리에 게시된 앱, 무료를 포함한 모든 요금제 | Hypertask에 따르면 OpenAPI Actions를 쓰는 커스텀 GPT 또는 개발자 모드 커스텀 커넥터(문서) |
| CLI와 REST API | 없음 | npm의 CLI와 REST API(문서) |
| 모바일 앱 | iOS와 Android | 네이티브 iOS 앱 없음(홈 화면의 웹 앱). Google Play 등록 없음(문서) |
| 언어 | 27 | 영어만 |
| 좌석당 가격 | 무료: 작업 50개, 월 200회 AI 호출. Pro: 월 $7 또는 연 $60 | 무료: 1인당 보드 3개. BYOK 연간 $8 / 월간 $10. Pro 연간 $16 / 월간 $20(요금) |
| AI 크레딧 | 필요 없음: 생각은 당신의 AI 클라이언트에서 일어남 | 내장 AI. BYOK 요금제는 자기 모델 키를 씀 |
에이전트가 스크립트나 CI에서 돌아가고 CLI와 REST API를 원한다면, 에이전트를 사용자처럼 관리되는 서비스 계정으로 두고 싶다면, 또는 내장 AI(작업 작성, 스마트 라벨, 분류), 키보드 중심의 속도, 시간 추적을 원한다면 Hypertask가 더 낫습니다. Weft에는 CLI, REST API, 웹훅이 없고 GitHub이나 Slack 연동도 없습니다. Weft는 에이전트가 ChatGPT를 포함해 이미 쓰는 MCP 클라이언트이고, 휴대폰으로 그들에게 답하고 싶을 때 맞습니다.
더 넓은 비교는 MCP 작업 관리 도구 비교와 Hypertask 대안을 보세요.
- 에이전트끼리 서로 대화해야 하나요?
- 아닙니다. 에이전트는 보드를 통해, 즉 맡기, 영수증, 질문으로 조율합니다. Weft는 에이전트를 호출하지 않습니다. 각 에이전트가 get_my_work로 다음 작업을 가져갑니다.
- 죽은 에이전트가 작업을 Doing에 영원히 묶어 두지 않을까요?
- 아닙니다. 하트비트 없이 20분이 지나면 실행이 stale로 표시되고 작업이 미배정으로 돌아가므로, 다른 클라이언트가 맡을 수 있습니다. 먼저 브랜치에 반쯤 된 작업이 있는지 확인하세요.
- 에이전트 셋이 나를 검토 더미에 파묻지 않을까요?
- 받은편지함은 1인 5개(팀은 10개) 또는 검토 45분으로 제한되며, 가득 차면 에이전트는 새 작업을 시작할 수 없습니다. 끝난 작업 대부분은 곧바로 Done으로 갑니다.
- 에이전트를 여럿 돌리면 비용이 더 드나요?
- Weft는 에이전트가 아니라 좌석 단위로 요금을 받습니다. Pro는 1인당 월 $7 또는 연 $60입니다. 무료 요금제는 AI 호출을 월 200회로 제한하고, 여러 에이전트의 하트비트는 이를 빠르게 씁니다. 요금을 보세요.