「Claude Codeの設定 - サブエージェント」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

編集の要約なし
タグ: 差し戻し済み
1行目: 1行目:
== 概要 ==
== 概要 ==
Claude Codeのサブエージェント機能は、特定のタスクに特化したAIアシスタントを作成し、親エージェントと子エージェントに分けて推論させることにより、<br>
VS CodeのCline拡張機能とZ.ai GLM-4.7を直接契約して連携させる方法について記載する。<br>
効率的な開発ワークフローを構築する機能である。<br>
<br>
<br>
サブエージェントは以下に示す特徴を持つ。<br>
Z.ai (智譜AI) はGLM-4.7をコーディングツール向けにサブスクリプション形式で提供しており、月額$3から利用できる。<br>
* 独立したコンテキストウィンドウ (各エージェントが200kトークン) を持つ
* カスタムシステムプロンプトによる専門化
* 特定のツールへのアクセス制限
* 独立した権限管理
* 異なるモデルの使用 (Opus、Sonnet、Haiku等)
<br>
<br>
サブエージェントを使用することにより、以下に示すメリットが得られる。<br>
GLM Coding Planの主な特徴を以下に示す。<br>
* コンテキストの保持
* 5時間ごとにクォータがリセットされる
*: 探索と実装を分離し、メインの会話を汚さない
* Claude Code、Cline、OpenCode、Roo Code、Kilo Code等で利用可能
* 制約の強制
* Vision Understanding、Web Search MCP、Web Reader MCPが利用可能
*: サブエージェントが使用できるツールを制限することで安全性を向上
* GLM-4.7は200Kトークンのコンテキストウィンドウをサポート
* 設定の再利用
* SWE-bench 73.8%、LiveCodeBench V6でClaude 4.5 Sonnetを上回る性能
*: ユーザレベルのサブエージェントをプロジェクト間で共有
* 行動の特殊化
*: 特定ドメインに焦点を当てたシステムプロンプト
* コストの制御
*: 高速で安価なモデル (Haiku) へのタスクルーティング
<br>
<br>
[[ファイル:Claude Code Settings Subagents Structure 1.png|フレームなし|中央|653x500px]]
<center>
<br><br>
{| class="wikitable"
 
|+ GLM Coding Planの料金体系
== サブエージェントの基本構造 ==
! プラン !! 月額料金 !! プロンプト数/5時間 !! 特徴
サブエージェントは、YAMLフロントマターを持つMarkdownファイルとして定義される。<br>
|-
| GLM Coding Lite || $3 (初月半額) || 120プロンプト || 一般的な開発用途向け
|-
| GLM Coding Pro || $15 (初月半額) || 600プロンプト || 高頻度利用向け
|}
</center>
<br>
<br>
==== サブエージェント定義の基本要素 ====
Clineの機能体系はClaude Codeとは異なる用語を使用する。<br>
* name
*: サブエージェントの識別子
*: これは、kebab-caseに自動変換される。
* description
*: いつこのサブエージェントを使用すべきかを記述する。
*: これは、親エージェントがこれを読んで判断する。
* tools
*: サブエージェントが使用できるツールのリスト
*: <code>Read</code>
*: <code>Write</code>
*: <code>Edit</code>
*: <code>Bash</code>
*: <code>Grep</code>
*: <code>Glob</code>
*: その他
* model
*: 使用するモデル
*: <code>inherit</code>
*: <code>claude-sonnet-4-5-20250929</code>
*: <code>claude-haiku-4-5-20251001</code>
*: その他
* システムプロンプト
*: サブエージェントの役割、手順、チェックリスト等を記述
<br>
<br>
==== サブエージェント定義ファイルの配置場所 ====
<center>
* プロジェクトレベル
{| class="wikitable"
*: <code>.claude/agents/</code> (チーム全体で共有)
|+ Claude CodeとClineの機能対応表
* ユーザレベル
! Claude Code !! Cline !! 説明
*: <code>~/.claude/agents/</code> (全プロジェクトで使用可能)
|-
| サブエージェント || MCP Server / MCP Tools || 特定タスクに特化したツール
|-
| スキル || Custom Instructions || グローバルな指示設定
|-
| ルール || .clinerules || プロジェクト固有の規約
|}
</center>
<br><br>
<br><br>


== サブエージェントの作成手順 ==
== Z.ai GLM Coding Planの契約手順 ==
==== ステップ 1 : Claude Codeのバージョン確認 ====
==== ステップ 1 : Z.aiアカウントの作成 ====
サブエージェント機能を使用するには、Claude Code 1.0.60以降が必要である。<br>
Z.aiのサブスクリプションページにアクセスしてアカウントを作成する。<br>
claude --version
* https://z.ai/subscribe
<br>
<br>
最新バージョンでない場合は更新する。<br>
紹介コード付きのURLを使用すると、追加割引 (10%から20%OFF) が適用される場合がある。<br>
claude update
<br>
<br>
==== ステップ 2 : サブエージェント作成コマンドの実行 ====
アカウント作成手順を以下に示す。<br>
Claude Codeセッションを開始して、サブエージェント作成コマンドを実行する。<br>
# [Sign Up] または [Sign In] を選択する。
/agents
# メールアドレスまたはGoogleアカウント等でアカウントを作成する。
# [GLM Coding Lite] ($3/月) または [GLM Coding Pro] ($15/月) を選択する。
# クレジットカード情報を入力して契約を完了する。
<br>
<br>
このコマンドを実行すると、以下に示す選択肢が表示される。<br>
==== ステップ 2 : APIキーの取得 ====
* Create new agent
Z.aiダッシュボードにアクセスしてAPIキーを取得する。<br>
* Edit existing agent
* https://z.ai/model-api
* Delete agent
* List all agents
<br>
<br>
[Create new agent]を選択し、スコープを選択する。<br>
APIキー取得手順を以下に示す。<br>
* Project-level
# ダッシュボードにログインする。
*: プロジェクト固有のサブエージェント
# メニューから [API Keys] セクションを開く。
* User-level
# [+ Create a new API key] を選択する。
*: 全プロジェクトで使用可能なサブエージェント
# 識別用の名前 (例: Cline用) を入力する。
<br>
# 生成されたAPIキーをコピーして安全な場所に保存する。
初めての場合は、プロジェクトレベルを選択することを推奨する。<br>
#: APIキーは1度しか表示されないため、必ず保存すること。
<br>
<br><br>
==== ステップ 3 : サブエージェントの生成方法を選択 ====
 
サブエージェントの生成方法を選択する。<br>
== ClineでZ.aiを設定する手順 ==
* Generate with Claude
==== ステップ 1 : Cline拡張機能のインストール ====
*: Claudeが自動生成
VS CodeにCline拡張機能をインストールする。<br>
* Create manually
*: 手動作成
<br>
[Generate with Claude]を選択すると、Claudeがプロジェクトのコンテキストを使用して最適なサブエージェントを生成する。<br>
<br>
<br>
==== ステップ 4 : サブエージェントの役割を説明 ====
# VS Codeを起動して、左サイドバーの拡張機能アイコンを選択する。
Claudeに対して、作成するサブエージェントの役割と責任を説明する。<br>
# 検索バーに <u>Cline</u> と入力する。
# [Cline] を見つけて [Install] を選択する。
<br>
<br>
# 説明例 :
==== ステップ 2 : Z.ai API Providerの設定 ====
ClineにZ.aiのAPIキーを設定する。<br>
コードの品質、セキュリティ、保守性をチェックする専門のコードレビューアーを作成したい。
このエージェントは、コード変更後に自動的に呼び出され、重要な問題、警告、改善提案を優先順位付けして報告する必要がある。
</pre>
<br>
<br>
==== ステップ 5 : 生成されたサブエージェントの確認と編集 ====
# VS Code左サイドバーに追加されたClineアイコンを選択する。
Claudeがサブエージェント定義を生成した後、生成されたMarkdownファイルを開いて確認する。<br>
# 右上の歯車アイコン (Settings) を選択する。
# [API Provider] ドロップダウンメニューから [Z AI] を選択する。
# [Entrypoint] ドロップダウンで以下のいずれかを選択する。
#* International Standard (api.z.ai)
#*: 海外 (日本含む) からのアクセス用
#* China Standard (open.bigmodel.cn)
#*: 中国国内からのアクセス用
# [Z AI API Key] フィールドにAPIキーを貼り付ける。
# [Model] ドロップダウンから [glm-4.7] を選択する。
<br>
<br>
# 生成されたファイルの例 :
==== ステップ 3 : Coding Plan用エンドポイントに関する注意点 ====
ClineのZ.ai設定画面にGLM Coding Plan専用のエンドポイント (<u>/api/coding/paas/v4</u>) が選択肢として表示されない場合がある。<br>
.claude/agents/code-reviewer.md
対処法を以下に示す。<br>
<br>
<br>
ファイルの内容を確認し、必要に応じて編集する。<br>
===== 方法A : 標準APIエンドポイントをそのまま使用 =====
Coding Planに登録したAPIキーを使用すれば、自動的にサブスクリプションのクォータが適用される場合がある。<br>
まずはこの方法で試すことを推奨する。<br>
<br>
<br>
==== ステップ 6 : サブエージェントのテスト ====
===== 方法B : OpenAI Compatible設定を使用 =====
サブエージェントが正しく動作するかテストする。<br>
Coding Planのエンドポイントを明示的に指定する場合は、以下に示す設定を行う。<br>
<br>
<br>
  # 自動呼び出しのテスト :
  API Provider: OpenAI Compatible
   
  Base URL: https://api.z.ai/api/coding/paas/v4
  このコードをレビューしてください: @src/auth.js
  API Key: [Z.ai APIキー]
Model ID: glm-4.7
<br>
<br>
# 明示的な呼び出しのテスト :
===== 方法C : Clineの最新版を確認 =====
Clineは頻繁に更新されている。<br>
code-reviewerエージェントを使用して、認証モジュールをチェックしてください
拡張機能を最新版に更新することで、Coding Plan用のエンドポイントがサポートされている可能性がある。<br>
<br><br>
<br><br>


