当你对一个 AI 系统说我不信的时候它怎么证明自己Hermes 的回答是看代码。源码就在你的硬盘上配置只有几十行 YAMLAPI 请求的每一步都有文件可查。一、信任来自可验证性AI 产品建立信任的方式通常有两种。第一种承诺。我们不会滥用你的数据我们的模型是安全的我们的系统是最先进的。你需要相信。第二种可验证。这是源码这是配置文件这是发给 API 的请求格式。你不需要相信——你可以自己看。Hermes 选择了第二种。不是因为它更道德——是因为自进化系统必须透明。如果一个系统会在用户不看的时候自己修改记忆、修复技能、归档文件——用户必须能验证它在做什么、为什么这样做。二、源码就在硬盘上Hermes 的安装目录在用户的 Python 虚拟环境中.venv\Lib\site-packages\ ├── tools/ ← 88 个工具实现文件 │ ├── memory_tool.py ← 记忆系统1146 行 │ ├── skill_usage.py ← 技能生命周期管理947 行 │ ├── skill_manager_tool.py ← 技能创建/编辑/删除1542 行 │ ├── skills_tool.py ← 技能加载1662 行 │ ├── skill_provenance.py ← 来源追溯78 行 │ ├── session_search_tool.py ← 会话检索921 行 │ └── ... ├── agent/ ← Agent 主循环 │ ├── system_prompt.py ← 系统提示词组装536 行 │ ├── chat_completion_helpers.py ← API 请求构建2964 行 │ ├── model_metadata.py ← 模型上下文解析2313 行 │ └── transports/ ← Transport 层 │ ├── chat_completions.py ← OpenAI 兼容 transport737 行 │ ├── anthropic.py │ └── codex.py ├── plugins/ ← 30 个 Provider Profile │ └── model-providers/ │ ├── deepseek/ ← DeepSeek profile100 行 │ ├── openrouter/ │ ├── anthropic/ │ └── ... ├── providers/ ← Provider 注册中心 ├── hermes_cli/ ← CLI 界面 └── run_agent.py ← 主循环入口没有混淆没有加密没有二进制 blob除了一个 PyInstaller 打包的入口 exe。所有业务逻辑都是纯 Python 源码。这不是开源——开源是去 GitHub 下载。这是本地可检视——正在运行的 AI 的每一条逻辑就在用户的硬盘上。三、配置文件不改就能用Hermes 的最小可用配置只需指定模型和 providermodel: deepseek-v4-pro providers: deepseek: base_url: https://api.deepseek.com不需要配 API key 的位置——每个 provider profile 知道自己的环境变量名DEEPSEEK_API_KEY。不需要配模型上下文长度——model_metadata.py通过 10 级优先级链自动检测。不需要配工具集——默认hermes-cli全开。用户可以配 50 个选项但不需要。可配置但非必需的包括agent: max_turns: 90 # 单次对话最大工具调用轮数 verify_on_stop: false # 停止时是否验证任务完成 ​ memory: memory_char_limit: 2200 # MEMORY.md 最大字符数 user_char_limit: 1375 # USER.md 最大字符数 ​ compression: enabled: true # 上下文自动压缩 ​ browser: cdp_url: http://localhost:9222 # Chrome DevTools Protocol 地址 ​ display: tool_progress: all # 终端显示工具调用进度 ​ curator: stale_after_days: 30 # 未使用多少天后标记 stale archive_after_days: 90 # 未使用多少天后归档 prune_builtins: false # 是否也管理内置技能 ​ plugins: enabled: [] # 额外加载的插件每一个选项都有合理的默认值。Hermes 的设计原则是用户不需要配置任何没有主动想改的东西。四、Provider Profile每个 API 的 quirks 被隔离不同 AI 提供商的 API 有不同的 quirks。DeepSeek V4 需要显式传extra_body.thinking来控制思考模式。某系模型不支持temperature参数。OpenRouter 需要providerpreferences。Gemini 需要thinkingConfig。如果这些 quirks 散落在请求构建代码的各处维护就是噩梦。Hermes 的解决方案是 Provider Profile。每个 provider 有一个独立的 profile 文件。plugins/model-providers/deepseek/__init__.py100 行完整示例class DeepSeekProfile(ProviderProfile): def build_api_kwargs_extras(self, *, reasoning_config, model, **ctx): extra_body {} top_level {} if not _model_supports_thinking(model): return extra_body, top_level # V3 / unknown → 不干预 # V4 → 必须显式设置 thinking否则 HTTP 400 extra_body[thinking] {type: enabled} # 传递 reasoning effort top_level[reasoning_effort] max return extra_body, top_level当前台 Agent 构建 API 请求时chat_completion_helpers.py查找当前 provider 的 profile第 777-812 行_profile get_provider_profile(agent.provider) if _profile: return _ct.build_kwargs( provider_profile_profile, # ← 传递整个 profile ... )Profile 的build_api_kwargs_extras和build_extra_body方法被调用注入 provider 特定的 extra_body。其他 provider 不受影响。新增 provider 只需在plugins/model-providers/下创建一个目录——不需要修改任何核心代码。五、Transport 层内部字段绝不外泄Hermes 在消息上附加了内部标记——codex_reasoning_items、tool_name、timestamp——用于 SQLite 索引和会话回溯。但这些字段不在 OpenAI Chat Completions 规范里。agent/transports/chat_completions.py的convert_messages第 128-200 行在发送前剥离所有内部字段def convert_messages(self, messages, **kwargs): # 剥离 codex_reasoning_items, codex_message_items # 剥离 tool_name # 剥离 timestamp # 剥离以 _ 开头的内部标记 # 剥离 Gemini extra_content如果不是发给 Gemini return sanitized_messages这不是能跑就行。这是尊重协议边界。六、上下文长度10 级优先级链用户不需要配模型上下文长度——不是 Hermes 猜了而是有一个完整的解析链。agent/model_metadata.py的get_model_context_length()第 1779 行定义了 10 级优先级0. config.yaml 显式覆盖 → 用户知道的最好 1. 持久缓存 context_length_cache.yaml → 之前探测过的 2. API 端点 /v1/models 实时查询 → 权威来源 3. 本地服务器查询Ollama 等 4. Anthropic /v1/models API 5. Provider 专用查询Copilot/Nous/Codex/GMI/Ollama 6. OpenRouter 实时 API 元数据 7. 硬编码默认值 DEFAULT_CONTEXT_LENGTHS → 最长 key 优先子串匹配 8. 本地服务器查询最后手段 9. 默认回退 256K对于deepseek-v4-pro命中第 7 步——DEFAULT_CONTEXT_LENGTHS字典第 244 行deepseek-v4-pro: 1_000_000,匹配算法第 2156-2161 行是最长 key 优先子串匹配——deepseek-v4-pro17 字符优先于deepseek8 字符。首次命中后缓存到context_length_cache.yaml下次秒读。缓存按modelbase_url做 key——同一模型在不同 provider 下可有不同上下文长度。七、与 Claude Code 的对比Claude Code 是闭源的。用户可以查看 CLAUDE.md 和对话历史文件——但无法查看它的内部逻辑。当它生成一个封面时你不知道它内部做了什么——用了什么 prompt、调了什么工具、生成 HTML 的具体流程。Hermes 的选择是把源码放在本地。用户不需要相信它在做什么——可以打开文件自己看。这不是谁更好的问题。这是不同的信任模型。Claude Code 的信任模型是相信 Anthropic。Hermes 的信任模型是你可以自己验证。八、核心哲学Hermes 的开放透明不是营销策略。它是自进化系统的必要条件。如果一个系统会自己修改记忆、修复技能、归档文件——用户必须能验证它做了什么、为什么这样做。没有透明度的自治系统不是智能——是黑箱。所以 Hermes 把源码放在硬盘上把配置做成几十行 YAML把 API 请求的每一层都写成可追踪的代码把安全机制做成默认开启不可关闭。这不是更开放。这是更可信。Hermes Agent 由 Nous Research 开发。本文基于 Hermes v0.18.0 源码分析。全文完。