以 Kimaki 將 OpenCode 免費額度用於自宅代理
你好,我是無能。
我一直對讓代理常駐在自宅伺服器這件事持反對意見,因為用免費額度似乎很難實現所以沒做;但果然還是浮現了想讓它進行並行調查、或是簡單地把自己在意的統計資訊畫成圖表,並從外面遠端執行的慾望。
總之,我之前在想,要建立一個接近 OpenCode 原生體驗的 bot 並常駐的話該怎麼做才好。雖然 OpenClaw 這個 repository 本身很厲害,但因為想用點不同的東西而搜尋了一下,發現有個叫 Kimaki 的,所以就試用了。
在這樣做之前,我也曾試過把 OpenCode 包裝起來當作 bot 代理啟動,但變更很多,要自己管理對應也很麻煩,所以想說如果可以用現成的東西解決就好了。
我的需求:
確實標榜支援 Discord
能作為 OpenCode 的訂閱額度免費運作
使用 Kimaki
安裝
https://github.com/remorses/kimaki
npx -y kimaki@latest這樣執行的話,如果還沒安裝 OpenCode 就會被安裝;bun 因為是必要的依賴,也會被安裝。
接著,只要從最後出現的連結,把 Kimaki 的 bot 邀請到自己的伺服器就可以了。

此外,在這種情況下預設是透過 Kimaki 來運作 bot,所以對話內容中如果有需要保密的部分最好避免;我想大概還是建立一個專用的 Discord 伺服器會比較好。

不用費工夫從自己的 Dev Portal 建立 bot,就方便性來說很不錯。
關於切換模型,可以透過 /model 來變更,所以僅透過 Discord 就能在某種程度上簡單地完成。
另外,伴隨而來的是,OpenCode 在呼叫 API 時似乎使用了專用的 HTTP header,如下所示。
https://github.com/earendil-works/pi/issues/2824
就 API 伺服器端的設計來說,是不是刻意回傳 429 而不是 403,讓它不易理解藉此避免濫用呢?實際上,OpenCode 的確有可以發放的 API Key,但我想它應該是想要限制在 OpenCode 的代理使用;然而現狀是,對這個 API 端點的請求,無論如何都能用 API Key 進行認證,所以今後新的認證機制,或說企業為了防止濫用而祭出解決方案的使用情境,應該會越來越多。
舉例來說,如果 mTLS 能向使用者端發放客戶端憑證,並存放在 TPM 或 EC 控制器這類專用安全晶片中,且若不是固定路徑就無法呼叫的機制能夠實現的話,或許這種能隨意呼叫的時代就會結束。
但是,說到底,如果客戶端憑證被透過逆向工程取出,那也就沒有意義了;不過考量到近來 TPM 技術的飛躍,連解除 BIOS 密碼都變得相當困難,從這點來看,今後或許也會出現有助於提升硬體整合應用程式安全性的功能也說不定。