== サブエージェントの定義例 ==
== ルール (.clinerules) の作成手順 ==
==== コードレビュー専門エージェント ====
ルールはプロジェクト固有の指示をClineに与えるもので、コーディング規約やプロジェクト構造の強制に使用する。<br>
コードの品質とセキュリティをチェックするサブエージェントの定義例を以下に示す。<br>
<br>
<br>
* ファイル名の例
==== 単一ファイル形式での作成 ====
*: .claude/agents/code-reviewer.md
プロジェクトのルートディレクトリに <u>.clinerules</u> ファイルを作成する。<br>
vi .clinerules
<br>
例えば、組み込み・デスクトップアプリ開発向けの.clinerulesファイルの記述例を以下に示す。<br>
<br>
<br>
  <syntaxhighlight lang="md">
  <syntaxhighlight lang="md">
  ---
  # 言語とコミュニケーション
  name: code-reviewer
  - すべての応答とコメントは日本語で記述すること
  description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.
  - コードのコメントは日本語でわかりやすく書くこと
tools: Read, Grep, Glob, Bash
  - 技術用語は必要に応じて英語を併記すること
model: inherit
  ---
あなたはコード品質とセキュリティの高い基準を保証するシニアコードレビューアーです。
   
   
  呼び出されたとき:
  # コーディング規約 (C++)
  1. git diffを実行して最近の変更を確認する
- C++17以降の規格に準拠すること
  2. 変更されたファイルに焦点を当てる
  - スマートポインタ (std::unique_ptr, std::shared_ptr) を優先的に使用
  3. 即座にレビューを開始する
  - 生ポインタは所有権を持たない観察用途のみで使用
  - 例外処理よりもエラーコード返却を優先 (組み込み向け)
   
   
  レビューチェックリスト:
  # 命名規則
  - コードが明確で読みやすいか
  - ローカル変数: camelCase (例: localVariable)
  - 関数と変数が適切に命名されているか
  - メンバ変数: m_付きcamelCase (例: m_memberVariable)
  - 重複したコードがないか
  - 定数・マクロ: ALL_CAPS (例: MAX_BUFFER_SIZE)
  - 適切なエラーハンドリングがあるか
  - クラス名: PascalCase (例: DataProcessor)
  - シークレットやAPIキーが露出していないか
  - 名前空間: lowercase (例: myproject::utils)
- 入力検証が実装されているか
- 適切なテストカバレッジがあるか
- パフォーマンスの考慮がされているか
   
   
  フィードバックを優先順位で整理して提供:
  # Qt開発固有ルール
  - 重要な問題 (必ず修正すべき)
  - Qt6を標準として使用すること
  - 警告 (修正すべき)
  - シグナル・スロット接続は新しい構文を使用:
- 提案 (改善を検討)
  connect(sender, &Sender::signal, receiver, &Receiver::slot);
</syntaxhighlight>
  - QObjectの親子関係を活用し、メモリ管理を簡素化すること
<br>
==== デバッグ専門エージェント ====
エラーとバグの診断と修正を行うサブエージェントの定義例を以下に示す。<br>
<br>
* ファイル名の例
*: .claude/agents/debugger.md
<br>
<syntaxhighlight lang="md">
---
name: debugger
description: Debugging specialist for errors, test failures, and unexpected behavior. Use proactively when encountering any issues.
tools: Read, Edit, Bash, Grep, Glob
model: claude-haiku-4-5-20251001
  ---
   
   
  あなたは根本原因分析を専門とするエキスパートデバッガーです。
  # 組み込み開発固有ルール
- MSP430/MSP432向けコードではヒープ使用を最小限に
- 割り込みハンドラは短く保つこと
- volatile修飾子を適切に使用すること
   
   
  呼び出されたとき:
  # ドキュメント
  1. エラーメッセージとスタックトレースをキャプチャ
  - 関数にはDoxygenスタイルのコメントを付けること
  2. 再現手順を特定
  - READMEやドキュメントは私が指示するまで編集しないこと
3. 障害箇所を分離
4. 最小限の修正を実装
5. 解決策が機能することを検証
   
   
  デバッグプロセス:
  # テスト
  - エラーメッセージとログを分析
  - コード生成後は単体テストコードも生成すること
  - 最近のコード変更を確認
  - テストフレームワークはGoogle Testを使用すること
- 仮説を形成しテスト
- 戦略的にデバッグログを追加
- 変数の状態を検査
   
   
  各問題に対して以下を提供:
  # ファイル操作
  - 根本原因の説明
  - 編集するファイルは提案のみ行い、確認を求めること
  - 診断を裏付ける証拠
  - ランダムにファイルを開かず、編集対象を明示すること
- 具体的なコード修正
- テストアプローチ
- 予防に関する推奨事項
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== アーキテクチャレビュー専門エージェント ====
==== フォルダ形式での管理 ====
システム設計とアーキテクチャの評価を行うサブエージェントの定義例を以下に示す。<br>
複数のルールファイルを使い分ける場合は、<u>.clinerules/</u> フォルダを作成する。<br>
<br>
プロジェクトルート/
├── .clinerules/
│  ├── general.md          # 全般的なルール
│  ├── cpp-rules.md        # C++固有のルール
│  ├── qt-rules.md        # Qt固有のルール
│  ├── embedded-rules.md  # 組み込み開発ルール
│  ├── fpga-rules.md      # FPGA/Verilogルール
│  └── documentation.md    # 仕様書作成ルール
└── src/
    └── ...
<br>
<br>
* ファイル名の例
embedded-rules.mdファイルの記述例を以下に示す。<br>
*: .claude/agents/architect-reviewer.md
<br>
<br>
  <syntaxhighlight lang="md">
  <syntaxhighlight lang="md">
  ---
  # 組み込み開発ルール
  name: architect-reviewer
   
  description: Architecture and design review specialist. Use when designing new features or making significant structural changes.
  ## 対象マイコン
  tools: Read, Grep, Glob
  - TI: MSP430, MSP432, MSPM0
  model: claude-sonnet-4-5-20250929
  - ATMEL: ATmega168, ATmega328, ATmega1284
---
   
   
  あなたはソフトウェアアーキテクチャとデザインパターンの専門家です。
  ## メモリ管理
- 動的メモリ確保 (malloc/new) は原則禁止
- スタックサイズを意識した変数配置
- 大きな配列はstatic修飾子を付けてBSSセクションに配置
   
   
  呼び出されたとき:
  ## 割り込み処理
  1. 既存のアーキテクチャパターンを調査
  - 割り込みハンドラは最小限の処理のみ
  2. 提案された変更の影響を評価
  - フラグを立てて、メインループで処理するパターンを推奨
  3. スケーラビリティと保守性を考慮
  - volatile修飾子を忘れずに付与
4. ベストプラクティスとの整合性を確認
   
   
  評価観点:
  ## 低消費電力設計
  - システム全体の一貫性
  - 不要なペリフェラルはクロック停止
  - モジュール間の依存関係
  - 適切なスリープモードの使用
  - スケーラビリティの考慮
  - ウェイクアップ条件の明確化
- 保守性とテスタビリティ
- セキュリティアーキテクチャ
- パフォーマンスへの影響
   
   
  提供する内容:
  ## レジスタ操作
  - アーキテクチャ上の懸念事項
  - ビットフィールド操作にはマクロを使用
  - 代替アプローチの提案
  - マジックナンバーは定義済み定数で置き換え
- トレードオフの分析
- 実装の推奨事項
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== FPGA / Verilog専門エージェント ====
fpga-rules.mdファイルの記述例を以下に示す。<br>
Verilog HDLとFPGA設計のレビューを行うサブエージェントの定義例を以下に示す。<br>
<br>
* ファイル名の例
*: .claude/agents/verilog-reviewer.md
<br>
<br>
  <syntaxhighlight lang="md">
  <syntaxhighlight lang="md">
  ---
  # FPGA/Verilog-HDL開発ルール
name: verilog-reviewer
   
description: Verilog/FPGA design review specialist. Use when reviewing or creating Verilog code, or working on FPGA designs.
  ## 対象デバイス
  tools: Read, Grep, Glob
  - Xilinx FPGA (Vivado対応)
  model: claude-sonnet-4-5-20250929
  ---
   
   
  あなたはVerilogとFPGA設計の専門家です。
  ## コーディング規約
- 同期設計を基本とする
- 非同期リセットは避け、同期リセットを使用
- always_ff / always_comb を使用 (SystemVerilog)
   
   
  呼び出されたとき:
  ## 命名規則
  1. Verilogコードの文法と構造を確認
- 信号名: snake_case (例: data_valid)
  2. 合成可能性を評価
  - パラメータ: ALL_CAPS (例: DATA_WIDTH)
  3. タイミング制約を検証
  - モジュール名: PascalCase (例: DataProcessor)
  4. リソース使用効率を分析
  - クロック信号: clk_xxx
  - リセット信号: rst_n (負論理)
   
   
  レビュー観点:
  ## テストベンチ
  - タイミング制約の妥当性
  - 各モジュールにテストベンチを作成
  - リソース使用効率 (LUT、FF、BRAM、DSP)
  - 期待値との自動比較を実装
  - クロックドメインクロッシングの安全性
  - カバレッジを意識した入力パターン
- 合成可能なコーディングスタイル
- テストベンチの網羅性
- 状態機械の設計
- パイプライン設計の最適化
   
   
  指摘内容:
  ## タイミング制約
  - 致命的な問題 (合成不可、タイミング違反等)
  - セットアップ/ホールド違反に注意
  - 警告 (リソース使用効率、可読性等)
  - クロックドメイン間はCDC対策を実施
- 最適化提案 (パフォーマンス改善等)
  </syntaxhighlight>
  </syntaxhighlight>
<br>
==== ルールの有効化と切り替え ====
Clineはプロジェクトを開くと自動的に <u>.clinerules</u> ファイルを読み込む。<br>
Cline v3.0以降では、各ルールファイルの有効 / 無効をUIから切り替えることができる。<br>
<br>
# ClineのサイドパネルでRulesアイコンを選択する。
# 現在有効なルールの一覧が表示される。
# 各ルールファイルの横にあるトグルで有効 / 無効を切り替える。
<br><br>
<br><br>


