Hermes Agent: デリゲート
最終更新:2026-08-31
デリゲートはHermes Agentの管理能力です。複雑なタスクに直面すると、サブエージェントを作成して分担し、最後に結果を集約します。まるでプロジェクトマネージャーがチームメンバーにタスクを割り当てるようなものです。
💡 ヒント: デリゲート機構はHermesが複雑なタスクを処理するキーとなる能力です。メインエージェントがタスクを分解し、サブエージェントに割り当て、進捗を監視し、結果を集約して、並列で効率的に実行します。
📋 前提知識: 第7課 スキルシステム、第8課 ツールとツールセット
1. 学ぶ内容
| # | 内容 |
|---|---|
| ❶ | デリゲート機構の原理 |
| ❷ | サブエージェントの作成と設定 |
| ❸ | タスク分解と割り当て |
| ❹ | 並列実行と調整 |
| ❺ | 結果集約と品質チェック |
2. ストーリー
(1) 課題:大タスクの直列実行は遅すぎる
Bobがエージェントに大規模プロジェクトの分析を依頼。エージェントはファイルを順次レビューし、20ファイルで30分かかった。複数人で同時にレビューできないか?
(2) 解決策:サブエージェントへのデリゲートで並列処理
BASH
me: プロジェクト全体のコード品質をレビューして
Agent: プロジェクトには20ファイルあります。5つのサブエージェントを作成して並列レビューします:
🤖 Sub-Agent-1: src/api/ (4 files)
🤖 Sub-Agent-2: src/models/ (5 files)
🤖 Sub-Agent-3: src/utils/ (4 files)
🤖 Sub-Agent-4: src/views/ (4 files)
🤖 Sub-Agent-5: tests/ (3 files)
[並列実行中...] 8分で完了
📊 集約レポート:
- セキュリティ問題: 3件
- パフォーマンス問題: 5件
- 型の問題: 7件
- 提案: ...
3. デリゲート機構の原理
(1) メインエージェント → サブエージェントアーキテクチャ
graph TB
A[メインAgent] --> B[タスク分解]
B --> C1[サブAgent 1]
B --> C2[サブAgent 2]
B --> C3[サブAgent 3]
C1 --> D[結果集約]
C2 --> D
C3 --> D
D --> E[品質チェック]
E --> F[最終出力]
A -.->|監視| C1
A -.->|監視| C2
A -.->|監視| C3
(2) デリゲートタイプ
| タイプ | 説明 | シナリオ |
|---|---|---|
| 並列デリゲート | サブエージェントが同時実行 | 複数ファイルレビュー、複数ソース検索 |
| 直列デリゲート | サブエージェントが順次実行 | 依存関係のあるタスク |
| 条件付きデリゲート | 結果に基づいて次を決定 | 人の確認が必要なステップ |
| 再帰デリゲート | サブエージェントがさらにサブを作成 | 超大規模タスク |
4. サブエージェントの作成と設定
(1) 自動作成
BASH
# 会話中にデリゲートをトリガー
me: このリポジトリの全Pythonファイルのコード品質を分析して
Agent: 15個のPythonファイルを検出。3つのサブエージェントを作成して並列分析:
- サブエージェント "analyzer-1": 5ファイル処理
- サブエージェント "analyzer-2": 5ファイル処理
- サブエージェント "analyzer-3": 5ファイル処理
各サブエージェントの設定:
- モデル: gpt-4o-mini(コスト節約)
- ツール: fs_read, code_python
- スキル: python-quality-check
(2) 手動設定サブエージェント
YAML
delegate:
# サブエージェントテンプレート
sub_agent_template:
model: "gpt-4o-mini" # 小規模モデルでコスト節約
max_tokens: 2048
timeout: 120
# 使用可能ツール
tools:
- fs_read
- code_python
- web_search
# 使用可能スキル
skills:
- code-review
- test-runner
# デリゲート戦略
strategy:
max_sub_agents: 5 # 最大5サブエージェント
min_task_size: 1 # 各サブエージェント最低1タスク
cost_limit: 0.10 # 1回のデリゲート最大コスト
5. タスク分解と割り当て
(1) 自動分解
BASH
me: React 19、Vue 4、Svelte 5の最新機能を調査して
Agent: [タスク分解]
全タスク: 3フレームワークの調査
分解戦略: フレームワーク別に割り当て
🤖 Sub-Agent-1: React 19の調査
→ web_search("React 19 features")
→ web_scrape("react.dev/blog")
🤖 Sub-Agent-2: Vue 4の調査
→ web_search("Vue 4 features")
→ web_scrape("vuejs.org/blog")
🤖 Sub-Agent-3: Svelte 5の調査
→ web_search("Svelte 5 features")
→ web_scrape("svelte.dev/blog")
[並列実行...]
(2) カスタム分解ルール
YAML
delegate:
decomposition:
# ファイルタイプ別分解
- trigger: "プロジェクトをレビュー"
strategy: "by_file_type"
group_by: "extension"
# ディレクトリ別分解
- trigger: "リポジトリを分析"
strategy: "by_directory"
max_per_group: 10
# タスクタイプ別分解
- trigger: "調査"
strategy: "by_topic"
identify_entities: true
6. 並列実行と調整
(1) 実行監視
BASH
# デリゲート実行状態の確認
/delegate status
# 出力例:
# ┌─────────────┬──────────┬─────────┬──────────┐
# │ Sub-Agent │ Status │ Progress│ Cost │
# ├─────────────┼──────────┼─────────┼──────────┤
# │ analyzer-1 │ ✅ Done │ 5/5 │ $0.03 │
# │ analyzer-2 │ 🔄 Run │ 3/5 │ $0.02 │
# │ analyzer-3 │ ⏳ Wait │ 0/5 │ $0.00 │
# └─────────────┴──────────┴─────────┴──────────┘
(2) エラー処理
YAML
delegate:
error_handling:
on_sub_agent_fail: "retry" # retry / skip / abort
max_retries: 2
retry_delay: 5
on_timeout: "partial_result" # partial_result / abort
timeout_per_task: 120
on_cost_exceed: "warn" # warn / pause / abort
(3) 結果集約
BASH
Agent: [サブエージェント結果の集約]
📊 総合分析レポート
ソース: 3サブエージェント、計15ファイル分析
問題統計:
├── 🔴 重大: 2件
│ ├── api/auth.py: SQLインジェクションリスク
│ └── utils/crypto.py: ハードコードされたキー
├── 🟡 警告: 5件
└── 🔵 提案: 8件
優先修正: まず2件の重大問題を修正
予想修正時間: 30分
7. 高度なデリゲートシナリオ
(1) 再帰デリゲート
BASH
me: monorepo全体のコード品質を分析して
Agent: Monorepoに5つのパッケージがあります。5つのサブエージェントを作成:
各サブエージェントは内部でさらにディレクトリ別に分解...
🤖 Sub-Agent-frontend → 3つの孫エージェントを作成
🤖 Sub-Agent-backend → 4つの孫エージェントを作成
🤖 Sub-Agent-shared → 直接処理
🤖 Sub-Agent-infrastructure → 直接処理
🤖 Sub-Agent-tests → 2つの孫エージェントを作成
(2) 人機協調デリゲート
BASH
me: リリースフローを完了して
Agent: リリースフローには人の確認が必要です。ステップごとに実行します:
Step 1: [自動] コードレビュー → ✅ 合格
Step 2: [自動] テスト実行 → ✅ 合格
Step 3: [確認待ち] stagingにデプロイしますか?
me: 確認
Step 4: [自動] stagingデプロイ → ✅ 完了
Step 5: [確認待ち] productionにデプロイしますか?
me: 確認
Step 6: [自動] productionデプロイ → ✅ 完了
Step 7: [自動] チームに通知 → ✅ 完了
❓ よくある質問
Q サブエージェントとメインエージェントはメモリを共有しますか?
A 長期メモリとユーザーモデルは共有しますが、ワーキングメモリは独立しています。サブエージェントはユーザーの嗜好を知っていますが、メインの会話コンテキストは妨害しません。
Q サブエージェントは最大いくつ作成できますか?
A デフォルト最大5個。
delegate.strategy.max_sub_agentsで調整可能。多すぎるとコストと調整のオーバーヘッドが増加します。Q サブエージェントはどのモデルを使用しますか?
A デフォルトはgpt-4o-miniでコスト節約。メインエージェントと同じモデルに設定することも可能。
Q 並列実行で競合は発生しますか?
A ファイル書き込み操作は自動的にロックされ、並行競合を回避します。読み取り専用操作は制限なし。
Q デリゲートのコストはどう計算されますか?
A サブエージェントのToken消費は独立して計算されますが、メインアカウントに統合されます。
/delegate statusでリアルタイムに各サブエージェントのコストを確認可能。Q サブエージェントの失敗は全体に影響しますか?
A 設定によります。デフォルトでは失敗タスクをスキップし、完了分を集約します。全中止に設定することも可能。
📖 まとめ
- デリゲート機構:メインエージェントがタスク分解 → サブエージェントが並列実行 → 結果集約
- 4つのデリゲートタイプ:並列、直列、条件付き、再帰
- サブエージェントの独立設定:モデル、ツール、スキル、タイムアウト
- 自動分解:ファイルタイプ/ディレクトリ/トピック別にインテリジェントグループ化
- エラー処理:リトライ、スキップ、部分結果、コスト制御
📝 練習問題
- 基本(⭐): エージェントにデリゲート機構で3つの異なるトピックを並列検索させ、サブエージェントの作成と結果集約を観察してください。
- 中級(⭐⭐): サブエージェントに異なるモデル(gpt-4o-mini)を使用するよう設定し、コスト節約効果を確認し、直列実行との所要時間を比較してください。
- 上級(⭐⭐⭐): monorepoの全プロジェクトコードレビューを処理する再帰デリゲートスキームを設計し、エラー処理とコスト制御戦略を含めてください。