広告

ローカルで Coding Agent を作ってみよう

Coding Agent

ネット上でよく見かける一言で AI にゲームを作らせるのような、実際ファイル作成して、コードを書いてもらう機能があります。Coding Agent を導入することで実現できます。
今回はこれを入れてみたいと思います。

Coding Agent とは

Coding Agent(コーディングエージェント)とは、LLM(大規模言語モデル)を利用して、単にコードを生成するだけではなく、実際の開発作業を自律的に進めるAIエージェントです。

通常のAIチャットでは、

ユーザー:「Pythonでこの機能を書いて」
AI:「このようなコードになります。」

というように、基本的にはコードを回答として生成します。

一方、Coding Agent は以下のような作業を行うことができます。

  1. ユーザーの要求を理解する
  2. プロジェクト内のファイルを確認する
  3. ソースコードを読む
  4. 必要なコードを作成・修正する
  5. コマンドを実行する
  6. エラーやログを確認する
  7. 問題があれば再修正する
  8. テストを実行する

つまり、単なる「コード生成AI」ではなく、AIに実際の開発作業を任せるための仕組みです。

Coding Agent と OpenWebUI について

Coding agent を導入すると以下の構成になります。

             ┌→ Open WebUI ──────┐
             │   チャット           │
ユーザー ────┤                      ├→ llama.cpp/ollama  → Qwen → GPU
             │                        │
             └→ Coding Agent ─────┘
                 AI コーディング対話
                 + ファイル読み込み
                 + コード修正
                 + コマンド実行
                 + テスト

Coding Agent も対話は可能です。そのため、開発がメインの使い方では、Coding Agent が Open WebUI の代わりになることも可能です。
ただ、指示をそのまま実行するので、チャット系よりは慎重に扱う必要があります。

Coding Agent ができること

代表的な機能には以下があります。

  • ソースコードの解析
  • プロジェクト構造の確認
  • ファイルの作成
  • ファイルの編集
  • バグ修正
  • コードのリファクタリング
  • Terminal / Shell コマンドの実行
  • テストの実行
  • エラーログの解析
  • 複数ファイルをまたいだ修正

Coding Agent の選択

Agent はいろいろありますが、OpenCode と Continue を試して、結局 Ollama との相性がよくなかったので、いろいろ問題が起きていました。
なので、せっかくなので、Ollama をやめて、llama.cpp の方を入れて試してみようと思います。※ Ollama をアンインストールする必要はないです。

  • 現在 open webui は Docker 環境で作っているので、llama.cpp 接続させるのに、llama.cpp の公開範囲が広くなってしまいます。
    • Openwebui + ollama の構成はそのまま残します。

llama.cpp インストール

  1. GitHub公式の llama.cpp Releases を開きます。
  2. Windows向けの CUDA版 を選びます。現在のReleaseでは、たとえば以下の系統があります。
    • Windows x64 (CUDA 13):NVIDIA 比較的に新しい GPU が使う ※ nvidia-smi コマンドで確認可能
      • 自分の GPU は NVidia 4060Ti 16GB を使っています。
    • 下記両方ともダウンロード:
      • Windows x64 (CUDA 13)
      • CUDA 13.4 DLLs
  3. ダウンロードしたファイルを解凍して、c:\AI フォルダを作って、解凍したフォルダを配置します。
    • AI フォルダは任意なので、他のパスでもOK
    • ダウンロードした DLL ファイルは llama.cpp のフォルダに配置
  4. llama.cpp のフォルダー内に、models フォルダを作成します・
    • これはモデルを配置するためのフォルダ
  5. Coding Agent 用のモデルをダウンロードします。
  6. ダウンロードしたモデルを models フォルダに配置
  7. Powershell を起動して、llama.cpp のフォルダに移動して、以下のコマンドを実行
# フォルダ移動
cd C:\AI\llama-b11199-bin-win-cuda-13.4-x64

# 説明を確認する
.\llama-server.exe --help
  1. llama.cpp フォルダに start.bat ファイルを作成し、下記の内容を書き込んで、保存します。
    • -m:モデルファイルを指定
    • -c 65536:「AIの作業用メモ帳に、最大どれくらいの情報を保持できるか」を決める設定
    • -ctk/-ctv q8_0 :「そのメモ帳の内容を、どの程度の精度で保存するか」を決める設定
      • (KV Cache)短期記憶域
    • --port 8085:公開ポートを 8085 にする
    • --host 127.0.0.1:ローカルホストで接続
@echo off
title Qwen3.8-27B GSQ+RCO IQ2_S-MTP - llama.cpp

cd /d "%~dp0"

echo.
echo ========================================
echo   Qwen3.8-27B GSQ+RCO IQ2_S-MTP
echo   llama.cpp Local AI Server
echo ========================================
echo.

llama-server.exe ^
  -m "models\Qwen3.8-27B-GSQ-RCO-IQ2_S-mtp.gguf" ^
  --mmproj "models\mmproj-Qwen3.8-27B-BF16.gguf" ^
  --host 127.0.0.1 ^
  --port 8085 ^
  -c 65536 ^
  -ngl 99 ^
  -fa auto ^
  -ctk q8_0 ^
  -ctv q8_0 ^
  --jinja ^
  --parallel 1 ^
  --alias Qwen3.8-27B-GSQ-RCO-IQ2_S-MTP ^
  --temp 1.0 ^
  --top-p 0.95 ^
  --top-k 20 ^
  --min-p 0 ^
  --repeat-penalty 1.0 ^
  --spec-type draft-mtp ^
  --spec-draft-n-max 3

