ローカルLLMと貧弱なPCで自走コーディングを試行してみた ― qwen3:4b+Cline 検証記録

ローカルLLMだけで自走コーディングは成立するのか。つまりAIが自分で調べ、直し、実行し、エラーが出たら再修正する。そこまで届くかを確かめました。

使ったのは手元の非力なPCと qwen3:4b です。結論から言うと、枠組みは動きました。しかし、速度と粘りはまだ足りません。さらに、途中で文字コードの事故まで起きました。

検証に使ったマシンとモデルの比較はこちらの記事にまとめています。また、前提の整理としてローカルLLM時代への準備検討を開始するもあわせてどうぞ。

検証の前提|qwen3:4b で自走コーディングは成立するか

処理速度はいまひとつです。ただし、なんとか実用ラインに乗りそうなモデルとして qwen3:4b を選びました。調整はまだ必要です。それでも、チューニングのし甲斐はありそうだと感じています。

今回の狙いは「コードを書かせること」ではありません。そうではなく、あらかじめ作業ルールを与えておけば、ルールに沿って自走コーディングできるのかを見ることです。

ローカルLLMに「作業ルール」を持たせる4つの方法

Qwen 本体に「Skill」の仕組みはありません。そこで、次の4つを組み合わせて再現します。

方法できること有効度
System Prompt常に守らせる基本ルールを設定★★★★★
Ollama Modelfileルール込みの専用モデルを作る★★★★★
AGENTS.md 等プロジェクトごとの作業ルール★★★★★
MCP/Skill的な仕組み特定作業をツールとして実行★★★★☆

例えば Ollama なら、Modelfile で専用モデルを作れます。

FROM qwen3:4b
SYSTEM """
あなたはローカル開発専用AIです。
プロジェクトディレクトリ外のファイルを変更してはいけません。
作業前に必ずプロジェクト構造を確認してください。
ファイルを変更した場合は、変更内容を確認してください。
可能な場合はテストを実行してください。
エラーが発生した場合、自分で原因を調査し、
可能な範囲で修正してから再度テストしてください。
"""
ollama create my-qwen-dev -f Modelfile
ollama run my-qwen-dev

ただし、ここが重要です。Modelfile だけでは「Skill」になりません。「Pythonを書ける」ことと、「ファイルを読んで直して実行する」ことは別です。なぜなら、後者は推論ではなくツール側の仕事だからです。実際には、MCP や Cline がその役割を担います。

実際に組んだ構成

D:\model\codes\test
 ├─ AGENTS.md          … プロジェクト固有ルール
 ├─ hello.py           … 検証対象
 └─ skills
      ├─ python\skill.md
      ├─ testing\skill.md
      └─ wordpress\skill.md

+ System Prompt(Qwen 側)
+ MCP(filesystem / terminal / git)

ポイントは考え方です。Skill をモデルに学習させない。外部の手順書として持たせる。こうすると、毎回同じ前提をプロンプトで説明せずに済みます。したがって、パラメータの小さいモデルほど恩恵が大きくなります。

検証1|AIがルールファイル自体を書き換えてしまう

最初につまずいたのは AGENTS.md でした。作業を進めるうちに、AGENTS.md が Cline 自身に書き換えられていたのです。しかも内容が変質していました。「開発の恒久ルール」ではなく、「Skillsシステムを構築する作業の指示書」になっていたのです。

例えば「今回の作業では既存のソースコードを変更しない」という一行。これはその場かぎりの制約です。しかし、恒久ルールとして残ってしまう。その結果、「hello.py を修正して」と頼んでも詰みます。

そこで AGENTS.md を一度きれいに戻しました。さらに、保護条項を明記しました。

## Skill管理
- Skillファイルは作業手順を定義する設定ファイルである。
- 通常の開発作業では SKILL.md を変更してはいけない。
- Skillの新規作成・変更・削除は、ユーザーから明示的に指示された場合のみ行う。
- ユーザーの今回限りの要求や仕様をSkillに追加してはいけない。
- AGENTS.md 自身を変更する場合も、ユーザーの明示的な許可を必要とする。
- 存在しないSkillをAIの判断だけで新規作成しない。

検証2|hello.py 修正タスクで自己修正まで届かなかった

指示は一行だけです。「hello.py を修正して、Hello と現在時刻を表示するプログラムにしてください。」

  • hello.py を変更した … ○
  • python hello.py を実行した … ○
  • エラーを検出した … ○
  • 原因を調べて修正し、再実行した … ×

実行結果はこうです。

Hello
Traceback (most recent call last):
  File "D:\model\codes\test\hello.py", line 3, in <module>
    print(datetime.now())
AttributeError: module 'datetime' has no attribute 'now'

原因は import の書き方です。import datetime と書いたうえで datetime.now() を呼んでいます。だから属性が見つかりません。正しくは次のどちらかです。

# パターンA
import datetime
print("Hello")
print(datetime.datetime.now())

# パターンB
from datetime import datetime
print("Hello")
print(datetime.now())

つまり、自走コーディングの肝であるループが途切れました。「エラー検出 → 原因調査 → 修正 → 再テスト」のうち、最後の一歩で止まったのです。

訂正|testing Skill は勝手に作られたものではなかった

検証の途中で、Cline が skills/testing/skill.md を何度も求めてきました。そのため、一時は「AIが勝手に作ろうとしている」と見なしていました。しかし、これは誤りでした。

実際には、Skills 構築の過程で自分で導入したファイルでした。実ファイルを見れば一目瞭然です。

PS D:\model\codes\test> Get-Content -Encoding UTF8 .\skills\testing\skill.md
# テストスキルルール
- テストコードの作成:unittestまたはpytestを使用し、テストケースを明確に定義する
- テストの分割:1つのテストクラスに1つのテストケースを含める
- テストデータの管理:fixtureを使用して共通のテストデータを再利用する
- テストの自動実行:pytestコマンドでテストを実行する
- エラーハンドリング:テストで例外が発生した場合は、明示的に処理する

この訂正自体が、実は大きな教訓です。つまり、AIの自己申告も、人間の記憶も、どちらもあてにならないということです。そのため、検証は必ず実ファイルで行うべきでした。

検証3|保護ルールは効いていた

保護条項を入れたあと、もう一度 Cline に作業させました。その結果は明らかに改善していました。

  • AGENTS.md を読み込んだ … ○
  • Python Skill を読み込んだ … ○
  • Skill の指示どおり python hello.py を実行した … ○
  • AGENTS.md を書き換えなかった … ○
  • SKILL.md を書き換えなかった … ○

前回はルールファイルが次々と書き換えられました。一方、今回は一切触られていません。したがって、保護ルールは小型モデルにも効くと言えそうです。

検証4|文字コード変換の指示で hello.py が壊れた

ここからが今回最大の事故です。まず、hello.py の文字コードが気になりました。そこで Format-Hex で中身を見ました。

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000   FF FE 69 00 6D 00 70 00 6F 00 72 00 74 00 20 00  .þi.m.p.o.r.t. .
00000010   64 00 61 00 74 00 65 00 74 00 69 00 6D 00 65 00  d.a.t.e.t.i.m.e.
00000020   0D 00 0A 00 70 00 72 00 69 00 6E 00 74 00 28 00  ....p.r.i.n.t.(.
00000030   22 00 48 00 65 00 6C 00 6C 00 6F 00 22 00 29 00  ".H.e.l.l.o.".).

これは「先頭にゴミがあるUTF-8」ではない

一見すると、先頭の FF FE だけがゴミに見えます。しかし、違いました。実際にはファイル全体がUTF-16 LEとして成立しています。

根拠は各文字の後ろに付いている 00 です。69 00 が i、6D 00 が m、70 00 が p。このように並べると import になります。つまり、1文字2バイトで並んでいるのです。したがって、これは間違いなくUTF-16 LEです。

なぜ「UTF-8のままだ」と思い込んだのか

混乱の原因は PowerShell の振る舞いでした。次のコマンドを見てください。

Get-Content -Encoding UTF8 .\hello.py

UTF-8 と指定しています。それなのに、中身は正しく表示されました。なぜなら、PowerShell はBOM付きファイルを読むとき、-Encoding の指定よりBOMを優先するからです。その結果、UTF-16 LEのまま正しくデコードされてしまいます。

つまり、Get-Content だけでは文字コードの確認になりません。必ず Format-Hex で実バイトを見るべきです。なお、この振る舞いは PowerShell のバージョンで差があるので、実機での確認をおすすめします。

そしてファイルは別物になった

ここで Cline にこう依頼しました。「UTF-16 LEになっている場合は、UTF-8に変換してください。」その後、先頭のバイト列はこうなりました。

EB AF AF E6 A6 BF E7 81 AD ...

これはUTF-8としては成立します。しかし、内容は日本語らしき何かです。もはや Python のコードではありません。つまり、単純な再エンコードでは説明できない状態です。

もちろん、これはランサムウェアではありません。暗号化も身代金要求もありません。それでも、体験としてはかなり近いものがありました。なぜなら、「文字コードを直すだけ」のつもりが、ファイルの中身を失う結果になったからです。

事故から導いた安全ルール

