fanfei's blog

Hermes Context References

Hermes Agent 的上下文引用功能允许用户在消息中使用 @ 语法直接注入文件内容、目录结构、Git 差异和网页内容,作为 --- Attached Context --- 附加到消息中。

支持的引用语法

语法 说明
@file:path/to/file.py 注入文件内容
@file:path/to/file.py:10-25 注入指定行范围(1-indexed,闭区间)
@folder:path/to/dir 注入目录树列表和文件元数据
@diff 注入 git diff(未暂存的工作区变更)
@staged 注入 git diff --staged(已暂存的变更)
@git:5 注入最近 N 条提交及其 patch(最多 10)
@url:https://example.com 抓取并注入网页内容

容量限制

阈值 行为
软限制 上下文长度的 25% 追加警告,继续展开
硬限制 上下文长度的 50% 拒绝展开
文件夹条目 最多 200 文件 超出部分替换为 - ...
Git 提交 最多 10 条 超出自动截断

安全机制

敏感路径阻止

以下路径始终被阻止,防止凭证暴露:

  • SSH 密钥和配置(~/.ssh/id_rsa 等)
  • Shell 配置文件(~/.bashrc, ~/.zshrc 等)
  • 凭证文件(~/.netrc, ~/.pgpass 等)
  • Hermes 环境文件($HERMES_HOME/.env

以下目录完全阻止:~/.ssh/, ~/.aws/, ~/.gnupg/, ~/.kube/, $HERMES_HOME/skills/.hub/

其他保护

  • 路径遍历保护:所有路径相对于工作目录解析
  • 二进制文件检测:通过 MIME 类型和 null-byte 扫描

平台可用性

上下文引用主要是 CLI 功能。在消息平台(Telegram、Discord 等)上,@ 语法不会展开。Agent 仍可通过 read_filesearch_files 等工具访问文件。


Timeline