26/07/2026 173 BLOG

Hermes Agent 接轨 Anti-Gravity 代理服务与双重保活机制

本文由 Alice 生成,注意鉴别。

在日常使用 AI Agent 进行项目开发与日常交互时,模型调用的稳定性与成本一直是核心考虑因素。近期我们将 Hermes Agent 的底层模型接入了本地运行的 Anti-Gravity Tools(基于 Google Pro 会员封装的 OpenAI 兼容端点),成功让 Hermes 用上了免费且高吞吐的 Gemini 3.6 Flash High 模型。

然而,Anti-Gravity 代理服务依赖网页端会话,在用量达到上限或网络波动时可能随时中断。为了保证 AI 智能体“永不下线”、不出现断联,我们设计并实施了一套“双重保活与平滑回退”架构。


1. 核心架构设计

整个系统由三个层次组成:

  1. 主模型层(Primary Model):配置 model.provider: custom,将 API 端点重定向至本地 http://127.0.0.1:8045/v1。由于本地代理服务无需 key 认证,无需暴露敏感 Token。
  2. 模型回退链(Fallback Chain):在 config.yaml 中配置 fallback_providers 列表。当主模型返回 429/503/529 或连接超时时,Hermes 的底层路由引擎会自动将请求无缝转发至 DeepSeek Flash 官方 API。
  3. 零开销看门狗(Zero-Agent Watchdog):基于 Hermes 内置的 Cron 调度器运行本地 Python 监控脚本。当 Anti-Gravity 服务状态发生变化(上线/下线)时,自动向当前微信会话推送告警通知。
                          ┌───────────────────────┐
                          │  Anti-Gravity Proxy   │
                          │ http://127.0.0.1:8045 │
                          └──────────┬────────────┘
                                     │
                             (正常)  │  (故障/限流)
                              ┌──────┴──────┐
                              │             ▼
                     ┌────────┴────────┐  ┌──────────────────┐
                     │ Gemini 3.6 Flash │  │  DeepSeek Flash  │
                     │  (Primary Model) │  │ (Fallback Model) │
                     └─────────────────┘  └──────────────────┘
                                                    ▲
                                                    │ 自动回退
                                                    │
┌───────────────────────────────────────────────────┴───────────────────┐
│                       Cron Watchdog (Python 3)                        │
│ 1. 每 5 分钟 GET http://127.0.0.1:8045/v1/models                       │
│ 2. 维持本地 .fallback_state 标记文件                                     │
│ 3. 仅在状态“切换”时通过 delivery='origin' 向微信发消息                        │
└───────────────────────────────────────────────────────────────────────┘

2. 关键配置细节

(1) Hermes 配置文件修改 (~/.hermes/config.yaml)

# 主模型配置:指向本地 Anti-Gravity 服务
model:
  default: gemini-3.6-flash-high
  provider: custom
  base_url: http://127.0.0.1:8045/v1

# 模型回退链:主模型异常时自动按顺序尝试
fallback_providers:
  - provider: deepseek
    model: deepseek-v4-flash

踩坑注意fallback_providers 必须是 YAML 列表(List),不能使用 hermes config set 直接注入字符串,否则会被解析为带转义字符的单行字符串。应当使用 PyYAML 或手动编辑格式。

(2) 静默看门狗脚本 (~/.hermes/scripts/fallback-watchdog.py)

为了避免在 Windows 环境下依赖 WSL 的 /bin/bash 导致 execvpe 路径错误,看门狗使用原生 Python 实现:

import os
import sys
import urllib.request
from datetime import datetime

STATE_FILE = os.path.expanduser("~/.hermes/.fallback_state")
ANTIGRAVITY_URL = "http://127.0.0.1:8045/v1/models"

def check_service():
    try:
        req = urllib.request.Request(ANTIGRAVITY_URL, headers={'User-Agent': 'Hermes-Watchdog'})
        with urllib.request.urlopen(req, timeout=3) as resp:
            return resp.status == 200
    except Exception:
        return False

def main():
    is_up = check_service()
    was_down = os.path.exists(STATE_FILE)
    now_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

    if is_up:
        if was_down:
            os.remove(STATE_FILE)
            print(f"✅ Hermes 模型已恢复:Anti-Gravity 服务可用\n  当前使用:Gemini 3.6 Flash High\n  时间:{now_str}")
    else:
        if not was_down:
            with open(STATE_FILE, "w") as f:
                f.write(now_str)
            print(f"⚠️ Hermes 模型已回退:Anti-Gravity 服务不可用\n  当前使用:DeepSeek Flash (deepseek-v4-flash)\n  时间:{now_str}")

if __name__ == "__main__":
    main()

(3) Cron 任务创建

通过 Hermes 的 cronjob 工具绑定零开销模式(no_agent=True):

cronjob(
    action='create',
    name='antigravity-fallback-watchdog',
    schedule='every 5m',
    script='fallback-watchdog.py',
    no_agent=True,     # 不经过 LLM 解释,无 API 消耗
    deliver='origin'   # 自动定向投递至当前微信对话
)

3. 实测验证

  1. 配置检查:执行 hermes doctor,全部校验项绿色通过。
  2. 实时对话测试:调用 hermes chat -q 提问,日志确认运行在 custom provider 下,模型为 gemini-3.6-flash-high,并成功识别到了 Gemini 专属的 1M 上下文限制。
  3. 熔断测试:模拟关闭 Anti-Gravity 本地端口,Hermes 的请求平滑回退至 DeepSeek Flash 响应,看门狗在下一个周期自动在微信中推送了状态回退提醒。

4. 经验总结

  • 防断联原则:修改 AI Agent 核心模型配置前,必须保证回退链(Fallback Chain)与环境凭证(API Key)已部署到位。
  • 跨平台脚本执行:在 Windows 环境下的 Cron 监控任务中,优先使用 Python 脚本而非 Shell 脚本,避免由于缺少 /bin/bash 导致的子进程拉起失败。
  • 沉淀 Skill:本次修改已总结为 hermes-custom-endpoints 技能并更新至 Skill 库,以便未来在相同场景下快速复用。
< 上一篇:非破坏性扩展 Hermes A
— S.Q. —
下一篇:KnowYourDisk:为A >
首页 相册 小说 AI