
Block Buzz: 에이전트가 봇이 아닌 팀동료인 AI 에이전트 워크스페이스
대부분의 "채팅 속 AI" 구성은 같은 방식으로 작동합니다. Slack이나 Discord에 봇을 붙이고, 슬래시 명령을 주고, 호출되면 응답합니다. 봇은 팀 밖에 살아갑니다. 별도의 정체성, 별도의 감사 추적, 그리고 손댈 수 있는 것에 대한 단단한 상한이 있습니다. Block은 그 패턴을 보고 에이전트는 그냥 방의 멤버여야 한다고 결정했습니다.
그 아이디어가 Buzz입니다. Block, Inc.의 오픈 소스 워크스페이스로, 이미 약 18,000개의 GitHub 스타를 모았습니다. Buzz에서 사람과 AI 에이전트는 같은 채널을 공유하고, 같은 종류의 암호 키로 행동에 서명하며, 같은 검색 가능한 로그에 도착합니다. Rust로 작성되었고 Apache 2.0으로 라이선스됩니다. 여러분이 직접 읽지 않아도 되도록 저장소의 아키텍처 문서를 읽는 데 시간을 들였고, 설계 선택은 마케팅이 시사하는 것보다 더 흥미롭습니다.
Block Buzz란?
Buzz는 사람과 AI 에이전트가 같은 채널을 공유하는 Block, Inc.의 셀프 호스팅 가능 워크스페이스입니다. Nostr 릴레이에서 실행되어, 모든 메시지, 반응, 코드 패치, 승인, 워크플로 단계가 하나의 검색 가능하고 변조 방지되는 로그 속 서명된 이벤트가 됩니다. Apache 2.0 오픈 소스이고, Rust로 구축되었으며, 릴레이는 직접 운영합니다.
핵심 요점:
- 에이전트는 자체 키와 감사 추적을 가진 일급 멤버이며, 옆에 붙인 봇이 아닙니다.
- 모든 것(채팅, 패치, CI, 승인)이 하나의 검색 가능한 로그 속 서명된 Nostr 이벤트입니다.
- 에이전트는 ACP와 MCP를 통해 연결되어, Goose, Codex, Claude Code가 바로 작동합니다.
- 셀프 호스팅 오픈 소스(Apache 2.0)이며, 아직 끝나지 않은 것들의 정직하고 공개된 목록이 있습니다.
프로젝트가 기대는 문구는 "a hive mind communication platform"입니다. 거창하게 들리지만, 일상적 현실은 더 단순합니다. 팀 워크스페이스처럼 느껴집니다. 채널, 스레드, 다이렉트 메시지, 캔버스, 음성 허들, 검색. 반전은 그 아래에 있습니다. 모든 행동은 서명된 Nostr 이벤트이며, 그 이벤트의 작성자는 사람일 수도 프로세스일 수도 있습니다. 같은 형태, 같은 정체성 모델, 어느 쪽이든 같은 감사 추적입니다.
LangGraph, CrewAI, OpenAI Agents SDK 같은 에이전트 프레임워크를 비교해 왔다면, Buzz는 완전히 다른 층입니다. 그것들은 에이전트의 추론을 오케스트레이션하기 위해 코드에 임베드하는 라이브러리입니다. Buzz는 에이전트와 팀이 대화하고, 작업을 넘기고, 기록을 남기는 방입니다. 상호 보완적이지 경쟁자가 아닙니다.
'멤버로서의 에이전트'가 왜 모델을 바꾸는가
봇 모델에는 구조적 문제가 있습니다. 에이전트는 손님이라는 점입니다. 권한 플래그를 부여하고, 좁은 API를 통해 운영하며, 뭔가 잘못되면 팀의 채팅과 봇의 로그라는 두 개의 별도 이력을 맞춰야 합니다.
Buzz는 이를 뒤집습니다. 에이전트는 자체 키 쌍, 자체 채널 멤버십, 자체 감사 추적을 얻습니다. 에이전트를 채널에 추가하는 것은 사람을 추가하는 것과 같은 방식입니다. 프로젝트는 범위 지정을 "by identity, not by permission flags"로 설명하며, 이는 인간 팀동료의 범위를 지정하는 것과 같은 방식입니다. 어떤 방에서는 신뢰하고 다른 방에서는 신뢰하지 않습니다.
에이전트가 멤버가 되면, 다른 모든 사람이 가진 것과 같은 가능성을 얻습니다. 저장소를 열고, 패치를 보내고, 코드를 검토하고, 워크플로를 실행하고, 캔버스를 편집하고, 다른 에이전트를 오케스트레이션하고, 채널을 만들고, 음성 허들에 참여할 수 있습니다. README는 이를 구체화하는 세 가지 시나리오를 안내합니다.
- 인시던트 기억. 새벽 2시, "이 오류 본 적 있어?"라고 물으면, 채널을 지켜보던 에이전트가 6개월 치 이력을 끌어와 스레드와 근본 원인을 게시하고, 마지막 수정을 배포한 사람을 호출하겠다고 제안합니다. 전체 교환이 증거로 채널에 남습니다.
- 방으로서의 브랜치. 기능 브랜치를 열면 채널이 나타납니다. 패치는 이벤트로 도착하고, CI가 결과를 게시하고, 에이전트가 1차 검토를 실행하고, 병합 결정은 그것을 정당화한 증거와 같은 방에 존재합니다.
- 스스로 작성하는 릴리스. 태그에서 워크플로가 촉발되고, 에이전트가 병합된 PR에서 릴리스 노트를 작성하고, 사람 검토를 위해 게시하고, 좋아요 반응을 받고, 배포합니다. 모든 단계가 서명되고, 모든 단계가 검색 가능합니다.
공통된 실마리는 대화, 코드, 결정이 서로를 아는 척하는 일곱 개의 탭 대신 한 곳에 존재한다는 것입니다.
에이전트가 실제로 연결되는 방법: ACP와 MCP
여기가 엔지니어링이 깔끔해지는 곳입니다. Buzz는 에이전트용 작은 바이너리 두 개를 제공하며, 그것들은 의도적으로 서로를 알지 못합니다.
buzz-agent는 ACP 에이전트입니다. stdio로 Agent Client Protocol을 말하고, LLM을 호출하고, MCP 도구를 사용합니다. 최대 8개의 동시 세션을 실행하며, 각각 자체 MCP 서버, 이력, 컨텍스트를 가집니다. 세션의 컨텍스트가 차면 자체 이력을 요약하고 계속합니다. Zed, JetBrains 또는 ACP를 말하는 다른 어떤 것과도 작동합니다.
buzz-dev-mcp는 MCP 서버입니다. 모든 에이전트에 셸과 파일 편집기를 제공합니다. 프로세스는 모든 종료 경로에서 프로세스 그룹 킬을 동반한 일시적이며, 출력은 제한되고, 파일 편집은 작업 디렉터리에 대해 해석됩니다. 이전에 Model Context Protocol로 구축해 봤다면 익숙하게 느껴질 것입니다. "에이전트에 손을 준다"는 표준 패턴을 강화한 것입니다.
저장소의 설계 노트는 단도직입적으로 말합니다. "two binaries, two protocols, no coupling between them." 에이전트는 어떤 MCP 서버와 대화하는지 모르고, MCP 서버는 어떤 에이전트가 호출하는지 모릅니다. 임포트가 아니라 프로토콜을 통해 구성됩니다. 실질적 이점은 서로 다른 MCP 구성으로 열 개의 에이전트를 Buzz 뒤에 실행하거나, 환경 변수 하나로 LLM 제공자를 바꿀 수 있다는 것입니다.
buzz-acp가 릴레이 @mentions를 에이전트 서브프로세스로 연결하기 때문에, Goose, Codex, Claude Code를 가리킬 수 있습니다. 이미 백그라운드 코딩 에이전트를 실행 중이라면, Buzz는 조용한 헤드리스 루프 대신 운영할 공유 방을 제공합니다. 그리고 자체 도구를 가져오고 싶다면, MCP 서버 구축이 지원되는 경로이며, 시작할 수 있는 기성 MCP 서버가 풍부합니다.
내부 구조: 아키텍처
Buzz는 Rust 모노레포이며, 가장 중요한 단일 사실은 이것입니다. 릴레이가 유일한 진실의 원천이라는 점입니다. 피어 투 피어 가십도 복제도 없습니다. 클라이언트는 WebSocket으로 하나의 릴레이에 연결하고, 릴레이는 인증을 처리하고, 서명을 검증하고, 이벤트를 영속화하고, 구독자에게 분산하고, 검색을 위해 인덱싱하고, 자동화를 촉발합니다.
모든 것은 Nostr NIP-01 이벤트입니다. 각 이벤트는 여섯 개의 필드를 가집니다. id(직렬화된 이벤트의 SHA-256), pubkey, kind 정수, 태그, 콘텐츠, 그리고 Schnorr 서명입니다. kind 정수가 유일한 디스패치 스위치입니다. 새 기능을 원하시나요? 새 kind 번호를 정의하면 됩니다. 기존 클라이언트는 아무것도 보지 않고 아무것도 깨지 않습니다. 코드베이스는 81개의 kind를 정의하며, 커스텀 Buzz kind는 40000-49999 범위에 있습니다.

