コンテンツにスキップ
Dev Classmethod Jp Hermes Agent Self Improving Code Reading

Hermes Agent の self-improving をコードから読み込んでみた

  • URL: https://dev.classmethod.jp/articles/hermes-agent-self-improving-code-reading/
  • 日付: 2026-06-06
  • Tier: Tier 3
  • 要旨: Hermes Agent/NemoClaw/OpenShellの実装コードを読み、「self-improving」が何を指すかを解説。モデル重みの再学習ではなく、成功した作業手順を再利用可能な「skill」として保存・蓄積していく仕組みであることが判明。0.16.0では「育てる」より「御す」仕組みが強化された。

詳細

アーキテクチャ三層構造

  • Model層: Nemotron/vLLM(推論・生成)
  • Harness層: Hermes Agent(tool呼び出し、skill/memory/session search管理)
  • Runtime層: OpenShell(ファイル・ネットワークアクセスのpolicy制御)

self-improvingの実体

  • skill_manager_tool.pyのコメントに明示:「Allows the agent to create, update, and delete skills, turning successful approaches into reusable procedural knowledge」
  • skillは「~/.hermes/skills/{skill-name}/SKILL.md + 関連ファイル」として保存
  • メモリ(MEMORY.md)は宣言的な安定知識、skillは手順的・操作的な再利用知識

0.16.0の変更:「増やす」→「選んで畳む」

  • 環境フィルタ: frontmatterのenvironments:で環境ごとにskill一覧への表示を制御(明示ロードは通す)
  • curator(自動剪定): 一定期間未使用のskillを自動archive。built-in skillも既定で対象(hermes update後も抑制リストで復活しない)
  • hub-installed skillは剪定対象外

skillの信頼階層

  • Trusted repos(openai/skillsanthropics/skillshuggingface/skillsNVIDIA/skills)はdangerousのみblock
  • Community skillはsafeのみ通す
  • インストールフロー:fetch → quarantine → scan → confirm

セキュリティ対策

  • 不可視Unicode(zero-width space、bidi override等)をskillに含む場合はhigh severity injectionとして検出

memory vs session search

  • memory: MEMORY.md + USER.md、セッション開始時にsystem promptにfrozen snapshotとして注入(ミッドセッション更新はプレフィックスキャッシュ保全のためsystem promptには反映されない)
  • session search: 過去会話ログの検索・再開支援