6/1からの値上げに備えるための備忘録。
できること
GitHub CopilotのBYOK機能を使うことで、従来通りAI使い放題(?)を実現できる。
BYOKの概要の説明をしてる記事は いくつかあったものの、詳細なHow-toまで解説してる記事があまりなかったので作成。
方法
ローカルモデルを稼働させる
今回はollamaを使用した。
GitHub Copilot側の書き方的にはopenai API互換なら何でも良さそうに見えるが、以前vLLMを使用したときはうまくいって無さそうだった。原因は不明。
とりあえず、ollamaをdocker-composeで立てる。
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
restart: always
environment:
OLLAMA_HOST: 0.0.0.0:11434
volumes:
ollama:
立てた後、docker compose exec ollama bashでコンテナの中に入ってollama pull (モデル名)でモデルを利用可能にする。
利用可能なモデル一覧はここから参照できる。
注意点として、cloudタグがついているやつはその名の通りローカルLLMではないので、それらは除外すること。
また、GH Copilotはツール呼び出しを多用するのでモデル側で対応している必要がある。
今回はglm-4.7-flashを採用した。
GitHubCopilot側から接続する(VSCode)
- チャット欄のモデル一覧の右上にある歯車マークで設定画面に移動。
- 画面右上の「モデルを追加」から「Ollama」を選択
- グループ名を適当に入力し、URLを「http://(your-server-ip):11434」にする
これで一覧にローカルモデルが生えてくるので、後はそれを選んでクエリを投げれば良い。
一覧にはOpenAIもあるが、残念ながらOpenAI互換のサーバーに接続することはできない様子。
GitHubCopilot側から接続する(CLI)
CLIの場合、環境変数でそのあたりの挙動を制御できる。最低限以下の変数があれば良い。
# 接続先URL。注意点として、 /v1まで指定する必要あり
COPILOT_PROVIDER_BASE_URL=http://(your-server-ip):11434/v1 \
# API種別
COPILOT_PROVIDER_TYPE=openai \
# 使用モデル
COPILOT_MODEL=glm-4.7-flash:latest \
# -- 最大トークン数を指定する場合
# COPILOT_PROVIDER_MAX_PROMPT_TOKEN=100000 \
# COPILOT_PROVIDER_MAX_OUTPUT_TOKEN=100000 \
# -- API KEYが必要な場所なら↓をCO
# COPILOT_PROVIDER_API_KEY=your-api-key \
# -- Copilotが提供するモデルをそもそも使わない場合CO
# COPILOT_OFFLINE=true \
copilot
接続は問題なくできるが、ツール呼び出しの関係でバグがある。2026/05/20時点ではまだ直っていない。
> このプロジェクトの概要を教えて
・プロジェクトの概要を把握するために、主要なファイルを読み込みます。
・Read README.md
80 lines read
・Read docker-compose.yml
32 lines read
(ここでセッションが切れる)
> continue
・Request failed (transient_bad_request). Retrying...
・Request failed (transient_bad_request). Retrying...
× 400 invalid message content type: <nil>
Q. ローカルLLMでエージェント呼び出しできる?
A. できる。
frontmatterのmodelにローカルモデル名を指定すれば良い。
---
name: your-skill-name
description: your-skill-description
model: glm-4.7-flash:latest
tools: [vscode, execute, read, agent, edit, search, web]
---
(your-prompt)
あとは普通にskills経由で呼び出してやるだけで、ローカルLLMを参照してagent起動してくれる。
都度指定してやる手間こそあるが、ここまでやれば遜色なく(?)使うこともできそうな雰囲気。
note
$ date -Iseconds
2026-05-20T03:33:08+00:00
$ copilot --version
GitHub Copilot CLI 1.0.49.
Run 'copilot update' to check for updates.
# ollama --version
ollama version is 0.24.0