ACPのサーバーにもクライアントにもなれる──AI基盤モデル企業Poolsideのコーディングエージェント「pool」
「pool」は、AI基盤モデル企業Poolsideが公開しているコーディングエージェント。ターミナルの対話アプリ・ACPサーバー・ACPクライアント・非対話実行(`pool exec`)という4つのモードで動く。6つのライフサイクルイベントで動くフック、サブエージェント委任、AGENTS.md/Skills/MCP/ACPという4つのオープン仕様への対応を1つのCLIにまとめている。GitHub API実測でスター415(2026年8月27日確認時点)。

目次
「Poolside」はAI基盤モデルの開発を手がける企業で、この記事で扱う「pool」はその同社が公開しているコーディングエージェントCLIだ。READMEには「複数のモードで動く」という説明があり、その中に「ACPサーバーとしても、ACPクライアントとしても動く」という一文があった。1つのツールがAgent Client Protocol(ACP)の両側を兼ねられる、という珍しい設計だ。GitHub APIで確認したところ、リポジトリは2026年4月14日に作成され、スター数415・直近更新は8月18日(2026年8月27日確認時点)。
3行まとめ
- poolは、ターミナルでの対話アプリ・ACPサーバー・ACPクライアント・非対話実行(
pool exec)という4つのモードで動くコーディングエージェント。承認モードは「常に確認」「編集を自動承認」「自動(リスクで分類)」「全て自動承認」の4段階から選べる。PreToolUse・PostToolUse・UserPromptSubmit・Stop・PreCompact・SessionStartという6つのライフサイクルイベントでシェルコマンドを実行できる「フック」機能を持つ。READMEは「フックは承認プロンプト無しで自動実行され、失敗・タイムアウト・パース不能な出力の場合はフェイルオープンする。セキュリティ境界ではない」と明記している。- AGENTS.md・Skills・MCP・ACPという4つのオープンな仕様を実装・統合している。「一般的なサブエージェント」は設定不要で、メインエージェントが独立したコンテキストで作業を委任できる。
インストールは1行、モードは4つ
READMEのインストール手順はシンプルだ。
# Linux / macOS
curl -fsSL https://downloads.poolside.ai/pool/install.sh | sh
Windows向けにはプレビュー版のPowerShellスクリプトも用意されている。起動後は、/でスラッシュコマンド、@でファイル・ディレクトリのファジー検索、!でシェルモード、Escキー2回連続で過去のメッセージへの巻き戻しができる。エージェントが作業中に別のプロンプトを入力してEnterを押すと、実行中のターンに割り込んで方向修正(steering)できる機能もある。
承認モードは4段階、「Auto」はリスクで分類する
READMEの「Approval modes」表によれば、承認モードは次の4つ。
| モード | ID | 内容 |
|---|---|---|
| 常に確認 | default |
未承認のツール操作にはプロンプトで確認する |
| 編集を自動承認 | accept-edits |
ワークスペースのファイル読み書きを自動承認 |
| 自動 | auto |
残りの権限リクエストをリスクで分類する |
| 全て自動承認 | always-allow |
ツール呼び出しを自動承認する |
Autoモードは「Accept edits」をベースラインとして、低リスクの操作は即座に実行、中リスクの操作は通知付きで実行、高リスクの操作は承認ダイアログを開く、という3段階の挙動を取る。分類器モデルは~/.config/poolside/settings.yamlで設定でき、1回の起動だけ有効・無効を切り替えることもできるという。
セキュリティ境界ではない、と自己申告するフック機能
PreToolUse・PostToolUse・UserPromptSubmit・Stop・PreCompact・SessionStartという6つのエージェントライフサイクルイベントで、シェルコマンドを実行する「フック」機能がある。公式ドキュメント「Configure Hooks」(本記事執筆時点でPoolside Agent CLI v1.0.16向けの記述)を確認すると、各イベントの発火タイミングとできることが次のように整理されている。
| イベント | 発火タイミング | できること | マッチャー |
|---|---|---|---|
PreToolUse |
ツール実行前(引数検証後・承認プロンプト前) | 呼び出しのブロック、引数の書き換え | ツール名に対して判定 |
PostToolUse |
ツール結果が記録される時 | モデルが読むツール出力の書き換え | ツール名に対して判定 |
UserPromptSubmit |
プロンプト到着時(エージェント処理前) | プロンプトのブロック・書き換え・コンテキスト注入 | 対象外(無視される) |
Stop |
ターン終了直前(キャンセル時を除く) | 追加コンテキスト付きで継続を指示 | 対象外(無視される) |
PreCompact |
コンテキスト圧縮が確実に実行される時 | 圧縮後も残るコンテキストを注入 | 対象外(無視される) |
SessionStart |
セッション開始・再開時 | コンテキストの注入 | 対象外(無視される) |
フックスクリプトは終了コードで判断を返す。ドキュメントによれば、終了コード0・標準出力なしなら「何も変えない」、終了コード0でJSONを返せば「拒否や引数書き換えなどの具体的な決定」、終了コード2は「イベントをブロックし、標準エラー出力の内容を理由としてモデルに伝える」という3パターンで動く。
READMEとドキュメントの両方で共通する注記が正直だった。「フックは承認プロンプト無しで自動的に実行され、失敗・タイムアウト・パース不能な出力を返した場合はフェイルオープンする(=止めずに通す)。これはセキュリティ境界ではない。強制力のある制御には権限設定とサンドボックスを使うこと」。便利さと引き換えに、フック自体はセキュリティ機構として設計されていないことを明示している。
AGENTS.md・Skills・MCP・ACPを1つのCLIで
READMEの「Spec support」という項目には、poolが実装・統合しているオープンな仕様が4つ列挙されている。プロジェクトのAGENTS.mdを自動的に読み込むAGENTS.md仕様、再利用可能なワークフローを拡張するSkills、ツール・データソースを接続するMCP、そして自身がACPサーバー・ACPクライアントの両方として動くACP。1社のCLIが業界で並行して立ち上がっている複数の標準規格を、まとめて実装している例として読める。
ACPサーバーとして動かす場合はpool acpコマンドで起動し、Zed・JetBrains系IDE・Xcodeなど任意のACP対応クライアントから使える。ACP公式のレジストリからインストールすることも案内されていた。逆にACPクライアントとして動かす場合はpool --agent-serverで他のACPサーバー(例としてClaude Agentが挙げられていた)に接続できる、とREADMEの続きの節に書かれていた。
サブエージェントはワークスペースを共有する
「一般的な(general)」サブエージェントは設定不要で、メインエージェントが独立したコンテキストを持つ作業を委任できる。カスタムの指示・別のPoolsideエージェント・コマンドベースのACPサーバーを使う名前付きサブエージェントも設定可能だという。READMEは「サブエージェントはワークスペースを共有するため、同じファイルへの並行変更が衝突する可能性がある」と注意を促し、/usageコマンドで親・各サブエージェント・合計の使用量を確認できるとしている。
非対話実行・他社推論エンジンとの接続・MCP設定
README「Run non-interactively」節を読むと、pool execは単発プロンプトを送って完了したら終了する非対話モードで、スクリプトやCIパイプライン向けと説明されている。CI環境などpool loginで認証情報を保存していない場合は、POOLSIDE_API_KEYとPOOLSIDE_STANDALONE_BASE_URLを環境変数で渡す必要があり、Poolside Platform自体を使う場合のベースURLはhttps://inference.poolside.aiだと明記されていた。
他社の推論基盤との接続もいくつか用意されている。OpenRouterはpool loginで「Use your OpenRouter account」を選ぶだけでネイティブに使える。Ollamaは逆方向の統合で、ollama launch poolまたはollama launch pool --model laguna-xs.2のように、Ollama側のコマンドからpoolを起動できるとREADMEに書かれていた(Poolside側の独自モデルとみられるlaguna-xs.2という名前が例として挙がっている)。llama.cppやvLLMのようなOpenAI互換APIに対しては、POOLSIDE_STANDALONE_BASE_URL・POOLSIDE_API_KEY・POOLSIDE_STANDALONE_MODEL・POOLSIDE_STANDALONE_CONTEXT_LENGTHという4つの環境変数を渡して接続する。
MCPサーバーの追加はpool mcp addコマンドで行い、stdio(コマンドベース)・HTTP・SSEの3種類のトランスポートに対応、環境変数やHTTPヘッダーの受け渡しも--env・--headerフラグでできる。設定は~/.config/poolside/settings.yamlのmcp_serversキーに保存されるか、プロジェクト単位なら.poolside/settings.yamlに書ける。
権限設定はツール(tools.shell.allow/deny、ワイルドカードは*のみ対応で**は非対応)とパス(paths.allow/deny、write: trueで書き込み許可)の2系統があり、.poolside/settings.local.yaml(個人・gitignore対象)・.poolside/settings.yaml(プロジェクト共有)・~/.config/poolside/settings.yaml(全プロジェクト共通)の3スコープを横断して合成される。denyは常にallowより優先される、とREADMEは明記している。
ライセンスは「オープンソース」ではない
GitHub APIのメタデータにはlicenseフィールドが無く、READMEの一番下にある「License」節はリポジトリ内のLICENSE.mdを指すのみだった。そのLICENSE.mdを実際に開くと、内容は次の一文だけだった。
© Poolside. All rights reserved. Use is subject to the Poolside End User License Agreement: https://poolside.ai/eula
(© Poolside、全ての権利を留保する。利用にはPoolside エンドユーザーライセンス契約が適用される)
つまりpoolのソースコードはGitHub上で公開・閲覧はできるものの、OSI承認のオープンソースライセンスではなく、Poolside社独自のEULA(利用規約)が適用される非公開権利のソフトウェアだった。GitHub API・README単独では気づきにくい点であり、この記事では当初「オープンソース」タグを付けていたが、LICENSE.mdの実物を確認した結果、そのタグは外している。
AI基盤モデル企業が自らコーディングエージェントを作る動機
Poolsideは、記事執筆にあたり確認した範囲では自社基盤モデルの開発を手がける企業だと理解しているが、READMEにはPoolside自体の会社概要や資金調達状況についての記述は無かった。基盤モデル企業が自社モデル専用ではなく、Claude Agentなど他社のACPサーバーにも接続できる汎用エージェントCLIを公開している点は、モデル単体の性能競争とは別に「エージェントの器」を握る競争が並行して起きていることを示す一例として読めた。
実際にインストールして動かしたわけではない
この記事はGitHub公式README・GitHub APIメタデータ・LICENSE.md・公式ドキュメント(docs.poolside.ai/hooks)の本文を確認して書いているが、次の点は確認できていない。
- Poolside社自体の事業内容・資金調達状況・自社基盤モデル(
laguna-xs.2など)の詳細は、READMEに会社概要の記述が無く、この記事では確認していない - 実際に
poolを手元でインストールして動作を確認したわけではなく、pool exec・OpenRouter連携・Ollama連携・MCPサーバー追加のいずれも、公式ドキュメントに書かれた手順を読んだ範囲にとどまる laguna-xs.2がPoolside自社モデルなのか、Ollama側で配布されている別のモデルなのかは、README本文の例示以上の裏取りをしていない- Poolside Agent CLIのバージョン履歴(v1.0.16以前にどのような機能追加があったか)は、この記事では確認していない
関連記事
出典・参照資料
AIニュースの解説を動画でも
YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →新しい記事をメールで受け取る
AIの新しい発表を、出典付きで整理して届けます。