3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🧬 ゚ヌゞェントが自らを進化させる時代ぞ ─ Hermes Agent Self-Evolution で孊ぶ DSPy + GEPA による自己改善パむプラむン

3
Last updated at Posted at 2026-04-15

image.png

📖 はじめに

LLM ゚ヌゞェントを運甚されおいる方なら、䞀床はこう感じたこずがあるのではないでしょうか。

  • 🀔「このスキルSKILL.md、なんずなく動くけど本圓にベストな曞き方なのか」
  • 😵‍💫「システムプロンプトを少し倉えたら劇的に粟床が䞊がった。でも、その『少し』を手で探すのが限界に来おいる」
  • 🧩「ツヌル蚘述を盎すず別のタスクで゚ヌゞェントが間違ったツヌルを遞ぶようになる。党䜓最適の方法がわからない」

これらの悩みを、評䟡デヌタセット + 進化的探玢 + ガヌドレヌル ずいう枠組みで自動化しおしたおうずいうのが、本蚘事で玹介する NousResearch/hermes-agent-self-evolution です。

⚒ ひずこずで蚀うず
「Hermes Agent ずいう゚ヌゞェントを、別プロセスの最適化パむプラむンで 継続的に進化させる ための OSS」です。察象リポゞトリには䞀切觊らず、改善結果は PR ずしお提出 されるため、人間のレビュヌを介しお安党に取り蟌めたす。

本蚘事では、リポゞトリの README ず PLAN.md を粟読しながら、その思想・アヌキテクチャ・䜿い方・ガヌドレヌル蚭蚈たでを䞁寧にひも解いおいきたす。゚ヌゞェント開発に携わる方、あるいは自䜜゚ヌゞェントを持っおいる方の蚭蚈ヒントになれば幞いです。


🌱 背景なぜ「゚ヌゞェントの自己改善」が難しいのか

手䜜業チュヌニングの限界

LLM ゚ヌゞェントは、次のような耇数の芁玠が組み合わさっお動䜜しおいたす。

芁玠 圹割 兞型的なサむズ
🧟 システムプロンプト ゚ヌゞェントの人栌・方針・曞匏を芏定する 数千〜数䞇トヌクン
📘 スキルSKILL.md 特定タスクの手順を宣蚀的に蚘述した指瀺曞 1〜15 KB 皋床
🔧 ツヌル蚘述 各ツヌルの description フィヌルド。遞択の根拠になる 数癟文字
🛠 ツヌル実装コヌド 実際にファむル操䜜や怜玢を行う Python 等の関数 数十〜数癟行

どれか 1 ぀を調敎しおも、他の芁玠ずの盞互䜜甚が倉わるため、経隓豊富な゚ンゞニアでも「詊行錯誀で䜓感を頌りに調敎する」以䞊のこずは難しいのが珟実です。

埓来アプロヌチの課題

䞊の図が瀺すように、「なぜ倱敗したか」を開発者の䞻芳で掚枬するルヌプに䟝存しおいるのが埓来手法の本質的な課題です。倱敗理由の特定には経隓ず時間が芁り、改善の属人性が高くなりたす。

RL匷化孊習ではだめなのか

「じゃあ RL で最適化すれば」ずいう発想は自然ですが、以䞋の理由でハヌドルが高い領域です。

  • 🖥 GPU コストファむンチュヌニングは GPU クラスタが必芁で、数䞇ドル芏暡になりがちです
  • 📉 サンプル効率RL は倧量の詊行を芁求するため、API ベヌスの゚ヌゞェントだず金額が跳ね䞊がりたす
  • 🔒 ベヌスモデルの固定商甚 API モデルClaude, GPT などは重みを盎接孊習できたせん

そこで泚目されおいるのが、「重みではなくテキストプロンプト・スキル・コヌドを進化させる」 ずいうアプロヌチです。これが本 OSS の出発点になりたす。


🧬 Hermes Agent Self-Evolution ずは

プロゞェクト抂芁

NousResearch/hermes-agent-self-evolution は、Nous Research が公開した MIT ラむセンス の OSS で、説明文にはこう曞かれおいたす。

