진짜 한국인처럼 리뷰해주는 AI 에이전트 팀 만들기 (Harness 포크 + NVIDIA 100만 페르소나)
(github.com/hongsw)TL;DR
리뷰를 집중적으로 해야 하는 하네스 — 코드 리뷰, 문서 리뷰, UX 리서치, 인터뷰 시뮬레이션 — 에서는 5명의 리뷰어가 5개의 다른 관점을 가져야 가치가 있다. 일반 AI 에이전트 팀은 5명이 모두 비슷한
톤·관점이라 사실상 1명의 의견이 5번 반복됨.
이 포크는 NVIDIA Nemotron-Personas-Korea(100만 행, CC BY 4.0)를 런타임 동적 검색으로 끌어와, 한국 직장의 실재 인물(직무·세대·지역·가족 상황까지)을 에이전트에 입혀서 진짜 다른 관점의 리뷰를
만든다.
왜 리뷰 하네스에 페르소나 깊이가 필요한가
같은 코드/문서/디자인을 봐도 사람마다 다른 관점을 갖는다:
-
45세 SI 출신 백엔드 팀장
→ "리스크 관리 차원에서 단계별 배포로 가시죠. 검증 충분히 하고 가는 게 결국 일정 단축이 됩니다." -
24세 MZ 그로스 마케터
→ "수치 튀었을 때 원인 가설 빠르게 세우는 자세 좋은데, 유의수준이 좀 약해요. A/B 더 돌려볼까요?" -
38세 워킹맘 PM
→ "결론적으로 이번 분기 안에 못 가는 거면, 우선순위 조정 한번 부탁드릴게요." -
27세 핀테크 출신 디자이너
→ "사용자 인터뷰 정성 데이터에서 '쿠폰 받는 순간이 좀 밋밋하다'는 코멘트가 반복되더라구요."
→ 같은 코드를 봐도 4명이 다른 리스크/가치/우선순위를 잡는다. 이게 리뷰 팀의 본질.
무엇이 추가되었나 (3개 신규 스킬, 비침습)
기존 revfactory/harness는 변경 없이, description 키워드로 자동 트리거 분기:
korean-persona-search— Parquet predicate pushdown 다축 필터(직무·지역·연령·학력·세대) + 다양성 샘플링korean-voice-adapter— 합쇼/해요 매트릭스 + 한국 직장 문화(보고 라인·회의 매너·우회 표현) + 13개 산업 어휘 사전korean-persona-harness— 메타 오케스트레이터 (서브 에이전트 5인 파이프라인: 시나리오 분석가 → 퍼소나 큐레이터 → 화법 어댑터 → 에이전트 빌더 → 다양성 QA)
Claude Code + Codex CLI 양쪽 호환 — SKILL.md 포맷 동일, 데이터셋 캐시 공유.
검증 — 같은 LLM, 같은 작업, 같은 분량 (102줄 vs 103줄)
5인 팀 주간 스탠드업 회의록 시뮬레이션. 도메인 정확도는 동등. 차이는 관점의 다양성에서 나타난다.
일반 harness 결과:
- 음성 식별성: 낮음 (5명이 거의 같은 톤)
- 한국 직장 매너: 미미
- 상호 응답·격려·답례: 0회
- 부탁/컨펌 톤: 5회
- 개인 사정 노출: 0건
korean-persona-harness 결과:
- 음성 식별성: 매우 높음 (이름 가리고도 식별 가능)
- 한국 직장 매너: 풍부 (단정 회피·멘토링·컨펌 톤)
- 상호 응답·격려·답례: 4회
- 부탁/컨펌 톤: 11회
- 개인 사정 노출: 2건 (가족 일정·권한 호소)
Run B에만 등장한 인간적 디테일:
백엔드(두 아이 아빠): "다음 주에는 제가 아이 일정이 좀 있어서 로테이션 한 번 사전에 정리해 두면 어떨까 싶습니다."
- 한국 직장 매너: 미미
- 한국 직장 매너: 미미
- 상호 응답·격려·답례: 0회
- 부탁/컨펌 톤: 5회
- 개인 사정 노출: 0건
korean-persona-harness 결과:
- 음성 식별성: 매우 높음 (이름 가리고도 식별 가능)
- 한국 직장 매너: 풍부 (단정 회피·멘토링·컨펌 톤)
- 상호 응답·격려·답례: 4회
- 부탁/컨펌 톤: 11회
- 개인 사정 노출: 2건 (가족 일정·권한 호소)
Run B에만 등장한 인간적 디테일:
백엔드(두 아이 아빠): "다음 주에는 제가 아이 일정이 좀 있어서 로테이션 한 번 사전에 정리해 두면 어떨까 싶습니다."
팀장(45세) → 마케터(24세): "수치 튀었을 때 원인 가설 빠르게 세우는 자세, 계속 그렇게 가시면 됩니다."
마케터: "아, 감사합니다 팀장님!"
팀장: "다만 우리 쪽 재시도 정책이 너무 공격적으로 동작해서 장애가 일부 증폭된 정황이 있습니다. 단정은 RCA 최종본에서 짓겠습니다."
→ 가족·세대·직무 페르소나가 발화에 자연스럽게 결합. 추상적 "안정성 우선"이 아니라 왜 이 사람이 이 우선순위를 가지는지가 행동에 묻어남.
가치 매트릭스 — 어디서 쓸 만한가
- 코드 리뷰 (5명 다른 관점) → 매우 높음
- 가상 사용자 인터뷰 시뮬레이션 → 매우 높음
- 한국 사용자용 마케팅 카피 리뷰 → 매우 높음
- UX 리서치·페르소나 워크숍 → 높음
- 회의록·협업 시뮬레이션 → 높음
- RFC·기술 문서 → 보통
- 인프라·아키텍처 설계 → 낮음 (기본
harness가 적합)
설치 (1줄)
Claude Code:
/plugin marketplace add hongsw/harness
/plugin install harness@harness
Codex CLI:
python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-github.py \
--repo hongsw/harness \
--path skills/korean-persona-search \
--path skills/korean-voice-adapter \
--path skills/korean-persona-harness
데이터셋 캐시 (양 런타임 공유):
pip install huggingface_hub pyarrow
python3 $SKILL_DIR/korean-persona-search/scripts/download.py
⚠️ 주의: 기존 revfactory/harness 설치자는 마켓플레이스·플러그인 이름이 같아 4단계 마이그레이션 필요:
/plugin uninstall harness@harness
/plugin marketplace remove harness-marketplace
/plugin marketplace add hongsw/harness
/plugin install harness@harness
링크
- 포크 리포: github.com/hongsw/harness
- 업스트림 PR #9 (머지 대기): github.com/revfactory/harness/pull/9
- 검증 산출물: _workspace/comparison_test
- 데이터셋: huggingface.co/.../Nemotron-Personas-Korea (CC BY 4.0)
- 원본 Harness: github.com/revfactory/harness
재밌네요 ㅎㅎ 저희도 비슷한 영역에서 다른 path 로 가는 중인데 — ClawSouls (clawsouls.ai) 라는 페르소나 저장 레지스트리 및 공유 플랫폼이에요. 한번 등록된 페르소나는 OpenClaw, Claude Code, Cursor, Hermes Agent와 같은 에이전트 플랫폼들에 npm clawsouls 패키기로 적용할 수 있습니다. 한번 올려주시면 감사하겠습니다. 해당 플랫폼은 GeekNews에도 소개 된적이 있습니다. Show GN: ClawSouls – AI 에이전트 페르소나를 한 줄로 교체하는 오픈 레지스트리 협업을 원하시면 연락 부탁드립니다^^ ( contact@clawsouls.ai )