词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
<repo>/plugins/<name>/,与用户安装在 ~/.hermes/plugins/ 中的插件一同自动加载。它们使用与第三方插件相同的插件接口——hook、工具、斜杠命令——只是在仓库内维护。PluginManager 按顺序扫描四个来源:<repo>/plugins/<name>/(本页所记录的内容)~/.hermes/plugins/<name>/./.hermes/plugins/<name>/(需要 HERMES_ENABLE_PROJECT_PLUGINS=1)hermes_agent.pluginsdisk-cleanup 的用户插件会替换内置版本。plugins/memory/ 和 plugins/context_engine/ 被刻意排除在内置扫描之外。这两个目录使用各自的发现路径,因为内存提供者和上下文引擎 是通过 hermes memory setup / 配置中的 context.engine 进行单选配置的提供者。hermes plugins list 和交互式 hermes plugins UI 中),但在你明确启用之前不会加载:~/.hermes/config.yaml:plugins/ 下附带了以下内置插件。所有插件均需手动启用——通过 hermes plugins enable <name> 启用。| 插件 | 类型 | 用途 |
|---|---|---|
disk-cleanup | hook + 斜杠命令 | 自动追踪临时文件并在会话结束时清理 |
observability/langfuse | hook | 将轮次 / LLM 调用 / 工具追踪到 Langfuse |
spotify | 后端(7 个工具) | 原生 Spotify 播放、队列、搜索、播放列表、专辑、曲库 |
google_meet | 独立插件 | 加入 Meet 通话、实时字幕转录、可选实时双工音频 |
image_gen/openai | 图像后端 | OpenAI gpt-image-2 图像生成后端(FAL 的替代方案) |
image_gen/openai-codex | 图像后端 | 通过 Codex OAuth 使用 OpenAI 图像生成 |
image_gen/xai | 图像后端 | xAI grok-2-image 后端 |
hermes-achievements | 仪表盘标签页 | Steam 风格的可收集徽章,根据你真实的 Hermes 会话历史生成 |
kanban/dashboard | 仪表盘标签页 | 多智能体调度器的看板(Kanban)UI——任务、评论、扇出、切换看板。参见 Kanban 多智能体。 |
plugins/memory/*)和上下文引擎(plugins/context_engine/*)在 内存提供者 中单独列出——它们分别通过 hermes memory 和 hermes plugins 管理。以下是两个长期运行的基于 hook 的插件的详细说明。| Hook | 行为 |
|---|---|
post_tool_call | 当 write_file / terminal / patch 在 HERMES_HOME 或 /tmp/hermes-* 内创建匹配 test_*、tmp_* 或 *.test.* 的文件时,静默追踪为 test / temp / cron-output。 |
on_session_end | 如果本轮 中有任何测试文件被自动追踪,则执行安全的 quick 清理并记录一行摘要。否则保持静默。 |
| 类别 | 阈值 | 确认 |
|---|---|---|
test | 每次会话结束 | 从不 |
temp | 追踪后超过 7 天 | 从不 |
cron-output | 追踪后超过 14 天 | 从不 |
| HERMES_HOME 下的空目录 | 始终 | 从不 |
research | 超过 30 天,且超出最新 10 个 | 始终(仅 deep 模式) |
chrome-profile | 追踪后超过 14 天 | 始终(仅 deep 模式) |
| 超过 500 MB 的文件 | 从不自动删除 | 始终(仅 deep 模式) |
/disk-cleanup 在 CLI 和 gateway 会话中均可用:/disk-cleanup status # 分类明细 + 最大的 10 个文件
/disk-cleanup dry-run # 预览,不实际删除
/disk-cleanup quick # 立即执行安全清理
/disk-cleanup deep # quick + 列出需要确认的项目
/disk-cleanup track <path> <category> # 手动追踪
/disk-cleanup forget <path> # 停止追踪(不删除)$HERMES_HOME/disk-cleanup/:| 文件 | 内容 |
|---|---|
tracked.json | 已追踪路径,包含类别、大小和时间戳 |
tracked.json.bak | 上述文件的原子写入备份 |
cleanup.log | 每次追踪 / 跳过 / 拒绝 / 删除操作的仅追加审计日志 |
HERMES_HOME 或 /tmp/hermes-* 下的路径。Windows 挂载点(/mnt/c/...)会被拒绝。已知的顶级状态目录(logs/、memories/、sessions/、cron/、cache/、skills/、plugins/、disk-cleanup/ 本身)即使为空也不会被删除——全新安装不会在第一次会话结束时被清空。hermes plugins enable disk-cleanup(或在 hermes plugins 中勾选复选框)。hermes plugins disable disk-cleanup。agent.usage_pricing 数据,因此 Langfuse 仪表盘看到的分类(input / output / cache_read_input_tokens / cache_creation_input_tokens / reasoning_tokens)与 hermes logs 中显示的一致。hermes plugins UI 中勾选复选框。然后将凭据写入 ~/.hermes/.env:| Hook | 行为 |
|---|---|
pre_api_request / pre_llm_call | 打开(或复用)每轮的根 span "Hermes turn"。为本次 API 调用启动一个 generation 子 observation,将最近的消息序列化为输入。 |
post_api_request / post_llm_call | 关闭 generation,附加 usage_details、cost_details、finish_reason、助手输出和工具调用。如果没有工具调用且内容非空,则关闭本轮。 |
pre_tool_call | 启动一个带有经过清理的 args 的 tool 子 observation。 |
post_tool_call | 关闭 tool observation,附加经过清理的 result。read_file 的内容会被摘要化(头部 + 尾部 + 省略行数),以使大文件读取保持在 HERMES_LANGFUSE_MAX_CHARS 以内。 |
langfuse.propagate_attributes 实现,因此单次 hermes chat 会话中的所有内容都归属于同一个 Langfuse session。.env 中):| 变量 | 默认值 | 用途 |
|---|---|---|
HERMES_LANGFUSE_ENV | — | trace 上的环境标签(production、staging 等) |
HERMES_LANGFUSE_RELEASE | — | 发布/版本标签 |
HERMES_LANGFUSE_SAMPLE_RATE | 1.0 | 传递给 SDK 的采样率(0.0–1.0) |
HERMES_LANGFUSE_MAX_CHARS | 12000 | 消息内容 / 工具参数 / 工具结果的单字段截断长度 |
HERMES_LANGFUSE_DEBUG | false | 向 agent.log 输出详细插件日志 |
LANGFUSE_PUBLIC_KEY、LANGFUSE_SECRET_KEY、LANGFUSE_BASE_URL)均被接受——两者同时设置时,Hermes 前缀的优先。hermes plugins disable observability/langfuse。插件模块仍会被发现,但在你重新启用之 前不会运行任何模块代码。meet_summarize / meet_speak / meet_followup 工具集,用于对所听内容采取行动~/.hermes/cache/google_meet/<meeting_id>/"加入 meet.google.com/abc-defg-hij 并记录笔记。通话结束后,给我发一份包含行动项的摘要。"
hermes plugins disable google_meet。已缓存的转录和录音保留在 ~/.hermes/cache/google_meet/,直到你手动删除。~/.hermes/state.db 会话历史(started_at, last_active) 指纹缓存,因此后续扫描只重新分析新增或变更的会话$HERMES_HOME/plugins/hermes-achievements/state.json| 状态 | 含义 |
|---|---|
| 已解锁 | 至少达到一个等级 |
| 已发现 | 已知成就,进度可见,尚未获得 |
| 隐藏 | 在 Hermes 检测到你历史中的第一个相关信号之前保持隐藏 |
/api/plugins/hermes-achievements/ 下:| 端点 | 用途 |
|---|---|
GET /achievements | 完整目录,包含每个徽章的解锁状态(首次冷扫描运行期间返回待处理占位符) |
GET /scan-status | 后台扫描器状态:idle / running / failed,上次耗时,运行次数 |
GET /recent-unlocks | 最近解锁的 20 个徽章,最新的在前 |
GET /sessions/{id}/badges | 主要在某个特定会话中获得的徽章 |
POST /rescan | 手动同步重新扫描(阻塞;在用户点击重新扫描按钮时使用) |
POST /reset-state | 清除解锁历史和缓存快照 |
$HERMES_HOME/plugins/hermes-achievements/:| 文件 | 内容 |
|---|---|
state.json | 解锁历史:你获得了哪些徽章以及获得时间。在 Hermes 更新间保持稳定。 |
scan_snapshot.json | 上次完成的扫描载荷(在仪表盘加载时立即提供) |
scan_checkpoint.json | 按指纹键控的每会话统计缓存(使热重扫描更快) |
/scan-status。started_at + last_active 指纹与检查点匹配的会话复用每会话统计——即使在大型历史记录上也能在几秒内完成。hermes-achievements 是一个仅限仪表盘的插件(无生命周期 hook,无模型可见工具)。它在 hermes dashboard 首次启动时自动注册为标签页。plugins.enabled 配置仅控制生命周期/工具插件;仪表盘插件完全通过其 dashboard/manifest.json 发现。plugins/hermes-achievements/dashboard/manifest.json,或在 ~/.hermes/plugins/hermes-achievements/ 中用同名用户插件覆盖它(该插件不包含仪表盘)。$HERMES_HOME/plugins/hermes-achievements/ 下的插件状态文件会保留——重新安装后你的解锁历史依然存在。<repo>/plugins/<name>/,而非 ~/.hermes/plugins/<name>/hermes plugins list 中,manifest 来源显示为 bundledpip install .[all] 的依 赖)