"Evolutionary self-improvement for Hermes Agent — optimize skills, prompts, and code using DSPy + GEPA"
Hermes Agent のための進化的自己改善 ─ DSPy + GEPA を䜿っおスキル、プロンプト、コヌドを最適化する

最倧の特城は 「GPU 孊習なし」 ずいう点です。すべおが API 呌び出しず、テキストの倉異・評䟡・遞択だけで完結するため、1 回の最適化ランは $2〜$10 皋床で枈むず README に明蚘されおいたす。

䜍眮づけhermes-agent の「倖偎」で動く

ポむントは、察象である゚ヌゞェント本䜓hermes-agentのリポゞトリを 䞀切倉曎しない こずです。この OSS はスタンドアロンの最適化ツヌルずしお動䜜し、改善結果は Git ブランチ + PR の圢で察象リポゞトリに提案されたす。

✅ 蚭蚈䞊のメリット

  • 察象゚ヌゞェントに䟝存コヌドを泚入しないので、本番皌働䞭の゚ヌゞェントを壊すリスクがれロ
  • PR ベヌスなので 人間のレビュヌが必ず入る
  • 改善ランの成吊に関わらず、察象リポゞトリは垞にクリヌンな状態

🔬 コア技術DSPy + GEPA を理解する

本 OSS の心臓郚は DSPy + GEPA ずいう組み合わせです。それぞれ簡単に敎理しおおきたしょう。

DSPy ずは䜕か

DSPy は Stanford NLP が開発した、「LLM プログラムを宣蚀的に構築し、自動最適化する」 ためのフレヌムワヌクです。プロンプトを文字列ずしお盎接曞く代わりに、Signature入出力の型ず Module掚論の構造で蚘述したす。これにより、プロンプト本文や Few-shot 䟋が最適化可胜なパラメヌタずしお扱えるようになりたす。

GEPA ずは䜕か

GEPAGenetic-Pareto Prompt Evolution は、DSPy に統合された比范的新しい最適化噚で、ICLR 2026 Oral 採択の技術です。最倧の差別化ポむントは以䞋です。

🧠 GEPA の本質的な匷み
埓来のプロンプト最適化噚は「スコアが䞊がった䞋がった」ずいう結果だけを芋おいたした。GEPA は 実行トレヌスagent trajectory を読み、なぜ倱敗したのかを蚀語的に理解した䞊で、タヌゲットを絞った倉異を提案したす。

むメヌゞずしおは以䞋のようなサむクルです。

3 ぀の倉異戊略゚ンゞン構成

PLAN.md によるず、本 OSS では 3 ぀の最適化゚ンゞンが甚途別に䜿い分けられたす。

゚ンゞン 䜕を最適化するか ラむセンス 本 OSS での圹割
🧠 DSPy + GEPA スキル、プロンプト、ツヌル蚘述 MIT 䞻力。Python ネむティブ統合
🧬 Darwinian Evolver コヌドファむル、アルゎリズム AGPL v3 コヌド進化甚、倖郚 CLI 経由のみ
📐 DSPy MIPROv2 Few-shot 䟋、指瀺テキスト MIT GEPA のフォヌルバック

AGPL v3 である Darwinian Evolver は 倖郚 CLI ずしおのみ 呌び出すよう切り分けられおおり、本 OSS 本䜓のラむセンスMITを汚染しない蚭蚈になっおいたす。このラむセンス分離は、実務で OSS を採甚する際に芋逃せない配慮です。


🏗 最適化察象の 4 階局Tier 1〜4

PLAN.md では、改善察象を「䟡倀」ず「リスク」の 2 軞で 4 ぀の Tier に敎理しおいたす。䞋䜍 Tier ほどロヌリスク、䞊䜍ほどハむリタヌン・ハむリスクずいう階局構造です。

Tier 1 : スキルファむル最高の ROI

タヌゲットSKILL.md のような手順曞圢匏のテキスト

なぜここから始めるのか

  • スキルは玔粋なテキストなので倉異が容易
  • 「このスキルに埓っお実行した結果、タスクが成功したか」が盎接枬定できるため評䟡が玠盎
  • 壊れおも圱響範囲がそのスキル内に閉じる

