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/skills、anthropics/skills、huggingface/skills、NVIDIA/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: 過去会話ログの検索・再開支援