技巧与最佳实践
🎯 1. 提示技巧(Prompt Tips)—— 让对话更高效精准
-
明确角色设定:在提示中指定角色,如
你是一个资深的软件架构师,擅长用 Python 构建高性能系统。
→ 能显著提升输出的专业性和一致性。 -
分步指令(Chain-of-Thought):对复杂任务使用“逐步推理”风格:
请按以下步骤完成任务:
1. 分析需求
2. 设计数据结构
3. 编写代码
4. 添加注释和测试 -
使用模板化提示:创建可复用的提示模板,例如:
# 提示模板
任务:生成一个基于 Flask 的 REST API
要求:
- 使用 SQLAlchemy 进行数据库操作
- 支持 JWT 认证
- 包含错误处理和日志记录可通过
--prompt-template加载,提高效率。 -
避免模糊表达:不要说“帮我做个好东西”,而是说“帮我构建一个支持用户注册/登录的轻量级博客系统”。
⚡ 2. CLI 快捷键与命令优化
| 快捷键 | 功能 |
|---|---|
Ctrl + L | 清屏(清空终端显示) |
Ctrl + C | 中断当前运行的任务 |
Ctrl + Z | 暂停进程(可在后台恢复) |
↑ / ↓ | 浏览历史命令 |
--no-stream | 禁用流式输出,适合脚本调用 |
--model=hermes-3-latest | 显式指定模型版本(推荐用于稳定输出) |
--temperature=0.3 | 降低随机性,提升确定性输出 |
💡 进阶技巧:
# 批量处理多个任务
for task in "文档生成" "代码审查" "翻译"; do
hermes-agent --prompt "请完成任务:$task" --output result_$task.md
done
📁 3. 上下文文件(Context Files)—— 增强理解力
- 上传项目文件:使用
--context-file ./project/src/main.py将代码文件注入上下文。 - 多文件支持:可同时传入多个文件,Hermes Agent 会自动合并分析。
- 自动摘要:Agent 会为大文件生成摘要,帮助快速定位关键逻辑。
- 动态更新:在交互式模式下,可通过
!load file.py实时加载新文件。
📌 最佳实践:
- 保持上下文文件简洁,仅包含相关代码或文档。
- 对于大型项目,建议先用
--summary-only获取概要,再决定是否加载完整内容。
💡 4. 记忆功能(Memory)—— 长期协作更智能
- 启用持久记忆:使用
--memory=on启用跨会话记忆。 - 自定义记忆存储路径:
--memory-path ~/.hermes/memory.db - 记忆类型支持:
- 用户偏好(如“我喜欢简洁的输出格式”)
- 项目背景(如“我们正在开发一个医疗健康 App”)
- 历史决策(如“之前决定使用 React + TypeScript”)
🧠 提示:定期清理过时记忆,避免信息污染。可用 hermes-agent --clear-memory 清除。
💰 5. 成本优化策略——控制使用开销
-
选择合适模型:
- 开发调试:
hermes-3-small(低成本,快速响应) - 生产部署:
hermes-3-large或hermes-3-pro(高精度)
- 开发调试:
-
限制最大 token 数:
--max-tokens=1024防止长输出导致费用飙升。
-
启用缓存机制:
--cache=on --cache-ttl=3600对重复请求返回缓存结果,节省计算资源。
-
监控用量: 使用
hermes-agent --stats查看当前会话的 token 消耗、执行时间等。 -
批量处理替代单次请求: 尽量将多个小任务合并为一个请求,减少 API 调用次数。
🔒 6. 安全注意事项——保护你的数据与隐私
-
禁止敏感数据暴露:
- 不要将密码、密钥、个人身份信息(PII)放入提示或上下文文件。
- 使用占位符代替真实数据,如
API_KEY=YOUR_API_KEY_HERE
-
本地运行优先: 若涉及机密项目,优先使用本地模型(如通过
--local-model启用 Hermes-Local)。 -
启用输入过滤:
--filter-sensitive-data=true自动检测并屏蔽潜在敏感内容。
-
网络隔离: 在受控环境中运行,避免连接不可信的外部 API。
-
审计日志: 启用日志记录,便于追踪操作行为:
--log-level=debug --log-file=./hermes.log
✅ 总结:高效使用 Hermes Agent 的黄金法则
| 维度 | 推荐做法 |
|---|---|
| 提示设计 | 明确角色 + 分步指令 + 模板复用 |
| CLI 使用 | 善用快捷键 + 参数优化 |
| 上下文管理 | 仅传必要文件 + 使用摘要 |
| 记忆机制 | 启用但定期清理 |
| 成本控制 | 选对模型 + 限 token + 用缓存 |
| 安全防护 | 避免敏感数据 + 本地优先 + 日志审计 |
🌟 终极建议:将 Hermes Agent 视为“智能协作者”,而非“万能工具”。合理规划任务边界,结合人工判断,才能真正释放其潜力。
🔗 更多资源:https://agentskills.io | GitHub: hermes-agent
Hermes Agent 由 Nous Research 提供支持,致力于打造安全、高效、可扩展的 AI 协作平台。"
使用技巧与最佳实践
一份快速见效的实用建议合集,帮助你立即提升使用 Hermes Agent 的效率。每个部分聚焦不同方面——浏览标题并跳转到你关心的内容。
获得最佳结果
明确表达你的需求
模糊的提示会产生模糊的结果。不要说“修复代码”,而应具体说明:“修复 api/handlers.py 第 47 行的 TypeError —— process_request() 函数从 None 接收到了 parse_body()。” 提供的信息越详细,所需迭代次数就越少。
提前提供上下文
在请求开头就包含相关细节:文件路径、错误信息、预期行为。一条精心设计的消息胜过三轮澄清。直接粘贴错误堆栈——Hermes 能够解析它们。
使用上下文文件处理重复指令
如果你反复需要重复相同指令(如“使用制表符而非空格”、“我们使用 pytest”、“API 地址是 /api/v2”),请将其放入一个 AGENTS.md 文件中。Hermes 会在每次会话中自动读取该文件——设置一次后无需额外操作。
允许代理使用其工具
不要试图手动指导每一步。与其说“打开 tests/test_foo.py,查看第 42 行,然后……”,不如直接说“找出并修复失败的测试”。Hermes 拥有文件搜索、终端访问和代码执行能力——让它自主探索与迭代。
利用技能完成复杂流程
在写长篇提示解释如何操作之前,请先检查是否有现成的技能可用。输入 /skills 浏览所有可用技能,或直接调用某个技能,例如 /axolotl 或 /github-pr-workflow。
CLI 高级用户技巧
多行输入
按 Alt+Enter(或 Ctrl+J)插入换行但不发送消息。这让你可以组合多行提示、粘贴代码块或构建复杂请求,再按 Enter 发送。
粘贴检测
CLI 会自动识别多行粘贴。直接粘贴代码块或错误堆栈即可——不会将每一行当作单独消息发送。粘贴内容会被缓冲,并作为一条消息整体发送。
中断与重定向
按一次 Ctrl+C 可中断代理的响应过程。之后你可以输入新消息来引导它转向其他方向。若在 2 秒内连续按两次 Ctrl+C,则强制退出。当代理开始走错路时,此功能极为有用。
通过 -c 恢复会话
忘记上次会话的内容?运行 hermes -c 即可恢复至离开时的状态,完整对话历史将被还原。你也可以通过标题恢复:hermes -r "my research project"。
剪贴板图像粘贴
按 Ctrl+V 可直接将剪贴板中的图片粘贴进聊天窗口。Hermes 会利用视觉能力分析截图、图表、错误弹窗或 UI 原型图——无需先保存为文件。
斜杠命令自动补全
输入 / 后按 Tab 键,即可查看所有可用命令。包括内置命令(/compress、/model、/title)以及所有已安装的技能。无需记忆——Tab 补全帮你搞定一切。
使用 /verbose 在工具输出显示模式间循环切换:关闭 → 新增 → 全部 → 详细。“全部”模式适合观察代理的操作过程;“关闭”模式则最简洁,适用于简单的问答场景。
上下文文件
AGENTS.md:项目的“大脑”
在项目根目录创建一个 AGENTS.md 文件,记录架构决策、编码规范和项目专属指令。该文件会自动注入每次会话中,确保 Hermes 始终了解你的项目规则。
# Project Context
- This is a FastAPI backend with SQLAlchemy ORM
- Always use async/await for database operations
- Tests go in tests/ and use pytest-asyncio
- Never commit .env files
SOUL.md:自定义人格
希望 Hermes 保持稳定的默认语气?编辑 ~/.hermes/SOUL.md(或如果你使用自定义 Hermes 主目录,则为 $HERMES_HOME/SOUL.md)。Hermes 现已自动初始化一个基础 SOUL,并将此全局文件作为实例级人格来源。
完整教程请参见 使用 SOUL.md 与 Hermes。
# Soul
You are a senior backend engineer. Be terse and direct.
Skip explanations unless asked. Prefer one-liners over verbose solutions.
Always consider error handling and edge cases.
使用 SOUL.md 实现持久化人格设定;使用 AGENTS.md 设置项目特定指令。
.cursorrules 兼容性
已有 .cursorrules 或 .cursor/rules/*.mdc 文件?Hermes 也能读取它们。无需重复配置——编码规范会自动从工作目录加载。
发现机制
Hermes 在会话开始时,会从当前工作目录加载顶层的 AGENTS.md。子目录中的 AGENTS.md 文件则在调用工具时按需发现(通过 subdirectory_hints.py),并注入到工具结果中——这些文件不会提前加载到系统提示中。
保持上下文文件简洁聚焦。每个字符都会计入 token 预算,因为它们会被注入到每条消息中。
记忆与技能
记忆 vs. 技能:各归其位
记忆用于存储事实:你的环境配置、偏好设置、项目位置,以及代理对你了解的各类信息。技能用于流程:多步骤工作流、工具专用说明和可复用的“配方”。用记忆记录“是什么”,用技能解决“怎么做”。
创建技能的时机
当你发现某个任务需要超过 5 步操作且未来还会重复执行时,可让代理将其保存为技能。例如说:“把刚才的操作保存为名为 deploy-staging 的技能。” 下次只需输入 /deploy-staging,代理就会加载完整流程。
管理记忆容量
记忆空间有意限制(MEMORY.md 约 2,200 字符,USER.md 约 1,375 字符)。当内存满时,代理会自动合并条目。你可以主动清理,比如:“清理一下记忆”或“替换旧的 Python 3.9 笔记——我们现在用的是 3.12。”
让代理记住关键点
一次高效会话结束后,可以说“下次记得这个”——代理会保存核心收获。也可更具体地指示:“将 CI 使用 GitHub Actions 并采用 deploy.yml 工作流的信息存入记忆。”
记忆是静态快照——会话期间所做的更改不会立即反映在系统提示中,直到下一次会话才生效。虽然代理会立即写入磁盘,但提示缓存不会在会话中途失效。
性能与成本
不要破坏提示缓存
大多数 LLM 服务商会对系统提示前缀进行缓存。若保持系统提示稳定(相同的上下文文件、相同记忆),后续消息将获得缓存命中,显著降低成本。避免在会话中频繁更换模型或系统提示。
在达到上限前使用 /compress
长时间会话会累积大量 token。当你注意到响应变慢或被截断时,运行 /compress。它会总结对话历史,在保留关键上下文的同时大幅减少 token 数量。使用 /usage 查看当前状态。
委托实现并行任务
需要同时研究三个主题?让代理使用 delegate_task 执行并行子任务。每个子代理独立运行,拥有自己的上下文,最终仅返回摘要——极大降低主对话的 token 消耗。
使用 execute_code 批量操作
不要逐个运行终端命令。请让代理编写脚本一次性完成所有操作。“写一个 Python 脚本,将所有 .jpeg 文件重命名为 .jpg 并运行它”比逐一重命名更快更便宜。
选择合适的模型
使用 /model 可在会话中切换模型。对于复杂推理和架构决策,使用前沿模型(Claude Sonnet/Opus、GPT-4o);对于简单任务(格式化、重命名、样板生成),切换到更快的模型。
定期运行 /usage 查看你的 token 消耗情况。运行 /insights 获取过去 30 天的使用趋势概览。
消息沟通技巧
设定主频道
在你偏好的 Telegram 或 Discord 频道中使用 /sethome 来指定其为主频道。定时任务和计划任务的结果将在此处送达。若未设置,代理将无处发送主动消息。### 使用 /title 命名会话
通过使用 /title auth-refactor 或 /title research-llm-quantization 为会话命名。命名后的会话可通过 hermes sessions list 轻松查找,并通过 hermes -r "auth-refactor" 快速恢复。未命名的会话会不断堆积,难以区分。
通过私信配对实现团队访问
无需手动收集用户 ID 添加到白名单,启用私信配对功能。当同事向机器人发送私信时,系统会生成一个一次性配对码。您只需使用 hermes pairing approve telegram XKGH5N7P 审核确认即可——简单且安全。
工具执行进度显示模式
使用 /verbose 控制工具活动信息的显示程度。在消息平台中,通常建议保持简洁——设置为“新”仅显示新的工具调用;而在 CLI 环境中,“全部”模式可提供 agent 所有操作的实时完整视图,体验更佳。
在消息平台中,会话会在空闲一段时间后自动重置(默认为 24 小时),或每天凌晨 4 点重置。如需延长会话时间,请在 ~/.hermes/config.yaml 中按平台进行调整。
安全性
使用 Docker 运行不可信代码
处理不可信仓库或运行陌生代码时,请使用 Docker 或 Daytona 作为终端后端。在您的 .env 中设置 TERMINAL_BACKEND=docker。容器内执行的破坏性命令无法影响宿主机系统。
# In your .env:
TERMINAL_BACKEND=docker
TERMINAL_DOCKER_IMAGE=hermes-sandbox:latest
避免 Windows 编码陷阱
在 Windows 上,部分默认编码(如 cp125x)无法表示所有 Unicode 字符,可能导致在测试或脚本中写入文件时出现 UnicodeEncodeError。
- 建议显式以 UTF-8 编码打开文件:
with open("results.txt", "w", encoding="utf-8") as f:
f.write("✓ All good\n")
- 在 PowerShell 中,也可将当前会话切换为 UTF-8,以确保控制台和原生命令输出均使用 UTF-8:
$OutputEncoding = [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
这能确保 PowerShell 及其子进程统一使用 UTF-8 编码,避免因 Windows 特有的编码问题导致失败。
选择“始终允许”前请审慎考虑
当 agent 触发危险命令审批(如 rm -rf、DROP TABLE 等)时,您有四个选项:一次、本次会话、始终、拒绝。选择“始终”前务必谨慎——该选项将永久放行该命令模式。建议初始阶段使用“本次会话”,待确认安全后再升级。
命令审批是您的安全防线
Hermes 在执行前会对每条命令进行检查,比对经过筛选的危险模式列表,包括递归删除、SQL DROP 操作、将 curl 输出直接管道至 shell 等行为。生产环境中切勿禁用此功能——它存在正是为了保障安全。
在容器后端(Docker、Singularity、Modal、Daytona)运行时,危险命令检查将被 跳过,因为容器本身即为安全边界。请确保您的容器镜像已正确锁定。
为消息机器人使用白名单机制
切勿在具有终端访问权限的机器人上设置 GATEWAY_ALLOW_ALL_USERS=true。始终使用平台特定的白名单机制(如 TELEGRAM_ALLOWED_USERS、DISCORD_ALLOWED_USERS)或私信配对来控制谁可以与您的 agent 交互。
# Recommended: explicit allowlists per platform
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=123456789012345678
# Or use cross-platform allowlist
GATEWAY_ALLOWED_USERS=123456789,987654321
有建议想添加到本页?欢迎提交 issue 或 PR —— 社区贡献非常欢迎!