自宅用エージェントにkimakiでOpenCode無料枠
こんちは、無能です。
自宅鯖に常駐させとくエージェントとして否定派だったのですが無料枠で実現が難しそうだったのでやらなかったのですがやはり並列調査等やらせたり、簡易的に気になった統計情報のチャートのplotをしたいのを外出先からやらせたい欲がでてくました。
という訳で、OpenCodeネイティブに近いようなbotを建てとくにはどうしたらいいだろうか?と思っていた訳ですがOpenClawはレポジトリ自体が凄いことになっているのとなんか違ったものを使いたい欲で調べたらKimakiというものがあったので使ってみました。
これをやる前に OpenCode をラップしてbotエージェントとして起動していたりしてみたんですが変更が多いものの対応をこっちで管理するのも面倒なのでできればありもので解決できればなと思いました。
求めたこと:
Discord対応をちゃんと謳っていること
OpenCodeのサブスク枠として無料運用出来ること
Kimakiを使う
インストール
https://github.com/remorses/kimaki
npx -y kimaki@latestこれでもしOpenCodeを入れてなかったらインストールされるし、bunが依存関係として必要なのでインストールされます。
そして、最後にでてきたリンクからKimakiのbotを自分の鯖に呼ぶだけでOKです。

また、この場合デフォルトだとKimaki経由でbot稼働しているのでトーク内容に秘匿性あるものはやめた方がいいことと、専用でDiscordサーバを恐らく建てた方がいいかとおもいます。

自分のDev Portalからbot作成する手間がないのでお手軽さで言えば良さげです。
モデル切り替えに関しては /model 経由で変更可能なのでDiscord経由だけである程度は簡潔できます。
また、これに付随してOpenCodeには以下のようにAPIコール時に専用HTTPヘッダを利用しているようです。
https://github.com/earendil-works/pi/issues/2824
APIサーバー側の設計として 403 ではなく 429 を返すようにして分かりづらくして悪用避けているのでしょうか?実際、一応OpenCodeで払い出せるAPI KeyというもののOpenCodeのエージェントに制限したい意向があるんだろうと思う点ありますが現状のこのAPI エンドポイントへのリクエストをAPI Keyでの認証というものが否応にも出来てしまう為に新しい認証の仕組みというか、企業としては悪用防ぎたい場合の解決策を講じることはこれから利用シーンとしては増えてくるようにも思います。
例えばですが、mTLSとして利用者側にクライアント証明書を配り専用のTPMやECコントローラのようなセキュリティチップに格納して固定の経路じゃないと呼び出せない仕組みがもしできてしまえば昨今の自由に叩けるような世界が終わるのかもしれません。
しかし、結局のところそれもクライアント証明書をリバースエンジニアリングによって取り出されてしまえば意味なしなのですが昨今のTPM技術の飛躍を考えるとBIOSパスワードの解除はかなり厳しくなっていたりすることを考えると、今後ハードウェア統合されたアプリケーションのセキュリティ向上にも繋がる機能がでてきたりもするのかも、しれません。