具䜓䟋PLAN.md より

github-code-review スキルを、既知のコヌドレビュヌのデヌタセットに察しお評䟡し、
より良いレビュヌが出力されるよう GEPA で進化させる

Tier 2 : ツヌル蚘述分類問題ずしおの最適化

タヌゲット各ツヌルの description フィヌルド

ツヌル遞択は本質的に 分類問題 です。䞎えられたタスクに察しお、゚ヌゞェントが適切なツヌルを遞べるかどうかが評䟡指暙になりたす。

📌 䟋search_files の description を進化させお、terminal(grep) ではなくこちらが遞ばれる確率を䞊げる

Tier 3 : システムプロンプトの構成芁玠

ここから先は 高リタヌン・高リスク ゟヌンです。システムプロンプトの品質ぱヌゞェントの挙動党䜓を巊右するため、改善むンパクトは非垞に倧きい䞀方で、プロンプトキャッシュを壊すリスクがありたす。

⚠ 泚意ポむント
システムプロンプトはキャッシュ察象であるこずが倚いため、䌚話の途䞭で曞き換えないこずが必須です。本 OSS は オフラむンでのみ最適化し、新バヌゞョンずしおデプロむする方針を取っおいたす。

Tier 4 : ツヌル実装コヌドの進化

タヌゲットPython などで曞かれたツヌル実装そのもの

手法Darwinian Evolver の GitBasedOrganism を䜿い、コヌドを遺䌝子のように進化させ、pytest ず batch_runner で評䟡したす。

🛑 最倧のリスク
コヌド倉曎はアプリを壊したす。そのため 匷力なテストスむヌト がガヌドレヌル前提条件になりたす。テストが貧匱な領域では Tier 4 に手を出すべきではありたせん。


🔁 アヌキテクチャ最適化ルヌプの党䜓像

PLAN.md では、6 ステップからなる最適化ルヌプが定矩されおいたす。党䜓像を図にするず次の通りです。

ステップ詳解

1⃣ タヌゲット遞択

最適化察象スキル、プロンプト断片、ツヌル蚘述のいずれかを 1 ぀遞び、その「珟圚版」をベヌスラむンずしおロヌドしたす。

2⃣ 評䟡デヌタセット構築

これが実は最重芁ステップです。評䟡が甘いず、どれだけ最適化噚が優秀でも意味のない方向に進化したす。

本 OSS では以䞋の 3 ぀の゜ヌスを䜿い分けられるようになっおいたす。

  • 📌 SessionDB マむニングHermes の hermes_state.py が保持する実セッションから抜出
  • 🀖 合成生成匷力な LLM にスキルを読たせおテストケヌスを䜜らせる
  • ✍ ゎヌルデンセット人間が手でキュレヌションした高品質デヌタ

3⃣ DSPy Module ずしおラッピング

SKILL.md などの「テキスト」を、DSPy から最適化可胜な Module に倉換する局が evolution/skills/skill_module.py に実装されおいたす。このラッパヌの圹割は以䞋の通りです。

# 抂念コヌド実装むメヌゞ
class SkillModule(dspy.Module):
    def __init__(self, skill_text: str):
        self.skill = skill_text  # ← これが最適化察象

    def forward(self, task):
        # スキルをシステムプロンプトずしお泚入し、タスクを実行
        return run_agent(system=self.skill, user=task)

4⃣ 最適化噚の実行

GEPA を䞻軞に、必芁に応じお MIPROv2ベむズ最適化ベヌスや Darwinian Evolver が遞ばれたす。README のクむックスタヌトでは --iterations 10 がデフォルト䟋ずしお瀺されおおり、5〜10 むテレヌション皋床で実行するのが兞型のようです。

5⃣ 評䟡・比范

単に「ベンチ䞊のスコアが䞊がった」だけでなく、以䞋を総合評䟡したす。

指暙 意味
✅ 粟床 そもそもタスクが成功するか
💰 コスト 最適化版の 1 実行あたり API 課金
⏱ レむテンシ 応答時間の悪化がないか
📊 統蚈的有意性 スコア差が偶然でないか

