멀티 세션 에이전트 보드
한 명의 AI로는 벅찬 작업이 있습니다 — 백엔드·프론트·DB 마이그레이션을 동시에, 또는 큰 리팩터를 영역별로 나눠서. 멀티 세션 에이전트 보드는 여러 AI 에이전트를 한 화면(보드)에 띄워 팀으로 일을 시키고, 실행 큐와 통합 승인으로 안전하게 통제합니다.
Blyck의 지향점은 “에이전트를 돌리는 곳”이 아닙니다 — 그건 이제 어느 도구나 합니다. Blyck의 자리는 **“돌리면서 믿고 머지하는 곳”**입니다. 이를 세 겹으로 실현합니다: 오케스트레이션(여러 세션을 보고 연계), 거버넌스(ChangeSet + 통합 승인으로 돌리면서 동시에 검토), 운영 워크벤치(에이전트 바로 옆에 DB·SSH·터미널·미리보기, 그리고 환경 격리).
무엇인가
섹션 제목: “무엇인가”- 여러 AI 채팅 세션(Claude·Codex 혼합)을 카드로 한 보드에 배치.
- 에이전트 간 관계·작업 흐름을 노드·엣지 그래프로 실시간 시각화.
- 서로 작업을 넘기고(릴레이) 병렬로 돌리되, 충돌은 실행 큐가 방지.
- 모든 승인 요청은 하단 통합 인박스 한 곳에서 처리.
보드 열기
섹션 제목: “보드 열기”헤더의 🤖 버튼을 클릭하면 에이전트 보드 패널이 열립니다(다른 패널처럼 새 탭 또는 분할에). 보드의 카드는 백그라운드에 파킹된 AI 채팅 세션입니다 — 실제로 동시에 스트리밍되는 건 몇 개뿐이고, 그보다 훨씬 많은 세션을 보드에서 관리합니다.
카드 목록
섹션 제목: “카드 목록”보드는 세로 카드 목록입니다(정보가 잘리고 확장성이 나쁜 가로 격자 대신 채택). 상단에 고정 상태 레일, 그 아래에 스크롤·펼침·정렬이 가능한 카드들이 놓입니다.
상태 레일
섹션 제목: “상태 레일”보드 전체를 한 줄로 요약하는 고정 라인입니다:
6 agents · 2 진행중 · 1 승인대기 · 합계 $2.14 · 오늘 $0.42- 에이전트 수, 진행 중 개수, 승인 대기 개수의 실시간 집계.
- 누적 비용 합계 + 여러 에이전트가 동시에 돌 때 뜨는 동시 스트리밍 경고(비용 관제).
카드 구성
섹션 제목: “카드 구성”접힌 카드는 기본 3줄 — 폴더·요약·진행 — 을 보여주며, 빽빽한 보드용으로 한 줄까지 줄이는 압축 토글이 있습니다.
| 줄 | 표시 내용 |
|---|---|
| 헤더 | 상태 도트 · 에이전트 이름 · 제공자/모델 · 📁 프로젝트 폴더 · 모드 배지(chat/plan/act × instant/review) · ⏹정지 / ⤢확장 / 📌수납 컨트롤 |
| 요약 | 최근 활동 요약(또는 마지막 유저·AI 발화), ChangeSet 칩, 누적 비용 |
| 진행 | 스트리밍 꼬리, 현재 도구, 스텝 예산이 있으면 step N/M |
카드 상태
섹션 제목: “카드 상태”상태 도트는 세션 상태를 실시간으로 반영합니다:
| 상태 | 의미 |
|---|---|
| idle | 실행 중 아님 |
| thinking / streaming / tool | 응답 중, 또는 도구 실행 중 |
| queued | 실행 큐 게이트에서 대기(아래 참고) |
| 승인대기 | 통합 인박스의 승인 카드에서 블록됨 |
| error | 마지막 턴 실패(예: 크레딧 부족) — 상단에 고정 |
정렬은 활동순이며, 승인대기·에러 카드는 상단에 고정되어 급한 것이 스크롤 밖으로 밀려나지 않습니다.
접힘 ↔ 펼침
섹션 제목: “접힘 ↔ 펼침”- 접힘(기본, 3줄) — 폴더·요약·진행·ChangeSet·비용. 압축 토글 시 1줄.
- 인라인 펼침(아코디언) — 카드를 클릭하면 제자리에서 펼쳐집니다: 압축 트랜스크립트 + 스트리밍 꼬리 + 승인 카드 + 미니 컴포저. 목록을 벗어나지 않으며, 여러 카드를 동시에 펼쳐 나란히 비교할 수 있습니다.
- ⤢ 패널로 확장 — 세션을 실제 패널(전체 “조종석”)로 꺼내 깊은 작업을 합니다. 같은 채팅이라 발산이 없습니다.
이것이 관제탑 / 조종석 이원화입니다: 보드는 스캔·조종, 전체 AI 채팅 패널은 깊은 작업. 둘 다 같은 세션을 투영합니다.
오케스트레이션 그래프
섹션 제목: “오케스트레이션 그래프”헤더의 **[목록 ⇄ 그래프]**를 토글하면 카드 목록에서 🕸 오케스트레이션 그래프로 전환됩니다 — 각 에이전트를 노드로, 작업 위임(agent_send)을 엣지로 그리는 계층형 DAG이며 팬·줌이 됩니다. 누가 누구에게 무엇을 넘겼고 지금 어디서 막혀 있는지 한눈에 보입니다.
- 노드별 실시간 상태: 응답 중 · 대기 · 승인 대기 · 완료.
- 흐름 라우팅: 릴레이 체인을 따라 작업이 흘러가는 경로.
연결 시각화
섹션 제목: “연결 시각화”바쁜 보드도 읽히도록 에이전트 간 관계를 시각화합니다.
| 엣지 | 의미 | 색 |
|---|---|---|
| → 파이프(pipe) | A의 결과를 B로 넘김 | 파랑 |
| ↩ 참조(ref) | B가 A의 채팅을 참조 | 회색 |
| ⑃ 위임(subchat) | A가 하위 에이전트 B 생성(ai_subchat) | 보라 |
| ⚙ 태스크(task) | A가 백그라운드 태스크 생성(task_spawn) | 초록 |
| ◱ 팀(team) | 공유 노트 토픽 / 프로젝트 폴더 | 파생 밴드 |
- 연결 레인(왼쪽 여백) — Git 그래프식 세로 레인 + 카드 곡선 연결, 엣지 종류별 색, 방향 화살표.
- 연결 배지(카드 내) —
→ 파이프: B, C/↩ refs: A/⑃ 하위: 2. 클릭하면 대상으로 스크롤·강조. - 실시간 흐름 애니메이션 — 파이프가 발동하면 선을 따라 점이 A→B로 이동하고 대상이 반짝입니다.
- 그룹 밴드 — 같은 폴더/팀 토픽을 공유하는 카드는 왼쪽에 색 띠.
- 포커스 모드 — 🔗 클릭 시 관련 없는 카드를 흐리게 하고 그 카드의 in/out 엣지만 강조.
팀 모드
섹션 제목: “팀 모드”에이전트들을 동료로 인지시켜 각자 눈감고 일하지 않고 협업하게 합니다.
| 도구 | 역할 |
|---|---|
agent_send(targetChatId, message) | 다른 에이전트에게 작업/결과를 넘김(릴레이). 대상이 바쁘면 그 에이전트의 턴 종료 후 자동 전달 |
agent_create(title, provider?, projectRoot?, mode?) | 역할별 팀원을 새로 생성; 반환된 chatId로 send |
- 동료 인지 프롬프트 — 각 에이전트의 시스템 프롬프트가 동료·담당·산출물 위치를 명시하고, 공유 결정은 팀 노트(
workspace_note)에 기록하도록 지시합니다. - 순차 릴레이 vs 병렬 분배 — 의존 작업(C가 B 결과 필요)은 순차 릴레이, 독립 작업만 병렬로 분배. 같은 파일을 두 에이전트에게 동시에 맡기지 않습니다.
- 보고 규약 — 위임받은 작업을 마치면 위임자에게
agent_send로 회신하여, 오케스트레이터가 다음 단계를 진행합니다. agent_create제한 — 새 팀원은 기본 Act + Review 모드(모든 변경에 승인 필요), 자율 모드는 옵트인. 생성은 15분당 5개로 제한됩니다.- 루프 가드 — 같은 쌍이 왕복을 반복하면 릴레이가 차단됩니다. 15분 창(방향별 ~3, 왕복 ~4, 총량 ~8)으로 무한 릴레이·비용 폭주를 막습니다.
실행 큐 — 병렬을 안전하게
섹션 제목: “실행 큐 — 병렬을 안전하게”여러 에이전트가 동시에 움직이면 충돌이 납니다. 실행 큐가 게이트로 직렬화·조율하므로, “5”라는 숫자는 관리 가능한 에이전트 수가 아니라 동시 실행 한도입니다 — 파킹된 카드는 비용이 0입니다.
- 자기 턴 게이트 — 자신이 이미 응답/준비 중이면 대기(채팅당 턴 소유자 1개 불변식).
- 제공자 예산 — 제공자별 동시 실행 상한. Claude(프로세스 풀, 최대 5 LRU + 유휴 정리)와 Codex(스레드 방식)는 예산이 분리되어 서로의 한도를 잠식하지 않습니다.
- 파일 충돌 가드 — 같은 폴더 에이전트도 기본은 병렬, 두 턴이 같은 파일을 만질 때만 한쪽이 대기(~90초)해 덮어쓰기를 방지합니다.
- ⚡ 병렬 토글 — 기본 켜짐. 끄면 종전의 엄격한 같은 폴더 직렬화로 회귀합니다.
파일 격리 — git + ChangeSet
섹션 제목: “파일 격리 — git + ChangeSet”git worktree 대신, Blyck은 턴 경계 git 체크포인트 + ChangeSet 귀속 + 실행 큐의 파일 충돌 가드로 파일 작업을 격리합니다.
- 턴마다 체크포인트(복구 지점)를 찍고, 보드가 한 repo를 공유하면 에이전트별로 분리 커밋해 변경이 귀속 가능·개별 되돌리기 가능하게 유지합니다.
- worktree를 일부러 뺀 이유: 카드별 폴더 분리가 일반 패턴이라 충돌은 같은 폴더일 때뿐이고, worktree는 Windows 비용이 크며, 원격 SFTP 프로젝트 루트에선 구조적으로 불가능하기 때문입니다 — 바로 Blyck 워크벤치가 빛나는 지점입니다.
환경 격리
섹션 제목: “환경 격리”에이전트마다 SSH·DB 접속 스코프를 분리합니다. 한 에이전트가 붙은 원격 호스트나 데이터베이스가 다른 에이전트의 컨텍스트로 새지 않아, 팀 작업 중 사고를 예방합니다. 에이전트가 DB·SSH·터미널 패널과 같은 워크벤치 안에서 살기에 가능한, 경쟁 도구가 구조적으로 흉내낼 수 없는 계층입니다.
통합 승인 인박스
섹션 제목: “통합 승인 인박스”에이전트가 여러 개면 — 상당수가 백그라운드에 파킹된 채 — 승인 요청이 보이지 않는 DOM에서 뜰 수 있습니다. 보드는 이를 전부 하단 한 곳으로 모읍니다(인라인 승인카드와 위치 통일).
- 에이전트별로 묶인 컴팩트 카드: 명령 미리보기 + 이유 / 실행 위치 + 허용 / 거부.
- 아코디언으로 명령 전문 펼침.
- 화면의 약 1/3 이내로 제한 + 내부 스크롤 → 세션 뷰를 가리지 않습니다.
개별 승인 카드의 동작은 AI 채팅 → 도구 승인 게이트를 참고하세요.
보드 직렬화 — 재시작 복원
섹션 제목: “보드 직렬화 — 재시작 복원”보드 구성·각 세션의 대화·진행 상태가 직렬화되어 저장됩니다(이름 붙인 패널 레이아웃과 동일한 메커니즘). 앱을 껐다 켜도 보드가 그대로 복원됩니다 — 카드·대화·엣지 포함.
브로드캐스트 컴포저
섹션 제목: “브로드캐스트 컴포저”하단 고정 컴포저는 전체·일부·단일 에이전트에게 한 번에 전송합니다. 공유 preamble(공통 컨텍스트)을 첨부하면 선택된 모든 에이전트가 이를 받으며, 각자 자신의 실행 큐 게이트와 승인 모드를 거칩니다 — 소유권을 우회하는 무단 병렬 구동은 없습니다.
권장 사용 흐름
섹션 제목: “권장 사용 흐름”- 리드 에이전트에게 전체 목표를 지시합니다.
- 리드가
agent_create로 역할별 팀원을 생성합니다(또는 기존 세션 지정). agent_send로 독립 작업을 병렬 분배하고, 의존 작업은 순차 릴레이합니다.- 통합 인박스에서 승인을 처리합니다.
- 리드가 산출물을 취합·검증합니다 — 만든 에이전트가 아닌 동료에게 검증을 위임하는 것을 권장합니다.
FAQ
섹션 제목: “FAQ”에이전트가 무한히 서로 호출하면? 루프 가드가 15분 창 안의 왕복 반복·팬아웃을 감지해 이후 릴레이를 차단합니다.
두 에이전트가 같은 파일을 고치면? 같은 폴더 에이전트는 병렬로 돌지만, 두 턴이 같은 파일을 만지면 실행 큐의 파일 충돌 가드가 한쪽을 대기(~90초)시켜 덮어쓰기를 막습니다. 엄격한 직렬화를 원하면 ⚡ 병렬 토글을 끄세요.
동시에 몇 개까지 돌 수 있나요? 동시성은 제공자별로 제한되지만(Claude ~5, Codex 별개), 관리는 훨씬 많이 할 수 있습니다 — 파킹된 카드는 비용이 0이고 실행 큐가 슬롯이 나는 대로 나머지를 흘려보냅니다.
재시작하면 보드가 사라지나요? 아니요. 보드 구성·대화·엣지·진행이 직렬화 저장되어 복원됩니다.
격리에 git worktree를 안 쓰는 이유는? 카드별 폴더 덕에 충돌이 드물고(같은 폴더일 때만), worktree는 Windows 비용이 크며 원격 SFTP 루트에선 존재할 수 없습니다. 대신 git 체크포인트 + ChangeSet + 파일 충돌 가드를 쓰며, 이건 원격 폴더에서도 동작합니다.
한 에이전트의 SSH/DB 접속이 다른 에이전트에 영향을 주나요? 아니요. 각 에이전트는 격리된 환경 스코프를 가져, 원격 호스트나 데이터베이스가 에이전트 사이에서 새지 않습니다.