qm – 회사 전체가 함께 쓰는 멀티플레이어 에이전트 하네스
qm – Multiplayer agent harness for work
TL;DR Highlight
개인·채널별 격리 샌드박스로 Slack과 웹에서 팀이 함께 쓰는 에이전트 하네스
Who Should Read
사내 Slack에 에이전트를 붙이려는데 사람별·채널별 권한과 메모리 분리가 고민인 백엔드 개발자
Core Mechanics
- 개인 비서형이 아니라 회사 공용형이다
- 직원마다 격리된 워크스페이스를 받고, 채널·그룹 메시지·프로젝트에서도 에이전트와 같이 일한다.
- 사람과 방마다 메모리, 파일, 키체인 뷰, 권한, 크론, 웹앱, 지속형 샌드박스가 따로 있다.
- 하네스와 모델을 바꿔 끼울 수 있다
- Pi와 Claude Code가 같은 코어를 구동한다.
- Pi가 여러 제공사 모델을 돌려서 특정 벤더에 묶이지 않는다.
- 구조는 헤드리스 코어에 Postgres와 샌드박스
- 코어가 API, 신원, 정책, 스케줄러, 에이전트 루프를 맡는다.
- Postgres에 세션·메모리·큐를 저장하고, 에이전트는 작은 고정 도구 세트로 execute를 통해 스코프 샌드박스에서 명령을 실행한다.
- SESSION_STORE=postgres를 안 쓰면 세션이 프로세스 메모리에만 있어 재시작 시 사라진다.
- 보안 자세를 조직이 하나 고른다
- Strict는 모든 하네스 도구 호출에 사람 승인을 요구한다.
- Auto(기본)는 사설망 접근을 막고, Dangerous는 승인 게이트가 없다.
- 재귀 삭제나 파괴적 SQL 같은 명령 정책은 Dangerous에서도 적용된다.
- 콘텐츠 스크리닝과 공유 자세도 따로 설정한다
Community Reactions
- 프론트엔드 스킬이 눈에 띈다는 의견
- 템플릿처럼 보이지 않게 만드는 "anti-slop" 프론트엔드 스킬이 들어 있다는 지적이 있었다.
- 프리미엄 소비재 브리프에서 특정 배경색 팔레트를 금지하는 규칙도 있다고 소개했다.
- 멀티플레이어에서 어려운 건 스코핑이라는 경험
- 멀티플레이어 에이전트의 어려움은 에이전트 루프가 아니라 스코핑이었다는 댓글이 있었다.
- 사람별 스코프와 공유 룸 구조는 회사용으로 합리적이라고 평가했다.
- 실제 쓸모와 차별점에 의문이라는 의견
- Claude Cowork 같은 기존 제품이나 HarnessRouter와 무엇이 다른지 비교를 원하는 댓글이 여럿이었다.
- 결국 프롬프트와 도구, 컨텍스트일 뿐이고 컨텍스트 윈도우 한계로 유용성을 못 느꼈다는 의견도 있었다.
- AWS 배포 경험과 MCP 지원 요구
- 고객 AWS 계정에 공식 Terraform 경로로 QM을 배포하고 있다는 댓글이 있었고, DIY와 관리형 비용 계산기를 공유했다.
- 진짜 멀티플레이어라면 다른 에이전트와 MCP 클라이언트도 지원해야 한다는 의견이 있었다.
How to Apply
- 사내 에이전트용 스코프 표 그려보기
- 지금 쓰는 에이전트에서 개인·채널·프로젝트별로 메모리, 파일, 자격증명, 권한이 어디에 섞이는지 30분 안에 표로 적어라.
- 섞이는 칸마다 격리할지 공유할지 정하라.
- 도구 호출 승인 단계를 보안 자세로 나누기
- 에이전트 도구 호출을 Strict·Auto·Dangerous 세 단계로 분류하라.
- 삭제나 파괴적 SQL 같은 명령은 어느 단계에서도 막는 하드 규칙으로 따로 두라.
- 세션 저장소를 Postgres로 옮기기
- 에이전트 세션이 프로세스 메모리에만 있다면 DB에 저장하도록 바꿔라.
- qm 방식대로 세션, 메모리, 큐를 한 DB에 두고 재시작 후 이어지는지 확인하라.
- qm을 개발 인스턴스로 띄워 보기
- 코딩 에이전트에 배포 가이드를 따르게 시키거나 qm init으로 배포 저장소를 만들어라.
- 개발 인스턴스로 웹 화면에서 먼저 시험하라.
Try It
# Claude Code에 붙여넣는 프롬프트 (qm 배포 초기화용)
Let's deploy https://github.com/yc-software/qm. Follow the deployment guide in this repo. My org slug is {{조직슬러그}} and my target is {{fly 또는 aws}}.
# 직접 실행하려면 (원문 CLI)
npm exec --yes --package=@yc-software/qm@latest -- qm init . --org {{조직슬러그}} --target {{fly 또는 aws}}
npm install
# 이어서 해 볼 것: 세션 유지를 위해 .env에 DATABASE_URL과 SESSION_STORE=postgres를 설정하세요.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