この記事は、Geminiとの相談結果が多分に含まれています。
利用する場合は、自己責任でお願いします。
記事の内容は以下のシステムでテストされています。
Ubuntu26.04.1LTS
Intel Core Ultra5 250K Plus
メインメモリ96GB(4800MT/s)
Intel Arc A770(16GB)
以前「AIエージェントを使ってみよう(Pi Coding Agent)」の記事でもPiのインストールには触れました。
が、インストールがメインではなかったので、覚書としてインストールメインの記事を書き直します。
世の中にはエージェントツールは多数ありますが、自分はほとんど触ったことがありません。
- VSCodeのプラグインのCline
- DeepSeek Harness
- Unsloth Studioのエージェントツール
使ったことがあるのはこのくらいでしょうか。
どれも便利で多機能です。
ただし、AI界隈の事はただでさえ良く理解していないのに、勝手に便利なツールが付いてくるとそれが当たり前のように考えるようになります。
理解を深めようとする時に、これが返って邪魔になることもあるんですよね。
多機能だけど、搭載してあるだけで使わないツールを勝手に読み込み、KVキャッシュを圧迫してしまうところも、貧乏人の自分には痛いところでした。
KVキャッシュは大量のVRAMを消費しますが、大容量のVRAMを搭載したグラフィックスカードは、記事を書いている現在、AI需要で非常に高価になってしまっています。
インストール方法
愚痴を言っても仕方ありません。
インストール方法にいきましょう。
#!/bin/bash
# 1. nvm(Node Version Manager)のインストール
# ※バージョン(v0.40.8)は執筆時点のものです。エラーが出る場合は公式GitHubを確認してください。
# https://github.com/nvm-sh/nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash
# パスを即時反映(.bashrcに依存せず、直接nvmを読み込むよう修正)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# 2. Node.jsのインストール(常に最新の安定版が入るオプションを使用)
nvm install --lts
# 3. Pi Coding Agentのインストール
npm install -g @earendil-works/pi-coding-agent
# 4. Piの設定ディレクトリ作成
mkdir -p ~/.pi/agent
# 5. ローカルLLM(llama.cpp)の接続設定
cat << 'EOF' > ~/.pi/agent/models.json
{
"providers": {
"llama-cpp": {
"baseUrl": "http://127.0.0.1:8080/v1",
"api": "openai-completions",
"apiKey": "none",
"compat": {
"supportsDeveloperRole": false,
"supportsReasoningEffort": false
},
"models": [
{
"id": "local_AI",
"name": "llama.cpp Local Model",
"contextWindow": 262144,
"maxTokens": 32768
}
]
}
}
}
EOF
# 6. Piコーディングの拡張機能とMCPサーバー設定(fetchのみ)
npm install -g pi-llama-cpp
cat << 'EOF' > ~/.pi/agent/config.json
{
"plugins": [
"pi-llama-cpp"
],
"llamaCpp": {
"serverUrl": "http://127.0.0.1:8080"
},
"mcpServers": {
"fetch": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-fetch"
]
}
}
}
EOFちょっと補足。
インストールスクリプトは記事執筆時点の情報です。
npmのバージョンは

で、確認して下さい。
{
“providers”: {
“llama-cpp”: {
“baseUrl”: “http://127.0.0.1:8080/v1“,
“api”: “openai-completions”,
“apiKey”: “none”,
“compat”: {
“supportsDeveloperRole”: false,
“supportsReasoningEffort”: false
},
“models”: [
{
“id”: “local_AI”,
“name”: “llama.cpp Local Model”,
“contextWindow”: 262144,
“maxTokens”: 32768
}
]
}
}
}
ここの、「”contextWindow”: 262144」は結構重要でして、
通常AIエージェントに自動で作業をまかせると、あっという間にコンテキストを使い果たしてしまいます。
普通は、ここでエージェントツールか推論エンジンがクラッシュしますが、
設定したコンテキストに近づくと、自動でコンテキストを要約(Compaction)して圧縮し、仕事を継続してくれます。
{
“plugins”: [
“pi-llama-cpp”
],
“llamaCpp”: {
“serverUrl”: “http://127.0.0.1:8080“
},
“mcpServers”: {
“fetch”: {
“command”: “npx”,
“args”: [
“-y”,
“@modelcontextprotocol/server-fetch”
]
}
}
}
ここの部分「mcpServers」には現在何も設定していませんが、後でネット検索の追加機能を付与したりできます。
また、記事にすると思います。
使い方
Piは単体ではLLMをロードできません。
裏で推論エンジン(llama.cppやLMStudio、ollamaなど)を動かして、繋ぐことになります。
「simple-llama-studioを大幅に改変(Ubuntu編)」で紹介した推論エンジンで説明します。
まず、simple-llama-studioをサーバーモードで立ち上げます。


