チュートリアル22:サブエージェント委任
チュートリアル22:サブエージェント委任 — 公式ドキュメントに基づくわかりやすいガイド
これは Hermes Agent 公式チュートリアルシリーズの一部です。すべてのチュートリアルを見る
プロジェクトのチームリーダーになったと想像してみてください。全部自分でやることもできますが、それでは時間がかかります。代わりに、具体的なタスクをチームメンバーに割り振り、必要な詳細を伝え、報告を待ちます。Subagent 委譲 が Hermes Agent に対して行うのは、まさにこれです。メインエージェントが一時的な「ワーカー」を雇って、バックグラウンドでタスクを処理させることを可能にします。
ステップ 1: 基本概念を理解する
delegate_task を呼び出すと、Hermes は1つ以上の子エージェント(サブエージェント)を作成します。各子エージェントは以下の特徴を持ちます:
- 完全に新しい会話 を開始します — あなたのチャット履歴については何も知りません。
- 親エージェントと同じツールにアクセスできます。
- 独自の分離されたターミナルセッションで実行されます。
- 親エージェントには最終的な要約のみ を返します。
これは、同僚にテーマの調査を頼むようなものです。彼らはあなたの会議全体に出席するわけではありません。タスクとコンテキストが書かれたメモを渡すだけで、彼らはレポートを持って戻ってきます。
ステップ 2: 単一タスクを委譲する
最もシンプルなユースケース:1つのタスク、1つのサブエージェント。
delegate_task(
goal="Debug why tests fail",
context="Error: assertion in test_foo.py line 42"
)
goal はサブエージェントに何をすべきかを伝えます。context はそれを実行するために必要なすべての情報を提供します。
ステップ 3: 複数タスクを並列委譲する
複数のことを同時に処理する必要がありますか?タスクのリストを渡してください。デフォルトでは、Hermes は最大 3つのサブエージェントを並行して 実行します(これは変更可能です。ハードリミットはありません)。
delegate_task(tasks=[
{"goal": "Research topic A", "context": "Focus on recent primary sources"},
{"goal": "Research topic B", "context": "Compare the leading explanations"},
{"goal": "Fix the build", "context": "Project root: /home/user/project"}
])
各サブエージェントは独立して動作します。親エージェントはすべての完了を待ち、その後結果を統合します。
ステップ 4: 黄金律 — サブエージェントは何も知らない
これは最も重要なポイントなので、よく聞いてください:
サブエージェントは、あなたの会話についてゼロの知識から開始します。
「エラーを修正して」と、その「エラー」が何かを説明せずに言った場合、サブエージェントは途方に暮れてしまうでしょう。goal と context フィールドに必要なすべてのコンテキスト を渡す必要があります。
悪い例はこちら:
# BAD - subagent has no idea what "the error" is
delegate_task(goal="Fix the error")
そして、良いバージョン:
# GOOD - subagent has all context it needs
delegate_task(
goal="Fix the TypeError in api/handlers.py",
context="""The file api/handlers.py has a TypeError on line 47:
'NoneType' object has no attribute 'get'.
The function process_request() receives a dict from parse_body(),
but parse_body() returns None when Content-Type is missing.
The project is at /home/user/myproject and uses Python 3.11."""
)
context はブリーフィングドキュメントだと考えてください。具体的であればあるほど、サブエージェントの作業品質は向上します。
ステップ 5: 実際のワークフローで使用する
並列リサーチ
複数のトピックについて同時に情報を収集します:
delegate_task(tasks=[
{
"goal": "Research the current state of WebAssembly in 2025",
"context": "Focus on: browser support, non-browser runtimes, language support"
},
{
"goal": "Research the current state of RISC-V adoption in 2025",
"context": "Focus on: server chips, embedded systems, software ecosystem"
},
{
"goal": "Research quantum computing progress in 2025",
"context": "Focus on: error correction breakthroughs, practical applications, key players"
}
])
コードレビューと修正
レビューと修正の完全なジョブを、新しいコンテキストに引き継ぎます:
delegate_task(
goal="Review the authentication module for security issues and fix any found",
context="""Project at /home/user/webapp.
Auth module files: src/auth/login.py, src/auth/jwt.py, src/auth/middleware.py.
The project uses Flask, PyJWT, and bcrypt.
Focus on: SQL injection, JWT validation, password handling, session management.
Fix any issues found and run the test suite (pytest tests/auth/)."""
)
まとめ
サブエージェント委譲は、Hermes Agent で作業を並列化するための方法です。以下の重要なポイントを覚えておいてください:
delegate_taskを使用 して、単一タスクまたはタスクのバッチを処理します。- 常に完全なコンテキストを提供 します — サブエージェントはゼロから開始します。
- デフォルトで最大3つのサブエージェント が並行実行され、必要に応じて設定変更が可能です。
- 各サブエージェントは構造化された要約を返します — 実行した内容、発見した内容、変更したファイル、遭遇した問題など。
これは、あなたが伝えたことだけを知っているアシスタントチームを持つようなものです。だからこそ、彼らが必要とするすべてを伝えてください。
次のステップ: チュートリアル 23 — カンバン: マルチエージェントコラボレーションのための共有・永続ボード。
📖 公式ドキュメント
この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › user-guide/features/delegation