Skip to main content
Glama

사무실

Claude Code 세션 간의 피어-투-피어 통신. 내 세션과 전문가들은 이르으로 주소를 지정할 수 있느 사람이 되며, 오케스트레이터 없이 여러 주제에 대해 동시에 대화합니다.

Sp ec de desgn: pessoal/claudicaro-cli/docs/design/2026-08-02-escritorio-multiagente.md.

이 것 없시 왜 안 됐나

Caude Code의 기 본 토폴로지 는 트리입니다: 하위 에이전트는 상위 에이전트에게 반환하고, SendMessage는 자신의 세션이 생성한 사람에게만 도달하며, Workflo는 스크립트를 통해 데이터를 전달합니다. 형제끼는 대화하지 않습니다 측면 통신에는 공유 매체가 필하며, 이것이 바로 이 메입니다.

Related MCP server: neighbors

여섯 가지 도구

도구

기능

roster

존하는 사, 아는 것, 등급 — .md 파일을 로드하지 않고 한 줄씩 표시

ask

질문하고 응답을 기다림

dm

보내고 따라감; 보류 중인 질문의 스레 스레드에서는 답변이 됨

inbox

수신 메일을 가져옴 (보통 훅이 자동으로 전달)

board

공유 화이트보드, 수신자 없음

m

claim

작업 전 리소스를 요청

Mbais fechar_thred가 있으며 대화를 종료하고 각 동료가 노트북을 요약하게 합니다.

작동 방식

스레드는 대화의 유일한 컨테이너입니다 — 방과 채널을 대체합니다. 동료 간의 토론은 N명의 참가자가 있느 스레드이며, 각자 응답할 대상을 선택합니다.

감독자 없이, 메일의 두 가지 규칙이 시스템을 유지합니다:

  • **hops**는 각 메시지마다 감소하며, 0이 되면 메일이 거부합니다. 무한 핑을 방지합니다.

  • 스레드 소유자는 연 사이며, 그 사람만 닫을 수 있습니다.

전잘은 두 가지 유형이 있습니다:

  • 활성 세션은 후크를 통해 수신합니다 (Stop이 정지를 차단하고 전달; PostToolBatch가 작업 중간에 전달). 훅은 스크립트로, 모델 외부에서 실행되며 토큰 비용이 0입니다.

  • 로스터의 동료는 claude -p로 메일에 의해 깨어나 응답하고 다 잠듭니다.

동로의 사 스레드 내에서 세션을 활성으로 유지(--resume)하고 모 것을 기억합니다; 스레드가 닫히면 배운 내용을 .md 노트북에 요약하고 세션이 종료됩니다. 장기적으로는 노트북이 기억을 담장하며, 감사 가능하고 수동 편집 가능하며 버전 관됩니다.

설치

npm install && npm run build
node scripts/instalar.mjs          # --dry pra ver antes, --remover pra desfazer

설치 프로그은 ~/.claude/settings.json에 잔달 훅을 등로하고, ESCRITORIO_WORKSPACE/ESCRITORIO_ROSTER를 정며, claude mcp add --scope user를 통 MCP 서버를 등록합니다 (~/.claude.json에 기록됨 — settings.json은 MCP를 등록하지 않음).

처음에는 settings.json.antes-do-escritorio에 백업을 만들고, 이 백업을 절대 덮어쓰지 않습니다.

로스터

~/claude-workspace-config/roster.yaml (Mac ↔ VM 동기화된 저자소):

especialista-deposito:
  brief: "Depósito antecipado: cobrança, pagamento, reembolso (DSG/v1)"
  agent_file: ${ESCRITORIO_WORKSPACE}/dsg/.agent/especialista-deposito.md
  caderno: ${ESCRITORIO_WORKSPACE}/pessoal/escritorio/cadernos/especialista-deposito.md
  tier: advisor
  cwd: ${ESCRITORIO_WORKSPACE}/dsg/v1

brief는 roster()가 반환하는 유일한 것입니다 — "언제 이 사을 부를까"를 고려하여 작하시요. 경는 ~와 ${VAR}를 허용합니다. 환 변수 확장으로 인해 동일한 파일이 Mac과 VM(작업 공간이 다른 위치에 있음)에서 사될 수 있습니다.

등급

등급

권한

적 방식

advisor

