系统架构总览
这是当前系统的完整架构记录——不是”推荐方案”,是”实际就是这么跑的”。
┌─────────────────────────────────────────────────────────┐│ WSL2 / Ubuntu 宿主机 ││ ││ ┌──────────────────────────────────────────────────┐ ││ │ Docker 容器网络 │ ││ │ │ ││ │ ┌──────────────────────┐ ┌──────────────────┐ │ ││ │ │ Hermes Agent │ │ mihomo 代理 │ │ ││ │ │ ├── CLI / TUI │ │ (Clash Meta) │ │ ││ │ │ ├── Gateway │ │ 127.0.0.1:7890 │ │ ││ │ │ ├── Cron 调度 │ └──────────────────┘ │ ││ │ │ └── Skills 系统 │ │ ││ │ └────────┬─────────────┘ │ ││ │ │ │ ││ │ ┌────────┴─────────────┐ │ ││ │ │ 本地服务 │ │ ││ │ │ ├── Hindsight Lite │ │ ││ │ │ │ (记忆系统) │ │ ││ │ │ ├── faster-whisper │ │ ││ │ │ │ (语音转文字) │ │ ││ │ │ └── LM Studio │ │ ││ │ │ (本地模型推理) │ │ ││ │ └──────────────────────┘ │ ││ └──────────────────────────────────────────────────┘ ││ ││ ┌──────────────────────────────────────────────────┐ ││ │ NVIDIA GPU (RTX 5070 Ti · 12GB) │ ││ │ ├── faster-whisper 推理 │ ││ │ └── LM Studio 本地模型 │ ││ └──────────────────────────────────────────────────┘ │└─────────────────────────────────────────────────────────┘ │ │ ▼ ▼ ┌──────────┐ ┌──────────┐ │ 微信 iLink │ │ 海外 AI │ │ 服务器 │ │ API │ │ (国内直连) │ │ (走代理) │ └──────────┘ └──────────┘模型架构(MoE 式多模型路由)
Section titled “模型架构(MoE 式多模型路由)”不是用一个模型包办所有事。不同任务走不同模型:
| 角色 | 模型 | 走 | 用量 | 负责 |
|---|---|---|---|---|
| 主干 | DeepSeek V4 Flash | DeepSeek 官方 | ~80-90% | 日常对话、大部分工具调用 |
| 攻坚 | Claude Opus / GPT-5 / Gemini Pro | 各渠道 | ~5-10% | 复杂推理、架构决策、代码重构 |
| 编码 | GPT-5.5 | Codex CLI | 按需 | 写代码、修 bug |
| 视觉 | Qwen-VL / Gemini | 各渠道 | 按需 | 图片识别 |
| 本地 | LM Studio 模型 | 本地 GPU | 按需 | 后台任务、离线场景 |
# 核心策略:# - 简单问题 → DeepSeek(便宜、快)# - 复杂问题 → Claude/GPT(贵但靠谱)# - 编码任务 → Codex(代码专用)# - 图片识别 → 视觉模型(多后端自动 fallback)# - 本地任务 → LM Studio(不走外网)这个路由策略不是写在配置里的固定规则——是在使用中形成的经验判断。Hermes 没有自动路由,手动切换模型。
┌─────────────┐ Hermes 容器 ──────→ mihomo:7890 ─────→ 海外 API(美国出口) └──────┬──────┘ │ (不代理国内流量)关键规则:
- 海外 API(OpenAI、Anthropic、DeepSeek 等)→ 走代理,美国出口
- 国内 API(SiliconFlow、微信 iLink)→ 直连,不能走代理
- 微信网关 → 必须去掉代理环境变量启动,否则连不上
ilinkai.weixin.qq.com
微信流量路径
Section titled “微信流量路径”手机微信 → iLink 服务器 → Hermes Gateway(容器内)→ Hermes Agent ↑ 直连,不走代理存储与数据流
Section titled “存储与数据流”WSL 内部: /opt/data/... ↓ 9p 协议挂载Windows: D:\传递文件\...关键路径:
/opt/data/.env— 所有 API Key 和敏感配置/opt/data/config.yaml— Hermes 配置/opt/data/skills/— 技能包目录(120+)/opt/data/logs/— 所有日志/opt/data/image_cache/— 图片缓存/opt/data/传递文件/— 与 Windows 互通的目录
Hindsight Lite(SQLite)→ 持久记忆层 └── 跨会话记忆:用户偏好、环境事实、学习到的工作流 └── 不使用:临时任务状态、会话日志(用 session_search 代替)定时任务体系
Section titled “定时任务体系”| 任务 | 频率 | 做什么 |
|---|---|---|
| 日报简报 | 每日 | RSS 采集 → 三合一简报(AI+政经+热点) |
| 博客监控 | 每 N 小时 | 检查关注的博客/论坛更新 |
| GitHub 监控 | 按需 | 监控指定仓库的新 commit |
| 信息基建情报 | 定期 | 检查 API 中转站价格变动 |
所有定时任务通过 Hermes 内置 cron 调度,执行完成后结果投递到微信。
值得记住的设计决策
Section titled “值得记住的设计决策”- MoE 不是写在代码里的 —— 是使用习惯形成的,手动切换比自动路由更可控
- 微信必须直连 —— 代理冲突是 gateway 挂掉的第一大原因
- Skill 是 AI 的 procedural memory —— 不是给人读的文档,是给 AI 读的 prompt
- 本地优先 —— 核心架构在本地 Docker,云服务只做锦上添花(Cloudflare Pages)
- 单源信任 > 算法聚合 —— 宁可信任一个高质量来源(如 Juya),不要算法聚合的二手信息