6⃣ デプロむ承認付き

ガヌドレヌルをすべお通過した最良バリアントのみが、Git ブランチにコミットされ PR 自動生成 たで走りたす。ロヌルバックは単なる git revert で枈むため、運甚䞊のリスクも抑えられたす。


🛡 ガヌドレヌル安党に進化させるための 5 ぀の関門

自動進化は匷力ですが、「匷力すぎるず䜕が起きるかわからない」ものの代衚栌です。本 OSS では以䞋の 5 段階ガヌドレヌル で安党性を担保しおいたす。

それぞれの関門の意図

  1. フルテスト通過pytest tests/ -q が 100% グリヌンであるこず。コヌド進化Tier 4の堎合は死掻的に重芁です
  2. サむズ䞊限スキルは 15KB、ツヌル蚘述は 500 文字以内。肥倧化しおコンテキストを圧迫しない ための制玄です
  3. キャッシュ敎合性䌚話の途䞭で内容が倉わっおはいけないプロンプトキャッシュが砎壊される
  4. 意味保存最適化の過皋で本来の目的から逞脱する「スペック・ドリフト」を防ぐ
  5. PR レビュヌ盎接コミットは絶察にしない。すべおの倉曎は人間の承認を経る

🔒 このあたりは本番採甚の必須条件
自動改善パむプラむンを導入する際、「テスト」「サむズ」「レビュヌ」の 3 ぀は必ず自分の環境でも甚意しおください。これらが無い状態で自動進化を回すず、静かに劣化が蓄積しお気付いた時には戻せない状態になりたす本 OSS はそれを防ぐ構成を瀺しおくれおいたす。


🚀 クむックスタヌト

README のクむックスタヌトをベヌスに、実行の流れを芋おいきたしょう。

むンストヌル

# クロヌンしお editable install
git clone https://github.com/NousResearch/hermes-agent-self-evolution.git
cd hermes-agent-self-evolution
pip install -e ".[dev]"

# 察象である hermes-agent リポゞトリの堎所を指定
export HERMES_AGENT_REPO=~/.hermes/hermes-agent

HERMES_AGENT_REPO は「どの゚ヌゞェントを改善するのか」を指す環境倉数です。゚ヌゞェント本䜓には觊れず、読み取り + PR 提出の起点ずしおだけ䜿われたす。

スキルを進化させる合成デヌタ版

python -m evolution.skills.evolve_skill \
    --skill github-code-review \
    --iterations 10 \
    --eval-source synthetic
  • --skill進化させたいスキル名github-code-review など
  • --iterationsGEPA の䞖代数。README では 5〜10 が掚奚
  • --eval-source synthetic評䟡デヌタを匷モデルで自動生成

実セッション履歎から孊ばせる

python -m evolution.skills.evolve_skill \
    --skill github-code-review \
    --iterations 10 \
    --eval-source sessiondb

--eval-source sessiondb にするず、Claude Code・Copilot・Hermes などのセッション履歎から評䟡デヌタを抜出したす。実ナヌザの倱敗パタヌンを盎接孊習できるため、合成デヌタよりも効果的であるこずが倚いでしょう。

他フェヌズの CLI

PLAN.md には、Phase 2〜4 甚の CLI も構想ずしお蚘茉されおいたす。

# Phase 2: ツヌル蚘述の最適化
python -m evolution.tools.evolve_tool_descriptions \
    --iterations 5 \
    --benchmark-gate tblite-fast

# Phase 3: システムプロンプトの䞀郚を最適化
python -m evolution.prompts.evolve_prompt_section \
    --section MEMORY_GUIDANCE \
    --iterations 5

# Phase 4: ツヌル実装コヌドの進化Darwinian Evolver CLI 経由
python -m evolution.code.evolve_tool_code \
    --tool file_tools \
    --bug-issue 742 \
    --iterations 10

📝 珟時点のステヌタス2026 幎 4 月時点の README より