pause
  1. bat ファイルをダブルクリックして、llama.cpp を実行する
    • ターミナルを閉じると llama.cpp も終了しますので、閉じないでください。
    • 下記の画面が出たら、最後に表示された URL でアクセスが可能になります。
  • 上記の設定のままで、以下の接続方法になります

OpenCode をインストールと設定

  1. 公式サイトから、インストーラをダウンロードして、実行します。(特に確認なしでインストール完了)
  2. インストール後、下記の画面が表示されます。
  3. 左上の三マークをクリックし、「ファイル」→「設定」で、設定画面に移動します。
  4. 「プロバイダー」タブの一番下に移動し、「さらにプロバイダーを表示」をクリックします。
  5. 「OpenAI互換のカスタムプロバイダー」を選択します。
  6. ベースURLは http://127.0.0.1:8085/v1 に設定します。
    • プロバイダーID、表示名は任意ですが、llamacpp とかで OK
    • API キーについて、ローカルモデルなので、空欄でもOK
    • モデルIDやモデル名はQwen3.8-27B-GSQ-RCO-IQ2_S-mtpでいい
  7. 一番下に移動して、「送信」をクリックします。

※ 現在 カスタム登録は issue があり、GUI でできないらしいです。Config ファイルに直接登録します。

  • やり方:
    • ワークスペースのフォルダにopencode.jsonファイルを作成します
    • 下記内容を入れて保存します。
    • OpenCode の limit + compaction は「context(メモ帳)がいっぱいになる前に、いつ古い内容を整理・圧縮するか」を決める設定
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "llamacpp": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "llama.cpp Local",
      "options": {
        "baseURL": "http://127.0.0.1:8085/v1"
      },
      "models": {
        "Qwen3.8-27B-GSQ-RCO-IQ2_S-MTP": {
          "name": "Qwen3.8 27B IQ2_S MTP"
        }
      }
    }
  }
}
  • OpenCode を再起動して、モデル管理を開きます
  • Qwen3.8-27B-GSQ-RCO-IQ2_S-MTP を有効にします。
  • すると、モデルで、Qwen3.8-27B-GSQ-RCO-IQ2_S-MTP を選択できるようになります。

テスト

以下の指示でテストしてもらって、結果を確認します。※ そこそこ時間がかかります。

このWorkspaceと現在のOpenCode設定を調査してください。

目的:
以下を実行してください。

1. 現在のWorkspace内の設定ファイルを確認する
2. OpenCodeの設定内容を確認する
3. 使用中モデルとContext設定を整理する
4. llama.cpp接続構成を整理する
5. 長時間Agent処理で問題になりそうな点を分析する
6. 必要なら関連ファイルを読む
7. 必要ならTerminalで確認コマンドを実行する
8. 推測と確認済み事実を分ける
9. 最後に、
   - 現在の構成
   - 確認できた事実
   - 潜在的な問題
   - 改善案
   を整理して報告する

途中で結論を急がず、必要な確認をしてから最後まで完了してください。

テスト結果について

上記テストの結果の助言により、自分の設定を見直して、下記のようになりました。
※ 設定時は、特に自分で設定する必要はなく、Agent に変更してって命令すれば、更新してくれます。

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "llamacpp": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "llama.cpp Local",
      "options": {
        "baseURL": "http://127.0.0.1:8085/v1"
      },
      "models": {
        "Qwen3.8-27B-GSQ-RCO-IQ2_S-MTP": {
          "name": "Qwen3.8 27B IQ2_S MTP",
          "limit": {
            "context": 65536,
            "output": 16000
          }
        }
      }
    }
  },
  "compaction": {
    "auto": true,
    "keep": { "tokens": 15000 },
    "buffer": 20000
  }
}

セキュリティ設定

ローカルモデルなので、外からの攻撃は基本ないです。
ただ、shell 実行する権限があるので、実質パソコンに好き放題できることも事実です。
安全面では、まず下記のように厳しく設定するのもありです。

  • 設定方針例:
    ファイルを読む          → 自動許可
    ファイルを検索する      → 自動許可
    コードを検索する        → 自動許可
    コードを作成・修正する  → 自動許可
    Webを調査する           → 自動許可
    Gitの状態を確認する     → 自動許可
    Workspace外へアクセス   → 確認
    未登録コマンドを実行    → 確認
    Git commit              → 確認
    Git push                → 確認
    Git reset               → 確認
    Git clean               → 確認
    ファイルを削除          → 確認
    ディレクトリを削除      → 確認
    .env系機密ファイル      → 禁止

    この設定も設定ファイルで手動編集できますが、Agent にやってもらいましょう

起動方法整理

  1. bat ファイルをダブルクリックして llama.cpp サーバー起動
  2. opencode を立ち上げて利用する

Tips1:アプリ開発時の追加指示

共通規則を用意した。アプリケーション開発時にここに置いておきます。

MyNewProject/
├── AGENTS.md          ← 通用規則
├── README.md
├── src/
└── ...

また、開発開始時以下の指示を合わせて指示する。これで AI が無理やりなんでも自分でやるんじゃなくて、AI が難しいが人間で簡単に確認できるものを依頼してくることで、効率を上げることができます。

Follow AGENTS.md throughout this task.

Before implementation:
1. Inspect the project.
2. Summarize the relevant existing architecture.
3. Give me a short implementation plan.
4. Identify anything that would be faster for me to verify manually.

During development:
- Keep scope limited to my requirements.
- Build/test incrementally.
- Ask me for manual verification when that is more efficient than building GUI automation.
- Do not spend excessive time perfecting auxiliary test infrastructure.

At completion:
- Produce the final build/publish if applicable.
- Separate implemented / automatically verified / user verification required.

コメント

タイトルとURLをコピーしました