GitHub Repo
Hermes Agentの更新を阻む依存関係を修正、競合プラグインを無効化して理由を記録
Pythonのアップグレードと複数の設定プロファイル間の依存関係の競合に対処し、単一のプラグインがコアの更新を妨げないようにする修正。変更はメインブランチにマージ済みだが、ダウンロード失敗でもプラグインが無効化される可能性があるため、導入後に機能を確認する必要がある。

Hermes Agentは9月25日、互換性のないプラグインを依存関係のビルドから除外し、エージェント全体がアップグレード中に停止するのを防ぐ更新処理の修正をマージした。発端となったのは、サードパーティ製プラグインがPython 3.14未満を要求する一方、管理対象の新しいインタープリターが3.14にアップグレードされたケースだ。従来のコード切り替え後に環境を再構築できず、何度再試行しても失敗していた。[マージ記録](https://github.com/NousResearch/hermes-agent/pull/122103)
この問題は、依存関係を共有するアーキテクチャに関係している。Hermesのパッケージマネージャーは、コア、有効化された機能、プラグインの要件をまとめて解決する。同じインストールを共有する複数の設定プロファイルも、それぞれ依存関係を追加する。公式ドキュメントによると、新しい環境は準備と検証を経てから切り替えられるが、実行中のプロセスには再起動が必要な場合がある。そのため、プラグインの互換性は、エージェントが利用可能な環境を取得できるかどうかに直結する。[パッケージ管理のドキュメント](https://hermes-agent.nousresearch.com/docs/reference/package-management)
修正では、まずPythonのバージョンとプラグインのマニフェストのバージョンを確認する。それでもビルドに失敗する場合は、コアだけをビルドしてから、設定の順序に従ってプラグインを一つずつ追加し直し、依存関係の解決で競合するかビルドに失敗する項目を無効化する。コア自体をビルドできない場合は、引き続きエラーになる。つまり、2つのプラグインが互いに競合する場合、設定の順序によってどちらが残るかが変わる。通常のプラグイン有効化と依存関係の同期では、引き続き競合を拒否する。[修正の説明](https://github.com/NousResearch/hermes-agent/pull/122103)
プラグインを無効化すると、そのプラグインを有効にしているすべての設定プロファイルに影響し、メモリーサービスを提供するプラグインの場合は、関連するプロバイダー設定も削除される。ダウンロードやネットワークの失敗時には1回再試行し、それでも失敗すれば同様に無効化される可能性がある。一方、Hermesのバージョン範囲に合わないため除外されたプラグインは設定が保持され、バージョン条件を満たせば再び追加できる。こうした処置は更新記録に記載され、無効化された項目を再び有効にするには、互換性の確認が必要だ。[更新のドキュメント](https://hermes-agent.nousresearch.com/docs/getting-started/updating)
運用担当者にとって、この変更により単一のプラグインが更新を阻む可能性は下がるが、更新完了後もツールやメモリー機能が揃っているか確認する必要がある。まず `hermes pm status` の記録を確認し、プラグインに依存するタスクを実際に検証するとよい。なお、パッケージマネージャー自体にはプラグインコードのサンドボックス機能がない。[診断と制限事項](https://hermes-agent.nousresearch.com/docs/reference/package-management)
確認時点では、この修正はメインブランチに入り、公開リリースページの最新バージョンは9月24日付のv0.21.5だった。メインブランチを追うソースコードからのインストールと、安定版やデスクトップパッケージでは提供時期が異なる。導入前に実際のコミットバージョンを確認する必要がある。[リリース履歴](https://github.com/NousResearch/hermes-agent/releases)、[更新チャネル](https://hermes-agent.nousresearch.com/docs/getting-started/updating)