== サブエージェントの呼び出し方法 ==
== スキル (Custom Instructions) の作成手順 ==
==== 自動呼び出し ====
スキルはVS Code全体に適用されるグローバルな指示で、個人の作業スタイルや専門分野を反映させる。<br>
親エージェントは、各サブエージェントの description</code> フィールドを読んで、現在のタスクに適したサブエージェントを自動的に選択する。<br>
<br>
# 自動呼び出しの例 :
このコードをレビューしてください: @src/auth.js
<br>
<br>
上記のようなリクエストを行うと、親エージェントは自動的にcode-reviewerサブエージェントを呼び出す。<br>
==== Custom Instructionsの設定画面を開く ====
# VS CodeでサイドバーのClineアイコンを選択する。
# 歯車アイコン (Settings) を選択する。
# [Custom Instructions] のテキストエリアを探す。
<br>
<br>
==== 明示的な呼び出し ====
==== Custom Instructionsの記述例 ====
プロンプトの中でサブエージェントの名前を指定することで、確実にそのサブエージェントを使用できる。<br>
組み込み・デスクトップアプリケーション開発向けのCustom Instructions記述例を以下に示す。<br>
<br>
<br>
  # 明示的な呼び出しの例 1 :
<syntaxhighlight lang="md">
  # 基本指示
常に日本語で応答してください。
技術用語は必要に応じて英語を併記してください。
   
   
  code-reviewerエージェントを使用して、認証モジュールをチェックしてください
  # 私のバックグラウンド
<br>
- 組み込みシステム開発 (TI MSP430/MSP432/MSPM0、ATMEL ATmega) の実務経験あり
  # 明示的な呼び出しの例 2 :
