
Block Buzz: Không gian làm việc tác nhân AI nơi tác nhân là đồng đội, không phải bot
Hầu hết các thiết lập "AI trong cuộc trò chuyện của bạn" đều hoạt động giống nhau: bạn gắn một bot vào Slack hoặc Discord, cho nó một lệnh gạch chéo, và nó trả lời khi được gọi. Bot sống bên ngoài nhóm. Nó có một danh tính riêng, một dấu vết kiểm toán riêng, và một trần cứng về những gì nó có thể chạm vào. Block đã nhìn vào mô hình đó và quyết định rằng tác nhân chỉ nên là một thành viên của căn phòng.
Ý tưởng đó là Buzz, một không gian làm việc mã nguồn mở từ Block, Inc. đã thu hút khoảng 18.000 sao GitHub. Trong Buzz, con người và tác nhân AI chia sẻ cùng các kênh, ký các hành động của họ bằng cùng loại khóa mã hóa, và kết thúc trong cùng một nhật ký có thể tìm kiếm. Nó được viết bằng Rust và cấp phép Apache 2.0. Tôi đã dành thời gian đọc tài liệu kiến trúc của kho lưu trữ để bạn không phải đọc, và các lựa chọn thiết kế thú vị hơn những gì tiếp thị gợi ý.
Block Buzz là gì?
Buzz là một không gian làm việc có thể tự lưu trữ từ Block, Inc., nơi con người và tác nhân AI chia sẻ cùng các kênh. Nó chạy trên một relay Nostr, để mọi tin nhắn, phản ứng, bản vá mã, phê duyệt và bước quy trình làm việc đều là một sự kiện đã ký trong một nhật ký duy nhất, có thể tìm kiếm, chống giả mạo. Nó là mã nguồn mở theo Apache 2.0, xây bằng Rust, và bạn tự vận hành relay.
Những điểm chính:
- Tác nhân là thành viên hạng nhất với khóa và dấu vết kiểm toán riêng, không phải bot được gắn bên cạnh.
- Mọi thứ (trò chuyện, bản vá, CI, phê duyệt) là một sự kiện Nostr đã ký trong một nhật ký có thể tìm kiếm duy nhất.
- Tác nhân kết nối qua ACP và MCP, nên Goose, Codex và Claude Code hoạt động ngay.
- Tự lưu trữ và mã nguồn mở (Apache 2.0), với một danh sách trung thực, công khai về những gì chưa xong.
Cụm từ mà dự án dựa vào là "a hive mind communication platform". Nghe có vẻ to tát, nhưng thực tế hằng ngày đơn giản hơn: nó giống một không gian làm việc nhóm. Kênh, luồng, tin nhắn trực tiếp, một canvas, huddle thoại, tìm kiếm. Điểm bất ngờ nằm ở bên dưới. Mọi hành động là một sự kiện Nostr đã ký, và tác giả của sự kiện đó có thể là một người hoặc một tiến trình. Cùng hình dạng, cùng mô hình danh tính, cùng dấu vết kiểm toán trong cả hai trường hợp.
Nếu bạn đã so sánh các framework tác nhân như LangGraph, CrewAI và OpenAI Agents SDK, Buzz là một tầng hoàn toàn khác. Đó là các thư viện bạn nhúng vào mã để điều phối lập luận của tác nhân. Buzz là căn phòng nơi tác nhân và nhóm của bạn nói chuyện, bàn giao công việc, và để lại một bản ghi. Chúng bổ sung cho nhau, không cạnh tranh.
Vì sao "tác nhân là thành viên" thay đổi mô hình
Mô hình bot có một vấn đề cấu trúc: tác nhân là khách. Bạn cấp cho nó các cờ quyền, nó hoạt động qua một API hẹp, và khi có gì đó sai, bạn phải đối chiếu hai lịch sử riêng biệt — cuộc trò chuyện của nhóm và nhật ký của bot.
Buzz lật ngược điều này. Một tác nhân có cặp khóa riêng, tư cách thành viên kênh riêng, và dấu vết kiểm toán riêng. Bạn thêm một tác nhân vào kênh theo cùng cách bạn thêm một người. Dự án mô tả việc phân phạm vi là "by identity, not by permission flags", đó là cùng cách bạn phân phạm vi cho một đồng đội người. Bạn tin tưởng họ ở một số phòng và không ở những phòng khác.
Khi một tác nhân là thành viên, nó có cùng những khả năng mà mọi người khác có. Nó có thể mở kho lưu trữ, gửi bản vá, duyệt mã, chạy quy trình làm việc, chỉnh sửa canvas, điều phối tác nhân khác, tạo kênh, và tham gia huddle thoại. README đi qua ba kịch bản làm điều này cụ thể:
- Bộ nhớ sự cố. Lúc 2 giờ sáng, bạn hỏi "chúng ta đã thấy lỗi này trước đây chưa?", và một tác nhân đang theo dõi kênh kéo sáu tháng lịch sử, đăng các luồng và nguyên nhân gốc, và đề nghị gọi người đã gửi bản sửa cuối cùng. Toàn bộ trao đổi ở lại trong kênh như bằng chứng.
- Nhánh như một căn phòng. Bạn mở một nhánh tính năng và một kênh xuất hiện. Bản vá đáp xuống như sự kiện, CI đăng kết quả, một tác nhân chạy lượt duyệt đầu tiên, và quyết định hợp nhất sống trong cùng căn phòng với bằng chứng đã biện minh cho nó.
- Một bản phát hành tự viết. Một quy trình làm việc kích hoạt theo một tag, một tác nhân soạn ghi chú phát hành từ các PR đã hợp nhất, đăng chúng để con người duyệt, nhận một phản ứng giơ ngón cái, và phát hành. Mọi bước đã ký, mọi bước có thể tìm kiếm.
Sợi chỉ chung là cuộc trò chuyện, mã, và quyết định đều sống ở một nơi, thay vì bảy tab giả vờ biết về nhau.
Cách tác nhân thực sự kết nối: ACP và MCP
Đây là nơi kỹ thuật trở nên gọn gàng. Buzz gửi hai tệp nhị phân nhỏ cho tác nhân, và chúng cố ý không biết về nhau.
buzz-agent là một tác nhân ACP. Nó nói Agent Client Protocol qua stdio, gọi một LLM, và dùng công cụ MCP. Nó chạy tối đa tám phiên đồng thời, mỗi phiên có máy chủ MCP, lịch sử và ngữ cảnh riêng. Khi ngữ cảnh của một phiên đầy, nó tóm tắt lịch sử của chính mình và tiếp tục. Nó hoạt động với Zed, JetBrains, hoặc bất cứ thứ gì nói ACP.
buzz-dev-mcp là một máy chủ MCP. Nó cho bất kỳ tác nhân nào một shell và một trình soạn tệp. Tiến trình là phù du với việc giết nhóm tiến trình trên mọi đường thoát, đầu ra bị giới hạn, và chỉnh sửa tệp được phân giải theo thư mục làm việc. Nếu bạn đã xây với Model Context Protocol trước đây, điều này sẽ quen thuộc: đó là mẫu chuẩn "cho tác nhân đôi tay", được làm cứng cáp.
Ghi chú thiết kế trong kho lưu trữ nói thẳng: "two binaries, two protocols, no coupling between them." Tác nhân không biết nó nói chuyện với máy chủ MCP nào, và máy chủ MCP không biết tác nhân nào gọi nó. Chúng kết hợp qua giao thức, không qua import. Lợi ích thực tế là bạn có thể chạy mười tác nhân sau Buzz với các cấu hình MCP khác nhau, hoặc đổi nhà cung cấp LLM bằng một biến môi trường.
Vì buzz-acp bắc cầu @mentions của relay tới các tiến trình con của tác nhân, bạn có thể hướng nó tới Goose, Codex, hoặc Claude Code. Nếu bạn đang chạy tác nhân mã hóa nền, Buzz cho chúng một căn phòng chung để hoạt động thay vì một vòng lặp headless im lặng. Và nếu bạn muốn mang công cụ riêng, xây một máy chủ MCP là con đường được hỗ trợ, với nhiều máy chủ MCP có sẵn để bắt đầu.
Bên trong: Kiến trúc
Buzz là một monorepo Rust, và sự thật quan trọng nhất là: relay là nguồn chân lý duy nhất. Không có tin đồn ngang hàng và không có nhân bản. Máy khách kết nối tới một relay qua WebSocket, và relay xử lý xác thực, xác minh chữ ký, lưu trữ sự kiện, phân phối tới người đăng ký, lập chỉ mục để tìm kiếm, và kích hoạt tự động hóa.
Mọi thứ là một sự kiện Nostr NIP-01. Mỗi sự kiện có sáu trường: một id (SHA-256 của sự kiện được tuần tự hóa), một pubkey, một số nguyên kind, các tag, nội dung, và một chữ ký Schnorr. Số nguyên kind là công tắc điều phối duy nhất. Muốn một tính năng mới? Định nghĩa một số kind mới. Máy khách hiện có không thấy gì và không hỏng gì. Cơ sở mã định nghĩa 81 kind, với các kind Buzz tùy chỉnh nằm trong khoảng 40000-49999.

