コンテンツにスキップ

opencode の共有サーバーを運用する

opencode のターミナル(CLI)セッションは、ワークスペースごとに 1 つの共有サーバーにつながります。 メモリより分離を取りたいときはセッションごとの専用サーバーに切り替えられ、版に問題があったときは以前の版に固定できます。

あなたがやること 起きること
何もしない ターミナルのセッションは、Workspace Agent が動かす 1 つの opencode サーバーを共有する
AF_OPENCODE_TUI_STANDALONE=1 を入れて Workspace Agent を起動する 以後に起動するターミナルのセッションが、それぞれ専用のサーバーで動く
2.x の以前の版を指定してイメージをビルドし直す 問題のある版を避けられる

メンバーから見た違いは OpenCode を接続する にあります。

次を環境に入れて Workspace Agent を起動します。

AF_OPENCODE_TUI_STANDALONE=1
  • 1 セッションあたり、メモリがおよそ 150〜250 MB 増えます(アイドルのときの値)
  • この設定で Agent が起動したあとに起動するターミナルのセッションに効きます。動いているセッションは、起動したときのやりかたのままです
  • AF_OPENCODE_SERVE_DISABLE=1(マネージドの opencode を無効にする)でも、つなぐ共有サーバーがないので専用サーバーになります
  • 専用サーバーのペインでは、Console に質問カードが出ません。質問はそのペイン自身のサーバーにあり、Agent はそれを読まないためです。ターミナルで答えます

イメージは opencode 2 の版に固定されています(workspace/Dockerfile の OPENCODE_VERSION)。Agent Fleet がサポートするのは opencode 2 だけです。

  1. 2.x の以前の版を指定して、イメージをビルドし直します(--build-arg OPENCODE_VERSION=<2.x>)
  2. ワークスペースを停止して、起動します

2.x の版は、どれも同じデータベースを読めます。

opencode 1 から移ったワークスペース

Section titled “opencode 1 から移ったワークスペース”
状況 起きること
最後に opencode 1 で使っていた opencode 2 の最初の起動で ~/.local/share/opencode/opencode.db がその場で変換され、opencode 1 のセッションが同じ ID のまま取り込まれます。どれだけ前に使ったワークスペースでも、Agent Fleet は取り込みが終わるのを待ってから再開します
以前に workspace-agent opencode-major 2 で試していた 専用のインストール(~/.local/share/agent-fleet/opencode2)と専用のデータベース(~/.local/share/agent-fleet/opencode2-data)が残っています。どちらも読まれません

専用のデータベースにしかないセッションは、メインのデータベースに統合されていません。いらなくなったら、2 つのディレクトリを消してください。Agent Fleet は自動では消しません。

エージェント向け

この指示をエージェントに送ると、このページを読ませられます。

https://agent-fleet.org/docs/ja/operate/run/opencode-server/index.md を読んで