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

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

編集の要約なし
タグ: 差し戻し済み
Wiki (トーク) による版 14148 を取り消し
タグ: 取り消し
 
1行目: 1行目:
== 概要 ==
== 概要 ==
VS CodeのCline拡張機能とZ.ai GLM-4.7を直接契約して連携させる方法について記載する。<br>
Claude Codeのサブエージェント機能は、特定のタスクに特化したAIアシスタントを作成し、親エージェントと子エージェントに分けて推論させることにより、<br>
効率的な開発ワークフローを構築する機能である。<br>
<br>
<br>
Z.ai (智譜AI) はGLM-4.7をコーディングツール向けにサブスクリプション形式で提供しており、月額$3から利用できる。<br>
サブエージェントは以下に示す特徴を持つ。<br>
* 独立したコンテキストウィンドウ (各エージェントが200kトークン) を持つ
* カスタムシステムプロンプトによる専門化
* 特定のツールへのアクセス制限
* 独立した権限管理
* 異なるモデルの使用 (Opus、Sonnet、Haiku等)
<br>
<br>
GLM Coding Planの主な特徴を以下に示す。<br>
サブエージェントを使用することにより、以下に示すメリットが得られる。<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>
<center>
[[ファイル:Claude Code Settings Subagents Structure 1.png|フレームなし|中央|653x500px]]
{| class="wikitable"
<br><br>
|+ 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"
* プロジェクトレベル
|+ Claude CodeとClineの機能対応表
*: <code>.claude/agents/</code> (チーム全体で共有)
! 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 : Z.aiアカウントの作成 ====
==== ステップ 1 : Claude Codeのバージョン確認 ====
Z.aiのサブスクリプションページにアクセスしてアカウントを作成する。<br>
サブエージェント機能を使用するには、Claude Code 1.0.60以降が必要である。<br>
* https://z.ai/subscribe
claude --version
<br>
最新バージョンでない場合は更新する。<br>
claude update
<br>
==== ステップ 2 : サブエージェント作成コマンドの実行 ====
Claude Codeセッションを開始して、サブエージェント作成コマンドを実行する。<br>
/agents
<br>
このコマンドを実行すると、以下に示す選択肢が表示される。<br>
* Create new agent
* Edit existing agent
* Delete agent
* List all agents
<br>
<br>
紹介コード付きのURLを使用すると、追加割引 (10%から20%OFF) が適用される場合がある。<br>
[Create new agent]を選択し、スコープを選択する。<br>
* Project-level
*: プロジェクト固有のサブエージェント
* User-level
*: 全プロジェクトで使用可能なサブエージェント
<br>
<br>
アカウント作成手順を以下に示す。<br>
初めての場合は、プロジェクトレベルを選択することを推奨する。<br>
# [Sign Up] または [Sign In] を選択する。
# メールアドレスまたはGoogleアカウント等でアカウントを作成する。
# [GLM Coding Lite] ($3/月) または [GLM Coding Pro] ($15/月) を選択する。
# クレジットカード情報を入力して契約を完了する。
<br>
<br>
==== ステップ 2 : APIキーの取得 ====
==== ステップ 3 : サブエージェントの生成方法を選択 ====
Z.aiダッシュボードにアクセスしてAPIキーを取得する。<br>
サブエージェントの生成方法を選択する。<br>
* https://z.ai/model-api
* Generate with Claude
*: Claudeが自動生成
* Create manually
*: 手動作成
<br>
<br>
APIキー取得手順を以下に示す。<br>
[Generate with Claude]を選択すると、Claudeがプロジェクトのコンテキストを使用して最適なサブエージェントを生成する。<br>
# ダッシュボードにログインする。
# メニューから [API Keys] セクションを開く。
# [+ Create a new API key] を選択する。
# 識別用の名前 (例: Cline用) を入力する。
# 生成されたAPIキーをコピーして安全な場所に保存する。
#: APIキーは1度しか表示されないため、必ず保存すること。
<br><br>
 
== ClineでZ.aiを設定する手順 ==
==== ステップ 1 : Cline拡張機能のインストール ====
VS CodeにCline拡張機能をインストールする。<br>
<br>
<br>
# VS Codeを起動して、左サイドバーの拡張機能アイコンを選択する。
==== ステップ 4 : サブエージェントの役割を説明 ====
# 検索バーに <u>Cline</u> と入力する。
Claudeに対して、作成するサブエージェントの役割と責任を説明する。<br>
# [Cline] を見つけて [Install] を選択する。
<br>
<br>
==== ステップ 2 : Z.ai API Providerの設定 ====
# 説明例 :
ClineにZ.aiのAPIキーを設定する。<br>
コードの品質、セキュリティ、保守性をチェックする専門のコードレビューアーを作成したい。
このエージェントは、コード変更後に自動的に呼び出され、重要な問題、警告、改善提案を優先順位付けして報告する必要がある。
</pre>
<br>
<br>
# VS Code左サイドバーに追加されたClineアイコンを選択する。
==== ステップ 5 : 生成されたサブエージェントの確認と編集 ====
# 右上の歯車アイコン (Settings) を選択する。
Claudeがサブエージェント定義を生成した後、生成されたMarkdownファイルを開いて確認する。<br>
# [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>
対処法を以下に示す。<br>
.claude/agents/code-reviewer.md
<br>
<br>
===== 方法A : 標準APIエンドポイントをそのまま使用 =====
ファイルの内容を確認し、必要に応じて編集する。<br>
Coding Planに登録したAPIキーを使用すれば、自動的にサブスクリプションのクォータが適用される場合がある。<br>
まずはこの方法で試すことを推奨する。<br>
<br>
<br>
===== 方法B : OpenAI Compatible設定を使用 =====
==== ステップ 6 : サブエージェントのテスト ====
Coding Planのエンドポイントを明示的に指定する場合は、以下に示す設定を行う。<br>
サブエージェントが正しく動作するかテストする。<br>
<br>
<br>
  API Provider: OpenAI Compatible
  # 自動呼び出しのテスト :
  Base URL: https://api.z.ai/api/coding/paas/v4
   
  API Key: [Z.ai APIキー]
  このコードをレビューしてください: @src/auth.js
Model ID: glm-4.7
<br>
<br>
===== 方法C : Clineの最新版を確認 =====
# 明示的な呼び出しのテスト :
Clineは頻繁に更新されている。<br>
拡張機能を最新版に更新することで、Coding Plan用のエンドポイントがサポートされている可能性がある。<br>
code-reviewerエージェントを使用して、認証モジュールをチェックしてください
<br><br>
<br><br>


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


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


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


== Z.ai MCPサーバの活用 ==
== コンテキスト管理のベストプラクティス ==
Z.ai GLM Coding Planには、以下のMCPサーバが付属している。<br>
==== 自己完結型のプロンプト ====
サブエージェントには状態の記憶がないため、システムプロンプトには必要な文脈情報を全て含める。<br>
<br>
含めるべき情報は以下の通りである。<br>
* プロジェクトの技術スタック
* コーディング規約
* ファイル構造
* チェックリスト
* 出力フォーマット
<br>
==== コンテキスト探索の最適化 ====
サブエージェントが呼び出された時に探索するファイルを限定することで、パフォーマンスを向上できる。<br>
<br>
探索最適化の例を以下に示す。<br>
<syntaxhighlight lang="md">
呼び出されたとき、まず以下を確認:
- `lib/*/repo.ex` - データベース設定
- `priv/repo/migrations/` - 既存のマイグレーションパターン
- `lib/*/schemas/` - 現在のスキーマ定義
パフォーマンス注意事項:
- 初期のコンテキスト収集を制限
- 特定のgrepパターンを使用
- 関連するファイルに焦点を当てる
</syntaxhighlight>
<br>
<br>
<center>
==== Definition of Doneの設定 ====
{| class="wikitable"
各サブエージェントのプロンプトに簡潔な完了定義を含める。<br>
|+ Z.ai付属MCPサーバ一覧
! MCPサーバ !! 機能
|-
| Vision Understanding MCP || 画像・スクリーンショットの解析
|-
| Web Search MCP || リアルタイムWeb検索
|-
| Web Reader MCP || Webページの内容取得・解析
|}
</center>
<br>
<br>
これらはCoding Planに含まれているため、追加料金なしで利用できる。<br>
# 例 :
完了条件:
- 全てのテストがパス
- コードレビューで承認
- ドキュメントが更新済み
- DONE状態を設定して変更をサマリー
<br><br>
<br><br>


== 構成例 ==
== バージョン管理との統合 ==
プロジェクトの推奨構成を以下に示す。<br>
==== Gitワークフローの推奨 ====
サブエージェントをバージョン管理と併用することを強く推奨する。<br>
<br>
# 各重要な変更の後にコミットするようClaudeに依頼する。
# ブランチを作成して機能ごとに分離する。
# Pull Requestの作成を自動化する。
<br>
<br>
  プロジェクト/
  # 例 :
├── .clinerules/
   
│  ├── general.md          # 日本語対応、基本ルール
  新しいブランチ 'feature-xyz' を作成して、これらの変更をコミットしてください。
│  ├── 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>
==== 設定ファイルのバージョン管理 ====
{| class="wikitable"
プロジェクトレベルのサブエージェント定義は、バージョン管理システムに含めることを推奨する。<br>
|+ 機能別の用途と保存場所
! 機能 !! 用途 !! 保存場所
|-
| ルール (.clinerules) || プロジェクト固有規約・制約 || プロジェクトルート
|-
| スキル (Custom Instructions) || 個人専門性・作業スタイル || VS Code設定
|-
| サブエージェント相当 (sub-agents-mcp) || 特定タスクに特化したAIアシスタント || ~/cline-agents/
|-
| MCPサーバ || 外部API連携・機能拡張 || VS Code settings.json
|}
</center>
<br>
<br>
推奨運用フローを以下に示す。<br>
バージョン管理に含めるファイル:<br>
# Custom Instructionsでグローバル専門性を定義する。(1度だけの設定)
* .claude/CLAUDE.md
# プロジェクトごとの .clinerules を管理する。(Git管理可能)
*: プロジェクトメモリ
# 必要に応じて sub-agents-mcp を設定し、特定タスク向けのエージェント定義ファイルを作成する。
* .claude/agents/*.md
# 外部サービス連携が必要な場合は、適切なMCPサーバを追加する。
*: サブエージェント定義
* .claude/hooks/*.json
*: Hooks設定
* .claude/settings.json
*: プロジェクト設定
<br>
<br>
<u>※注意</u><br>
バージョン管理から除外するファイル:<br>
<u>sub-agents-mcpを使用したサブエージェント相当機能は、Claude Codeのネイティブサブエージェント機能と比較して以下の点が異なる。</u><br>
* .claude/settings.local.json
* Claude Codeのサブエージェントは各エージェントが独立した200Kトークンのコンテキストウィンドウを持つが、sub-agents-mcpではこの機能は限定的である
*: 個人設定
* Claude Codeではツールアクセス制限 (Read、Write、Edit、Bash等) を細かく設定できるが、sub-agents-mcpでは同等の制御は困難である
* .claude/cache/
* Claude Codeではサブエージェントごとに異なるモデル (Opus、Sonnet、Haiku等) を指定できるが、sub-agents-mcpでは対応状況が異なる
*: キャッシュデータ
<br>
<br>
本格的なサブエージェント機能が必要な場合は、Claude Codeの使用を検討することを推奨する。<br>
.gitignoreの例:<br>
<syntaxhighlight lang="sh">
# Claude Code local settings
.claude/settings.local.json
.claude/cache/
</syntaxhighlight>
<br><br>
<br><br>


== トラブルシューティング ==
== パフォーマンス最適化 ==
==== Coding Planのクォータが消費されない / 従量課金されている ====
==== ファイルパスの具体的な指定 ====
エンドポイントが正しく設定されていない可能性がある。<br>
具体的なファイルパスを提供することで、Claudeがより効率的に作業できる。<br>
<br>
# 良い例 :
@src/auth/middleware.js のセキュリティ脆弱性をチェックしてください
<br>
# 悪い例 :
認証コードをチェックしてください
<br>
==== 並列実行の活用 ====
複数のClaude Codeインスタンスを並行実行することで、効率を向上できる。<br>
<br>
並列実行の例:<br>
* ターミナル1
*: フロントエンドの開発
* ターミナル2
*: バックエンドAPIの開発
* ターミナル3
*: テストの実行とデバッグ
<br>
<br>
確認事項を以下に示す。<br>
==== コンテキストのコンパクション ====
# Clineを最新版に更新する。
定期的にコンテキストをコンパクション (圧縮) することにより、トークン消費を抑制できる。<br>
# Z.aiダッシュボードでCoding Planの契約状況を確認する。
# 必要に応じてOpenAI Compatible設定でエンドポイントを明示的に指定する。
<br>
<br>
==== APIキーが無効と表示される ====
コンパクションのタイミング:<br>
確認事項を以下に示す。<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>
596行目: 745行目:
*: ~/.claude/agents/
*: ~/.claude/agents/
<br>
<br>
===== MCPサーバの確認 =====
===== YAMLフロントマターの確認 =====
VS Codeのsettings.jsonファイルでMCPサーバが正しく設定されているか確認する。<br>
YAMLフロントマターが正しく記述されているか確認する。<br>
<br>
* 必須フィールド<br>
** name
** description
** tools
*: <br>
* 確認コマンド
*: /agents
<br>
このコマンドで全てのサブエージェントがリスト表示される。<br>
定義したサブエージェントが表示されない場合、YAMLフロントマターに問題がある可能性がある。<br>
<br>
===== Claude Codeセッションの再起動 =====
サブエージェント定義を変更した後、Claude Codeセッションを再起動する。<br>
<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>
<br>
<syntaxhighlight lang="json">
<code>/dev/tty</code> ではなく、STDOUTに出力する必要がある。<br>
{
<br>
  "cline.mcpServers": {
===== SubagentStopとStopの両方を登録 =====
    "sub-agents": {
Hooksが読み込まれない場合、SubagentStopとStopの両方を登録する。<br>
      "command": "npx",
      "args": ["-y", "sub-agents-mcp"],
      "env": {
        "AGENTS_DIR": "/path/to/your/agents"
      }
    }
  }
}
</syntaxhighlight>
<br>
<br>
===== VS Codeの再起動 =====
トップレベルオブジェクトを1つ保持し、変更を確認して適用することで、ランタイムがHooksを再読み込みする。<br>
設定を変更した後、VS Codeを再起動することで設定が反映される。<br>
<br><br>
<br><br>


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


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


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