Ngăn xếp hỗ trợ cố tình nhàm chán, theo nghĩa tốt nhất:
| Crate | Vai trò |
|---|---|
buzz-core | Kiểu không I/O, xác minh Schnorr, khớp bộ lọc, sổ đăng ký kind |
buzz-relay | Máy chủ Axum gắn kết mọi hệ thống con |
buzz-db | Kho sự kiện Postgres, kênh, quy trình làm việc, phân vùng hằng tháng |
buzz-auth | Xác thực Schnorr NIP-42 và NIP-98, phạm vi |
buzz-pubsub | Phân phối pub/sub Redis, hiện diện, chỉ báo đang gõ |
buzz-search | Tìm kiếm toàn văn Postgres trên một cột tsvector được tạo |
buzz-audit | Chuỗi băm, nhật ký kiểm toán chống giả mạo |
buzz-workflow | Công cụ tự động hóa YAML-như-mã |
buzz-cli | CLI ưu tiên tác nhân, JSON vào / JSON ra |
buzz-acp | Bắc cầu @mentions của relay tới tác nhân AI qua ACP |
Postgres giữ các sự kiện và chạy tìm kiếm toàn văn. Redis xử lý phân phối pub/sub, hiện diện và gõ. Lưu trữ đối tượng tương thích S3 (MinIO cục bộ) giữ phương tiện qua giao thức Blossom.
Mô hình bảo mật là nơi tôi ngừng đọc lướt. Mỗi sự kiện có chữ ký Schnorr và ID SHA-256 được xác minh trước khi lưu. Xác thực NIP-42 dùng dung sai dấu thời gian ±60 giây để chặn tấn công phát lại, và sự kiện xác thực không bao giờ được lưu hay kiểm toán. Nhật ký kiểm toán là một chuỗi băm thực sự: SHA-256 của mỗi mục bao trùm mọi trường kể cả băm trước đó, nên giả mạo một mục sẽ phá vỡ mọi mục sau nó. Webhook gửi đi có bảo vệ SSRF kiểm tra các dải IP riêng. Và tư cách thành viên kênh là cổng truy cập duy nhất, được thực thi ở mọi thao tác, với trình xử lý đăng ký kiểm tra truy cập trước khi đăng ký một thuê bao nên không có cửa sổ race cho rò rỉ kênh riêng.
Nếu bạn đang đánh giá cách triển khai AI tác nhân trên hạ tầng bạn kiểm soát, đây là phần đáng đọc hai lần.
Những gì hoạt động hôm nay (và những gì không)
Dự án trung thực bất thường về trạng thái của chính nó, và tôi nghĩ sự trung thực đó là tín hiệu mạnh nhất của một cơ sở mã nghiêm túc. Đây là trạng thái hiện tại thẳng từ kho lưu trữ:
| Trạng thái | Khả năng |
|---|---|
| ✅ Hoạt động hôm nay | Relay, kênh, luồng, tin nhắn trực tiếp, canvas, phương tiện, tìm kiếm, nhật ký kiểm toán, ứng dụng desktop (Tauri + React), buzz-cli + harness ACP, quy trình YAML, sự kiện Git (NIP-34), backend lưu trữ git |
| 🚧 Đang tiến hành | Máy khách di động (iOS + Android, Flutter), cổng phê duyệt quy trình, sự kiện vòng đời huddle |
| 💭 Chờ mã | Danh tiếng web-of-trust xuyên relay, thông báo đẩy |
Giờ là phần mà hầu hết bài viết sản phẩm bỏ qua. Tài liệu kiến trúc liệt kê các khoảng trống đã xác minh, không phải khát vọng:
- Chưa có giới hạn tốc độ nào được thực thi. Trait
RateLimitertồn tại và bốn bậc được thiết kế (human, agent-standard, agent-elevated, agent-platform), nhưng triển khai duy nhất là một stub kiểm thử. - Cổng phê duyệt chưa được nối end-to-end. Trình thực thi có thể tạm dừng một lần chạy, nhưng một quy trình chạm cổng phê duyệt hiện bị đánh dấu là thất bại.
- Một số hành động quy trình là stub.
send_dmvàset_channel_topictrả về "not implemented", nên một lần chạy chạm đến chúng sẽ thất bại. - Ghi âm huddle và xuất bản theo từng rãnh chưa được xây. Phòng thoại và vòng đời tham gia/rời hoạt động; ghi âm có các kind sự kiện dành riêng nhưng không có nhà sản xuất.
- Không có bộ nhớ đệm truy vấn sqlx ngoại tuyến. Truy vấn chạy lúc runtime thay vì được xác minh lúc biên dịch.
Không điều nào trong số này là lý do loại trừ một công cụ tự lưu trữ mà bạn đang đánh giá, nhưng nó cho bạn biết chính xác các mép nằm ở đâu. Nếu bạn cần đánh giá tác nhân trong production với bảo đảm cứng, hãy xem các cột 💭 và 🚧 như cảnh báo chịu lực.
Bắt đầu với Buzz
Có ba con đường, tùy bạn là ai.
Chỉ muốn thử? Lấy một bản dựng đóng gói từ bản phát hành mới nhất: macOS (.dmg), Linux (.AppImage hoặc .deb), hoặc Windows (.exe). Mặc định nó kết nối tới ws://localhost:3000, nên bạn vẫn sẽ muốn một relay đang chạy.
Muốn dựng từ mã nguồn? Bạn cần Docker và Hermit hoặc Rust 1.88+, Node 24+, pnpm 10+, và just. Rồi:
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 togetherRelay đáp xuống ws://localhost:3000 và ứng dụng desktop bật lên. Cho một triển khai VPS một nút thay vì ngăn xếp phát triển cục bộ, có một gói Compose production dưới deploy/compose/ với Postgres, Redis, MinIO, và Caddy tùy chọn cho TLS.
Mang theo một tác nhân? Đặt BUZZ_PRIVATE_KEY và dùng buzz-cli, là JSON vào và JSON ra, được thiết kế riêng cho các lệnh gọi công cụ LLM. Đó là đường may nơi quy trình tác nhân của bạn kết nối.
Ai nên chạy Buzz?
Buzz dành cho các nhóm muốn một nền duy nhất thay vì một đống mã keo. Nếu thiết lập hiện tại của bạn là trò chuyện cộng một forge cộng bot cộng bảng điều khiển CI cộng công cụ phát hành cộng một chỉ mục tìm kiếm, và bạn chán việc chúng không biết về nhau, thì đây là canh bạc mà Buzz đặt: một cộng đồng, một mô hình danh tính, một nhật ký sự kiện.
Nó rất hợp cho:
- Người tự lưu trữ muốn lưu lượng tác nhân của họ trên hạ tầng họ sở hữu, với một dấu vết kiểm toán họ có thể xác minh.
- Kỹ sư nền tảng đánh giá quy trình ưu tiên tác nhân, nơi tác nhân phân loại bug, chạy duyệt, và soạn phát hành như thành viên chứ không phải script.
- Người đánh giá mã nguồn mở muốn đọc toàn bộ trong một buổi chiều. Bề mặt tác nhân là hai crate không ghép nối, cố ý đủ nhỏ để kiểm toán.
Nó chưa dành cho người muốn một SaaS hoàn chỉnh, đầy đủ pin để giao cho một nhóm phi kỹ thuật vào ngày mai. Cổng phê duyệt, giới hạn tốc độ, và máy khách di động vẫn đang đến. Buzz nói điều này thẳng thắn, đó chính là lý do tôi sẽ giao cho nó một thử nghiệm cẩn thận.
Cách đóng khung mà tôi cứ quay lại nằm trong README: "Agents are part of the room, not haunted cron jobs." Nếu bạn từng gỡ lỗi một bot lúc 2 giờ sáng mà không biết nó đã làm gì hay tại sao, bạn đã biết vì sao điều đó quan trọng.
Câu hỏi thường gặp
Buzz có miễn phí và mã nguồn mở không?
Có. Buzz là mã nguồn mở theo giấy phép Apache 2.0 và được xây bởi Block, Inc. Bạn tự lưu trữ relay, nên không có phí theo chỗ ngồi cho phần mềm. Chi phí của bạn là hạ tầng của chính bạn: một máy chủ cho relay, Postgres, Redis, và lưu trữ đối tượng. Mã nguồn, issue, và lộ trình đều công khai trên GitHub tại block/buzz.
Buzz khác gì so với Slack có bot?
Trong Slack, tác nhân là bot hạng hai với danh tính và dấu vết kiểm toán riêng, phân phạm vi bằng cờ quyền. Trong Buzz, tác nhân là thành viên hạng nhất với cặp khóa riêng, tư cách thành viên kênh, và cùng khả năng như con người: mở kho lưu trữ, gửi bản vá, chạy quy trình, tham gia huddle. Mọi thứ đáp xuống một nhật ký sự kiện đã ký, có thể tìm kiếm.
ACP và MCP là gì?
ACP là Agent Client Protocol, giao diện stdio mà buzz-agent dùng để nói chuyện với một máy khách LLM như Zed. MCP là Model Context Protocol, giao diện mà buzz-dev-mcp dùng để cho tác nhân một shell và trình soạn tệp. Hai tệp nhị phân không biết về nhau; chúng kết hợp qua giao thức, nên bạn có thể trộn tự do tác nhân và máy chủ công cụ.
Buzz có dùng blockchain không?
Không, và README rất rõ về điều đó: "Not blockchain. Signed events are useful without making everyone buy a commemorative coin." Buzz dùng chữ ký mã hóa của Nostr và nhật ký kiểm toán chuỗi băm để làm bằng chứng giả mạo, nhưng không có token, không chuỗi, và không cơ chế đồng thuận. Bạn có lịch sử kiểm chứng được mà không có gánh nặng.
Tôi có thể dùng tác nhân AI của riêng mình, như Goose, Codex hay Claude Code không?
Có. Harness buzz-acp sinh các tiến trình con tác nhân AI và bắc cầu @mentions của relay tới chúng qua ACP. Nó hỗ trợ Goose, Codex và Claude Code ngay, chạy một pool từ một đến 32 tiến trình tác nhân, và sinh lại tác nhân nếu nó gặp sự cố. Với công cụ tùy chỉnh, bạn kết nối máy chủ MCP của riêng mình.
Buzz đã sẵn sàng cho production chưa?
Một phần. Relay, kênh, tìm kiếm, nhật ký kiểm toán, ứng dụng desktop, và CLI tác nhân hoạt động hôm nay. Nhưng giới hạn tốc độ chưa được thực thi, cổng phê duyệt chưa được nối end-to-end, và máy khách di động vẫn đang tiến hành. Cho một thử nghiệm tự lưu trữ với một nhóm chấp nhận các mép thô, nó sẵn sàng để thử. Cho một triển khai quan trọng về tuân thủ, hãy chờ các mục 🚧 đến.
Về tác giả
Mert Batur là Đồng sáng lập của Techsy.io, nơi nhóm phát hành tác nhân AI, hệ thống tự động hóa, và pipeline thoại/SDR cho khách hàng B2B. Anh viết về ngăn xếp công cụ LLM mà nhóm Techsy thực sự dùng trong production. Kết nối với anh trên LinkedIn.