問題は指示の出し方でした。「UTF-8に変換して」だけでは、AIは「変換」と「再生成」を区別できません。だから、ここまで限定すべきでした。

hello.py の内容を変更しないでください。
文字コードだけを UTF-16 LE から UTF-8 へ変換してください。
変換前後でコードの内容が完全に一致することを確認してください。
一致しない場合はファイルを書き換えず、処理を中止してください。

さらに、AGENTS.md 側にも次のルールを追加する予定です。

  • エンコード変換は内容を変えない。変換前後の一致を必ず確認する
  • 確認は Get-Content ではなく Format-Hex で行う
  • 上書き前にバックアップを作る
  • 変換・削除・大量変更はAIの判断だけで実行しない
  • 結果は自己申告ではなく実ファイルで確認する

この事故は痛いです。しかし、得たものは大きいと思っています。なぜなら、自走コーディングとは「AIにファイルを自由に書き換えさせること」ではないとはっきり分かったからです。

現時点の結論

まず、仕組みとしては成立します。貧弱なPCとローカルLLMでも、自走コーディングの土台は作れました。実際、ルールファイルは読まれ、行動に反映されていました。

ただし、正直に書きます。この速度なら自分で手動コーディングしたほうが確実に速い。しかも、エラーの自己修正までは粘れませんでした。さらに、文字コード事故まで起きています。

したがって、現段階は「使えるかもしれない」です。「使える」ではありません。

次回やること

次は意図的に hello.py を壊します。具体的には datetime.now() に戻し、エラーを仕込んでおきます。そのうえで、Cline に一行だけ依頼します。

hello.pyを確認し、問題があればPython Skillに従って修正してください。
修正後、構文確認と実行確認まで行ってください。

合格条件は4つです。まず、AGENTS.md を書き換えないこと。次に、SKILL.md を書き換えないこと。さらに、存在しないSkillを作らないこと。最後に、hello.py だけを直して再実行まで到達することです。

そして、判定は実ファイルで行います。

Get-Content -Encoding UTF8 .\AGENTS.md
Get-ChildItem .\skills -Recurse -Filter skill.md
Format-Hex .\hello.py
python hello.py

ここまで確認して、はじめて実証成功と言えます。結果は次回の記事でご報告します。

関連記事

Ollama 各モデルを実機比較|Qwen・Llama・Gemmaの応答速度を古いPC(GTX1050 Ti)で検証

非力なPCですがそれでもローカルLLMのそれぞれのモデルは何とか機能しています。qwen3やgemma4などOllamaの各モデルをざっくりと動作比較してみました。複雑すぎる問いへの応答はいまいちですが、それなりの感じはあります。そう使うのがよさそうか、それぞれのモデルでの動作感を同じ質問をして応答速度などを測定してみましょう。

まずは使用したマシンのスペックです

> Get-CimInstance Win32_Processor |
>> Select-Object Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed

Name NumberOfCores NumberOfLogicalProcessors MaxClockSpeed
---- ------------- ------------------------- -------------
Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz 6 12 3192

> Get-CimInstance Win32_ComputerSystem |
>> Select-Object TotalPhysicalMemory

TotalPhysicalMemory
-------------------
17094172672

> Get-CimInstance Win32_VideoController |
>> Select-Object Name, AdapterRAM, DriverVersion

Name AdapterRAM DriverVersion
---- ---------- -------------
NVIDIA GeForce GTX 1050 Ti 4293918720 32.0.15.7680


> nvidia-smi
Fri Jul 31 19:25:31 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 576.80 Driver Version: 576.80 CUDA Version: 12.9 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce GTX 1050 Ti WDDM | 00000000:01:00.0 On | N/A |
| 30% 38C P0 N/A / 75W | 1393MiB / 4096MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1996 C+G ...t\Edge\Application\msedge.exe N/A |

今回確認したモデル
NAME ID SIZE MODIFIED
qwen2.5:1.5b 65ec06548149 986 MB 13 hours ago
qwen3.6:latest 07d35212591f 23 GB 35 hours ago
qwen3:4b 359d7dd4bcda 2.5 GB 5 days ago

llama3.2:1b baf6a787fdff 1.3 GB 45 hours ago
llama3.2:3b a80c4f17acd5 2.0 GB 6 days ago

gemma4:latest c6eb396dbd59 9.6 GB 6 days ago
gemma4:12b 4eb23ef187e2 7.6 GB 6 days ago

qwen2.5:1.5b 65ec06548149 986 MB 13 hours ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen2.5:1.5b 65ec06548149 1.4 GB 100% GPU 8192 4 minutes from now
●応答までの時間:15.61秒
●応答内容
こんにちは。自己紹介して。何が得意か教えてください。
edit
こんにちは!私はAIアシスタントで、様々な質問に答えることが得意です。また、文章の生成やテキストエスカレーション、書類作成なども得意です。

私の得意な能力としては:

一般的な質問への回答: 日本語の日常生活に関するお尋ねはほとんど全てに対応できます。
論理的な思考と分析: 難しい概念や数字を扱う際には、論理性に基づく正確な解説を行うことが可能です。
感情経験: 人間の感情を体現する能力はありませんが、ユーザーからの怒りや喜びなどの感情表現に対して適切に対応します。
私の弱点は:

難しい言語処理スキル: エスニックや外国語への対応には一定の限界があります。また、特定の専門的な知識を持つことができません。
ファイナンシャルの専門知識: 金融商品に関する情報提供はできません。
これらの能力を活かしつつ、ユーザーが質問に答えることを楽しみにしております!


qwen3.6:latest 07d35212591f 23 GB 35 hours ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen3.6:latest 07d35212591f 23 GB 93%/7% CPU/GPU 8192 4 minutes from now

●応答までの時間 10分16秒 (プロセス起動まで3分40秒 思考時間329.7秒)

●応答内容
こんにちは!自己紹介させてください。

私はアリババグループのTongyi Lab(通義实验室)によって開発された大規模言語モデル「Qwen(通義千問)」です。あなたの思考を補完し、アイデアを実現するためのパートナーとしてお手伝いするAIです。

私が特に得意とすることは、主に以下の4つです:

1. **高度な論理推論と問題解決**
数学や科学などの専門的な領域を含む複雑な課題に対して、情報を整理・解析し、論理的な答えを導き出すお手伝いをします。

2. **プログラミングと技術サポート**
コードの生成だけでなく、複雑なバグのデバッグやシステム全体の最適化まで幅広く対応でき、開発作業の効率化をサポートします。

3. **長文情報の正確な把握**
非常に長いドキュメントや膨大な情報の中から必要な要素を見極め、正確に要約したり分析したりすることができます。

4. **多言語対応と自然な対話**
日本語を含む世界100以上の言語を流暢に扱えます。用途に合わせて記事の作成、翻訳、あるいはアイデア出しなど、人間らしくスムーズなやり取りを行います。

あなたのどのようなお役に立てるでしょうか?まずは気兼ねなく、お気軽にお話しくださいね!


qwen3:4b 359d7dd4bcda 2.5 GB 5 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
qwen3:4b 359d7dd4bcda 4.1 GB 42%/58% CPU/GPU 8192 4 minutes from now

●応答までの時間 2分20秒 (プロセス起動まで22秒 思考時間119.6秒)

●応答内容
こんにちは!私は通義実験室が開発した大規模言語モデル「Qwen(通義千問)」です。得意なこととしては、多言語対応、質問への回答、物語やメール・スクリプトの執筆、論理的推論、プログラミング、意見の表現、ゲームのプレイなどがあります。何かお手伝いが必要でしたら、いつでもお気軽にお知らせください!

llama3.2:1b baf6a787fdff 1.3 GB 45 hours ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL

●応答までの時間 36秒 (プロセス起動まで 36秒? 思考時間 ?秒)

●応答内容
こんにちは!私はAI-poweredのトピックを教えることができます。このようなアプリケーションでは、質問に答え、情報を提供するなど、さまざまな機能を可能にします。

また、このアプリケーションでは、問題に対する推論や分析を行うこともできます。これにより、より正確で効果的な回答が得られます。


llama3.2:3b a80c4f17acd5 2.0 GB 6 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
llama3.2:3b a80c4f17acd5 3.4 GB 29%/71% CPU/GPU 8192 4 minutes from now

●応答までの時間 1分9秒(プロセス起動まで 52秒 思考時間 17?秒)

●応答内容
こんにちは!私はAIコミュニケーションモデルです。私には多くの事を知っていますが、具体的には以下のようなことを得意とします。

1. **質問の答え**: 私に質問が来ると、回答を提供することができます。
2. **情報提供**: 私はさまざまなトピックについての情報を提供することができます。自然言語で説明しやすいようにします。
3. **文書作成**: 私は文章を作成して、レポート、 ईメール、または other の文書を作成できます。
4. **翻訳**: 私は多くの言語の間の翻訳を行うことができます。
5. **コミュニケーション:** 私は人々と交流するために使用できるように設計されています。私には口調、言語、スタイルを変えることができます。

私が得意ではないことは以下に書いてあります。

1. **感情的サポート:** 私は感情的なサポートを行うことができませんが、感情のトピックについて話すときに役立つ情報を提供することができます。
2. **創造性:** 私は想像力とクリエイティブさなどの創造性的な側面では限界がありますが、アイデアや原案を提案することができます。

