{
  "module": "hermes_gateway",
  "version": "1.0",
  "purpose": "Hermes AI Gateway — 运行在 246 Linux，为每个 Hermes Agent（莫荷、知微）提供 OpenAI 兼容 API 端点。Mohe 端口 8642，Zhiwei 端口 8643。",
  "ui_location": "F Tab → AI网关 → Hermes网关-莫荷 / Hermes网关-知微",

  "human_help": {
    "title": "Hermes AI 网关",
    "description": [
      "这是 Hermes Agent 的 API 服务器，提供 OpenAI 兼容的 /v1/chat/completions 接口。",
      "每个 Hermes Agent 对应一个独立的实例：莫荷（8642）和知微（8643）。",
      "Gateway 负责接收 LLM 请求、管理 session 上下文、调用底层 AI Provider。",
      "所有 Agent 间的消息路由和 AI 处理都通过 Hermes Gateway 完成。"
    ],
    "usage": [
      "状态在 F Tab 的 AI网关 层查看，健康检查通过 /v1/health 端点检测。",
      "如果状态 stopped：检查 systemd 服务 hermes-gateway@mohe 或 hermes-gateway@zhiwei",
      "查看日志：journalctl -u hermes-gateway@mohe -n 50 --no-pager"
    ],
    "troubleshooting": [
      "如果 Hermes 不回复消息：检查 Gateway 进程是否运行 — curl http://127.0.0.1:8642/v1/models",
      "如果 session 上下文丢失：检查是否误开了 session 自动重置（正常应关闭）",
      "如果 Provider 报错：检查 ~/.hermes/config.yaml 中的 provider 配置是否正确"
    ],
    "related": "依赖 ejabberd XMPP 服务器进行 Agent 间通信；依赖 AI Provider（如 ocg-new、volcengine）进行 LLM 推理"
  },

  "ai_spec": {
    "apis": [
      {"method": "GET", "path": "/v1/models", "returns": "模型列表", "desc": "查询可用模型"},
      {"method": "GET", "path": "/v1/health", "returns": "{ok, version, uptime}", "desc": "健康检查"},
      {"method": "POST", "path": "/v1/chat/completions", "body": "OpenAI chat completion 格式", "returns": "OpenAI 格式响应", "desc": "LLM 推理主端点"}
    ],
    "dependencies": [
      "ejabberd 192.168.1.246:5222 — XMPP 服务器",
      "AI Provider 配置 (ocg-new / volcengine)",
      "~/.hermes/config.yaml — 主配置"
    ],
    "constraints": [
      "每个 Gateway 实例绑定唯一端口（8642/8643），不可共享",
      "sisyphus session 永不自动重置，api_server session 可能自动重置",
      "Gateway 必须通过 systemd 管理（hermes-gateway@.service 模板）"
    ],
    "related_files": [
      "~/.hermes/config.yaml — 主配置",
      "deploy/linux/hermes-gateway@.service — systemd 模板",
      "gateway/scripts/specs/hermes_gateway.json — 本 spec"
    ]
  }
}
