ebikinでTelegramが止まるといろいろつらい

 NVIDIAのskillSpectorをMCPで導入してもらって、TelegramのGatewayをリセットするように指示したら、チャットが止まっちゃった。

 あいたた、普段使っているインターフェイスが使えなくなるのは困る。

 ダメぽ。コンソールからの作業が必要っぽい。

 ゲイトウエイのステイタスは止まっている。

% hermes gateway status
Launchd plist: /Users/kinneko/Library/LaunchAgents/ai.hermes.gateway.plist
✓ Service definition matches the current Hermes install
✗ Gateway service is not loaded
Service definition exists locally but launchd has not loaded it.
Run: hermes gateway start

 手動で起動する。とくに起動にあたっての障害はないようだ。

% hermes gateway start
Could not find service "ai.hermes.gateway" in domain for uid: 501
↻ launchd job was unloaded; reloading service definition
✓ Service started
% hermes gateway status
Launchd plist: /Users/kinneko/Library/LaunchAgents/ai.hermes.gateway.plist
✓ Service definition matches the current Hermes install
✓ Gateway is supervised by launchd (PID 40031)
Auto-start at login and auto-restart on crash are available.

 v0.15.1のときには、普通に再起動できていたのだけれど。

 何が起きたのかな? ログを確認してみる。

tail -n 100 ~/.hermes/logs/gateway.log

 ログ上では /reset ではなく、MCP有効化の依頼を処理中にGatewayへ外部から SIGTERM が送られ、そのまま再起動されていない感じ。/reset の前に出したGateway再起動の指示が動作したようだ。

 大元の原因は、launchdがアンロード済みだったため再起動されていない感じね。

 これはどうやらバグらしい。mainで対応済みということだけど、類似の問題はいくつか報告されていて、まだ修正されていないっぽい。

hermes gateway restart on macOS (launchd) can leave gateway in stopped state · Issue #26198 · NousResearch/hermes-agent
https://github.com/NousResearch/hermes-agent/issues/26198

 OS: macOS 26.x (Sequoia)

 Hermes version: 0.13.0

 Gateway platform: Telegram

 Service manager: launchd (user domain)

 この問題が報告されたのは、v0.13.0で、v0.8.0にも類似の対応コードが入っているみたいだけど、他にもv0.13.0とかv0.14.0でも同様の問題が報告されている感じ。なんだかなー。macOSで使っている人が少ないのかな?

 ebikinのHermesは、このまえv0.19.1に上がったんだったっけかな? 最新は、2026年8月3日のv0.20.0のよう。上げた方がいいんだろうけど放置。末尾が".1"のが安定している気がするので。

 この時点では、ゲイトウエイを手動で再起動するしかない感じだ。しょうがないね。

 目的の導入したskillSpectorの状態を確認してみる。導入評価と実際の導入はebikinまかせで終わっている。

 「現在利用可能なスキルとMCPツールを確認して」と指示して、利用可能なMCPを調べさせると、すでに使えるようだ。

 SkillSpectorはこの会話でも利用可能です。

 以後は、SkillやMCPを入れる前に「これをSkillSpectorで検査して」と送ってくれれば、そのまま検査します。

 自動検査じゃないんかよ。

 「スキルやMCPを導入指示したときに自動で検査するようにして」と依頼する。

 自動検査ポリシーを保存しました。

 以後のルールは以下です。

  • 外部Skill・Skillリポジトリ・アーカイブ・MCPサーバー/ツールを導入・有効化・登録する前に必ず scan_skill を実行
  • 元のURL・Gitリポジトリ・アーカイブ・ローカルディレクトリを検査対象にする
  • 検査不能・不完全・safe_to_install: false なら導入しない
  • 検査モードと判定を報告する
  • MCPのソースが特定できない場合は、ソースURL等を取得してから検査する  SkillSpector MCP自体も、接続・ツール検出ともに成功しています。

 ただし、このポリシーはGateway起動時に読み込まれます。前回のような意図しない停止を避けるため、今はGatewayを再起動していません。安全に反映するため、今この場で短時間の再起動をしてよければ「再起動して」と送ってください。

 Telegramから指示したときだけ検査されても困るので、Gateway経由だけでなく、Hermes環境にMCPやスキルを導入する前に自動で検査するルールを作って自動で適用するように依頼する。

 設定しました。

 Gateway限定ではなく、HermesがSkill/MCPの導入操作を行う前の共通ルールとして保存しています。

 追加したルール

 新しいローカルSkill:

  • security/extension-install-security-gate

  • hermes skills list で enabled を確認済み(有効Skillは33件)  適用対象:

  • hermes skills install 相当のSkill導入

  • SkillのURL・Gitリポジトリ・アーカイブ・ソース追加

  • hermes mcp add 相当のMCP登録

  • MCPの有効化・更新・導入

  • HermesがツールやCLIを通じて行う、これらの操作  動作

 導入前に必ず以下を行います。

  1. 元のGit URL/配布URL/アーカイブ/ローカルディレクトリを特定
  2. SkillSpector の scan_skill で検査
  3. risk_score・深刻度・推奨・静的/LLM検査モードを報告
  4. 次の全条件を満たす場合だけ導入
  • safe_to_install: true
  • 実行成功
  • 走査率100%
  • 未検査・部分検査の構成要素がない
  1. npmパッケージ名だけ等、検査元が特定できなければ、ソースリポジトリ等を先に取得して検査。検査なしでは導入しません。  この安全ゲート自体もSkillSpectorで検証済みです。
  • リスクスコア:0
  • 判定:SAFE
  • 走査率:100%
  • 実行:成功
  • モード:静的検査のみ  (現在は意味解析LLMが未構成のため、その点は今後も検査結果の制約として明示します)

 また、Gateway向けの同じポリシーも agent.system_prompt に保存済みです。

 なお、Hermesを通さずに人が直接シェルで実行する任意の npm / uv / git コマンドまでをOSレベルで遮断するものではありません。

 まぁ、こんなもんかな。


オリジナル投稿:
ebikinでTelegramが止まるといろいろつらい|kinneko|pixivFANBOX
https://kinneko.fanbox.cc/posts/12374447