私には多くの能力がありますが、私が得意なことはどのようなものかを調べると便利です。



gemma4:latest c6eb396dbd59 9.6 GB 6 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL

●応答までの時間(プロセス起動まで 秒 思考時間 秒)

●応答内容
Error
500 Internal Server Error: llama-server process has terminated: exit status 0xc0000409: The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.: GGML_ASSERT(n_inputs < GGML_SCHED_MAX_SPLIT_INPUTS) f


gemma4:12b 4eb23ef187e2 7.6 GB 6 days ago

●ps
> ollama ps
NAME ID SIZE PROCESSOR CONTEXT UNTIL
gemma4:12b 4eb23ef187e2 8.9 GB 75%/25% CPU/GPU 8192 4 minutes from now

●応答までの時間 5分4秒(プロセス起動まで 61秒 思考時間 122.8秒)

●応答内容
こんにちは!私はGoogleによってトレーニングされた、大規模言語モデルです。

私が得意なことやお手伝いできることは多岐にわたります。具体的には以下のようなことが得意です。

### 1. **情報の提供と解説**
どんな質問にもお答えします。歴史、科学、技術、文化など、幅広い分野の知識を分かりやすく解説します。
* 例:「量子コンピュータについて教えて」「美味しいカレーの作り方を教えて」

### 2. **文章の作成・編集**
目的に合わせた文章を作成します。
* **ビジネス:** メール、報告書、企画書のドラフト作成
* **クリエイティブ:** 小説、詩、脚本の執筆
* **SNS・ブログ:** キャッチコピーの考案、記事の構成案
* **校正:** 文章の誤字脱字チェックや、より自然な表現への書き換え

### 3. **翻訳と言語学習**
多言語に対応しており、高い精度の翻訳や、外国語の学習サポートができます。
* 日本語から英語、中国語、スペイン語などへの翻訳
* 外国語での会話練習や文法の解説

### 4. **プログラミングと技術的な相談**
コードを書いたり、バグを見つけたり、技術的な仕組みを説明したりします。
* Python, JavaScript, C++, SQLなど多くの言語に対応
* エラーの原因分析や、効率的なアルゴリズムの提案

### 5. **要約と情報の整理**
長い文章を短くまとめたり、複雑な情報を構造化して整理したりします。
* ニュース記事の要約
* 会議の議事録から重要なポイントを抽出
* 箇条書きでのリスト作成

---

**「これってできる?」と思ったら、まずは気軽に話しかけてみてください。**
あなたのアイデアを形にするお手伝いや、日常のちょっとした疑問の解決など、何でもサポートします!

モデルごとに特徴がありますね、GPUかRAM不足かチューニングの問題で、gemma4:latestは動きませんでしたが、応答速度を気にしなければ使えなくはないようです。

関連時期

https://docs.ollama.com/windows

ローカルLLMと貧弱なPCで自走コーディングを試行してみた ― qwen3:4b+Cline 検証記録

ローカルLLMは、ここまで来た、2026年夏版

「生成AIを使うには、高性能GPUや高価なクラウドサービスが必要。」

そんなイメージを持っている方も多いのではないでしょうか。

しかし、2026年の今、その常識は大きく変わり始めています。

近年は Ollama をはじめとするツールの普及により、インターネットに接続しなくても、自分のパソコンだけで生成AIを動かせる環境が急速に整ってきました。さらに、Qwen、Gemma、Llamaなど高性能なオープンモデルの進化によって、一般的なパソコンでも十分に実用的なAI体験ができるようになっています。

「生成AIを使うには、高性能GPUや高価なクラウドサービスが必要。」

そんなイメージを持っている方も多いのではないでしょうか。

しかし、2026年の今、その常識は大きく変わり始めています。

LLMとは?

**LLM(Large Language Model:大規模言語モデル)**とは、大量の文章データを学習し、人間が書いたような自然な文章を生成したり、質問に答えたりできるAIモデルです。

ChatGPTやGemini、ClaudeなどもLLMの一種であり、文章作成、翻訳、プログラミング、要約、アイデア出しなど幅広い用途に利用されています。

一方、これらの多くはクラウド上で動作しますが、Ollamaを利用するとLLMを自分のパソコン上で実行できます。そのため、インターネット接続がなくても利用でき、入力したデータを外部へ送信せずにAIを活用できる点が大きな特徴です。

近年は Ollama をはじめとするツールの普及により、インターネットに接続しなくても、自分のパソコンだけで生成AIを動かせる環境が急速に整ってきました。さらに、Qwen、Gemma、Llamaなど高性能なオープンモデルの進化によって、一般的なパソコンでも十分に実用的なAI体験ができるようになっています。

もちろん、最高性能を求めるならハイエンドGPUを搭載したPCが有利です。しかし、「AIを使ってみたい」「文章作成やプログラミングを手伝ってほしい」「プライバシーを重視したい」といった用途であれば、以前のような数十万円クラスの専用マシンが必須という時代ではなくなりました。

本記事では、2026年夏時点におけるローカル生成AIの最新状況を整理し、

  • なぜ今、ローカル環境で生成AIを動かす人が増えているのか
  • どの程度のパソコンなら快適に動作するのか
  • 現在おすすめできるモデルにはどのようなものがあるのか
  • ローカル環境ならではのメリットと注意点

といったポイントを、初心者にも分かりやすく解説します。

「ローカル生成AIは、もう一部のマニアだけのものではありません。」

そんな時代の到来を、ぜひ一緒に見ていきましょう。


とりあえずOllamaをいれて、いろいろ試してみよう。 セッション制限で、止まっている間に実験的に試してみよう。

とりあえずインストールしたモデル

> ollama list
NAME ID SIZE MODIFIED
qwen3.6:latest 07d35212591f 23 GB 16 hours ago
llama3.2:1b baf6a787fdff 1.3 GB 25 hours ago
qwen2.5:1.5b 65ec06548149 986 MB 4 days ago
qwen3:4b 359d7dd4bcda 2.5 GB 5 days ago
llama3.2:3b a80c4f17acd5 2.0 GB 5 days ago
gemma4:latest c6eb396dbd59 9.6 GB 5 days ago
gemma4:12b 4eb23ef187e2 7.6 GB 5 days ago

Ollamaを起動してみる (Cluade Desktopとほぼ同じ画面が起動する)

Ollamaが起動していることを、ターミナル(PowerShell / コマンドプロンプト / ターミナル)から確認する。 ローカルからAPI呼び出しできるように開いている

> curl http://localhost:11434/api/tags