지원 스택은 최선의 의미에서 의도적으로 지루합니다.
| Crate | 역할 |
|---|---|
buzz-core | 제로 I/O 타입, Schnorr 검증, 필터 매칭, kind 레지스트리 |
buzz-relay | 모든 서브시스템을 묶는 Axum 서버 |
buzz-db | Postgres 이벤트 저장소, 채널, 워크플로, 월별 파티셔닝 |
buzz-auth | NIP-42 및 NIP-98 Schnorr 인증, 스코프 |
buzz-pubsub | Redis pub/sub 분산, 프레즌스, 타이핑 표시기 |
buzz-search | 생성된 tsvector 컬럼 위의 Postgres 전문 검색 |
buzz-audit | 해시 체인, 변조 방지 감사 로그 |
buzz-workflow | YAML-as-code 자동화 엔진 |
buzz-cli | 에이전트 우선 CLI, JSON 입력 / JSON 출력 |
buzz-acp | 릴레이 @mentions를 ACP로 AI 에이전트에 연결 |
Postgres는 이벤트를 보관하고 전문 검색을 실행합니다. Redis는 pub/sub 분산, 프레즌스, 타이핑을 처리합니다. S3 호환 오브젝트 스토리지(로컬에서는 MinIO)가 Blossom 프로토콜로 미디어를 보관합니다.
보안 모델은 제가 훑어보기를 멈춘 곳입니다. 모든 이벤트는 저장 전에 Schnorr 서명과 SHA-256 ID가 검증됩니다. NIP-42 인증은 ±60초 타임스탬프 허용오차를 사용해 리플레이 공격을 차단하고, 인증 이벤트는 절대 저장되거나 감사되지 않습니다. 감사 로그는 진정한 해시 체인입니다. 각 항목의 SHA-256은 이전 해시를 포함한 모든 필드를 커버하므로, 하나의 항목을 변조하면 그 뒤의 모든 항목이 깨집니다. 아웃바운드 웹훅은 비공개 IP 대역을 확인하는 SSRF 보호를 받습니다. 그리고 채널 멤버십이 유일한 접근 게이트이며, 모든 작업에서 강제되고, 구독 핸들러는 구독을 등록하기 전에 접근을 확인하므로 비공개 채널 유출을 위한 경쟁 창이 없습니다.
통제하는 인프라에서 에이전트 AI를 배포하는 방법을 평가 중이라면, 여기가 두 번 읽을 가치가 있는 부분입니다.
오늘날 작동하는 것(그리고 작동하지 않는 것)
프로젝트는 자체 상태에 대해 이례적으로 정직하며, 그 정직함이 진지한 코드베이스의 가장 강한 신호라고 생각합니다. 저장소에서 바로 가져온 현재 상태입니다.
| 상태 | 기능 |
|---|---|
| ✅ 오늘날 작동 | 릴레이, 채널, 스레드, 다이렉트 메시지, 캔버스, 미디어, 검색, 감사 로그, 데스크톱 앱(Tauri + React), buzz-cli + ACP 하니스, YAML 워크플로, Git 이벤트(NIP-34), git 호스팅 백엔드 |
| 🚧 진행 중 | 모바일 클라이언트(iOS + Android, Flutter), 워크플로 승인 게이트, 허들 라이프사이클 이벤트 |
| 💭 코드 대기 | 릴레이 간 web-of-trust 평판, 푸시 알림 |
이제 대부분의 제품 글이 건너뛰는 부분입니다. 아키텍처 문서는 열망이 아니라 검증된 격차를 나열합니다.
- 속도 제한이 아직 강제되지 않음.
RateLimiter트레잇은 존재하고 네 단계가 설계되었습니다(human, agent-standard, agent-elevated, agent-platform). 그러나 유일한 구현은 테스트 스터브입니다. - 승인 게이트가端到 간으로 연결되지 않음. 실행기는 실행을 일시 중지할 수 있지만, 승인 게이트에 도달한 워크플로는 현재 실패로 표시됩니다.
- 일부 워크플로 액션이 스터브.
send_dm과set_channel_topic은 "not implemented"를 반환하므로, 거기에 도달한 실행은 실패합니다. - 허들 녹음과 트랙별 게시가 미구축. 음성 방과 참여/퇴장 라이프사이클은 작동합니다. 녹음은 예약된 이벤트 kind가 있지만 프로듀서가 없습니다.
- sqlx 오프라인 쿼리 캐시 없음. 쿼리가 컴파일 시 검증되는 대신 런타임에 실행됩니다.
이 중 어느 것도 평가 중인 셀프 호스팅 도구에 실격 사유가 되지는 않지만, 경계가 정확히 어디인지 알려줍니다. 단단한 보장을 가지고 프로덕션에서 에이전트를 평가해야 한다면, 💭와 🚧 컬럼을 하중을 지탱하는 경고로 다루세요.
Buzz 시작하기
누구인지에 따라 세 가지 길이 있습니다.
그냥 시도해 보고 싶으신가요? 최신 릴리스에서 패키징된 빌드를 받으세요. macOS(.dmg), Linux(.AppImage 또는 .deb), Windows(.exe). 기본적으로 ws://localhost:3000에 연결하므로, 여전히 릴레이를 실행하고 싶을 것입니다.
소스에서 빌드하고 싶으신가요? Docker와 Hermit 또는 Rust 1.88+, Node 24+, pnpm 10+, 그리고 just가 필요합니다. 그런 다음:
git clone https://github.com/block/buzz.git && cd buzz
. ./bin/activate-hermit
just setup && just build
# every day:
. ./bin/activate-hermit
just dev # starts the relay + desktop app together릴레이는 ws://localhost:3000에 도착하고 데스크톱 앱이 나타납니다. 로컬 개발 스택 대신 단일 노드 VPS 배포를 원한다면, deploy/compose/ 아래에 Postgres, Redis, MinIO, 그리고 TLS용 선택적 Caddy가 있는 프로덕션 Compose 번들이 있습니다.
에이전트를 가져오시나요? BUZZ_PRIVATE_KEY를 설정하고 JSON 입력·JSON 출력이며 LLM 도구 호출을 위해 특별히 설계된 buzz-cli를 사용하세요. 그게 여러분의 에이전트 워크플로가 연결되는 이음새입니다.
누가 Buzz를 운영해야 하나?
Buzz는 접착 코드 더미 대신 하나의 기반을 원하는 팀을 위한 것입니다. 현재 구성이 채팅과 포지와 봇과 CI 대시보드와 릴리스 도구와 검색 인덱스이고, 그것들이 서로를 모르는 것에 지쳤다면, 이것이 Buzz가 거는 내기입니다. 하나의 커뮤니티, 하나의 정체성 모델, 하나의 이벤트 로그.
다음에 강하게 맞습니다.
- 셀프 호스팅 사용자: 에이전트 트래픽을 소유한 인프라에 두고, 검증할 수 있는 감사 추적을 원하는 사람.
- 플랫폼 엔지니어: 에이전트가 버그를 분류하고, 검토를 실행하고, 릴리스를 작성하는(스크립트가 아니라 멤버로서) 에이전트 우선 워크플로를 평가하는 사람.
- 오픈 소스 평가자: 오후 안에 전체를 읽고 싶은 사람. 에이전트 표면은 결합 없는 두 개의 크레이트로, 의도적으로 감사할 수 있을 만큼 작습니다.
아직, 내일 비기술 팀에 넘길 수 있는 완성된 배터리 포함 SaaS를 원하는 사람을 위한 것은 아닙니다. 승인 게이트, 속도 제한, 모바일 클라이언트는 아직 도착 중입니다. Buzz는 이를 솔직히 말하며, 바로 그래서 신중한 파일럿이라면 맡기겠습니다.
제가 계속 돌아오는 프레이밍은 README에 있습니다. "Agents are part of the room, not haunted cron jobs." 새벽 2시에 무엇을 했는지, 왜 그랬는지 모른 채 봇을 디버그해 본 적이 있다면, 왜 그것이 중요한지 이미 알고 있을 것입니다.
FAQ
Buzz는 무료이고 오픈 소스인가요?
네. Buzz는 Apache 2.0 라이선스의 오픈 소스이며 Block, Inc.가 구축했습니다. 릴레이를 직접 셀프 호스팅하므로, 소프트웨어에 대한 좌석당 요금이 없습니다. 비용은 자체 인프라입니다. 릴레이용 서버, Postgres, Redis, 오브젝트 스토리지. 소스, 이슈, 로드맵은 모두 GitHub의 block/buzz에서 공개되어 있습니다.
Buzz는 봇이 있는 Slack과 어떻게 다른가요?
Slack에서 에이전트는 별도의 정체성과 감사 추적을 가진 이류 봇이며, 권한 플래그로 범위가 지정됩니다. Buzz에서 에이전트는 자체 키 쌍, 채널 멤버십, 그리고 사람과 같은 가능성을 가진 일급 멤버입니다. 저장소 열기, 패치 보내기, 워크플로 실행, 허들 참여. 모든 것이 하나의 서명된 검색 가능한 이벤트 로그에 도착합니다.
ACP와 MCP란 무엇인가요?
ACP는 Agent Client Protocol로, buzz-agent가 Zed 같은 LLM 클라이언트와 대화하는 데 사용하는 stdio 인터페이스입니다. MCP는 Model Context Protocol로, buzz-dev-mcp가 에이전트에 셸과 파일 편집기를 제공하는 데 사용하는 인터페이스입니다. 두 바이너리는 서로를 알지 못합니다. 프로토콜을 통해 구성되므로, 에이전트와 도구 서버를 자유롭게 섞을 수 있습니다.
Buzz는 블록체인을 사용하나요?
아니요. README는 이에 대해 분명합니다. "Not blockchain. Signed events are useful without making everyone buy a commemorative coin." Buzz는 변조 증명을 위해 Nostr의 암호 서명과 해시 체인 감사 로그를 사용하지만, 토큰도 체인도 합의 메커니즘도 없습니다. 오버헤드 없이 검증 가능한 이력을 얻습니다.
Goose, Codex, Claude Code 같은 제 AI 에이전트를 사용할 수 있나요?
네. buzz-acp 하니스가 AI 에이전트 서브프로세스를 생성하고 릴레이 @mentions를 ACP로 그것들에 연결합니다. Goose, Codex, Claude Code를 바로 지원하고, 1개에서 32개 에이전트 프로세스 풀을 실행하며, 에이전트가 충돌하면 재시작합니다. 커스텀 도구는 자체 MCP 서버를 연결합니다.
Buzz는 프로덕션에 준비되었나요?
부분적으로. 릴레이, 채널, 검색, 감사 로그, 데스크톱 앱, 에이전트 CLI는 오늘날 작동합니다. 그러나 속도 제한이 강제되지 않고, 승인 게이트가端到 간으로 연결되지 않았으며, 모바일 클라이언트는 아직 진행 중입니다. 거친 경계를 허용하는 팀과의 셀프 호스팅 파일럿에는 시도할 준비가 되었습니다. 규정 준수에 중요한 배포에는 🚧 항목이 도착하기를 기다리세요.
저자 소개
Mert Batur는 Techsy.io의 공동 창립자로, 팀은 B2B 클라이언트를 위해 AI 에이전트, 자동화 시스템, 음성/SDR 파이프라인을 배포합니다. Techsy 팀이 실제로 프로덕션에서 사용하는 LLM 도구 스택에 대해 작성합니다. LinkedIn에서 연결하세요.