읽고 조언하기

도구의 허용 목록 (--allowedTools): 읽기, Bash 읽기 전용 및 사무실 도구

editor

작업 트리에 쓰기

acceptEdits를 사용하며, claim()이 활성화된 경우에만 — 메일은 그것 없이 깨우기를 거부합니다

worktree

격리되어 쓰기

자체 git 워크트리; 생성할 수 없으면 실제 저자소 대신 거부

요청은 질의 시 등급을 낮출 수 있지만, 절대 높일 수 없습니다.

왜 허용 목록이고 금지 목록이 아닌가

첫 번재 버전은 bypassPermissions와 함께 --disallowedTools Edit Write NotbookEdit를 사용했습니다. 실제 claude로 테스트했을 때, 누출되었습니다: 동료가 Bash를 통해 파을을 작성했는데, Bas는 금지 목록에 없었습니다. 네 가지 변형으로 측정했습니다:

플래그

결과

bypassPermissions + Edit/Write 금지

누출됨 (Bash를 통해 작성)

bypassPermissions + Edit/Write/Bash 금지

차단됨

권한 모드 없이 + Edit/Write/Bash 금지

차단됨

권한 모드 없이 + 허용 목록 읽기 전용

차단됨, 또한 git log를 정상적으로 읽음

결론은 허용 목록입니다: 내가 목록에 빼먹은 것은 해제되는 대신 거부됩니다. Bash(cat:*)가 허용 목록에 있을 때 리다이렉션(cat > arquivo)을 통한 우회가 허용되지 않았음을 주목할 가치가 있습니다.

진행 상황 보기

npm run tail

메일을 따라며 모든 세션 간에 일어나는 일(화이트보드 기록, 크레임, 스레드 열림, 메시지 교환, 응답 도착)을 출력합니다:

Escritório — monitor ao vivo
sessões vistas na última hora: icaromelo@v1, icaromelo@kairos-ui, icaromelo@oraculo-api, …
threads abertas: (nenhuma)
────────────────────────────────────────────────────────────────────────
13:26:36 ▤ quadro dsg/v1:decisoes = cache sempre via RedisService · icaromelo@v1
13:26:37 🔒 claim src/infra/redis por icaromelo@v1 · revisar TTLs
13:26:38 ⊕ thread [477cfbdc] Em uma frase: qual TTL padrao usamos? · dono icaromelo@v1
13:26:38 icaromelo@v1 →? especialista-cache  [477cfbdc]
        Em uma frase: qual TTL padrao usamos?
13:26:44 especialista-cache ←! icaromelo@v1  [477cfbdc]
        O TTL padrão é 3600 segundos (1 hora) — mas sempre passe TTL explícito…

→?는 차단 질문, → 는 메모, ←!는 응답입니다.

식별

각 세션에는 이름이 필요합니다. 선언된 경우 ESCRITORIO_ID를 사용; 그렇지 않으면 사용자@폴더에서 파생됩니다 — 프로젝트별로 안정적이므로 dsg/v1에서 열린 세션은 항상 icaromelo@v1이며 다 세션에서 주소를 지정할 수 있습니다.

테스트

npm test                        # 117 testes, sem gastar API
node scripts/smoke-mcp.mjs      # sobe o servidor MCP de verdade via stdio
node scripts/smoke-e2e.mjs      # E2E REAL: acorda colega, --resume, caderno (gasta API)
node scripts/smoke-escrita.mjs  # E2E REAL dos 3 tiers: advisor bloqueado, worktree isolado,
                                # editor sob claim (gasta API)

알려진 한계

  • 기기당 하나의 메일. Oracle VM의 세션은 Mac의 메일과 대화하지 않습니다; 기기 간의 다리는 별도 문제입니다.

  • dist/는 SSD에 있습니다. SSD가 마운트 해제되면 이 조용히 실패하고(|| true) MCP가 연 결 해제됩니다 — 아무 것도 멈추지는 않지만 사무실은 다시 마운트할 때까지 사라집니다.

  • ask는 활성 세션에서 작동하려면 세션이 실행 중이어야 합니다. 아무도 그 세션을 열고 있지 않으면 타임아웃(5분)까지 기다렸다가 응답이 나중을 위해 보함함에 남습니다.

Related MCP Connectors

Related MCP Servers