08 — 營運

問題排解

常見地雷與復原方式。

第一反應:costaff doctor

一次檢查容器、網路、.env、資料庫,結尾列出建議修復步驟(每個問題都配好對應的修復指令),並存一份帶時間戳的報告,開 GitHub issue 直接附上。

costaff start 因設定錯誤中止

這是 preflight 檢查在正常運作 — 它在 .env 找到致命問題(缺 API key、缺 DB URI)並印出確切修法。多數情況跑 costaff onboard 就能解(既有設定會保留為預設值)。真的要硬啟動:costaff start --no-preflight

Bot 回「your account has not been approved」

不是壞掉 — 這是預設開啟的審核門檻。任何聊天帳號的第一句話會建立待核准身份。修法:costaff dashboardUsers → 核准新的那一列 → 再傳一次。

助理提到「quota」、「429」或「RESOURCE_EXHAUSTED」

撞到 Gemini 免費額度的每分鐘或每日上限了。沒壞、也不會被收錢 — 等一分鐘(或等每日重置)再試。常常撞到的話,用 costaff onboard 換成付費 Gemini key 或其他 provider。

Docker permission denied(Ubuntu)

症狀:docker: Got permission denied while trying to connect to the Docker daemon socket

原因:當下 shell 還沒生效 docker group。

修法:先登出再登入,或開新 shell 跑 newgrp docker

Port 18080 被佔用

別的服務佔走了 Manager 的 port。停掉那個服務,或在 ~/.costaff/costaff/.env 改 port:

COSTAFF_AGENT_PORT=18180

接著 costaff restart。Channel 與 Agent 的 port 是從空檔自動分配的(1809018099 / 1810018199),自己會閃開衝突。

costaff agent list 顯示 Agent 不健康

看容器 log:

docker logs costaff-agent-<name> --tail 50

常見原因:

Manager 沒抓到新 Agent

跑完 costaff agent add 後 Manager 會被重啟以重新讀取子 Agent 清單。如果沒成功,強制一次:

costaff agent restart costaff
# 或如果你改過 env var,整個 rebuild manager
docker compose -f ~/.costaff/costaff/docker-compose.yaml \
  up -d --build --force-recreate costaff-agent-costaff

整個重來

costaff stop
docker compose -f ~/.costaff/costaff/docker-compose.yaml down -v
rm -rf ~/.costaff/workspace/*
costaff start

這會清掉 Postgres volume 與所有 Agent 工作目錄,但 .env、已註冊的 Agent、channel 設定都會留下。

還是卡住

主 repo 開 issue,附上 costaff doctor 輸出,或寄信到 simonliuyuwei@gmail.com