次に、プロジェクトにしたいフォルダを開きます。

別に空のフォルダの中をプロジェクトフォルダにしてもOKです。
その時はプロンプトで指示を出せば良いです。





ちなみにAGENTS.mdを認識しているのがわかります。
ここに何もなければ、たぶんスペルを間違っています。
以上で使い方を終わります。
以下はPiについて、Geminiにまとめてもらいました。
そのつもりで読んでください。
Piについて

Pi coding agent(pi.dev)は、ターミナル上で動く最小限のAIコーディングエージェントです。
AIが内部で利用する基本ツールは
「読み込み(read)・書き込み(write)・編集(edit)・コマンド実行(bash)」
の4つのみで構成されています。
公式ドキュメントでも「あえて標準搭載しなかった機能(What we didn’t build)」として以下を明言しています:
- No MCP(最初からMCPを抱え込まず、必要なら拡張機能で追加)
- No Sub-agents(固定のサブエージェント機能は持たず、tmuxや拡張で作る)
- No Plan Mode / No Built-in To-Dos(独自のToDo管理を持たず、Markdownファイル等で制御)
- No Permission Popups(毎回煩わしい承認ダイアログを出さず、コンテナやルールで制御)
機能を拡張したくなったらどうするか?
Piの拡張機能(Extensions)やスキル(Skills)はTypeScriptやMarkdown等で書かれています。
「こういうコマンドや機能が欲しい」と思ったら、
Piに自身を拡張するスクリプトを書かせ、/reload コマンドを叩くだけで即座に反映できる
仕組みになっています。
ユニークな機能
履歴がGitのように枝分かれする「ツリー構造セッション」
- 通常のチャットAIは一本道の履歴ですが、Piはセッション全体が木構造(DAG)で保存されます。
/treeコマンドで過去のやり直したい地点へ戻り、別のアプローチをブランチ(分岐)して試すことができます。
作業中の割り込み指示(Steering)と順番待ち(Follow-up)
- エージェントがツールを実行して作業している最中に、Enter を押すと現在のツール実行直後に割り込んで軌道修正(Steering)させることができます。
- Alt+Enter を押すと、現在のタスクが一段落した後のキューとして追加(Follow-up)されます。
コンテキスト管理の透明性(Context Engineering)
- 多くのツールでは裏でどんなプロンプトが飛んでいるか見えにくいですが、Piは
AGENTS.mdやSYSTEM.mdでプロジェクトごとの指示をストレートに制御できます。 - トークン上限に近づいたときの会話要約(Compaction)ロジックすらも、拡張機能で差し替え可能です。
4つの動作モード
- ターミナルの対話画面(TUI)だけでなく、スクリプトからワンショットで呼ぶ
Print/JSONモード、別言語・別プロセスから操るRPCモード、ライブラリとして組み込むSDKを備えています。
最後に
今回はローカルAIを推論エンジンで動かしましたが、APIキーを取得してGemini、ChatGPT、Claudeと繋ぐこともできるようです。
自分は一度Geminiの「gemini-3.5-flash」と繋いで動かした事がありますが、ローカルAIとは段違いの速度と賢さでビビった記憶があります。
とはいえ使い始めたばかりで、まだまだ知らないこともたくさんあります。
新たにわかったことなんかあったら、追記するでしょう。
後日、ネット検索機能を追加して、普通にChatGPTみたいに(というと言い過ぎかもしれませんが)使える方法も紹介します。
今回は以上です。

コメント