Hermes 集成

Hermes Profiles 与 API Server:多 Agent 配置、服务化和集成边界

Profiles 解决多身份和多环境,API Server 解决外部系统调用。两者是 Hermes 从个人助手走向服务化应用的关键边界。

生态 预计 21 分钟 核验 2026/6/7
本页目录

完成结果

学完后你会留下什么

一张 Profiles / API Server 决策表,帮助你判断多 Agent 配置、外部 UI、自动化系统和监控如何接入 Hermes。

适合谁
准备把 Hermes 从个人 CLI 使用推进到多配置、多环境或外部系统集成的人
开始前确认
  • Hermes 已经能正常运行
  • 至少有一个明确的个人或团队集成场景
  • 知道 API 暴露和长期 profile 都需要权限治理

Hermes 用到后面,你会遇到两个很现实的问题:

  1. 我能不能让不同场景使用不同记忆、skills、模型和身份?
  2. 我能不能让外部系统通过 API 调用 Hermes,而不是每次都打开 CLI 或聊天入口?

Profiles 和 API Server 分别回答这两个问题。前者处理“谁在运行”,后者处理“谁来调用”。搜索 “Hermes profiles” 的人多半在做隔离;搜索 “Hermes API Server” 的人多半在做集成。把这两件事混在一起,是 Hermes 服务化时最常见的风险。

先用 Profiles 划清身份

Profiles 适合把不同用途的 Agent 隔离开:

场景为什么需要 profile
个人助手 vs 工作助手记忆、语气、工具权限和 secrets 不应混在一起
开发环境 vs 生产环境cron、gateway、API key 和模型策略不同
研究 Agent vs 执行 Agent一个负责探索,一个负责稳定执行
团队 A vs 团队 B上下文、项目目录、权限和输出风格不同
备份或分叉需要复制配置或完整上下文做实验

官方文档提供了 profile 管理和 clone 相关能力。应用层判断很简单:只想复用配置,用 clone config;想复制完整状态和历史,再考虑 clone everything,但要特别注意 secrets、旧 memory 和过期 cron jobs。

再决定是否需要 API Server

API Server 适合把 Hermes 作为后端能力接入外部系统:

  • 自建 Web UI。
  • 内部工具或 dashboard。
  • 自动化系统。
  • 需要 OpenAI-compatible 端点的客户端。
  • 需要 Runs API 跟踪长任务进度的厚客户端。
  • 需要健康检查和监控的长期服务。

官方文档提到 API Server 提供健康检查、OpenAI-compatible 接口和 runs API。应用层重点不是“接口多不多”,而是“外部调用是否被治理”。

Profiles 与 API Server 的决策表

你的需求更接近的能力原因
同一台机器上有个人助手和工作助手Profiles需要隔离 memory、skills、session 和 secrets
让内部网页调用 HermesAPI Server需要 HTTP 入口、鉴权和 CORS
让不同项目使用不同模型或工具权限Profiles需要按场景固定配置
让外部系统跟踪长任务状态API Server / Runs API需要创建、查询、取消或观察任务进度
定时任务按项目分开运行Profiles + Cron需要长期身份和固定 workdir
团队试点一个 Hermes 后端Profiles + API Server需要先隔离身份,再开放调用入口

如果只能记住一条:先切 profile,再开 API。API 会放大当前 profile 的能力和混乱。

常见组合方式

组合适用情况
单 profile + API Server个人工具或小型内部应用
多 profile + API Server不同团队、项目或环境需要隔离
profile + cron同一台机器上运行多个长期任务身份
profile + gateway不同消息入口对应不同助手角色
profile + gateway + cron + API已经有明确 owner、审计、停用和回滚机制

如果你已经开始使用 cron 或 messaging gateway,profile 的价值会更明显:它能避免所有任务共享同一套记忆和权限。

多环境时最容易犯的错

第一个错误,是把个人、测试、生产都放在同一个 profile 里。短期看省事,长期看会把 memory、skills、cron 和 API 调用混在一起。等到出问题时,你很难判断到底是哪条记忆、哪个 skill 或哪个 gateway 入口触发了行为。

