시리즈: 멀티 에이전트 하네스 구축기
1편: 설계와 작업 흐름
2편: 사용량 관리와 모델 배치
3편: Agent Office와 삽질 모음 (이 글)
1편에서 하네스의 뼈대를, 2편에서 사용량 관리를 다뤘다. 마지막 편은 이 하네스를 "보이게" 만든 대시보드 Agent Office와, 2주 동안 겪은 삽질을 정리한다.
하네스가 커지니 텍스트 로그만으로는 무슨 일이 일어나는지 알기 어려웠다. 그래서 OpenCode 서버 API와 하네스 상태 파일을 읽어서 픽셀 아트 사무실로 그리는 대시보드를 만들었다. 파이썬 서버 하나와 HTML 파일 하나로 되어 있고, 맥 안에서만 열린다(127.0.0.1:4097).

캐릭터 17명이 OmO 에이전트와 하나씩 짝지어져 있다. 일하는 중이면 책상에 앉아 타이핑하고, 하위 에이전트를 부르면 그 캐릭터가 걸어온다. 말풍선에는 지금 하는 일과 동작이 뜬다. 막히면 말풍선이 빨갛게 바뀐다.
사무실 위쪽 벽에는 서버실 랙이 있다. provider별(OA·NV·GG·OR·OP)로 칸이 나뉘어 있어서 어디서 몇 개씩 돌고 있는지, 한도에 걸린 곳은 어디인지 한눈에 보인다.

작업을 누르면 오른쪽에 작업 기록 패널이 열린다. 에이전트의 생각, 도구 호출, 하위 에이전트 대화, 텔레그램 대화를 시간순으로 볼 수 있다. 하위 에이전트(리뷰어 등)의 대화는 접힌 블록으로 들어가고, 진행 중이면 새 메시지가 오는 대로 붙는다.

사무실 아래에는 업무 흐름도가 있다. OmO 프롬프트와 하네스 규칙에서 "누가 누구에게 언제 일을 넘기는지"를 뽑아 다이어그램으로 그린 것이다. 오늘 실제로 일어난 지시 횟수를 겹쳐 보여 주고, 지금 진행 중인 지시는 선이 흐르는 애니메이션으로 표시한다. 아래 줄은 /product 명령으로 도는 제품 파이프라인(기획 → 디자인 → 기술 설계 → 개발 → QA → 문서화)인데, 단계마다 사람 승인이 걸려 있다.

PIP 모드(단축키 P)로 사무실을 작은 창으로 띄워 다른 앱 위에 겹쳐 둘 수 있다. 코딩하면서 구석에 띄워 두면 에이전트들이 일하는 게 계속 보인다.
⚙ 설정 패널(단축키 S)은 왼쪽에서 슬라이드로 나오고, 두 칸으로 나뉜다.
오른쪽 배지를 왼쪽 캐릭터 줄에 끌어다 놓으면 모델 순서가 바뀐다. 칩을 끌어서 순서를 바꾸거나 밖으로 끌어내 빼면 된다. 저장하면 OmO 설정 파일을 주석을 그대로 둔 채 해당 배열만 고친다. 백업을 남기고, 하네스 저장소에 커밋까지 한다. Claude 계열과 금지한 모델은 아예 배지로 나오지 않는다.


오른쪽에는 사용량 카드가 있다. CODEX 카드에는 5시간·주간 사용률과 전환 기준선이 표시된다. 그 아래 다른 PROVIDER 카드는 실제로 쓰는 provider만 보여 주는데, 공식 조회가 안 되는 값에는 [추정] 배지를 단다. 자세한 건 2편에 적었다.
블로그에 쓰려고 보니 이게 제일 쓸모 있을 것 같다.
| 증상 | 원인 | 해결 |
작업은 도는데 OmO 에이전트가 안 보이고 build만 일함 |
OmO 플러그인 설치가 며칠째 깨져 있었고, OpenCode 기본 에이전트가 대신 일하고 있었음 | 플러그인 버전 고정 + "OmO 안 뜸" 감시 알림 추가 |
| 30분째 응답 없음 | 도구가 권한 승인(ask) 창을 기다림. 사람이 없는 하네스라 영원히 안 끝남 | 승인 대기로 멈춘 도구를 감지해 중단하고 다시 지시 |
에이전트가 git push를 함 |
환경변수 접두사나 git -C … 형태로 push 금지 규칙을 우회 |
금지 패턴을 *git push*, *git -C * push* 등으로 넓힘 |
/clone 한 빈 저장소에서 작업 실패 |
빈 저장소엔 main 커밋이 없어 브랜치를 갈라낼 수 없음 |
clone 직후 빈 초기 커밋 생성 |
| 추가 요청이 "폴더가 이미 있다"로 실패 | 작업 폴더를 지운 직후 플러그인이 빈 폴더를 다시 만듦 | 찌꺼기면 치우고, 파일이 있으면 이름만 바꿔 비켜 두기 |
| 리뷰어가 "같은 실패 반복 ×4" 알림 | git diff --no-index는 차이가 있으면 종료 코드 1을 냄. 실패가 아님 |
diff·grep·test류의 exit 1은 실패로 세지 않음 |
| 진행 중인 리뷰가 작업 기록에 안 보임 | 하위 세션을 오래된 것부터 12개만 가져오고 있었음 | 최근 30개를 시간순으로 |
| OpenCode 재시작할 때마다 브라우저가 열림 | opencode web은 브라우저를 자동으로 띄움 |
opencode serve로 교체 |
| Go DeepSeek가 400 오류 | Go 워크스페이스 개인정보 설정이 지역 제한이었음 | 콘솔에서 Global로 변경 |
| Codex 5시간 한도가 순식간에 사라짐 | 한도 직후 재시도가 매번 새 세션으로 처음부터 시작 | 같은 세션 재개 + 실행당 80%p 일시정지 |
| 캡처 이미지 때문에 토큰이 폭증 | 레티나 2배 해상도 스크린샷을 에이전트가 여러 장 열어 봄 | 캡처 도구 bin/shot 기본 1배, 필요한 장만 열라는 규칙 |
한 가지 더. 크로스 세션 메모리 도구(claude-mem)를 붙였다가 뺐다. 저장된 내용이 하네스 이야기뿐이라 쓸모가 없었고, 인증 문제까지 있었다. 도구를 늘리기 전에 "정말 필요한가"를 먼저 따져야 한다는 교훈을 얻었다.
2주 동안 느낀 점은 이렇다.
RESTORE.md는 있다)다음에는 이 하네스로 실제로 만든 것들을 소개할 생각이다. e-ink 리더용 홈 화면 앱과 그 이미지 서버가 첫 번째다.
이전 글: (2) 사용량 관리와 모델 배치
처음부터: (1) 설계와 작업 흐름
※ 이 글은 AI의 도움을 받아 작성했고, 작성자가 내용을 직접 검토한 뒤 올렸다.
| 토스증권 Open API로 나만의 포트폴리오 리포트 만들기 (2) — Claude Code·Codex CLI로 종목 AI 분석 붙이기 (0) | 2026.10.28 |
|---|---|
| 토스증권 Open API로 나만의 포트폴리오 리포트 만들기 (1) — 매일 쌓고, 과거는 복원하고 (0) | 2026.10.28 |
| 맥북 한 대로 AI 개발팀 굴리기 (2) — 사용량 관리와 모델 배치 (0) | 2026.10.28 |
| 맥북 한 대로 AI 개발팀 굴리기 (1) — 설계와 작업 흐름 (0) | 2026.10.28 |
댓글 영역