DEV Community

Cover image for Buzz 自架教學:使用 Docker 架設 Relay 與設定 AI Agent 自動回覆
Let's Write
Let's Write

Posted on • Originally published at letswrite.tw

Buzz 自架教學:使用 Docker 架設 Relay 與設定 AI Agent 自動回覆

寫在文章之前,關於本文配圖

這篇文章的配圖,選擇了熊本城,是因為這周發生了熊本大地震,而 August 在今年的五月才去那裡旅遊過。

記得在逛熊本城的時候,裡面有個影片,是在講十年前的熊本大地震發生後,這幾年一路是怎麼走過來,一路又修復成目前的樣子。

雖然,這次又發生了地震,但相信熊本可以再站起來的。


本篇要解決的問題

最近一直在找一個可以把 AI Agent 一起加入到群組聊天的通訊軟體。

大部份都要錢,比如 Slack、Google Chat、Teams。

剛好不知怎麼回事,最近也常常看到講 AI 的電子報提到一個 Buzz,似乎可以解決這需求。

Buzz,是一套可自架的團隊協作工具。除了頻道聊天,也能加入 Codex、Claude Code 等 AI Agent,讓團隊成員直接在頻道中透過 tag Agent 來呼叫 AI。

雖說官方提供了 Self Hosting 的安裝說明,但實際上還是踩了幾個坑才順利的讓 Agent 回覆訊息。

本篇就是筆記實作安裝 Buzz 時的筆記,也把怎麼跳過這些坑的方式紀錄下來,讓看到這篇的你可以從從容容、遊刃有餘的閃過。

完成本文後,可以做到:

  1. 在 Mac 上透過 Docker Compose 自架 Buzz Relay。
  2. 使用 Buzz Desktop 連接自己的 Relay。
  3. 建立 Buzz Community 與頻道。
  4. 啟動內建的三個 Agent。
  5. 使用 Codex 作為 Fizz 的 AI 執行環境。(也可以用 Claude)
  6. 在頻道中透過 @Fizz 讓 Agent 回覆訊息。

安裝 Buzz Relay

1. 安裝必要工具

需要先安裝好以下:

  • Git
  • Docker Desktop
  • Docker Compose 2.24.4 以上

確認 Docker Desktop 已經啟動後,再繼續安裝。

2. 下載 Buzz 原始碼

Clone 官方 GitHub 上的專案:https://github.com/block/buzz

接著進到「deploy/compose」資料夾中,本篇會用 Docker 的方式安裝。

3. 建立 .env

deploy/compose 的資料夾裡有一個「.env.example」,這份檔另存為「.env」。

接著,把 .env 裡「buzz.example.com」、「CHANGE_ME…」的部份全都修改,變成我們要的內容。

另外要注意,目前官方的版本有個 bug,主要是Buzz Relay 容器會顯示 unhealthy,造成後續安裝不起來,目前解決的方式就是:

# 原本
BUZZ_GIT_CONFORMANCE_PROBE=true

# 改成
BUZZ_GIT_CONFORMANCE_PROBE=false
Enter fullscreen mode Exit fullscreen mode

需要 KEY 的部份,可以使用以下指令產生隨機密鑰:

openssl rand -hex 32
Enter fullscreen mode Exit fullscreen mode

產生一般密碼:

openssl rand -base64 24
Enter fullscreen mode Exit fullscreen mode

不同用途的密鑰應分開產生,不要全部使用同一組。

如果覺得一行行修改很麻煩,這一步 ChatGPT 有給了一組指令,直接專案內開啟終端機執行以下也行:

cat > .env <<EOF
BUZZ_IMAGE=ghcr.io/block/buzz:main

BUZZ_DOMAIN=127.0.0.1
RELAY_URL=ws://127.0.0.1:3300

BUZZ_MEDIA_BASE_URL=http://127.0.0.1:3300/media
BUZZ_MEDIA_SERVER_DOMAIN=127.0.0.1

BUZZ_CORS_ORIGINS=tauri://localhost,http://tauri.localhost,https://tauri.localhost,http://127.0.0.1:3300

BUZZ_REQUIRE_AUTH_TOKEN=false
BUZZ_REQUIRE_RELAY_MEMBERSHIP=false
BUZZ_ALLOW_NIP_OA_AUTH=false

BUZZ_AUTO_MIGRATE=true
BUZZ_GIT_CONFORMANCE_PROBE=false

RUST_LOG=buzz_relay=info,buzz_db=info,buzz_auth=info,buzz_pubsub=info,tower_http=info

BUZZ_RELAY_PRIVATE_KEY=$(openssl rand -hex 32)
BUZZ_GIT_HOOK_HMAC_SECRET=$(openssl rand -hex 32)

POSTGRES_DB=buzz
POSTGRES_USER=buzz
POSTGRES_PASSWORD=$(openssl rand -hex 16)

REDIS_PASSWORD=$(openssl rand -hex 16)

BUZZ_S3_ACCESS_KEY=$(openssl rand -hex 10)
BUZZ_S3_SECRET_KEY=$(openssl rand -hex 16)
BUZZ_S3_BUCKET=buzz-media
BUZZ_S3_ADDRESSING_STYLE=path

BUZZ_HTTP_PORT=3300
EOF
Enter fullscreen mode Exit fullscreen mode

因為 3000 是個很多應用程式都會預設使用的 PORT,所以上面的範例改用 3300。