フェヌズ 察象 状態
Phase 1 スキルファむル ✅ 実装枈み
Phase 2 ツヌル蚘述 🔲 蚈画䞭
Phase 3 システムプロンプト 🔲 蚈画䞭
Phase 4 ツヌル実装コヌド 🔲 蚈画䞭
Phase 5 連続改善ルヌプ 🔲 蚈画䞭

実利甚できるのは珟状 Phase 1スキル進化のみずいう点に泚意しおください。Phase 2 以降はロヌドマップずしお蚭蚈意図が瀺されおいる段階です。


🗺 フェヌズ別ロヌドマップ

PLAN.md は、単に「機胜䞀芧」ではなく 段階的にリスクを䞊げおいく進化戊略 を取っおいたす。各フェヌズ間には必ず Validation Gate怜蚌ゲヌト が挟たり、「本圓に改善したか」を確認しおから次に進みたす。

各フェヌズの Done 基準

Phase 1スキル進化の完了条件

PLAN.md には具䜓的な完了基準が明文化されおいたす。

  • ✅ 少なくずも 1 ぀のスキルが評䟡デヌタセット䞊で 10% 以䞊の改善
  • ✅ TBLite ベンチマヌクのスコアが 2% 以内 に収たる退化しおいない
  • ✅ 進化版スキルの diff が 人間レビュアヌにずっお意味が通る
  • ✅ パむプラむンが 任意のスキルに再利甚可胜

「ベンチマヌクの非退化」ずいう条件が含たれおいるこずに泚目しおください。特定タスクで䌞びおも党䜓が劣化しおは意味がないずいう、党䜓最適の芖点が埋め蟌たれおいたす。

Timeline Overview

Phase 内容 期間 ゲヌト条件
Phase 1 スキル進化 3-4 週 ≥1 スキル改善、ベンチ退化なし
Phase 2 ツヌル蚘述 2-3 週 ツヌル遞択粟床向䞊
Phase 3 システムプロンプト 2-3 週 挙動テスト通過、ベンチ維持
Phase 4 コヌド進化 3-4 週 バグ修正、テスト通過、ベンチマヌク維持
Phase 5 連続改善ルヌプ 2 週 無人パむプラむン皌働

合蚈で 13〜17 週間 が芋蟌たれおいたすが、PLAN.md にはこう明蚘されおいたす。

"No obligation to do all five.すべおをやる矩務はない"

぀たり、Phase 1 や 2 で十分な ROI が埗られたらそこで止めおよい ずいう姿勢です。過剰゚ンゞニアリングを避ける思想が感じられたす。


🧩 hermes-agent 偎ずの統合点

本 OSS は hermes-agent の 既存むンフラ を読み取り専甚で掻甚したす。どのコンポヌネントが、どう䜿われるのかを敎理しおおきたしょう。

hermes-agent のコンポヌネント 本 OSS での圹割
batch_runner.py 評䟡ハヌネス。䞊列で゚ヌゞェントを走らせる
agent/trajectory.py 実行トレヌス取埗。GEPA のリフレクションに必須
hermes_state.pySessionDB 実セッション履歎 のマむニング元
skills/ ディレクトリ 䞻芁な最適化タヌゲット
tools/registry.py ツヌル蚘述の取埗元
agent/prompt_builder.py システムプロンプト断片の取埗元
tests/ ガヌドレヌルテスト通過が必須
Git 履歎 進化の系譜を蚘録、ロヌルバック基盀

このように、Hermes が既に持っおいるむンフラを 「最適化のために転甚する」 ずいう筋の通った蚭蚈です。新芏に評䟡基盀を構築する必芁がなく、既存の batch_runner や tests がそのたた 進化の゚ンゞン ずしお働きたす。


💡 他の゚ヌゞェントぞ応甚するには

「これ自分の䜜った゚ヌゞェントにも応甚できる」ず思われた方ぞ、移怍の勘所を敎理しおおきたす。

必芁な前提条件

これらが揃っおいない堎合、たずは 評䟡基盀の敎備 から始めるこずを匷くお勧めしたす。「䜕が良い゚ヌゞェントか」を枬れないず、いくら進化させおも方向がわかりたせん。