第二个错误,是把 API Server 当成“开一个端口就能用了”。API 一旦被外部系统调用,就会面对鉴权、重复请求、超时、长任务状态、CORS、日志和限权。它不是 CLI 的平移,而是一个需要治理的服务边界。

第三个错误,是只隔离配置,不隔离责任。一个 profile 应该对应清楚的使用场景和 owner:个人助手、站点内容助手、生产检查助手、研究助手,不要都叫 default。

第四个错误,是把浏览器调用和后端调用用同一套安全假设。浏览器会遇到 CORS、token 暴露、跨站调用和用户权限问题;后端调用更容易处理 secret,但也更容易被自动化脚本反复触发。

一个推荐的 profile 命名方法

命名不需要复杂,但要让后来的人一眼知道用途:

  • personal-default:个人日常使用。
  • content-research:资料收集、教程写作、SEO 复盘。
  • project-dev:开发环境自动化。
  • project-prod-readonly:生产只读检查。
  • api-external-test:外部系统测试调用。
  • team-support-drafts:团队答复草稿,不直接对外发送。

名称本身就是治理的一部分。越是会长期运行的 Agent,越不能让 profile 只靠记忆去区分。

API Server 上线前检查

检查项推荐做法
鉴权设置 bearer token,不允许裸奔
CORS浏览器调用时使用明确 allowlist,不用宽泛通配
ProfileAPI 对应明确 profile,不混用个人 default
长任务使用 runs API 或状态查询,避免调用方以为任务丢了
高风险工具外部 UI 不直接触发写操作,先生成草稿或等待审批
日志记录调用来源、任务状态和失败原因,但不要泄露 secret
健康检查接入监控,但不要把敏感运行细节暴露给公开入口

API 上线最重要的不是“能调通”,而是“失败时调用方知道发生了什么,管理员知道怎么停”。

OpenAI-compatible 接口该怎么理解

OpenAI-compatible 的价值,是让已有客户端更容易接入 Hermes。但兼容接口不等于安全边界已经完成:

  • 客户端能发请求,不代表它应该能触发所有 skills。
  • 请求格式兼容,不代表 memory、profile 和工具权限就自动隔离。
  • 外部 UI 能聊天,不代表它适合执行长任务。
  • 调用方能收到回答,不代表失败、重试和取消已经可观测。

如果你要给内部工具接 Hermes,建议先做只读查询、草稿生成或任务状态解释,再逐步扩展到写操作。

什么时候不要急着上 API

下面几种情况先别急:

  • 还没有稳定的 prompt、memory 和 skills。
  • 调用方只是想“试试看”,没有明确成功标准。
  • 权限边界还没写清。
  • 团队还不能处理失败、超时、重复请求和取消。
  • 还没有把 profile 与环境对应起来。
  • 还没决定日志、token、CORS 和停用方式。

API 会放大能力,也会放大混乱。一个没有治理好的本地助手,暴露成 API 后只会更难排查。

下一步

如果你的主要问题是多环境隔离,继续看 Hermes Profiles 多环境指南。如果你已经准备接外部 UI 或自动化系统,继续看 Hermes API Server 集成边界。如果你要把 profile 用在长期定时任务里,回到 Hermes Cron 自动化

完成检查

  • 你知道 profile 隔离的是身份、记忆、skills、cron、plugins 和运行上下文。
  • 你知道 API Server 面向外部系统,而不是普通用户随手聊天。
  • 你已经把 bearer token、CORS、日志、长任务状态和高风险动作写进上线清单。
  • 你能判断一个场景该用消息入口、cron,还是 API 调用。

官方资料

版本和参数,以这些来源为准

本文按实际任务重写,快速变化的信息仍应在操作前回到官方页面核对。

常见问题

继续操作前,先确认这些边界

Profiles 和多个配置文件有什么区别?

Profiles 不只是配置文件,它还可以隔离 session、memory、skills、cron jobs、plugins 等上下文,适合多身份或多环境运行。

API Server 可以直接暴露到公网吗?

不建议默认这么做。应先配置 bearer token、明确 CORS allowlist,并限制外部系统能触发的任务类型。

应该先做 profile 还是先开 API Server?

多数场景应先划清 profile,再开 API。否则外部系统一接入,就会把个人、测试、生产和团队上下文混在同一个入口里。

继续学习

按当前任务继续推进