🤖HermesBlog
Hermes 公式チュートリアル · パート 228/9/2026

チュートリアル22:サブエージェント委任

チュートリアル22:サブエージェント委任 — 公式ドキュメントに基づくわかりやすいガイド

これは Hermes Agent 公式チュートリアルシリーズの一部です。すべてのチュートリアルを見る

プロジェクトのチームリーダーになったと想像してみてください。全部自分でやることもできますが、それでは時間がかかります。代わりに、具体的なタスクをチームメンバーに割り振り、必要な詳細を伝え、報告を待ちます。Subagent 委譲 が Hermes Agent に対して行うのは、まさにこれです。メインエージェントが一時的な「ワーカー」を雇って、バックグラウンドでタスクを処理させることを可能にします。


Hermes tutorial

ステップ 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: 黄金律 — サブエージェントは何も知らない

これは最も重要なポイントなので、よく聞いてください:

サブエージェントは、あなたの会話についてゼロの知識から開始します。

「エラーを修正して」と、その「エラー」が何かを説明せずに言った場合、サブエージェントは途方に暮れてしまうでしょう。goalcontext フィールドに必要なすべてのコンテキスト を渡す必要があります。

悪い例はこちら:

# 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