Gemma4 QATのTool Useが不安定だったので、CLAUDE.mdで躾けてみた

Gemma 4のTool Useが不安定だったので、CLAUDE.mdで躾けてみた TECH

症状

Gemma 4 12B QATClaude Code から利用していたところ、

  • Write失敗
  • file_path missing
  • ツール呼び出し失敗
  • 長時間の思考ループ

が頻発した。

Writeが失敗したあと、touch → cat の手順を強要したら書き込みに成功するなど、謎な挙動。

コード生成能力自体は高いのに、ファイル操作周りで転ぶ。

Redditなどでもしばしば指摘されている現象だ。

Claude Codeごっこは成立するのか ─ LM Studio × Gemma4で試したローカルAIの現実
Claude Codeはローカルで再現できるのか?LM StudioとGemma4を使い、WSL環境から接続して実験。Markdownエディタは成功、ブロック崩しは未完成。ローカルAIの限界と可能性を検証する。

原因として疑ったこと

  • WSL
  • Windowsマウント
  • Claude Codeの権限設定
  • Gemma 4のTool Use能力

いろいろ疑ったが、最終的には運用ルール不足が大きかった。

CLAUDE.mdを追加

プロジェクトルートにCLAUDE.mdを配置。

内容はシンプル。

  • 絶対パスを使わない
  • 相対パスを使う
  • Write失敗時は再試行
  • 30秒以上悩まない
  • HTML生成後はセルフレビュー

CLAUDE.mdの内容はこんな感じにしてみた。

# Claude Code Notes for Gemma 4

IMPORTANT:

When using Write:

GOOD:
Write("index.html")

GOOD:
Write("kanban-app/index.html")

BAD:
Write("/mnt/d/claude_code/index.html")

Always use relative paths.

Never use absolute Linux paths.

If Write fails:
- check directory exists
- retry with relative path
- do not spend more than 30 seconds reasoning

After creating an HTML app, always do a quick self-review:
- Check for missing DOM IDs.
- Check for syntax errors.
- Check that event listeners match existing elements.
- Check that localStorage JSON parse/stringify is valid.
- If possible, keep the first version minimal and working.

結果

追加後は、

  • TODOアプリ
  • カンバンボード
  • アドレス帳

などの単一HTMLアプリを安定して、連続生成できるようになった。

生成成功率というより、ワークフローそのものが成立した感覚に近い。

Claude Code + Gemma4 12B QAT で生成したアドレス帳アプリ
Claude Code + Gemma4 12B QAT で生成したアドレス帳アプリ

もうひとつ忘れがちなこと

WSLを再起動すると環境変数が消える。

私は何度もこれでハマった。

.bashrc などに追記しておくと楽。

export ANTHROPIC_BASE_URL=…
export ANTHROPIC_AUTH_TOKEN=…
export ANTHROPIC_API_KEY=””

まとめ

Gemma 4のTool Useはまだ荒削りだ。
コーディング能力は高いのに、損をしている。

しかし運用ルールを与えることでかなり改善する。

高性能なモデルを探す前に、AIが迷わない手順書を整備する方が効果が大きいかもしれない。