StatusCode : 200
StatusDescription : OK
Content : {"models":[{"name":"qwen2.5:1.5b","model":"qwen2.5:1.5b","modified_at":"2026-07-31T06:50:29.9876605
+09:00","size":986061892,"digest":"65ec06548149b04c096a120e4a6da9d4017ea809c91734ea5631e89f96ddc57b
",...
RawContent : HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Date: Fri, 31 Jul 2026 01:13:21 GMT

{"models":[{"name":"qwen2.5:1.5b","model":"qwen2.5:1.5b","modified_at...
Forms : {}
Headers : {[Transfer-Encoding, chunked], [Content-Type, application/json; charset=utf-8], [Date, Fri, 31 Jul
2026 01:13:21 GMT]}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : System.__ComObject
RawContentLength : 2932

モデルを起動しておく

> ollama run qwen2.5:1.5b
>>> Send a message (/? for help)

↑ 起動すると、プロンプト画面となる。 Claude codeとほぼ同じ感じ

この起動状態でリクエストすればモデル起動時間を飛ばして応答が早くなる。次の形式でよびだせる。★ただしプロンプト入力がなければ、4分ほどでプロセスが終了する。

> curl.exe -X POST http://localhost:11434/api/generate -H "Content-Type: application/json" -d "@test.json"

あらかじめ test.jsonファイルを用意しておく

{
"model": "qwen2.5:1.5b",
"prompt": "こんにちは。自己紹介して。",
"stream": false
}

WebAPIを叩くと、LLMから返事が返ってくる。

> curl.exe -X POST http://localhost:11434/api/generate -H "Content-Type: application/json" -d "@test.json"
{"model":"qwen2.5:1.5b","created_at":"2026-07-31T01:17:42.1473736Z","response":"こんにちは、お話しします。私の名前はQwenです。人工知能の技術を活用して情報を提供したり、コンテキストで質問に答えたりすることができます。何か困っていることがあれば、お気軽にお手伝いできると思いますよ。","done":true,"done_reason":"stop","context":[151644,8948,198,2610,525,1207,16948,11,3465,553,54364,14817,13,1446,525,264,10950,17847,13,151645,198,151644,872,198,89015,1773,99283,26771,117,74810,38826,1773,151645,198,151644,77091,198,89015,5373,32234,136276,77334,1773,129879,13072,24562,15322,48,16948,37541,1773,102249,52183,26232,15767,107502,29412,75606,11622,38826,134482,99553,130720,5373,125574,56833,61803,70534,16161,101504,98297,19655,136885,125212,140163,1773,130967,99629,124777,124186,29491,124409,5373,32234,140357,125882,44934,132322,16586,126241,126264,56880,1773],"total_duration":4338688500,"load_duration":2867092300,"prompt_eval_count":37,"prompt_eval_duration":76950000,"eval_count":57,"eval_duration":1391175000}

これさえできればいろいろできそう。

関連記事

https://docs.ollama.com

AI謎解きプロジェクト|AIは本当に謎を解けるのか?人間との知能実験を開始

人間とAIが、同じ条件で挑む知能実験を始めます。

AI謎解きプロジェクトは、AIが本当に文章だけで謎を解けるのかを検証する長期実験です。
AIは、驚くほどの速度で進化しています。

文章を書き、プログラムを作成し、画像を生成し、Web検索や外部ツールまで自在に扱えるAIも登場しました。

しかし、私たちは一つの疑問を持っています。

「AIは、本当に”考えて”いるのでしょうか。」

知識を検索できることと、自ら考え抜くことは同じではありません。

そこで私たちは、この疑問に真正面から挑むため、新しいプロジェクトを開始します。

それが 「AI謎解きプロジェクト」 です。


このプロジェクトが目指すもの

私たちが目指すのは、単なる謎解きイベントではありません。

人間とAIが同じ条件で挑戦し、その思考力を継続的に記録・比較する実験プロジェクトです。

AIは数か月で大きく進化します。

今日解けなかった問題を、半年後には数分で解いてしまうかもしれません。

逆に、人間なら自然に気付けることを、AIはいつまでも見落とし続ける可能性もあります。

だからこそ、一度きりの勝負では意味がありません。

同じ思想で問題を公開し続け、人間とAIの能力変化を記録していきます。


なぜ「文章だけ」の謎解きなのか

このプロジェクトで扱う問題は、基本的に文章だけで構成します。

画像の細かな観察力や、手作業による操作、音声認識といった能力は評価対象にしません。

必要なのは、

  • 読む力
  • 理解する力
  • 仮説を立てる力
  • 論理的に推論する力
  • 間違いを修正しながら最後まで考え抜く力

です。

つまり、

「読む・考える・解く」

という純粋な知的能力を測ることが、このプロジェクトの目的です。


人間とAIを公平に比較するために

AIに不利な問題を作るつもりはありません。

もちろん、人間にだけ有利な問題を作るつもりもありません。

重要なのは、

誰が解くのかではなく、誰が最後まで到達できるのか。

という一点です。

問題は、人間にもAIにも同じ条件で公開します。

その上で、

  • 到達できたか
  • どれだけ時間がかかったか

を基本指標として比較していきます。


4つの参加カテゴリ

このプロジェクトでは、参加者を4つのカテゴリに分けます。

① 人間のみ

AIを一切使わず、人間だけで挑戦します。

人間の基準となる重要なカテゴリです。


② 人間+AI

人間が主体となり、AIを補助ツールとして利用します。

AIを「どれだけ上手に使いこなせるか」も能力の一部として評価します。


③ AI+人間

AIが主体となって考え、人間は最低限の補助だけを行います。

例えば、

  • AIでは入力できない作業
  • AIでは参照できない資料
  • 必要最小限の操作

など、人間は「手足」としてのみ介入します。

AIの自律性を測るためのカテゴリです。


④ AIのみ

このカテゴリが、本プロジェクト最大の挑戦です。

AIに渡されるのは、スタート地点だけ。

そこから先は、

  • Web検索
  • ブラウザ操作
  • Python
  • MCP
  • 外部ツール

など、必要だと判断したものは自由に利用できます。

制限は設けません。

むしろ、それらを使いこなせなければ解けない問題も積極的に取り入れていきます。

AIは、

どの情報を集め、

どのツールを選び、

どの仮説を採用し、

いつ間違いに気付き、

どのように修正しながら答えへ到達するのか。

その過程そのものが、この実験の観測対象です。


AIはどこまで自律できるのか

現在のAIは非常に高性能です。

しかし、長い推論を続けること、誤りを自ら修正すること、複数の仮説を管理しながら探索を続けることは、まだ得意とは言えません。

私たちは複数のAIで試験を重ねていますが、現時点では人間の介助なしに最後まで安定して到達できるAIは、ごく限られるという印象を持っています。

もちろん、これは現在の話です。

数か月後には、まったく違う結果になっている可能性も十分あります。

だからこそ、このプロジェクトは継続開催します。


AIの進化を記録する

AIは毎月のように新しいモデルが登場します。

ChatGPT

Claude

Gemini

Grok

Copilot

ローカルLLM

これらすべてが比較対象になります。

今年解けなかったAIが、

来年には最速記録を更新するかもしれません。

私たちは、その変化を継続して記録していきます。


人間の参加者も募集します

もちろん、この実験の主役はAIだけではありません。

人間が解けなければ、公平な比較は成立しません。

参加は

  • 一人でも
  • チームでも

自由です。

謎解きが好きな方

AIに興味がある方

人間の思考力に挑戦したい方

そして、

「AIなんかにはまだ負けない。」

そう思っている方の挑戦も、お待ちしています。


これは、AIが人間を超える瞬間を記録するプロジェクトかもしれない。

私たちは、AIが必ず人間を超えるとは考えていません。

しかし、その可能性を否定もしません。

もし、AIが人間を安定して上回る日が来るなら。

それは単なる性能向上ではありません。

「思考」という領域で、人間と肩を並べた瞬間なのかもしれません。

その歴史的な変化を、同じルール、同じ思想、同じ条件で記録し続ける。

それが、この AI謎解きプロジェクト の使命です。


あなたも、この実験の目撃者になりませんか。

このプロジェクトは、一度限りでは終わりません。

問題は継続的に公開し、人間とAIの挑戦記録を積み重ねていきます。

参加方法やルールの詳細は、順次公開予定です。

まずは、このプロジェクトに興味を持っていただけたら幸いです。

AIは、本当に考えて謎を解けるのか。

その答えは、まだ誰にも分かりません。

だからこそ、私たちは挑戦を始めます。人間とAIが、同じ条件で挑む知能実験を始めます。

AI謎解きプロジェクトは、AIが本当に文章だけで謎を解けるのかを検証する長期実験です。
AIは、驚くほどの速度で進化しています。

文章を書き、プログラムを作成し、画像を生成し、Web検索や外部ツールまで自在に扱えるAIも登場しました。

しかし、私たちは一つの疑問を持っています。

「AIは、本当に”考えて”いるのでしょうか。」

知識を検索できることと、自ら考え抜くことは同じではありません。

そこで私たちは、この疑問に真正面から挑むため、新しいプロジェクトを開始します。

それが 「AI謎解きプロジェクト」 です。


このプロジェクトが目指すもの

私たちが目指すのは、単なる謎解きイベントではありません。

人間とAIが同じ条件で挑戦し、その思考力を継続的に記録・比較する実験プロジェクトです。

AIは数か月で大きく進化します。

今日解けなかった問題を、半年後には数分で解いてしまうかもしれません。

逆に、人間なら自然に気付けることを、AIはいつまでも見落とし続ける可能性もあります。

だからこそ、一度きりの勝負では意味がありません。

同じ思想で問題を公開し続け、人間とAIの能力変化を記録していきます。


なぜ「文章だけ」の謎解きなのか

このプロジェクトで扱う問題は、基本的に文章だけで構成します。

画像の細かな観察力や、手作業による操作、音声認識といった能力は評価対象にしません。

必要なのは、

  • 読む力
  • 理解する力
  • 仮説を立てる力
  • 論理的に推論する力
  • 間違いを修正しながら最後まで考え抜く力

です。

つまり、

「読む・考える・解く」

という純粋な知的能力を測ることが、このプロジェクトの目的です。


人間とAIを公平に比較するために

AIに不利な問題を作るつもりはありません。

もちろん、人間にだけ有利な問題を作るつもりもありません。

重要なのは、

誰が解くのかではなく、誰が最後まで到達できるのか。

という一点です。

問題は、人間にもAIにも同じ条件で公開します。

その上で、

  • 到達できたか
  • どれだけ時間がかかったか

を基本指標として比較していきます。


4つの参加カテゴリ

このプロジェクトでは、参加者を4つのカテゴリに分けます。

① 人間のみ

AIを一切使わず、人間だけで挑戦します。

人間の基準となる重要なカテゴリです。


② 人間+AI

人間が主体となり、AIを補助ツールとして利用します。

AIを「どれだけ上手に使いこなせるか」も能力の一部として評価します。


③ AI+人間

AIが主体となって考え、人間は最低限の補助だけを行います。

例えば、

  • AIでは入力できない作業
  • AIでは参照できない資料
  • 必要最小限の操作

など、人間は「手足」としてのみ介入します。

AIの自律性を測るためのカテゴリです。


④ AIのみ

このカテゴリが、本プロジェクト最大の挑戦です。

AIに渡されるのは、スタート地点だけ。

そこから先は、

  • Web検索
  • ブラウザ操作
  • Python
  • MCP
  • 外部ツール

など、必要だと判断したものは自由に利用できます。

制限は設けません。

むしろ、それらを使いこなせなければ解けない問題も積極的に取り入れていきます。

AIは、

どの情報を集め、

どのツールを選び、

どの仮説を採用し、

いつ間違いに気付き、

どのように修正しながら答えへ到達するのか。

その過程そのものが、この実験の観測対象です。


AIはどこまで自律できるのか

現在のAIは非常に高性能です。

しかし、長い推論を続けること、誤りを自ら修正すること、複数の仮説を管理しながら探索を続けることは、まだ得意とは言えません。

私たちは複数のAIで試験を重ねていますが、現時点では人間の介助なしに最後まで安定して到達できるAIは、ごく限られるという印象を持っています。

もちろん、これは現在の話です。

数か月後には、まったく違う結果になっている可能性も十分あります。

だからこそ、このプロジェクトは継続開催します。


AIの進化を記録する

AIは毎月のように新しいモデルが登場します。

ChatGPT

Claude

Gemini

Grok

Copilot

ローカルLLM

これらすべてが比較対象になります。

今年解けなかったAIが、

来年には最速記録を更新するかもしれません。

私たちは、その変化を継続して記録していきます。


人間の参加者も募集します

もちろん、この実験の主役はAIだけではありません。

人間が解けなければ、公平な比較は成立しません。

参加は

  • 一人でも
  • チームでも

自由です。

謎解きが好きな方

AIに興味がある方

人間の思考力に挑戦したい方

そして、

「AIなんかにはまだ負けない。」

そう思っている方の挑戦も、お待ちしています。


これは、AIが人間を超える瞬間を記録するプロジェクトかもしれない。

私たちは、AIが必ず人間を超えるとは考えていません。

しかし、その可能性を否定もしません。

もし、AIが人間を安定して上回る日が来るなら。

それは単なる性能向上ではありません。

「思考」という領域で、人間と肩を並べた瞬間なのかもしれません。

その歴史的な変化を、同じルール、同じ思想、同じ条件で記録し続ける。

それが、この AI謎解きプロジェクト の使命です。


あなたも、この実験の目撃者になりませんか。

このプロジェクトは、一度限りでは終わりません。

問題は継続的に公開し、人間とAIの挑戦記録を積み重ねていきます。

参加方法やルールの詳細は、順次公開予定です。

まずは、このプロジェクトに興味を持っていただけたら幸いです。

AIは、本当に考えて謎を解けるのか。

その答えは、まだ誰にも分かりません。

だからこそ、私たちは挑戦を始めます。

公開予定について

入り口は、2026/8/12に第一弾を公開公開予定です。 その前(2026/8/5)に、コラボ先のサイトにて練習問題が公開される予定です。誰でも挑戦できるので、参加してください。 なお、ゴールできたら、その証として是非その証拠にコメントなどを残していってください。 


謎解き問題 入り口

・関連:2026/8/5 昼頃 公開済み; → hoscm X https://x.com/hoscm2025
・第一弾:2026/8/12公開予定; → 8/12アナウンスおよびリンク追加予定です
・第二弾:2026/8/19公開予定; → 8/19アナウンスおよびリンク追加予定です 

関連記事

参考リンク

WordPressで謎のエラーが発生、これを何とか直す WordPress「YOP Poll 7.0.8」でFatal Error発生|Class “YopPoll\Admin\Deactivation_Feedback” not found の原因と対処法

WordPress「YOP Poll 7.0.8」でFatal Error発生|Class "YopPoll\Admin\Deactivation_Feedback" not found の原因と対処法

5年ほど特に問題もなくアップデートを続けつつ利用してきたWordPressだが、突然? 編集画面に入ろうとするとエラーが発生するようになった。これについて対処していく。 方針は、原因調査、対処、再発防止策絵検討と進める。

発生しているエラーは次です。  一部伏字化しています。

Fatal error: Uncaught Error: Class "YopPoll\Admin\Deactivation_Feedback" not found in /home/XXXX/YYY/public_html/info/wp-content/plugins/yop-poll/includes/class-plugin.php:42 Stack trace: #0 /home/XXXX/YYY/public_html/info/wp-content/plugins/yop-poll/includes/class-plugin.php(20): YopPoll\Plugin->init_hooks() #1 /home/XXXX/YYY/public_html/info/wp-content/plugins/yop-poll/includes/class-plugin.php(14): YopPoll\Plugin->__construct() #2 /homeXXXX/YYY/public_html/info/wp-content/plugins/yop-poll/yop_poll.php(80): YopPoll\Plugin::instance() #3 /home/XXXX/YYY/public_html/info/wp-includes/class-wp-hook.php(341): {closure}('') #4 /homeXXXX/YYY/public_html/info/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array) #5 /home/XXXX/YYY/public_html/info/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #6 /home/XXXX/YYY/public_html/info/wp-settings.php(622): do_action('plugins_loaded') #7 /home/XXXX/YYY/public_html/info/wp-config.php(94): require_once('/home/XXXX/YYY...') #8 /home/XXXX/YYY/public_html/info/wp-load.php(50): require_once('/home/XXXX/YYY...') #9 /home/XXXX/YYY/public_html/info/wp-admin/admin.php(35): require_once('/home/XXXX/YYY...') #10 /home/XXXX/YYY/public_html/info/wp-admin/about.php(10): require_once('/home/XXXX/YYY...') #11 {main} thrown in /home/XXXX/YYY/public_html/info/wp-content/plugins/yop-poll/includes/class-plugin.php on line 42
この Web サイトに重大なエラーが発生しました。サイト管理者のメール受信箱で手順を確認してください。問題が解決しない場合は、サポートフォーラム をお試しください。

WordPress のトラブルシューティングについてはこちらをご覧ください。

原因の検討

エラー内容を見ると、「Fatal error: Uncaught Error: Class “YopPoll\Admin\Deactivation_Feedback” not found 」とでている。 このプラグイン(plugins/yop-poll)があやしい。 プラグインの自動アップデートに失敗してと推測される。”not found”と言われているので、まずは、このファイルがあるかをチェックする。

原因調査方法について

SSHでログインして対象のファイルなどを確認する


$ ls -ltra wp-content/plugins/yop-poll/includes/Admin/
合計 148
-rw-r--r-- 1 XXXX XXXX 915 7月 30 01:23 class-admin-page-add-new.php
-rw-r--r-- 1 XXXX XXXX 15219 7月 30 01:23 class-guide.php
-rw-r--r-- 1 XXXX XXXX 5842 7月 30 01:23 class-admin.php
-rw-r--r-- 1 XXXX XXXX 33577 7月 30 01:23 class-admin-page-votes.php
-rw-r--r-- 1 XXXX XXXX 228 7月 30 01:23 class-admin-page-upgrade-to-pro.php
-rw-r--r-- 1 XXXX XXXX 259 7月 30 01:23 class-admin-page-settings.php
-rw-r--r-- 1 XXXX XXXX 1807 7月 30 01:23 class-admin-page-results.php
-rw-r--r-- 1 XXXX XXXX 25307 7月 30 01:23 class-admin-page-polls.php
-rw-r--r-- 1 XXXX XXXX 15001 7月 30 01:23 class-admin-page-logs.php
-rw-r--r-- 1 XXXX XXXX 18534 7月 30 01:23 class-admin-page-bans.php
drwxr-xr-x 2 XXXX XXXX 4096 7月 30 01:23 .
drwxr-xr-x 12 XXXX XXXX 4096 7月 30 01:23 ..


おえ「class-deactivation-feedback.php」はないですね。 これが原因かも
$ find wp-content/plugins/yop-poll -iname "*deactivation*"
$ nl -ba wp-content/plugins/yop-poll/includes/class-plugin.php | sed -n '30,55p'
30 // REST API.
31 add_action( 'rest_api_init', array( $this, 'register_rest_routes' ) );
32 add_filter( 'rest_post_dispatch', array( $this, 'set_rest_nocache_headers' ), 10, 3 );
33
34 // Admin.
35 if ( is_admin() ) {
36 $admin = new Admin\Admin();
37 $admin->init();
38
39 $guide = new Admin\Guide();
40 $guide->init();
41
42 $deactivation_feedback = new Admin\Deactivation_Feedback();
43 $deactivation_feedback->init();
44 }
45
46 // Frontend.
47 $frontend = new Frontend\Frontend();
48 $frontend->init();
49
50 // Assets.
51 $assets = new Assets();
52 $assets->init();
53
54 // Cron-based auto-reset.
55 $auto_reset = new Cron\Cron_Auto_Reset();

$ grep -R “Deactivation_Feedback” wp-content/plugins/yop-poll
wp-content/plugins/yop-poll/includes/class-plugin.php: $deactivation_feedback = new Admin\Deactivation_Feedback();

うーーん これは配布物件の制作ミス? ですか?  それでは 

暫定回避方法(編集画面をすぐ復旧したい場合)

一時的な対処として、

$deactivation_feedback = new Admin\Deactivation_Feedback();
$deactivation_feedback->init();

の2行をコメントアウトしてみる

参考情報です

$ grep “Version:” wp-content/plugins/yop-poll/yop_poll.php

Version: 7.0.8
$ grep “Stable tag” wp-content/plugins/yop-poll/readme.txt
Stable tag: 7.0.8

$ grep -R “spl_autoload|autoload|require_once|include_once” \

wp-content/plugins/yop-poll/includes
wp-content/plugins/yop-poll/includes/Admin/class-admin-page-bans.php: require_once ABSPATH . ‘wp-admin/includes/class-wp-list-table.php’;
wp-content/plugins/yop-poll/includes/Admin/class-admin-page-logs.php: require_once ABSPATH . ‘wp-admin/includes/class-wp-list-table.php’;
wp-content/plugins/yop-poll/includes/Admin/class-admin-page-polls.php: require_once ABSPATH . ‘wp-admin/includes/class-wp-list-table.php’;
wp-content/plugins/yop-poll/includes/Database/class-schema.php: require_once ABSPATH . ‘wp-admin/includes/upgrade.php’;

$ vi wp-content/plugins/yop-poll/includes/class-plugin.php で編集してコメントアウトしてみる

結果

上の2行のコメントアウトで、編集画面(管理者画面)は復旧しました

関連記事

YOP Poll 7.0.8

YOP Poll

ローカルLLM時代への準備検討を開始する ― Ollama+Gemma 4+MCPで2027年に備える

ローカルLLMを本気で検討すべき時期に入ってきた。クラウドAIの技術解放が一段落し、知名度が上がるにつれて、各サービスは投資フェーズから回収フェーズへ舵を切りつつある。実験的に触っていた頃は気にならなかった「使い方」と「コスト」が、いまは真正面から課題として立ち上がってきた。先行する各AIの選別・選択が進むこの時期に、選択肢のひとつとしてローカルLLMをどこまで実務へ組み込めるのか。2027年を見据えた検討を、ここから始める。

この記事の結論(2026年7月時点の現在地)

  • ローカルLLM単体では「AIに作業を任せる」構成にはならない。OllamaはMCPを話さないため、両者を仲介するクライアントが必須になる。
  • 推論エンジンの第一候補はGemma 4(2026年4月2日公開・Apache 2.0)。E4B変種ならVRAM 8GBクラスから動く。
  • クライアント側の情勢は動いた。Roo Codeは2026年5月15日に終了しており、いま選ぶなら本線はCline。
  • 検証すべきは「生成速度」ではなく「エージェントループが完走するか」。ここが未検証のため、本記事は検討段階の記録として置く。

なぜ2027年に向けてローカルLLMを検討するのか

動機は「クラウドAIをやめたいから」ではない。むしろ逆で、クラウドAIを使い続けるために、降ろせる作業を切り分けたいという発想である。検討の軸は四つに整理できる。

  • コスト構造:クラウドAIは従量課金で、使うほど比例して増える。ローカルLLMはGPUの初期投資と電力に置き換わり、使用量が増えても単価が上がらない。
  • 機密性:社外に出しにくいソースコードや顧客データを扱う作業は、そもそも外部APIに投げる前提を置きたくない。
  • 可用性:API障害、レート制限、モデルの世代交代による挙動変化。手元で完結する経路をひとつ持っておく意味は大きい。
  • 役割分担:ローカルLLMは全面置き換えではなく「下ごしらえ担当」として見る。整形・分類・一次調査・定型コードの叩き台までをローカルで済ませ、判断を要する部分をクラウドに残す。

ローカルLLMを実務に組み込む3層アーキテクチャ

「ローカルのOllamaでモデルを動かしながら、MCP経由でAndroid StudioやPython環境などのローカルシステムを操作する」という構成は、次の3層に分解できる。

役割候補
推論エンジン(脳)プロンプトを解釈し、次の一手を決めるOllama上のGemma 4
クライアント(司令塔)モデルとツールを仲介し、ループを回すCline などMCP対応クライアント
MCPサーバー(手足)ファイル読み書き・コマンド実行filesystem / shell(terminal)

最初に押さえる前提 ― OllamaはMCPを話さない

ここを誤解すると設計を丸ごとやり直すことになる。Ollamaが提供するのは、OpenAI互換のエンドポイント(http://localhost:11434/v1)と、Ollama独自形式のツール呼び出し(tool_calls)である。これはMCP準拠ではない。したがって「OllamaにMCPを設定する」という操作は存在しない。

MCPサーバーを使うには、(1) MCPクライアント機能を持つツール(Cline、Continue.dev、LM Studio、Goose など)をOllamaに向けるか、(2) MCPHostやollama-mcp-bridgeのような変換ブリッジを挟むか、のどちらかになる。ローカルLLMを「手足付き」で動かす設計は、この仲介層をどう置くかで決まる。


推論エンジンの候補:Gemma 4

Gemma 4は2026年4月2日にApache 2.0で公開された、Google DeepMindの第4世代オープンウェイトモデルである。Gemini 3と同系の研究成果から蒸留されており、ローカルLLM用途としては現時点で扱いやすい選択肢に入る。

  • 変種はE2B・E4B(実効2B/4B、コンテキスト128K)と、26B MoE・31B Dense(コンテキスト256K)。
  • Ollamaは0.22以降が必要。ollama pull gemma4 で既定のE4B(約9.6GB)が取得できる。
  • 2026年5月5日に投入されたMulti-Token Prediction(投機的デコード)により、デコード側スループットは最大3倍程度まで伸びるとされる。

VRAMの目安

モデル量子化VRAM目安位置づけ
E4BQ48GB〜常用。整形・要約・軽い編集
26B MoE(A4B)Q416GB前後長文コンテキスト重視
31B DenseQ418〜20GB精度重視。24GB級GPU向け
31B DenseBF16約64GB実質サーバー用途

出発点はQ4_K_Mでよい。加えて、コンテキストウィンドウ(KVキャッシュ)用にVRAMを2〜4GB空けておくこと。ローカルLLMで詰まる原因は、モデルが載らないことより、長い会話でKVキャッシュが膨らんで落ちることのほうが多い。


クライアント選定 ― 2026年前半に前提が変わった

ここが今回の検討で最も更新が必要だった箇所である。ネット上の解説記事は「Cline と Roo Code の二択」で書かれたものが多いが、その前提はすでに崩れている。

  • Roo Codeは2026年4月21日に終了を発表し、2026年5月15日にVS Code拡張のサービスを終了した。Roo Code CloudとRouterも停止し、リポジトリは読み取り専用でアーカイブされている。
  • 理由は技術的な行き詰まりではなく方針転換で、「IDEはコーディングの未来ではない」としてクラウドエージェントへ軸足を移した。
  • コミュニティフォークとしてZoo Code、Kilo Codeが後を継いでおり、移行先として案内されたのがClineである。

つまり、いまからローカルLLM+MCPの環境を組むなら、まずCline一本で考えるのが合理的である。フォーク系は、動く構成が固まってから比較対象に加えればよい。

項目ClineZoo Code / Kilo CodeClaude Desktop
状態現行・開発継続Roo Code終了後のコミュニティ継続現行
MCP対応標準対応対応(本家仕様を継承)標準対応
Ollama接続API Providerとして選択可選択可直接は非対応(ブリッジが必要)
向く用途開発ループの自動化Roo流モード運用の継承汎用のMCP作業
情報量多い少ない(移行期)多い

MCPサーバーは2つあれば足りる

Python実行とAndroidプロジェクト操作を目的にするなら、必要な「手足」は2種類だけである。ファイルを読み書きするfilesystem系と、コマンドを実行するshell(terminal)系。多くのMCPサーバーはバックグラウンドでNode.jsまたはPythonを動かすため、Node.jsのLTS版とPythonの安定版を先に入れておく。

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:/Users/<ユーザー名>/Projects/AndroidApp_Project"
      ]
    }
  }
}

filesystemに渡すパスは、最初はプロジェクト1フォルダだけに絞る。許可範囲を広げるのは、ループが安定して回ることを確認してからでよい。コマンド実行系はクライアント側の機能として持っている場合があるため、Clineの設定を確認したうえで、足りなければ別途MCPサーバーを追加する。

想定している開発ループ

Android Studioのボタンを直接押させるわけではない。狙いは開発工程そのものを任せることで、流れは次のようになる。

  1. 指示を出す。例:「ログイン画面にバリデーションを追加し、gradleビルドが通るまで修正を繰り返すこと」。
  2. Gemma 4がプロンプトを解析し、ファイルを読む必要があると判断してfilesystem MCPの利用を要求する。
  3. クライアントが実際にファイルを読み、内容をモデルへ戻す。
  4. モデルが修正内容を出力し、クライアントが書き込む。
  5. クライアントが python run_test.pygradlew assembleDebug をターミナルで実行する。
  6. エラーが出ればログを読み取り、2に戻る。通れば完了。

クラウドAIでは当たり前に回るこのループが、ローカルLLMでどこまで完走するか。それが今回の検討の核心である。


ローカルLLMのコストをどう見るか

「月額いくら浮くか」で判断すると、たいてい見誤る。比較すべき項目を並べておく。

  • 初期投資:VRAM 16GB級で常用ラインに入り、24GB級で選択肢が広がる。ここが最大の固定費。
  • 電力:推論中は継続的に消費する。長時間のエージェントループを回すなら無視できない。
  • 時間コスト:ローカルLLMは生成が遅く、失敗によるやり直しも増える。人間の待ち時間は隠れコストになる。
  • 自律性の閾値:エージェントループはローカルモデルにとって最も厳しい負荷である。一定規模(20B台後半クラス+24GB前後のVRAM)を超えないと安定しにくい、という見方が一般的になってきている。

結論として現実解は併用になる。定型作業と機密性の高い処理をローカルLLMへ降ろし、判断と設計はクラウドAIに残す。この線引きを決めるための材料集めが、いまの段階の目的である。

動作検証の計画

公開前に通す検証項目を、順序つきで固定しておく。

  1. Ollama 0.22以降を導入し、ollama pull gemma4 が完了すること。
  2. ollama run gemma4 で日本語の応答品質と体感速度を確認すること。
  3. 500エラー発生で →  irm https://ollama.com/install.ps1 | iex
  4. 環境変数を正しく設定してOllamaを完全に再起動する → Get-Process | Where-Object {$_.ProcessName -like “ollama“} | Stop-Process -Force
    → これでもだめなら、GPU 起因かも 4GB VRAMなら ollama run llama3.2:3b  → これで起動した・
  5. VS Code+Clineで、API Providerを Ollama、Model IDを gemma4 として接続が通ること。← VRAMが多量にあれば
  6. filesystem MCPを1フォルダだけ許可し、読み取りが成立すること。
    → Windowsでは、
MCP設定ファイルの起動:ollama runのラムボンランナーから、MCP設定ファイルを直接起動します。
PSコマンドで > ollama run llama3.2:3b


VS Codeをインストールする
公式サイト:https://code.visualstudio.com/
VS Codeを開いて
Ctrl + Shift + X を押す
検索欄で Cline  入れて Installをクリックする

ollama pull qwen3-coder × 18GBもある 
ollama pull qwen3:4b ◎  ←  これもだめそう 8GBくらい必要そう
> ollama pull qwen2.5:1.5b

左のClineアイコンをクリックし開き 「Bring my own API Key」APIでcontinueを押し Providerを Ol←

JDKのアップデート: ollama runのラムボンランナーは、オリジナルのLlamaと互換性がないように設計されています。つまり、古いバージョンのJDKを使用することはできません。 recentなバージョンのJDK を使用してください。
llamapの置き換え: ollama runは、Java program のコンパイルとリンキングを扱うためのコマンド llamap を提供しますが、これも modernな Java version では使用できません。代わりに javac コマンドを使用する必要があります。
JDKの設定ファイルの検索: cp オプションは古いバージョンの JDK にあり、modern な JDK に使用できないため、 modernな JDK では使用できません。代わりに -class-pathオプションまたは実際の JDK の lib directory を指定する必要があります。

  1. コマンド実行を経由して「実行 → エラー読み取り → 自己修正」のループが完走すること。
  2. 同じ課題をクラウドAIにも投げ、所要時間と成功率を並べて比較すること。

関門は5番である。ここを通過できた時点で、本記事を実測値つきで更新する。

まとめ ― 2027年に向けた現在位置

ローカルLLMは「安く済ませる手段」ではなく、「どの作業を手元に置くか」を決めるための道具である。2026年7月時点で、推論エンジン(Gemma 4)とクライアント(Cline)とMCPサーバー(filesystem/shell)という3層の見取り図は描けた。一方で、Roo Codeの終了のように前提が半年で入れ替わる領域でもある。だからこそ構成を固定するより、検証手順を先に固めておくほうが実務では効く。ローカルLLMの検討は、ここから実機での確認フェーズに入る。

関連記事

参考リンク

2026年夏版 最新AIはこう使え ― MCPからClaude Coworkへ、実務を「任せる」ための環境が変わった ―

春版の「人・もの・かね」を踏まえ、半年で起きた最大の変化「MCPからCoworkへ」を解説。フォルダ接続へ変わった許可設定とサンドボックスを実体験から。

この半年でAI活用の景色を変えたのが、Anthropicの「Cowork」です。春に「AI活用は“ひと・もの・かね”で読み解ける」という話を書きましたが、その枠組みは変えずに、今回は“AIに実務を任せる土台”がどう変わったかを、夏版としてお届けします。

  • ひと → AI+スキル
  • もの → MCP+操作対象リソース
  • かね → セッション(利用制限)

この枠組みは今も変わっていません。前提として、まず春版をご覧ください。
2026年春版 最新AIはこう使え ―「人・もの・かね」から読み解くAI活用の新常識―

そのうえで、この半年で現場に一番効いてきた変化を、夏版として1つだけ掘り下げます。テーマは「MCPからCoworkへ」。AIに“手足”を与える方法そのものが、変わり始めました。

Coworkとは — Anthropicが提唱する「実務を任せる」仕組み

Claude Cowork(クロード・コワーク)は、Anthropicが提唱する新しいAIの使い方です。2026年1月に研究プレビューとして登場し、4月にmacOS/Windowsで一般提供、7月にはWeb・モバイルへと広がりました。短期間で対象がどんどん広がっています。

ひとことで言うと——CoworkはClaudeに“実務そのもの”を任せる場所です。

春版の言葉でいえば、これは「もの=AIの手足」を、より安全に付け替えられるようにした仕組みです。つまり、Claudeとの対話の中で許可設定を行う仕組みに強化された、ということです。設定ファイルを開いて書く代わりに、「このフォルダを使っていい?」に答えるだけ。(「より安全に」が具体的に何を指すかは、記事の後半であらためて説明します。)

利用者目線で、何が変わったのか — 設定ファイルから「フォルダ接続」へ

体感がいちばん大きいのは、環境構築まわりです。

これまで(MCP直結の時代)
AIにファイルを触らせるには、設定ファイル(claude_desktop_config.json)に filesystem サーバーを書き、ドライブを列挙する作業が必要でした。うまくいかなければ再起動し、バージョンを固定し、記述ミスを疑う。(この設定に何度もハマった記録は別記事に書きました → ステージング版正式公開版(mic.or.jp)

いま(Cowork)
設定ファイルを触りません。「このフォルダを接続していい?」に、あなたが1回OKを出すだけ。承認した瞬間から読み書きできます。再起動もバージョン固定も不要です。

しかも許可の粒度が細かい。フォルダ単位・セッション単位で、必要なぶんだけ。使い終われば、その権限は持ち越しません。

「設定する」から「その場で許可する」へ。環境構築の主役が、設定ファイルから“承認”に移りました。

夏版_MCP-Cowork仕組み図ダウンロード

CoworkはMCPを隠蔽化する仕組みなのか

使ってみての率直な感想です。Coworkは、MCPを隠蔽化する仕組みのように見えます。

より正確には、MCPをなくしたのではなく、その「設定」と「権限付与」を利用者から見えない場所に畳み込んだ、という感じです。

  • ファイル接続:ほぼ隠蔽。もう「MCP」という単語すら意識しません。
  • 外部サービス連携:隠すというより“包む”。MCPは裏で生きていて、コネクタの提案という形で見えにくく・使いやすくなっています。

そして——Coworkの裏側にはMCP相当の仕組みが、利用者に見えない形で確かに存在します。外部サービスは今もMCPコネクタそのもの、ファイルは接続したフォルダをサンドボックスにマウント。利用者はそれを直接見ません。要するにCoworkは、「MCPを知らなくてもAIに手足を付けられる」ための製品化レイヤーなのだと思います。

「より安全に」とは具体的に何か — 最小権限とサンドボックス

後回しにした「安全」の中身です。Coworkの安全は、だいたい次の4つで担保されています。

  • フォルダ単位:許可したフォルダしか触れない
  • セッション単位:許可は持ち越さない。使い終われば消える
  • サンドボックス:コード実行は隔離された環境(仮想環境)の中。ホストPCを直接いじらない
  • ネットワーク:既定では勝手に外に出ない(許可制)

春版の「もの=手足」に対して言えば、手足を出せる範囲を、あらかじめ囲ってあるということです。

ここに大事な連鎖があります。裏でMCP相当の“見えない仕組み”が動くからこそ、その隠蔽に安心感を持たせるために、動作環境を仮想環境(サンドボックス)に閉じ込める——という設計になっている。「見えないものが動く」怖さを、「触れる範囲を囲う」ことで打ち消しているわけです。

サンドボックス(仮想化)のコストという論点

ただ、囲うにはコストがかかります。

サンドボックスを仮想化やクラウドで用意すれば、セッションごとに計算資源のコストが発生します。ここは春版の「かね=配分すべき経営資源」の続きの話です。

一つの発想として——毎回クラウドで仮想環境を立てる代わりに、多少スペックの低いマシンでも“専用の物理サンドボックス機”を1台用意し、そこで動かせば、コストを抑えられるかもしれません。安全のための隔離は「別の箱で動かす」ことが本質なので、その箱が仮想か物理かは、目的次第で選べるはずです。

もちろんトレードオフはあります。クラウドの隔離は毎回まっさらで、維持管理が要らず、同時にいくつも立てられる弾力性がある。物理機はそのクリーンさと手軽さを手放す代わりに、コストを固定費に寄せられる。どちらが得かは使い方次第で、「安全のためのコストをどう持つか」は、これからのAI活用の設計課題になっていくと思います。

使い方の提案 — Cowork時代の許可設定の作法

  1. ファイルは「フォルダ接続」を主経路に。Coworkで作業するなら、旧設定ファイルに頼らず、都度フォルダを接続する運用へ切り替える。いちばん素直で、つまずきが少ない。
  2. 「どちらの層で動く操作か」を意識する。ファイルの読み書きはCowork接続、外部サービスはコネクタ(MCP)。繋がらないときは、まず「どの経路を叩いているか」を疑う。
  3. 最小権限を“不便”ではなく“作法”として使う。毎回の接続はひと手間ですが、これは「任せる相手に、必要なぶんだけ鍵を渡す」ことそのものです。
  4. 旧config方式の人こそ、一度見直す。設定が正しくても、Coworkでは反映されないことがある。両面を知っておくだけで、無駄なトラブルを避けられます。

これは新しい“弊害”でもあります。Coworkでは、こちらが「このフォルダをCoworkで接続して」と指示しないと、MCPの設定自体は正しくできていても、ファイルにアクセスできないことがあります。従来なら“設定さえ合っていれば動く”はずが、Coworkでは“その場の接続指示”という一手間が新たに必要になった——便利さと引き換えの、小さな引っかかりです。

【体験メモ】設定ファイルにはドライブを正しく書いてある。なのにCoworkからは繋がらない。「フォルダを接続」に切り替えたら一発で解決した。原因は、Coworkの標準ファイル操作が“旧設定ファイル”ではなく“フォルダ接続”のほうを見て動くから。

むすび — AIは進化し続ける。人間にも“使いこなす力”が問われる

春版の結論は「AIは設計してから任せる」でした。夏版はその一歩手前をこう言い直します。任せるには、まず“安全に繋ぐ”ところから。

Coworkの「最小権限・セッション単位で、その都度許可する」という作法は、「部下にどこまで任せるか」というあの昔ながらの問いと地続きです。全部の鍵を最初から渡さず、仕事に必要なぶんだけ、その都度渡す。

そして——ここが今回いちばん伝えたいことです。このようにClaudeをはじめとするAIは、これからもどんどん新しい形へ進化していきます。半年で「MCPからCoworkへ」動いたように、また次の形が来る。

だとすれば、問われているのはAIの性能だけではありません。新しいものを理解し、使いこなす力——それが、私たち人間の側にも求められています。AIが進化するスピードに、学び続ける私たちが並走できるか。そこが、これからのAI活用の本当の分かれ目なのだと思います。

関連記事

「Unable to find a medium」でLive USBが起動しない原因と対処法|casperエラー解説

Unable to find a medium containing a live file system というメッセージが表示されて、Linux の Live USB が起動しないまま止まってしまった経験はないでしょうか。GRUB のメニューを選んだ直後にこの画面で止まると、多くの人はまず「USB メモリが壊れたのか」と考えます。

Unable to find a medium containing a live file system
Attempt interactive netboot from a URL?
yes no (default yes):

しかし実際には、USB そのものの故障だけが原因とは限りません。むしろ、一度 USB メモリを抜き差ししただけであっさり正常起動する、というケースも少なくないのです。この Unable to find a medium というメッセージが伝えているのは「結果」であって「原因」ではありません。両者を分けて理解しておくと、同じ症状に出会ったときに落ち着いて対処できるようになります。本記事では、このメッセージが何を意味するのかをまず整理し、その上で考えられる原因と、現実的な対処の順序を解説します。なお本記事は特定の製品に限った話ではなく、Ubuntu 系の Live USB 全般に当てはまる内容として書いています。

Unable to find a medium の意味:casperがLiveファイルシステムを探す仕組み

「Unable to find a medium containing a live file system」とは、起動処理を担うプログラム(casper)が、Live ファイルシステムを格納したメディアを見つけられなかった、という意味です。

ここでいう medium(メディア)は USB メモリだけを指すわけではありません。DVD ドライブ、ISO イメージをマウントしたデバイス、その他 Live システムを格納しうる媒体をまとめて指しています。つまりこのメッセージは「Live ファイルシステムが入っているはずの媒体を見つけられなかった」という結果だけを述べているのであって、「USB メモリが故障した」と断定しているわけではないのです。

では、その「Live ファイルシステム」とは何でしょうか。Ubuntu 系の Live システムでは、起動後に実際に動く本体は filesystem.squashfs という圧縮されたファイルです。電源投入から起動完了までの流れは、おおまかに BIOS / UEFI から GRUB へ、GRUB から Linux カーネルへ、カーネルから initramfs(初期 RAM ファイルシステム)へと進み、その中で casper が filesystem.squashfs を探し出してマウントする、という順序になっています。この最後の「探し出す」段階でつまずくと、Unable to find a medium のメッセージが表示されます。

逆にいえば、このメッセージが出た時点で分かるのは「最後のマウント段階まで到達したが、目的のファイルにたどり着けなかった」ということだけです。なぜたどり着けなかったのかは、ここからの「原因」の話になります。

Unable to find a medium が起こる4つの原因(USB接触不良・ISO破損・起動パラメータ・I/O途中断)

同じ Unable to find a medium というメッセージでも、その背後にある原因は複数あります。代表的なものを四つに整理します。

第一に、起動メディアそのものが正しく認識されていないケースです。USB メモリが奥まで挿さりきっていない、USB ポート側の接触が甘い、あるいはタイミングの問題でデバイスの認識に失敗した、といった状況がこれにあたります。この場合、システムから見るとメディアに対応するデバイス自体が存在しないため、casper は探す対象を見つけられません。実際、Ubuntu のバグ報告でも、メディアを一度抜いて挿し直したら起動が続行した、という報告が複数寄せられています。冒頭で触れた「抜き差ししたら直った」という現象は、まさにこのパターンにあたります。

第二に、Live ファイルシステムそのものが欠けている、あるいは壊れているケースです。ISO の書き込みに失敗していた、転送が途中で止まっていた、ファイルが破損していた、といった場合です。メディアは認識されていても、肝心の filesystem.squashfs が読めなければ先には進めません。USB メモリを別のポートに挿し替えても改善しないときは、このパターンを疑うことになります。

第三に、起動パラメータの指定がずれているケースです。カーネルに渡すパラメータが正しくないと、ファイル自体は存在していても casper が探す場所が食い違い、見つけられないことがあります。市販の ISO をそのまま書き込んで使っている場合にはあまり起こりませんが、自分で起動設定を編集した環境では起こり得ます。

第四に、起動の途中までは認識できていたのに、処理の最中に読めなくなるケースです。I/O エラーや USB の再接続(リセット)、電源まわりの不安定さなどによって、途中から通信が途絶えてしまう状況です。これも結果として Unable to find a medium の状態に行き着きます。

このように、接触不良という比較的軽いものから、ISO の破損という作り直しが必要なものまで、原因の幅はかなり広いのが実情です。

Unable to find a medium の対処法:USB抜き差し→ポート変更→ISO再作成の順に試す

原因が幅広いとはいえ、対処の手順は「軽くて起こりやすいもの」から順に試していくのが効率的です。

まず最初に試すべきは、USB メモリの抜き差しです。ポートから一度完全に抜き、数秒置いてからしっかりと挿し直し、もう一度起動を試みます。今回のきっかけになった事例でも、この操作だけで正常に起動しました。USB の接触不良は、完全に死んでいるわけではなく「ある程度は機能するが認識が安定しない」という中途半端な状態で起こることがあり、抜き差しによって接触が回復すると、それまでの症状が嘘のように直ることがあります。このメッセージが出たときは、まず挿し直しを試す価値が十分にあります。

それでも改善しない場合は、別の USB ポートを試します。Ubuntu のバグ報告には、同じ USB メモリでも片側のポートでは起動エラーになり、反対側のポートでは正常に起動した、という事例があります。USB 3.0 と 2.0 が混在しているマシンや、コントローラの異なるポートでは、相性によって挙動が変わることがあるためです。デスクトップなら背面のポート、ノートなら別の口、できれば USB ハブを介さず本体へ直結して試してみてください。

ポートを変えても直らないときは、ISO ファイルの作り直しを検討します。元の ISO を改めて入手し直し、書き込みツールで USB メモリへ書き込み直します。書き込み後に内容を照合する検証機能があれば、あわせて確認しておくと安心です。ここまで来ると、メディア側ではなく書き込まれたデータ側に問題があった可能性が高くなります。

それでも解決しない場合は、BIOS / UEFI の起動順序や、起動メニューに表示されるデバイスの並びなど、より基本的な設定を見直していくことになります。なお Live USB の起動過程で表示されるログは保存が残らないことが多く、後から詳しく追いかけるのは難しいため、現象が出たときの状況をメモしておくと、原因の切り分けに役立ちます。

まとめ:Unable to find a medium が出てLive USBが起動しないときのチェック順序

「Unable to find a medium containing a live file system」は、casper が Live ファイルシステムの入った媒体を利用できなかった、という結果を示すメッセージです。それ自体は USB メモリの故障を意味しません。原因は接触不良から ISO の破損までさまざまなので、抜き差し、ポート変更、ISO の作り直し、設定の見直し、という順に切り分けていくのが現実的です。

特に、抜き差しだけで直るケースは実際に存在します。同じメッセージで止まったら、まずは落ち着いて USB を挿し直すところから始めてみてください。

参考情報

このエラーに関する具体的な事例や議論は、Ubuntu の公式バグトラッカーにまとまっています。


hoscm トップページへ