応甚時の泚意点

  • 🔐 コスト管理を先に蚭蚈進化ランは安いずはいえ $10 皋床/回。自動で回すなら䞊限を蚭ける
  • 🧪 評䟡デヌタの質が肝README が --eval-source sessiondb を掚奚するのは「実デヌタの方が匷い」ずいう経隓則の反映
  • 🎯 Tier 1 から始めるいきなりコヌド進化Tier 4を詊さず、スキル進化で手応えを掎んでから䞊䜍 Tier ぞ

🀔 考察䜕が本質的に新しいのか

この OSS が瀺す最倧のメッセヌゞは、「゚ヌゞェント改善を゜フトりェア工孊に萜ずし蟌めるようになった」 ずいう点です。

芳点 埓来 本 OSS の提案
改善の単䜍 人間の経隓 評䟡デヌタセット䞊のスコア
倱敗の分析 䞻芳的な原因掚枬 実行トレヌスのリフレクション
倉曎のデプロむ 手動線集 → 即反映 PR + テスト通過 + レビュヌ
ロヌルバック 難しい蚘憶頌み git revert 䞀発
コスト感芚 枬定しない 1 ラン $2〜$10

぀たり、「プロンプト゚ンゞニアリング」ずいう 職人芞 の領域に、CI/CD・テスト・PR レビュヌずいった ゚ンゞニアリングの芏埋 を持ち蟌んでいるのです。

限界ず課題

もちろん䞇胜ではありたせん。

  • 📉 評䟡デヌタセットが䜜れない領域では効かない䞻芳的な「䌚話の品質」などは自動評䟡が困難です
  • 🌪 探玢空間が広すぎる課題には䞍向きたったくれロからスキルを曞き起こすような甚途は想定倖
  • 💞 むテレヌション数ずコストのトレヌドオフ5〜10 回で十分な改善が埗られないず、無限に回すこずはできたせん
  • 🧬 Darwinian Evolver の AGPL ラむセンスTier 4 を䜿う際は、商甚クロヌズド゜ヌス補品ぞの取り蟌み方に泚意

🎯 たずめ

本蚘事では、Nous Research が公開した OSS hermes-agent-self-evolution を題材に、LLM ゚ヌゞェントの自己改善パむプラむンの蚭蚈思想を詳しく芋おきたした。

芁点を振り返りたす。

  • 🧬 GPU 孊習なし・API のみで、スキル・プロンプト・ツヌル・コヌドを進化可胜
  • 🧠 DSPy + GEPA が「なぜ倱敗したか」を実行トレヌスから読み解き、タヌゲット倉異を提案
  • 🏗 4 Tier × 5 Phase で段階的にリスクを䞊げる蚭蚈スキル → ツヌル蚘述 → プロンプト → コヌド
  • 🛡 5 ぀のガヌドレヌルテスト、サむズ、キャッシュ敎合性、意味保存、人間レビュヌ
  • 💰 1 ラン $2〜$10 ずいう珟実的なコスト感

珟時点では Phase 1スキル進化のみが実装枈みですが、思想ずアヌキテクチャは十分に流甚可胜です。自䜜゚ヌゞェントに 進化的自己改善の発想 を持ち蟌む第䞀歩ずしお、ぜひリポゞトリを眺めおみおください。

💬 最埌に
「゚ヌゞェントが自らを改善する」ずいうテヌマは 2020 幎代前半たで SF でした。しかし GEPA のような技術の登堎で、これは ゜フトりェア工孊の地続きの話題 になりたした。本 OSS はその転換点を象城する存圚の䞀぀だず蚀えそうです。


📚 参考

  • NousResearch/hermes-agent-self-evolution — 本蚘事で扱った OSS 本䜓
  • NousResearch/hermes-agent — 最適化察象である Hermes Agent 本䜓
  • DSPy — Stanford NLP の LLM プログラミングフレヌムワヌク
  • GEPA (Genetic-Pareto Prompt Evolution) — ICLR 2026 Oral 採択の進化的プロンプト最適化
  • Darwinian Evolver — Git ベヌスのコヌド進化゚ンゞン
  • PLAN.md䞊蚘リポゞトリ内— アヌキテクチャずフェヌズ蚭蚈の原文
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?