4. 啟動 Buzz Relay

專案中開啟終端機,依序執行以下:

加入執行權限:

chmod +x run.sh
Enter fullscreen mode Exit fullscreen mode

啟動:

./run.sh start
Enter fullscreen mode Exit fullscreen mode

查看狀態:

./run.sh status
Enter fullscreen mode Exit fullscreen mode

正常情況下會看到:

relay       healthy
postgres    healthy
redis       healthy
minio       healthy
Enter fullscreen mode Exit fullscreen mode

5. 測試 Relay

打開瀏覽器,網址貼上:http://127.0.0.1:3300。

成功的話就會看到結果:

Buzz Relay Docker 部署成功畫面與 JSON 網頁回傳結果

順便推薦一下本站開發的擴充功能 Let’s JSON,網址如果回傳的是 JSON,就會看到像上面截圖那樣美美的樣子。

Buzz Relay 安裝成功,剩下的事就是讓各個要使用的團隊成員電腦安裝 Buzz,然後設定抓我們自架的 Buzz Relay 了。


下載、安裝 Buzz

1. 下載 Buzz Desktop

前往 Buzz Releases:

https://github.com/block/buzz/releases

Apple Silicon Mac,例如 M1、M2、M3、M4,下載名稱包含以下文字的版本:

aarch64
Enter fullscreen mode Exit fullscreen mode

Intel Mac 則下載:

x64
Enter fullscreen mode Exit fullscreen mode

Windows 下載:

Buzz_0.5.2_x64-setup_alpha-unsigned.exe
Enter fullscreen mode Exit fullscreen mode

但因為 Windows 版本的 Buzz 目前尚未完成數位簽章,開啟時系統會跳出安全性警告;此時可點擊「更多資訊」並選擇「仍要執行」(或於檔案屬性中勾選「取消封鎖」)即可完成安裝。

2. 登入 Buzz

安裝完 Buzz,打開後會遇到幾個項目,因為 Relay 我們是自架的,因此以下選項要這樣選擇。

Join or create a community:選擇「I already have a community」。

Buzz 桌面端建立 Community 選擇畫面:I already have a community

Reconnect to your community:選擇「I’m a member or admin」。

Buzz 桌面端身份選擇:I am a member or admin

接著會需要輸入我們 Buzz Relay 的網址,之前的 .env 裡寫的是 http://127.0.0.1:3300,這邊就照填,如果上面你有自行修改的話,這邊就填寫你修改的。

輸入安裝 Buzz Relay 時填的網址

以上,就可以進到我們自架的 Buzz 了。


使用 AI Agents 功能

這段就是 August 一直踩坑的部份,只要下列幾個坑都閃過,之後在對話框裡 @ AI Agents 就會得到回應。

確認有使用 AI

本機確定有安裝好 Claude CLI,或 Codex CLI。

如果沒有訂閱這兩家方案,也可以找網路上提供有免費額度的 LLM 來使用。

August 因為 Claude、ChatGPT 都有付費訂閱,所以示範的是這兩家的。

在 Buzz 的設定頁裡,要確認有使用 AI,如圖:

Buzz 系統設定:確認 AI Agent 狀態為 Ready

顯示為「Ready」代表有連結成功。

Buzz Agent 指的是用各家的 API。

確認 Community 網址相同

點擊左下角自己的帳號,接著「Local Dev > Community settings」:

Buzz 設定選單:進入 Community settings 社群設定

裡面會看到一個設定是「Relay URL」:

確認 Relay URL 跟本機網址相同

要確認 URL 裡,ws:// 後的網址,跟我們的網址是相同的,比方上面在設定 Community 的網址是 http://127.0.0.1:3300,那這邊 ws:// 後就要是 127.0.0.1:3300。

這邊如果不相同,那 Agents 收到的來源就會不同,就會一直抓不到我們 @ 它們的訊息。

開放 Agents 接受回應

在 Agent 的設定畫面裡,點擊「Advanced」,裡面有一項「Who can talk to this agent」,要選成「Anyone」:

Buzz AI Agent 進階設定:將 Who can talk to this agent 權限設為 Anyone

然後,上面的頁籤切到「Customize for this agent」,確認有選好要使用的模型:

Buzz Agent 模型配置:選擇對應的 LLM Model

最後,要確認 Agents 是運行中的:

Buzz 頻道控制列:確認 AI Agent 處於 Running 運行狀態

實際測試

可以做一個簡單的測試,看 AI Agents 是不是會回應。

我們在預設建好的 Channel 裡,@ Agent 就行,就像我們在 LINE 上 @ 朋友們一樣。

成功的話,就會看到被 @ 的 Agent 正在思考中的訊息,也會對訊息回應 Emoji,思考完成,Agent 就會回覆訊息,如下圖:

Buzz 頻道實際測試:@Fizz 呼叫 AI Agent 並獲得自動回覆訊息

小結

雖然可以把 AI Agents 加進聊天中,但 Windows 版的安裝比較麻煩。

而且,Codex、Claude Code 上都裝了很多習慣的 Skills,表面上 AI 是回說可以直接用,但輸入 /$ 時沒有出現選項,也不知道到底有用 Skills 還是沒有。

只能說,Buzz 還是一個正在開發中的工具,看 GitHub 上的 Release 紀錄更新得很頻繁,再給它一點時間,它會更好的(?)。

Top comments (0)