- デスクトップアプリケーション開発 (C#/WindowsForms、C#/Avalonia UI、C#/Photino.Blazor、QML/C++、Qt Widgets/C++、Rust/Tauri/React) を行う
- FPGA開発 (Xilinx、Verilog-HDL) の知識がある
- アナログ/デジタル混載回路設計を行う
- KiCADでの基板設計を行う
  - MATLABでのスクリプト開発を行う
   
   
  debuggerエージェントを使用して、このエラーを修正してください: @logs/error.log
  # コード生成時の注意
<br>
- 組み込みシステムのコードでは、メモリ使用量を最小限に抑えること
==== サブエージェントの状態確認 ====
  - リソース制約のあるターゲット (MSP430等) ではヒープ使用を避けること
現在利用可能なサブエージェントを確認する。<br>
- Qt開発ではQt6を標準として使用すること
  /agents
- エラーハンドリングを必ず含めること
<br>
  - コードには日本語でコメントを付けること
このコマンドにより、以下に示す情報が表示される。<br>
* サブエージェント名
* スコープ (project または user)
* 説明
* 使用可能なツール
* 使用するモデル
<br><br>
 
== サブエージェント間の連携パターン ==
==== 順次実行パターン ====
複数のサブエージェントを順次実行し、段階的にタスクを完了するパターンである。<br>
<br>
実行フローの例を以下に示す。<br>
# ユーザがタスクを親エージェントに依頼
# 親エージェントがarchitect-reviewerを呼び出して設計を評価する。
# 設計が承認されたら、implementerサブエージェントが実装を行う。
# 実装が完了したら、code-reviewerサブエージェントが品質をチェックする。
# 問題が見つかった場合、debuggerサブエージェントが修正を行う。
# 全てのチェックが通過したら、結果を親エージェントに返す。
<br>
==== 並列実行パターン ====
複数のサブエージェントを並列に実行し、効率的に複数のタスクを処理するパターンである。<br>
<br>
  # 使用例 :
   
   
  以下のタスクを並列で実行してください。
  # 仕様書作成時の注意
- 画面定義書、機能概要書はEXCEL向けの構造化データで出力
- 画面遷移図、DFD、フローチャート、ER図はDraw.io形式を提案
- シーケンス図、状態遷移図、タイミングチャートはMermaid記法で出力
- 単体試験書はEXCEL向けの構造化データで出力
   
   
  1. Web Documentation Agentを使用して、公式ドキュメントを検索
  # 品質基準
  2. Stack Overflow Agentを使用して、類似の問題と解決策を検索
  - 生成するコードには必ずコメントを付けること
  3. Codebase Explorer Agentを使用して、既存のパターンを検索
  - 複雑なロジックには図解やダイアグラムの提案をすること
- 変数名・関数名は意味のある名前を付けること
</syntaxhighlight>
<br>
<br>
==== Hooks による自動連携 ====
==== 用途別のCustom Instructionsテンプレート ====
Claude Code Hooksを使用することにより、サブエージェントの実行完了時に次のアクションを自動的にトリガーできる。<br>
===== 仕様書作成支援向け =====
<syntaxhighlight lang="md">
# 仕様書作成モード
- EXCEL形式を想定した構造化データを提供すること
- Draw.io XML、Mermaid記法に対応すること
- テーブル定義はデータ型、制約、インデックスを漏れなく記載すること
# 出力フォーマット
- シーケンス図/タイミングチャート: Mermaid
- フローチャート/ER図: Draw.io互換
- データフロー図: 入出力型情報を含む
</syntaxhighlight>
<br>
<br>
Hooksは、<u>.claude/hooks/</u> ディレクトリにJSON形式で定義される。<br>
===== ハードウェア開発向け =====
<br>
  <syntaxhighlight lang="md">
基本的なHook定義の例を以下に示す。<br>
  # 回路設計・基板設計モード
  <syntaxhighlight lang="json">
- KiCADシンボル/フットプリント命名規則に準拠すること
  {
- デザインルールはJLCPCB等の製造制約を考慮すること
  "type": "SubagentStop",
- 部品選定では入手性と代替品情報を提供すること
  "command": "echo '次のステップ: code-reviewerエージェントを実行してください'"
  }
# FPGA開発
- Verilog-HDLはXilinxコーディングガイドラインに準拠すること
- テストベンチを必須で生成すること
  - タイミング制約の考慮事項を明記すること
  </syntaxhighlight>
  </syntaxhighlight>
<br>
Hooksを設定するには、以下に示すコマンドを実行する。<br>
このコマンドにより、Hooks設定を管理できる。<br>
/hooks
<br><br>
<br><br>


== コンテキストウィンドウの管理 ==
== サブエージェント相当機能の実現方法 ==
==== 独立したコンテキストウィンドウ ====
例えば、Claude Codeにはサブエージェントという機能があり、特定のタスクに特化したAIアシスタントを定義して親エージェントと子エージェントに分けて推論させることができる。<br>
各サブエージェントは独立した200kトークンのコンテキストウィンドウを持つ。<br>
しかし、Clineにはネイティブでこれと同等の機能は存在しない。<br>
これにより、以下に示す利点が得られる。<br>
* 子エージェントが大量のドキュメントを読み込んでも、親エージェントのコンテキストを消費しない
* 各エージェントが独立して作業できるため、並列処理が可能
* メインの会話が常にクリーンな状態を保てる
<br>
==== コンテキストの受け渡し ====
子エージェントは、作業が完了すると要約された結果だけを親エージェントに返す。<br>
<br>
<br>
コンテキスト受け渡しの流れ:<br>
Clineでサブエージェント相当の機能を実現するには、sub-agents-mcp等のMCPサーバを利用する方法がある。<br>
# 親エージェントがタスクの概要と必要な情報を子エージェントに渡す
# 子エージェントが独立したコンテキストウィンドウ内で作業を実行
# 子エージェントが要約された結果を親エージェントに返す
# 親エージェントが結果を統合してユーザに提示
<br>
<br>
この仕組みにより、メインのコンテキストウィンドウは常にクリーンに保たれ、本来のタスクに集中できる。<br>
==== Claude Codeのサブエージェントとは ====
<br>
Claude Codeのサブエージェントは、YAMLフロントマターを持つMarkdownファイルとして定義され、以下の特徴を持つ。<br>
==== コンテキスト管理のベストプラクティス ====
* 独立したコンテキストウィンドウ (各エージェントが1Mトークン) を持つ。
* サブエージェントのシステムプロンプトには、必要な文脈情報をすべて含める
* カスタムシステムプロンプトによる専門化が可能
* サブエージェントには状態の記憶がないため、各呼び出しは独立している
* 特定のツール (Read、Write、Edit、Bash等) へのアクセス制限が可能
* 長時間の調査タスクは、専用のリサーチエージェントに委譲する
* 異なるモデル (Opus、Sonnet、Haiku等) の使用が可能
* 実装タスクと調査タスクを分離し、それぞれ専用のサブエージェントに割り当てる
* <u>.claude/agents/</u> または <u>~/.claude/agents/</u> に配置される。
<br><br>
 
== サブエージェントのカスタマイズ ==
==== ツールの制限 ====
サブエージェントに対して、使用できるツールを制限することで、安全性を向上できる。<br>
<br>
<br>
<center>
==== MCPサーバとは ====
{| class="wikitable"
MCP (Model Context Protocol) サーバは、外部APIやサービスとの連携を提供するプロトコルベースの拡張機能である。<br>
|+ 利用可能なツール一覧
これはClineに限らず、Claude Code等でも使用される汎用的な機能拡張の仕組みである。<br>
! ツール名 !! 機能 !! 使用推奨エージェント
|-
| Read || ファイルの読み取り || 全てのサブエージェント
|-
| Write || 新規ファイルの作成 || 実装エージェント、ドキュメント生成エージェント
|-
| Edit || 既存ファイルの編集 || 実装エージェント、バグ修正エージェント
|-
| Bash || シェルコマンドの実行 || デバッグエージェント、テストエージェント
|-
| Grep || ファイル内容の検索 || 調査エージェント、レビューエージェント
|-
| Glob || ファイルパターンマッチング || 調査エージェント、リファクタリングエージェント
|}
</center>
<br>
<br>
ツール制限の例:<br>
MCPサーバの主な用途を以下に示す。<br>
* コードレビューアー: Read、Grep、Glob、Bash (git diff用) のみ
* 外部APIの呼び出し (GitHub、Jira、AWS等)
*: コードを変更できないため、誤ってコードを修正するリスクがない
* ファイル処理の自動化
* データベースへのアクセス
* 特定ドメインの知識検索
<br>
<br>
* デバッガ: Read、Edit、Bash、Grep、Glob
==== Clineでサブエージェント相当機能を実現する方法 ====
*: バグを修正するため、Editツールが必要
Clineでサブエージェント相当の機能を実現するには、sub-agents-mcpというMCPサーバを利用する。<br>
このMCPサーバを使用することで、Claude Code形式のサブエージェント定義ファイルをClineでも活用できるようになる。<br>
<br>
<br>
* リサーチエージェント: Read、Grep、Glob のみ
===== ステップ 1 : エージェント定義フォルダの作成 =====
*: 調査のみを行い、コードを変更しない
エージェント定義ファイルを格納するフォルダを作成する。<br>
mkdir -p ~/cline-agents
<br>
<br>
==== モデルの選択 ====
===== ステップ 2 : エージェント定義ファイルの作成 =====
サブエージェントごとに異なるモデルを使用することで、コストと性能のバランスを最適化できる。<br>
エージェント定義ファイルはMarkdown形式で作成する。<br>
<br>
<br>
<center>
code-reviewer.md (コードレビュー用) の記述例を以下に示す。<br>
{| class="wikitable"
|+ モデル選択のガイドライン
! タスクタイプ !! 推奨モデル !! 理由
|-
| 簡単なバグ修正、コード補完 || claude-haiku-4-5-20251001 || 高速で低コスト
|-
| コードレビュー、実装 || claude-sonnet-4-5-20250929 || バランスの取れた性能
|-
| アーキテクチャ設計、複雑な問題 || claude-opus-4-20250514 || 最高の推論能力
|-
| 親エージェントと同じモデルを使用 || inherit || デフォルト設定
|}
</center>
<br>
<br>
モデル指定の例を以下に示す。<br>
  <syntaxhighlight lang="md">
  <syntaxhighlight lang="md">
  ---
# Code Reviewer
  name: quick-fixer
  description: Quick bug fixes and simple code changes
あなたはコードレビューに特化したAIアシスタントです。
  tools: Read, Edit, Bash
  model: claude-haiku-4-5-20251001
## 責務
  ---
  - バグや潜在的な問題の発見
- コード品質の改善提案
- セキュリティ上の脆弱性チェック
  - パフォーマンス最適化の提案
   
  ## レビュー観点
  - C++コードではメモリリーク、ダングリングポインタに注意
- Qtコードではシグナル・スロットの接続漏れを確認
- 組み込みコードではスタックオーバーフローリスクを確認
- 例外処理・エラーハンドリングの有無を確認
  - コーディング規約への準拠を確認
## 出力フォーマット
レビュー結果は以下の形式で出力:
1. 重大な問題 (修正必須)
2. 中程度の問題 (修正推奨)
3. 軽微な問題 (改善提案)
4. 良い点 (コメント)
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== システムプロンプトのカスタマイズ ====
spec-writer.md (仕様書作成用) の記述例を以下に示す。<br>
サブエージェントのシステムプロンプトには、プロジェクト固有のルール、コーディング規約、使用している技術スタックの情報等を含めることができる。<br>
<br>
カスタマイズ項目の例:<br>
* プロジェクト固有のコーディング規約
* 使用しているフレームワークとライブラリ
* チェックリストと評価基準
* 出力フォーマットの指定
* コンテキスト探索の手順
<br>
<br>
カスタマイズ例を以下に示す。<br>
  <syntaxhighlight lang="md">
  <syntaxhighlight lang="md">
  ---
  # 仕様書作成エージェント
name: react-component-reviewer
description: React component code review specialist
tools: Read, Grep, Glob
model: claude-sonnet-4-5-20250929
---
   
   
  あなたはReactコンポーネントのコードレビュー専門家です。
  あなたはソースコードから技術仕様書を作成するエキスパートです。
   
   
  プロジェクト環境:
  ## 出力対象
  - React 18.2 + TypeScript 5.0
  - 機能概要書
  - 状態管理: Zustand
  - 画面定義書
  - スタイリング: Tailwind CSS
  - インターフェース仕様書
  - テスト: Jest + React Testing Library
  - データベーステーブル定義書
   
   
  レビュー基準:
  ## 出力フォーマット
  - 関数コンポーネントとHooksを使用
  - EXCEL向け: CSV形式またはタブ区切りで構造化
  - propsの型定義を必須とする
  - Draw.io向け: XMLまたはフローチャート記述
  - useEffectの依存配列を正確に指定
  - Mermaid向け: シーケンス図、状態遷移図
- カスタムHooksで再利用性を高める
- コンポーネントは200行以内に抑える
   
   
  出力フォーマット:
  ## 抽出する情報
  1. 重要な問題 (型エラー、パフォーマンス問題等)
  1. 関数一覧: 関数名、引数、戻り値、概要
  2. 警告 (ベストプラクティス違反等)
  2. クラス構造: クラス名、メンバ変数、メソッド
  3. 提案 (リファクタリング案等)
  3. データフロー: 入力、処理、出力
4. エラー処理: エラーコード、対処方法
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
== 使用例 ==
==== 新機能の実装フロー ====
新機能を実装する場合のサブエージェント活用フローを以下に示す。<br>
<br>
<br>
===== ステップ 1 : 要件の明確化 =====
circuit-analyzer.md (回路解析用) の記述例を以下に示す。<br>
ユーザが親エージェントに新機能の実装を依頼する。<br>
<br>
<br>
  # 例 :
<syntaxhighlight lang="md">
  # 回路解析エージェント
あなたは電子回路設計のエキスパートです。
## 専門分野
- アナログ/デジタル混載回路
- 電源回路設計
- EMC対策
- 熱設計
## 解析項目
1. 回路図のレビュー
2. 部品選定の妥当性確認
3. 熱設計の検討
4. ノイズ対策の提案
   
   
  ユーザ認証機能を追加したい。JWTトークンを使用した実装をお願いします。
  ## 出力フォーマット
- KiCADシンボル/フットプリント名の提案
- 代替部品リスト (LCSC番号付き)
- 設計上の注意点リスト
- BOM (部品表) の雛形
</syntaxhighlight>
<br>
<br>
===== ステップ 2 : アーキテクチャレビュー =====
===== ステップ 3 : sub-agents-mcp の設定 =====
親エージェントがarchitect-reviewerサブエージェントを自動的に呼び出し、既存のコードベースとの整合性を確認する。<br>
VS Codeの settings.json に sub-agents-mcp の設定を追加する。<br>
<br>
<br>
architect-reviewerの実行内容:<br>
# VS Codeで [Ctrl] + [Shift] + [P]キーを同時押下してコマンドパレットを開く。
* 既存の認証パターンを調査
# [Preferences: Open Settings (JSON)] を選択する。
* プロジェクトの技術スタックを確認
# 以下の設定を追加する。
* セキュリティ要件を評価
#: <syntaxhighlight lang="json">
* 設計の承認または代替案の提示
{
  "cline.mcpServers": {
    "sub-agents": {
      "command": "npx",
      "args": ["-y", "sub-agents-mcp"],
      "env": {
        "AGENTS_DIR": "/home/yourname/cline-agents",
        "AGENT_TYPE": "cursor",
        "EXECUTION_TIMEOUT_MS": "600000"
      }
    }
  }
}
</syntaxhighlight>
<br>
<br>
===== ステップ 3 : 実装 =====
環境変数の説明を以下に示す。<br>
設計が承認されたら、implementerサブエージェントが実際のコード実装を行う。<br>
<br>
<br>
implementerの実行内容:<br>
<center>
* 認証ミドルウェアの作成
{| class="wikitable"
* JWTトークン生成・検証ロジックの実装
|+ sub-agents-mcpの環境変数
* ユーザ登録・ログインエンドポイントの作成
! 環境変数 !! 説明
* テストコードの作成
|-
| AGENTS_DIR || エージェント定義ファイルを格納するディレクトリのパス
|-
| AGENT_TYPE || エージェントタイプの指定 (cursor を推奨)
|-
| EXECUTION_TIMEOUT_MS || 実行タイムアウト時間 (ミリ秒)
|}
</center>
<br>
<br>
===== ステップ 4 : コードレビュー =====
===== ステップ 4 : サブエージェントの呼び出し =====
実装が完了すると、code-reviewerサブエージェントが自動的に呼び出され、コード品質をチェックする。<br>
Clineで以下に示すように指示することで、定義したエージェントを呼び出すことができる。<br>
<br>
<br>
code-reviewerの実行内容:<br>
code-reviewerサブエージェントで src/main.cpp をレビューして
* コードの可読性を確認
* セキュリティ脆弱性をチェック
* エラーハンドリングを検証
* テストカバレッジを評価
<br>
<br>
===== ステップ 5 : バグ修正 (必要に応じて) =====
spec-writerエージェントを使用して、このプロジェクトの機能概要書を作成して
問題が見つかった場合、debuggerサブエージェントが呼び出され、問題を修正する。<br>
<br>
<br>
debuggerの実行内容:<br>
==== MCPサーバの簡単な追加方法 ====
* 問題の根本原因を特定
Clineには、チャットで指示するだけでMCPサーバを自動作成・インストールする機能がある。<br>
* 最小限の修正を実装
* 修正の検証
<br>
<br>
===== ステップ 6 : 結果の統合 =====
GitHub連携ツールの追加例を以下に示す。<br>
全てのチェックが通過すると、最終的な結果が親エージェントに返され、ユーザーに報告される。<br>
add a tool that fetches GitHub issues and creates pull requests
<br>
<br>
==== 大規模リファクタリング ====
ファイル変換ツールの追加例を以下に示す。<br>
75個のファイルで使用されている関数を非推奨にして、新しい関数に置き換える場合の例を以下に示す。<br>
add a tool that converts markdown files to structured data for Excel
<br>
<br>
===== 実行手順 =====
Clineはこの指示を受けて、適切なMCPサーバの作成、インストール、設定を自動で行う。<br>
# 親エージェントがgrepを使用して、全ての使用箇所を特定する。
# 各ファイルに対して専用のサブエージェントをスピンアップする。
# 各サブエージェントが小さく安全なコンテキストで置換を実行する。
# 親エージェントが全ての変更を集約してレビューする。
<br>
<br>
このパターンのメリット:<br>
==== Claude CodeとClineの機能比較 ====
* 各ファイルの変更が独立したコンテキストで実行される。
Claude CodeとClineの機能の対応関係を以下に示す。<br>
* 並列処理により高速化
* エラーが発生しても他のファイルに影響しない。
<br>
<br>
==== ドキュメント生成 ====
<center>
大規模で未ドキュメント化されたモジュールのドキュメントを生成する場合の例を以下に示す。<br>
{| class="wikitable"
<br>
|+ Claude CodeとClineの機能対応表
===== 実行手順 =====
! Claude Code !! Cline !! 備考
# 親エージェントが全ての関数、クラス、ファイルをリスト化
|-
# 各項目に対してサブエージェントをスピンアップ
| サブエージェント || ネイティブでは同等機能なし || sub-agents-mcp等のMCPサーバを使用して類似機能を実現可能
# 各サブエージェントがコードを分析し、包括的なコメントまたはダイアグラムを作成
|-
# 最終的なサブエージェントが全てを統合してREADME.mdファイルにまとめる
| スキル || Custom Instructions || 概ね同等の機能
<br>
|-
このパターンのメリット:<br>
| ルール || .clinerules || 概ね同等の機能
* 大量のコードを分析してもメインのコンテキストが汚れない。
|-
* 各コンポーネントの詳細な分析が可能
| MCP Server || MCP Server || 同等の機能
* 最終的な統合により一貫性のあるドキュメントが生成される。
|}
<br>
</center>
==== インシデント対応分析 ====
3つのマイクロサービスにまたがる障害を理解する場合の例を以下に示す。<br>
<br>
===== 実行手順 =====
# 各サービスに対して専用のサブエージェントを使用
# 各サブエージェントが並列でログを分析
# 各サブエージェントが重要なイベントのタイムラインを抽出
# 親エージェントが全てのタイムラインを統合して根本原因を特定
<br>
このパターンのメリット:<br>
* 並列処理により高速な分析
* 各サービスの詳細な分析が可能
* 複数のサービスにまたがる問題の全体像を把握
<br><br>
<br><br>


== サブエージェントの設計原則 ==
== Z.ai MCPサーバの活用 ==
==== 単一責任の原則 ====
Z.ai GLM Coding Planには、以下のMCPサーバが付属している。<br>
各サブエージェントには1つの明確な目標、入力、出力、ハンドオフルールを与える。<br>
<br>
<br>
# 良い例 :
<center>
{| class="wikitable"
description: Use after a spec exists; produce an ADR and guardrails
|+ Z.ai付属MCPサーバ一覧
<br>
! MCPサーバ !! 機能
# 悪い例 :
|-
| Vision Understanding MCP || 画像・スクリーンショットの解析
description: Help with coding tasks
|-
<br>
| Web Search MCP || リアルタイムWeb検索
==== アクション指向の説明 ====
|-
descriptionフィールドはアクション指向の表現を使用する。<br>
| Web Reader MCP || Webページの内容取得・解析
<br>
|}
# 良い例 :
</center>
- "Use immediately after writing or modifying code"
- "Use proactively when encountering any issues"
- "Use when designing new features or making significant structural changes"
<br>
# 悪い例 :
- "A code reviewer"
- "Helps with debugging"
- "Architecture expert"
<br>
==== ツールのスコープ設定 ====
各エージェントに必要なツールのみを与える。<br>
<br>
* PM & Architect
*: Read、Grep、Glob (読み取り専用)
* Implementer
*: Read、Write、Edit、Bash (実装とテスト用)
* Release
*: 必要最小限のツールのみ
<br>
ツールを省略すると、全てのツールへのアクセスが暗黙的に許可されるため、意図的に制限することが重要である。<br>
<br>
==== 適切な数のサブエージェント ====
サブエージェントは多くても3から4個程度に抑えることを推奨する。<br>
<br>
<br>
* あまり多くのサブエージェントを作成すると、管理が複雑になる。
これらはCoding Planに含まれているため、追加料金なしで利用できる。<br>
* どのエージェントを使用すべきか判断が難しくなる。
* 親エージェントの判断負荷が増加する。
<br><br>
<br><br>


== コンテキスト管理のベストプラクティス ==
== 構成例 ==
==== 自己完結型のプロンプト ====
プロジェクトの推奨構成を以下に示す。<br>
サブエージェントには状態の記憶がないため、システムプロンプトには必要な文脈情報を全て含める。<br>
<br>
<br>
含めるべき情報は以下の通りである。<br>
プロジェクト/
* プロジェクトの技術スタック
├── .clinerules/
* コーディング規約
│  ├── general.md          # 日本語対応、基本ルール
* ファイル構造
│  ├── cpp-qt-rules.md      # C++/Qt開発ルール
* チェックリスト
│  ├── embedded-rules.md    # 組み込み開発ルール
* 出力フォーマット
│  ├── fpga-rules.md        # FPGA/Verilog開発ルール
│  └── documentation.md    # 仕様書作成ルール
├── ~/cline-agents/          # サブエージェント相当の定義ファイル (sub-agents-mcp用)
│  ├── code-reviewer.md    # コードレビュー用エージェント
│  ├── spec-writer.md      # 仕様書作成用エージェント
│  ├── test-generator.md    # テスト生成用エージェント
│  └── circuit-analyzer.md  # 回路解析用エージェント
└── .vscode/
      └── settings.json        # Cline設定 (API Provider、Model、Custom Instructions、MCP Servers)
<br>
<br>
==== コンテキスト探索の最適化 ====
<center>
サブエージェントが呼び出された時に探索するファイルを限定することで、パフォーマンスを向上できる。<br>
{| class="wikitable"
<br>
|+ 機能別の用途と保存場所
探索最適化の例を以下に示す。<br>
! 機能 !! 用途 !! 保存場所
<syntaxhighlight lang="md">
|-
呼び出されたとき、まず以下を確認:
| ルール (.clinerules) || プロジェクト固有規約・制約 || プロジェクトルート
- `lib/*/repo.ex` - データベース設定
|-
- `priv/repo/migrations/` - 既存のマイグレーションパターン
| スキル (Custom Instructions) || 個人専門性・作業スタイル || VS Code設定
- `lib/*/schemas/` - 現在のスキーマ定義
|-
| サブエージェント相当 (sub-agents-mcp) || 特定タスクに特化したAIアシスタント || ~/cline-agents/
パフォーマンス注意事項:
|-
- 初期のコンテキスト収集を制限
| MCPサーバ || 外部API連携・機能拡張 || VS Code settings.json
- 特定のgrepパターンを使用
|}
- 関連するファイルに焦点を当てる
</center>
</syntaxhighlight>
<br>
==== Definition of Doneの設定 ====
各サブエージェントのプロンプトに簡潔な完了定義を含める。<br>
<br>
# 例 :
完了条件:
- 全てのテストがパス
- コードレビューで承認
- ドキュメントが更新済み
- DONE状態を設定して変更をサマリー
<br><br>
 
== バージョン管理との統合 ==
==== Gitワークフローの推奨 ====
サブエージェントをバージョン管理と併用することを強く推奨する。<br>
<br>
# 各重要な変更の後にコミットするようClaudeに依頼する。
# ブランチを作成して機能ごとに分離する。
# Pull Requestの作成を自動化する。
<br>
# 例 :
新しいブランチ 'feature-xyz' を作成して、これらの変更をコミットしてください。
<br>
==== 設定ファイルのバージョン管理 ====
プロジェクトレベルのサブエージェント定義は、バージョン管理システムに含めることを推奨する。<br>
<br>
<br>
バージョン管理に含めるファイル:<br>
推奨運用フローを以下に示す。<br>
* .claude/CLAUDE.md
# Custom Instructionsでグローバル専門性を定義する。(1度だけの設定)
*: プロジェクトメモリ
# プロジェクトごとの .clinerules を管理する。(Git管理可能)
* .claude/agents/*.md
# 必要に応じて sub-agents-mcp を設定し、特定タスク向けのエージェント定義ファイルを作成する。
*: サブエージェント定義
# 外部サービス連携が必要な場合は、適切なMCPサーバを追加する。
* .claude/hooks/*.json
*: Hooks設定
* .claude/settings.json
*: プロジェクト設定
<br>
<br>
バージョン管理から除外するファイル:<br>
<u>※注意</u><br>
* .claude/settings.local.json
<u>sub-agents-mcpを使用したサブエージェント相当機能は、Claude Codeのネイティブサブエージェント機能と比較して以下の点が異なる。</u><br>
*: 個人設定
* Claude Codeのサブエージェントは各エージェントが独立した200Kトークンのコンテキストウィンドウを持つが、sub-agents-mcpではこの機能は限定的である
* .claude/cache/
* Claude Codeではツールアクセス制限 (Read、Write、Edit、Bash等) を細かく設定できるが、sub-agents-mcpでは同等の制御は困難である
*: キャッシュデータ
* Claude Codeではサブエージェントごとに異なるモデル (Opus、Sonnet、Haiku等) を指定できるが、sub-agents-mcpでは対応状況が異なる
<br>
<br>
.gitignoreの例:<br>
本格的なサブエージェント機能が必要な場合は、Claude Codeの使用を検討することを推奨する。<br>
<syntaxhighlight lang="sh">
# Claude Code local settings
.claude/settings.local.json
.claude/cache/
</syntaxhighlight>
<br><br>
<br><br>


== パフォーマンス最適化 ==
== トラブルシューティング ==
==== ファイルパスの具体的な指定 ====
==== Coding Planのクォータが消費されない / 従量課金されている ====
具体的なファイルパスを提供することで、Claudeがより効率的に作業できる。<br>
エンドポイントが正しく設定されていない可能性がある。<br>
<br>
# 良い例 :
@src/auth/middleware.js のセキュリティ脆弱性をチェックしてください
<br>
# 悪い例 :
認証コードをチェックしてください
<br>
==== 並列実行の活用 ====
複数のClaude Codeインスタンスを並行実行することで、効率を向上できる。<br>
<br>
並列実行の例:<br>
* ターミナル1
*: フロントエンドの開発
* ターミナル2
*: バックエンドAPIの開発
* ターミナル3
*: テストの実行とデバッグ
<br>
<br>
==== コンテキストのコンパクション ====
確認事項を以下に示す。<br>
定期的にコンテキストをコンパクション (圧縮) することにより、トークン消費を抑制できる。<br>
# Clineを最新版に更新する。
# Z.aiダッシュボードでCoding Planの契約状況を確認する。
# 必要に応じてOpenAI Compatible設定でエンドポイントを明示的に指定する。
<br>
<br>
コンパクションのタイミング:<br>
==== APIキーが無効と表示される ====
* 機能が完成した後
確認事項を以下に示す。<br>
* バグが修正された後
# APIキーをコピーする際に余分な空白が含まれていないか確認する。
* 新しいタスクを開始する前
# APIキーがCoding Plan用のものか確認する。(通常API用とは異なる場合がある)
# Z.aiダッシュボードでAPIキーのステータスを確認する。
<br>
<br>
# コンパクションの実行 :
==== 日本語の応答にならない ====
Custom Instructionsに「常に日本語で応答してください」を追加、あるいは、.clinerulesファイルに同様の指示を記載する。<br>
/compact
<br>
<br>
# 焦点を指定したコンパクション :
==== サブエージェントが動作しない ====
/compact focus on authentication logic
<br><br>
 
== トラブルシューティング ==
==== サブエージェントが動作しない場合 ====
===== 設定ファイルの確認 =====
===== 設定ファイルの確認 =====
サブエージェントの定義ファイルが正しい場所に配置されているか確認する。<br>
サブエージェントの定義ファイルが正しい場所に配置されているか確認する。<br>
745行目: 596行目:
*: ~/.claude/agents/
*: ~/.claude/agents/
<br>
<br>
===== YAMLフロントマターの確認 =====
===== MCPサーバの確認 =====
YAMLフロントマターが正しく記述されているか確認する。<br>
VS Codeのsettings.jsonファイルでMCPサーバが正しく設定されているか確認する。<br>
<br>
<br>
* 必須フィールド<br>
<syntaxhighlight lang="json">
** name
{
** description
  "cline.mcpServers": {
** tools
    "sub-agents": {
*: <br>
      "command": "npx",
* 確認コマンド
      "args": ["-y", "sub-agents-mcp"],
*: /agents
      "env": {
<br>
        "AGENTS_DIR": "/path/to/your/agents"
このコマンドで全てのサブエージェントがリスト表示される。<br>
      }
定義したサブエージェントが表示されない場合、YAMLフロントマターに問題がある可能性がある。<br>
    }
<br>
  }
===== Claude Codeセッションの再起動 =====
  }
サブエージェント定義を変更した後、Claude Codeセッションを再起動する。<br>
  </syntaxhighlight>
<br>
# <code>/exit</code> または [Ctrl] + [D]キーでセッションを終了する。
# <code>claude</code> コマンドで再起動する。
<br>
===== システムの健全性確認 =====
システムの健全性を診断する。<br>
このコマンドにより、インストールタイプとバージョンが表示され、問題がないか確認できる。<br>
/doctor
<br>
==== サブエージェントが期待通りに動作しない場合 ====
===== descriptionフィールドの見直し =====
descriptionフィールドが明確で具体的であるか確認する。<br>
<br>
親エージェントはdescriptionを読んで判断するため、以下を含める必要がある。<br>
* いつ使用すべきか
* 何をするエージェントか
* どのような状況で呼び出すべきか
<br>
===== ツール制限の確認 =====
サブエージェントに必要なツールが含まれているか確認する。<br>
<br>
* バグを修正するエージェントにはEditツールが必要
* コマンドを実行するエージェントにはBashツールが必要
* ファイルを読むエージェントにはReadツールが必要
<br>
===== システムプロンプトの見直し =====
システムプロンプトに必要な文脈情報が含まれているか確認する。<br>
<br>
サブエージェントには状態の記憶がないため、各呼び出しは独立している。<br>
必要な情報は全てシステムプロンプトに含める必要がある。<br>
<br>
==== Hooksが動作しない場合 ====
===== JSON構文の確認 =====
Hooks設定ファイルのJSON構文が正しいか確認する。<br>
<br>
  # 確認コマンド :
  jq . .claude/hooks/subagent-stop.json
<br>
このコマンドでJSON構文エラーが表示される。<br>
<br>
===== Hooksの再読み込み =====
設定を変更した後、Claude Codeの設定を再読み込みする。<br>
<br>
# <code>/config</code> コマンドで設定インターフェースを開く。
# 変更を確認して適用する。
# セッションを再起動する。
<br>
===== Hook出力の確認 =====
Hook出力が表示されない場合、STDOUT (標準出力) に出力されているか確認する。<br>
<br>
<code>/dev/tty</code> ではなく、STDOUTに出力する必要がある。<br>
<br>
===== SubagentStopとStopの両方を登録 =====
Hooksが読み込まれない場合、SubagentStopとStopの両方を登録する。<br>
<br>
<br>
トップレベルオブジェクトを1つ保持し、変更を確認して適用することで、ランタイムがHooksを再読み込みする。<br>
===== VS Codeの再起動 =====
設定を変更した後、VS Codeを再起動することで設定が反映される。<br>
<br><br>
<br><br>


== 参考リンク ==
== 参考リンク ==
* [https://code.claude.com/docs/en/sub-agents Claude Code公式ドキュメント - Subagents]
* [https://z.ai/subscribe Z.ai GLM Coding Plan]
* [https://www.pubnub.com/blog/best-practices-for-claude-code-sub-agents/ PubNub - Best practices for Claude Code subagents]
* [https://z.ai/model-api Z.ai Model API]
* [https://github.com/VoltAgent/awesome-claude-code-subagents VoltAgent - Awesome Claude Code Subagents]
* [https://docs.z.ai/devpack/overview Z.ai Developer Document - Overview]
* [https://shipyard.build/blog/claude-code-subagents-guide/ Shipyard - Claude Code Subagents Quickstart]
* [https://docs.cline.bot/provider-config/zai Cline Documentation - Z AI]
* [https://platform.claude.com/docs/en/agent-sdk/subagents Anthropic - Subagents in the SDK]
* [https://github.com/cline/cline Cline GitHub]
<br><br>
<br><br>


830行目: 628行目:
{{#seo:
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Claude Code,Subagents,AI,Anthropic,Development,Programming,SUSE,Linux
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Cline,Z.ai,GLM-4.7,VS Code,AI,Development,Programming,MCP,Custom Instructions
|description={{PAGENAME}} - Claude Codeのサブエージェント機能に関する手順
|description={{PAGENAME}} - VS Code ClineとZ.ai GLM-4.7の直接契約による設定手順
|image=/resources/assets/MochiuLogo_Single_Blue.png
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:設定]]
[[カテゴリ:その他]]

2026年1月30日 (金) 23:23時点における版

概要

VS CodeのCline拡張機能とZ.ai GLM-4.7を直接契約して連携させる方法について記載する。

Z.ai (智譜AI) はGLM-4.7をコーディングツール向けにサブスクリプション形式で提供しており、月額$3から利用できる。

GLM Coding Planの主な特徴を以下に示す。

  • 5時間ごとにクォータがリセットされる
  • Claude Code、Cline、OpenCode、Roo Code、Kilo Code等で利用可能
  • Vision Understanding、Web Search MCP、Web Reader MCPが利用可能
  • GLM-4.7は200Kトークンのコンテキストウィンドウをサポート
  • SWE-bench 73.8%、LiveCodeBench V6でClaude 4.5 Sonnetを上回る性能


GLM Coding Planの料金体系
プラン 月額料金 プロンプト数/5時間 特徴
GLM Coding Lite $3 (初月半額) 120プロンプト 一般的な開発用途向け
GLM Coding Pro $15 (初月半額) 600プロンプト 高頻度利用向け


Clineの機能体系はClaude Codeとは異なる用語を使用する。

Claude CodeとClineの機能対応表
Claude Code Cline 説明
サブエージェント MCP Server / MCP Tools 特定タスクに特化したツール
スキル Custom Instructions グローバルな指示設定
ルール .clinerules プロジェクト固有の規約



Z.ai GLM Coding Planの契約手順

ステップ 1 : Z.aiアカウントの作成

Z.aiのサブスクリプションページにアクセスしてアカウントを作成する。


紹介コード付きのURLを使用すると、追加割引 (10%から20%OFF) が適用される場合がある。

アカウント作成手順を以下に示す。

  1. [Sign Up] または [Sign In] を選択する。
  2. メールアドレスまたはGoogleアカウント等でアカウントを作成する。
  3. [GLM Coding Lite] ($3/月) または [GLM Coding Pro] ($15/月) を選択する。
  4. クレジットカード情報を入力して契約を完了する。


ステップ 2 : APIキーの取得

Z.aiダッシュボードにアクセスしてAPIキーを取得する。


APIキー取得手順を以下に示す。

  1. ダッシュボードにログインする。
  2. メニューから [API Keys] セクションを開く。
  3. [+ Create a new API key] を選択する。
  4. 識別用の名前 (例: Cline用) を入力する。
  5. 生成されたAPIキーをコピーして安全な場所に保存する。
    APIキーは1度しか表示されないため、必ず保存すること。



ClineでZ.aiを設定する手順

ステップ 1 : Cline拡張機能のインストール

VS CodeにCline拡張機能をインストールする。

  1. VS Codeを起動して、左サイドバーの拡張機能アイコンを選択する。
  2. 検索バーに Cline と入力する。
  3. [Cline] を見つけて [Install] を選択する。


ステップ 2 : Z.ai API Providerの設定

ClineにZ.aiのAPIキーを設定する。

  1. VS Code左サイドバーに追加されたClineアイコンを選択する。
  2. 右上の歯車アイコン (Settings) を選択する。
  3. [API Provider] ドロップダウンメニューから [Z AI] を選択する。
  4. [Entrypoint] ドロップダウンで以下のいずれかを選択する。
    • International Standard (api.z.ai)
      海外 (日本含む) からのアクセス用
    • China Standard (open.bigmodel.cn)
      中国国内からのアクセス用
  5. [Z AI API Key] フィールドにAPIキーを貼り付ける。
  6. [Model] ドロップダウンから [glm-4.7] を選択する。


ステップ 3 : Coding Plan用エンドポイントに関する注意点

ClineのZ.ai設定画面にGLM Coding Plan専用のエンドポイント (/api/coding/paas/v4) が選択肢として表示されない場合がある。
対処法を以下に示す。

方法A : 標準APIエンドポイントをそのまま使用

Coding Planに登録したAPIキーを使用すれば、自動的にサブスクリプションのクォータが適用される場合がある。
まずはこの方法で試すことを推奨する。

方法B : OpenAI Compatible設定を使用

Coding Planのエンドポイントを明示的に指定する場合は、以下に示す設定を行う。

API Provider: OpenAI Compatible
Base URL: https://api.z.ai/api/coding/paas/v4
API Key: [Z.ai APIキー]
Model ID: glm-4.7


方法C : Clineの最新版を確認

Clineは頻繁に更新されている。
拡張機能を最新版に更新することで、Coding Plan用のエンドポイントがサポートされている可能性がある。


ルール (.clinerules) の作成手順

ルールはプロジェクト固有の指示をClineに与えるもので、コーディング規約やプロジェクト構造の強制に使用する。

単一ファイル形式での作成

プロジェクトのルートディレクトリに .clinerules ファイルを作成する。

vi .clinerules


例えば、組み込み・デスクトップアプリ開発向けの.clinerulesファイルの記述例を以下に示す。

 # 言語とコミュニケーション
 - すべての応答とコメントは日本語で記述すること
 - コードのコメントは日本語でわかりやすく書くこと
 - 技術用語は必要に応じて英語を併記すること
 
 # コーディング規約 (C++)
 - C++17以降の規格に準拠すること
 - スマートポインタ (std::unique_ptr, std::shared_ptr) を優先的に使用
 - 生ポインタは所有権を持たない観察用途のみで使用
 - 例外処理よりもエラーコード返却を優先 (組み込み向け)
 
 # 命名規則
 - ローカル変数: camelCase (例: localVariable)
 - メンバ変数: m_付きcamelCase (例: m_memberVariable)
 - 定数・マクロ: ALL_CAPS (例: MAX_BUFFER_SIZE)
 - クラス名: PascalCase (例: DataProcessor)
 - 名前空間: lowercase (例: myproject::utils)
 
 # Qt開発固有ルール
 - Qt6を標準として使用すること
 - シグナル・スロット接続は新しい構文を使用:
   connect(sender, &Sender::signal, receiver, &Receiver::slot);
 - QObjectの親子関係を活用し、メモリ管理を簡素化すること
 
 # 組み込み開発固有ルール
 - MSP430/MSP432向けコードではヒープ使用を最小限に
 - 割り込みハンドラは短く保つこと
 - volatile修飾子を適切に使用すること
 
 # ドキュメント
 - 関数にはDoxygenスタイルのコメントを付けること
 - READMEやドキュメントは私が指示するまで編集しないこと
 
 # テスト
 - コード生成後は単体テストコードも生成すること
 - テストフレームワークはGoogle Testを使用すること
 
 # ファイル操作
 - 編集するファイルは提案のみ行い、確認を求めること
 - ランダムにファイルを開かず、編集対象を明示すること


フォルダ形式での管理

複数のルールファイルを使い分ける場合は、.clinerules/ フォルダを作成する。

プロジェクトルート/
├── .clinerules/
│   ├── general.md          # 全般的なルール
│   ├── cpp-rules.md        # C++固有のルール
│   ├── qt-rules.md         # Qt固有のルール
│   ├── embedded-rules.md   # 組み込み開発ルール
│   ├── fpga-rules.md       # FPGA/Verilogルール
│   └── documentation.md    # 仕様書作成ルール
└── src/
    └── ...


embedded-rules.mdファイルの記述例を以下に示す。

 # 組み込み開発ルール
 
 ## 対象マイコン
 - TI: MSP430, MSP432, MSPM0
 - ATMEL: ATmega168, ATmega328, ATmega1284
 
 ## メモリ管理
 - 動的メモリ確保 (malloc/new) は原則禁止
 - スタックサイズを意識した変数配置
 - 大きな配列はstatic修飾子を付けてBSSセクションに配置
 
 ## 割り込み処理
 - 割り込みハンドラは最小限の処理のみ
 - フラグを立てて、メインループで処理するパターンを推奨
 - volatile修飾子を忘れずに付与
 
 ## 低消費電力設計
 - 不要なペリフェラルはクロック停止
 - 適切なスリープモードの使用
 - ウェイクアップ条件の明確化
 
 ## レジスタ操作
 - ビットフィールド操作にはマクロを使用
 - マジックナンバーは定義済み定数で置き換え


fpga-rules.mdファイルの記述例を以下に示す。

 # FPGA/Verilog-HDL開発ルール
 
 ## 対象デバイス
 - Xilinx FPGA (Vivado対応)
 
 ## コーディング規約
 - 同期設計を基本とする
 - 非同期リセットは避け、同期リセットを使用
 - always_ff / always_comb を使用 (SystemVerilog)
 
 ## 命名規則
 - 信号名: snake_case (例: data_valid)
 - パラメータ: ALL_CAPS (例: DATA_WIDTH)
 - モジュール名: PascalCase (例: DataProcessor)
 - クロック信号: clk_xxx
 - リセット信号: rst_n (負論理)
 
 ## テストベンチ
 - 各モジュールにテストベンチを作成
 - 期待値との自動比較を実装
 - カバレッジを意識した入力パターン
 
 ## タイミング制約
 - セットアップ/ホールド違反に注意
 - クロックドメイン間はCDC対策を実施


ルールの有効化と切り替え

Clineはプロジェクトを開くと自動的に .clinerules ファイルを読み込む。
Cline v3.0以降では、各ルールファイルの有効 / 無効をUIから切り替えることができる。

  1. ClineのサイドパネルでRulesアイコンを選択する。
  2. 現在有効なルールの一覧が表示される。
  3. 各ルールファイルの横にあるトグルで有効 / 無効を切り替える。



スキル (Custom Instructions) の作成手順

スキルはVS Code全体に適用されるグローバルな指示で、個人の作業スタイルや専門分野を反映させる。

Custom Instructionsの設定画面を開く

  1. VS CodeでサイドバーのClineアイコンを選択する。
  2. 歯車アイコン (Settings) を選択する。
  3. [Custom Instructions] のテキストエリアを探す。


Custom Instructionsの記述例

組み込み・デスクトップアプリケーション開発向けのCustom Instructions記述例を以下に示す。

 # 基本指示
 常に日本語で応答してください。
 技術用語は必要に応じて英語を併記してください。
 
 # 私のバックグラウンド
 - 組み込みシステム開発 (TI MSP430/MSP432/MSPM0、ATMEL ATmega) の実務経験あり
 - デスクトップアプリケーション開発 (C#/WindowsForms、C#/Avalonia UI、C#/Photino.Blazor、QML/C++、Qt Widgets/C++、Rust/Tauri/React) を行う
 - FPGA開発 (Xilinx、Verilog-HDL) の知識がある
 - アナログ/デジタル混載回路設計を行う
 - KiCADでの基板設計を行う
 - MATLABでのスクリプト開発を行う
 
 # コード生成時の注意
 - 組み込みシステムのコードでは、メモリ使用量を最小限に抑えること
 - リソース制約のあるターゲット (MSP430等) ではヒープ使用を避けること
 - Qt開発ではQt6を標準として使用すること
 - エラーハンドリングを必ず含めること
 - コードには日本語でコメントを付けること
 
 # 仕様書作成時の注意
 - 画面定義書、機能概要書はEXCEL向けの構造化データで出力
 - 画面遷移図、DFD、フローチャート、ER図はDraw.io形式を提案
 - シーケンス図、状態遷移図、タイミングチャートはMermaid記法で出力
 - 単体試験書はEXCEL向けの構造化データで出力
 
 # 品質基準
 - 生成するコードには必ずコメントを付けること
 - 複雑なロジックには図解やダイアグラムの提案をすること
 - 変数名・関数名は意味のある名前を付けること


用途別のCustom Instructionsテンプレート

仕様書作成支援向け
 # 仕様書作成モード
 - EXCEL形式を想定した構造化データを提供すること
 - Draw.io XML、Mermaid記法に対応すること
 - テーブル定義はデータ型、制約、インデックスを漏れなく記載すること
 
 # 出力フォーマット
 - シーケンス図/タイミングチャート: Mermaid
 - フローチャート/ER図: Draw.io互換
 - データフロー図: 入出力型情報を含む


ハードウェア開発向け
 # 回路設計・基板設計モード
 - KiCADシンボル/フットプリント命名規則に準拠すること
 - デザインルールはJLCPCB等の製造制約を考慮すること
 - 部品選定では入手性と代替品情報を提供すること
 
 # FPGA開発
 - Verilog-HDLはXilinxコーディングガイドラインに準拠すること
 - テストベンチを必須で生成すること
 - タイミング制約の考慮事項を明記すること



サブエージェント相当機能の実現方法

例えば、Claude Codeにはサブエージェントという機能があり、特定のタスクに特化したAIアシスタントを定義して親エージェントと子エージェントに分けて推論させることができる。
しかし、Clineにはネイティブでこれと同等の機能は存在しない。

Clineでサブエージェント相当の機能を実現するには、sub-agents-mcp等のMCPサーバを利用する方法がある。

Claude Codeのサブエージェントとは

Claude Codeのサブエージェントは、YAMLフロントマターを持つMarkdownファイルとして定義され、以下の特徴を持つ。

  • 独立したコンテキストウィンドウ (各エージェントが1Mトークン) を持つ。
  • カスタムシステムプロンプトによる専門化が可能
  • 特定のツール (Read、Write、Edit、Bash等) へのアクセス制限が可能
  • 異なるモデル (Opus、Sonnet、Haiku等) の使用が可能
  • .claude/agents/ または ~/.claude/agents/ に配置される。


MCPサーバとは

MCP (Model Context Protocol) サーバは、外部APIやサービスとの連携を提供するプロトコルベースの拡張機能である。
これはClineに限らず、Claude Code等でも使用される汎用的な機能拡張の仕組みである。

MCPサーバの主な用途を以下に示す。

  • 外部APIの呼び出し (GitHub、Jira、AWS等)
  • ファイル処理の自動化
  • データベースへのアクセス
  • 特定ドメインの知識検索


Clineでサブエージェント相当機能を実現する方法

Clineでサブエージェント相当の機能を実現するには、sub-agents-mcpというMCPサーバを利用する。
このMCPサーバを使用することで、Claude Code形式のサブエージェント定義ファイルをClineでも活用できるようになる。

ステップ 1 : エージェント定義フォルダの作成

エージェント定義ファイルを格納するフォルダを作成する。

mkdir -p ~/cline-agents


ステップ 2 : エージェント定義ファイルの作成

エージェント定義ファイルはMarkdown形式で作成する。

code-reviewer.md (コードレビュー用) の記述例を以下に示す。

 # Code Reviewer
 
 あなたはコードレビューに特化したAIアシスタントです。
 
 ## 責務
 - バグや潜在的な問題の発見
 - コード品質の改善提案
 - セキュリティ上の脆弱性チェック
 - パフォーマンス最適化の提案
 
 ## レビュー観点
 - C++コードではメモリリーク、ダングリングポインタに注意
 - Qtコードではシグナル・スロットの接続漏れを確認
 - 組み込みコードではスタックオーバーフローリスクを確認
 - 例外処理・エラーハンドリングの有無を確認
 - コーディング規約への準拠を確認
 
 ## 出力フォーマット
 レビュー結果は以下の形式で出力:
 1. 重大な問題 (修正必須)
 2. 中程度の問題 (修正推奨)
 3. 軽微な問題 (改善提案)
 4. 良い点 (コメント)


spec-writer.md (仕様書作成用) の記述例を以下に示す。

 # 仕様書作成エージェント
 
 あなたはソースコードから技術仕様書を作成するエキスパートです。
 
 ## 出力対象
 - 機能概要書
 - 画面定義書
 - インターフェース仕様書
 - データベーステーブル定義書
 
 ## 出力フォーマット
 - EXCEL向け: CSV形式またはタブ区切りで構造化
 - Draw.io向け: XMLまたはフローチャート記述
 - Mermaid向け: シーケンス図、状態遷移図
 
 ## 抽出する情報
 1. 関数一覧: 関数名、引数、戻り値、概要
 2. クラス構造: クラス名、メンバ変数、メソッド
 3. データフロー: 入力、処理、出力
 4. エラー処理: エラーコード、対処方法


circuit-analyzer.md (回路解析用) の記述例を以下に示す。

 # 回路解析エージェント
 
 あなたは電子回路設計のエキスパートです。
 
 ## 専門分野
 - アナログ/デジタル混載回路
 - 電源回路設計
 - EMC対策
 - 熱設計
 
 ## 解析項目
 1. 回路図のレビュー
 2. 部品選定の妥当性確認
 3. 熱設計の検討
 4. ノイズ対策の提案
 
 ## 出力フォーマット
 - KiCADシンボル/フットプリント名の提案
 - 代替部品リスト (LCSC番号付き)
 - 設計上の注意点リスト
 - BOM (部品表) の雛形


ステップ 3 : sub-agents-mcp の設定

VS Codeの settings.json に sub-agents-mcp の設定を追加する。

  1. VS Codeで [Ctrl] + [Shift] + [P]キーを同時押下してコマンドパレットを開く。
  2. [Preferences: Open Settings (JSON)] を選択する。
  3. 以下の設定を追加する。
     {
       "cline.mcpServers": {
         "sub-agents": {
           "command": "npx",
           "args": ["-y", "sub-agents-mcp"],
           "env": {
             "AGENTS_DIR": "/home/yourname/cline-agents",
             "AGENT_TYPE": "cursor",
             "EXECUTION_TIMEOUT_MS": "600000"
           }
         }
       }
     }
    


環境変数の説明を以下に示す。

sub-agents-mcpの環境変数
環境変数 説明
AGENTS_DIR エージェント定義ファイルを格納するディレクトリのパス
AGENT_TYPE エージェントタイプの指定 (cursor を推奨)
EXECUTION_TIMEOUT_MS 実行タイムアウト時間 (ミリ秒)


ステップ 4 : サブエージェントの呼び出し

Clineで以下に示すように指示することで、定義したエージェントを呼び出すことができる。

code-reviewerサブエージェントで src/main.cpp をレビューして


spec-writerエージェントを使用して、このプロジェクトの機能概要書を作成して


MCPサーバの簡単な追加方法

Clineには、チャットで指示するだけでMCPサーバを自動作成・インストールする機能がある。

GitHub連携ツールの追加例を以下に示す。

add a tool that fetches GitHub issues and creates pull requests


ファイル変換ツールの追加例を以下に示す。

add a tool that converts markdown files to structured data for Excel


Clineはこの指示を受けて、適切なMCPサーバの作成、インストール、設定を自動で行う。

Claude CodeとClineの機能比較

Claude CodeとClineの機能の対応関係を以下に示す。

Claude CodeとClineの機能対応表
Claude Code Cline 備考
サブエージェント ネイティブでは同等機能なし sub-agents-mcp等のMCPサーバを使用して類似機能を実現可能
スキル Custom Instructions 概ね同等の機能
ルール .clinerules 概ね同等の機能
MCP Server MCP Server 同等の機能



Z.ai MCPサーバの活用

Z.ai GLM Coding Planには、以下のMCPサーバが付属している。

Z.ai付属MCPサーバ一覧
MCPサーバ 機能
Vision Understanding MCP 画像・スクリーンショットの解析
Web Search MCP リアルタイムWeb検索
Web Reader MCP Webページの内容取得・解析


これらはCoding Planに含まれているため、追加料金なしで利用できる。


構成例

プロジェクトの推奨構成を以下に示す。

プロジェクト/
├── .clinerules/
│   ├── general.md           # 日本語対応、基本ルール
│   ├── cpp-qt-rules.md      # C++/Qt開発ルール
│   ├── embedded-rules.md    # 組み込み開発ルール
│   ├── fpga-rules.md        # FPGA/Verilog開発ルール
│   └── documentation.md     # 仕様書作成ルール
│
├── ~/cline-agents/           # サブエージェント相当の定義ファイル (sub-agents-mcp用)
│   ├── code-reviewer.md     # コードレビュー用エージェント
│   ├── spec-writer.md       # 仕様書作成用エージェント
│   ├── test-generator.md    # テスト生成用エージェント
│   └── circuit-analyzer.md  # 回路解析用エージェント
│
└── .vscode/
     └── settings.json        # Cline設定 (API Provider、Model、Custom Instructions、MCP Servers)


機能別の用途と保存場所
機能 用途 保存場所
ルール (.clinerules) プロジェクト固有規約・制約 プロジェクトルート
スキル (Custom Instructions) 個人専門性・作業スタイル VS Code設定
サブエージェント相当 (sub-agents-mcp) 特定タスクに特化したAIアシスタント ~/cline-agents/
MCPサーバ 外部API連携・機能拡張 VS Code settings.json


推奨運用フローを以下に示す。

  1. Custom Instructionsでグローバル専門性を定義する。(1度だけの設定)
  2. プロジェクトごとの .clinerules を管理する。(Git管理可能)
  3. 必要に応じて sub-agents-mcp を設定し、特定タスク向けのエージェント定義ファイルを作成する。
  4. 外部サービス連携が必要な場合は、適切なMCPサーバを追加する。


※注意
sub-agents-mcpを使用したサブエージェント相当機能は、Claude Codeのネイティブサブエージェント機能と比較して以下の点が異なる。

  • Claude Codeのサブエージェントは各エージェントが独立した200Kトークンのコンテキストウィンドウを持つが、sub-agents-mcpではこの機能は限定的である
  • Claude Codeではツールアクセス制限 (Read、Write、Edit、Bash等) を細かく設定できるが、sub-agents-mcpでは同等の制御は困難である
  • Claude Codeではサブエージェントごとに異なるモデル (Opus、Sonnet、Haiku等) を指定できるが、sub-agents-mcpでは対応状況が異なる


本格的なサブエージェント機能が必要な場合は、Claude Codeの使用を検討することを推奨する。


トラブルシューティング

Coding Planのクォータが消費されない / 従量課金されている

エンドポイントが正しく設定されていない可能性がある。

確認事項を以下に示す。

  1. Clineを最新版に更新する。
  2. Z.aiダッシュボードでCoding Planの契約状況を確認する。
  3. 必要に応じてOpenAI Compatible設定でエンドポイントを明示的に指定する。


APIキーが無効と表示される

確認事項を以下に示す。

  1. APIキーをコピーする際に余分な空白が含まれていないか確認する。
  2. APIキーがCoding Plan用のものか確認する。(通常API用とは異なる場合がある)
  3. Z.aiダッシュボードでAPIキーのステータスを確認する。


日本語の応答にならない

Custom Instructionsに「常に日本語で応答してください」を追加、あるいは、.clinerulesファイルに同様の指示を記載する。

サブエージェントが動作しない

設定ファイルの確認

サブエージェントの定義ファイルが正しい場所に配置されているか確認する。

  • プロジェクトレベル
    .claude/agents/
  • ユーザレベル
    ~/.claude/agents/


MCPサーバの確認

VS Codeのsettings.jsonファイルでMCPサーバが正しく設定されているか確認する。

 {
   "cline.mcpServers": {
     "sub-agents": {
       "command": "npx",
       "args": ["-y", "sub-agents-mcp"],
       "env": {
         "AGENTS_DIR": "/path/to/your/agents"
       }
     }
   }
 }


VS Codeの再起動

設定を変更した後、VS Codeを再起動することで設定が反映される。


参考リンク