GitHub - yc-software/qm: Multiplayer agent harness for work
Service

GitHub - yc-software/qm: Multiplayer agent harness for work

yc-software
2026.08.01
·GitHub·by Mineru
#Agent#AI#Collaboration#Harness#Multiplayer

핵심 포인트

  • 1QM은 개별 사용자에게 격리된 작업 공간과 맞춤형 환경을 제공하여 조직 내 협업을 지원하는 멀티플레이어 에이전트 하네스입니다.
  • 2이 플랫폼은 Postgres 기반의 영속성 계층과 컨테이너화된 샌드박스를 통해 에이전트의 메모리, 파일, 도구 실행을 관리하며 다양한 모델과 연동이 가능합니다.
  • 3조직 수준의 보안 정책과 사용자 권한 제어를 통해 에이전트의 동작을 투명하게 감사하며, 유연한 배포와 커스텀 설정을 위한 독립적인 아키텍처를 갖추고 있습니다.

QM(qm)은 스타트업 환경을 위해 설계된 다중 사용자 에이전트 하네스(multiplayer agent harness)로, 개별 직원이 독립적인 작업 공간을 유지하면서도 Slack이나 웹상에서 협업할 수 있도록 지원하는 프레임워크입니다.

핵심 개념 및 아키텍처

QM은 각 사람과 채널마다 고유한 Scoped Memory, 파일, Keychain, 권한, Cron, 웹 앱, 그리고 Durable Sandbox를 제공합니다. 시스템은 크게 세 가지 계층으로 구성됩니다:
  1. Headless Core: 에이전트의 로직을 담당하며, Pi, OpenCode, Claude Code와 같은 다양한 Harness 및 Model을 유연하게 교체할 수 있습니다.
  2. Persistence Layer: Postgres를 사용하여 세션, 메모리, 작업 대기열(Queue) 등 Durable State를 관리합니다.
  3. Per-scope Sandbox: 각 Scope는 독립된 환경에서 도구(Tools)를 실행하며, 설치된 환경이 유지되는 Durable Computer의 형태를 띱니다.

기술적 상세 및 구동 방식

QM은 TypeScript 기반의 Node.js 환경에서 작동하며, API 서버는 Fastify를 사용합니다. Slack은 내장 서비스 클라이언트(Bolt)를 통한 플러그인 형태로 구현되며, 웹 UI는 Vite와 Lit으로 구축되었습니다.

핵심 메커니즘은 다음과 같습니다:

  • Tool Execution: 에이전트는 고정된 도구 표면(Tool Surface)을 가지며, execute 도구를 통해 독립된 Sandbox 내에서 명령을 수행합니다.
  • Security Posture: 보안 수준은 세 가지 모드로 설정 가능합니다.
    • Strict: 모든 도구 호출에 대해 사용자의 승인이 필요합니다.
    • Auto (default): 분류기(Classifier)가 외부 데이터와 도구 결과를 검사하여 모델 도달 전 필터링합니다.
    • Dangerous: 추가 검사나 휴지기 없이 도구를 실행합니다.
  • Predeclared Command Policy: 위 모드와 관계없이, 재귀적 삭제(recursive deletes)나 파괴적인 SQL 작업 등은 Hard Denial 규칙을 통해 차단됩니다.

배포 및 확장성

QM은 특정 벤더에 종속되지 않도록 설계되었으며, qm init 명령을 통해 특정 클라우드 환경(AWS, Fly.io 등)에 에이전트 배포가 가능합니다. 조직은 deploy/layers/<org>/deploy/layers/<org>/ 경로를 통해 커스텀 도구, 스킬, 인프라 구성을 관리합니다. 또한, 코드베이스 전체를 유지하려는 조직을 위해 git clone을 활용한 Private Fork 방식(Upstream과의 동기화 기능을 포함한 방식)을 권장합니다.

요약하자면, QM은 에이전트를 단순한 개인 비서가 아닌, 조직 단위의 협업 도구로 확장하여 보안과 독립성을 보장하면서도 유연한 모델 선택권을 제공하는 오픈 소스 아키텍처입니다.