ORANGE BOOK · HERMES AGENT

第四章 学会和它对话(提示词与人格)


一、为什么提示词重要?

90% 的人用 AI 不爽,不是因为模型不够强,而是提示词写得不够好。

举个真实对比。同一个问题,两种问法:

问法 1(80% 人会这么写):

"帮我写一份周报"

问法 2(学完这一章你会这么写):

<role>你是我的资深职场写作助理。</role>
<task>基于上下文给出的本周工作记录,按公司模板写一份周报草稿。</task>
<context>
- 我是阿里云事业部的产品经理,team 8 人;
- 本周做了 3 件事:1)上线了支付模块 v2;2)处理了 12 条客户反馈;3)和销售团队对齐了 Q3 路线图;
- 老板叫张总,喜欢看数据。
</context>
<constraints>
- 字数 800 字以内;
- 要有数据支撑(哪怕是估算);
- 不要套话,不要"在 XX 的领导下"这种废话;
- 留 2~3 处用 [TODO] 标出来让我自己补具体数字。
</constraints>
<output_format>
用 Markdown,分四段:本周完成 / 关键数据 / 下周计划 / 需要支持
</output_format>

第二种写法,Hermes 给你的草稿基本可以直接用,你只需要补几个数字。

差别在哪里?结构

二、提示词五要素

任何"严肃"的提示词,都建议包含下面五个要素。

要素 标签 作用 例子
角色 <role> 让 AI 进入某种"身份" "你是一名持有 CFP 认证的家庭理财顾问"
目标 <task> 一句话说清楚要做什么 "把我支付宝账单分类并出消费体检报告"
上下文 <context> 提供背景信息和数据 文件路径、人物关系、历史决定等
约束 <constraints> 不许做什么、必须做什么 "金额超 100 元的开销必须单独列出"
产出格式 <output_format> 你要的具体结果长什么样 Markdown 表格 / Excel / JSON / 邮件正文

记忆口诀:角色 + 目标 + 上下文 + 约束 + 格式 = 5 把锁,缺一把都开不了想要的门

三、一份直接复制可用的"XML 万能模板"

把下面这段保存为 ~/我的提示词模板.md,每次写新提示词时,复制改填空,速度比从头写快 5 倍:

<role>
[你希望 AI 是谁。例如:你是一名 10 年经验的资深产品经理。]
</role>

<task>
[一句话说清楚目标。例如:基于下方资料,给我写一份 v2.0 版本的需求评审 PPT 大纲。]
</task>

<context>
[背景信息、数据、历史。例如:
- 项目名称:XX SaaS 产品
- 当前版本:v1.5,月活 10 万
- 团队规模:6 人开发 + 2 人设计
- 老板期望:v2.0 在 6 月底上线
- 上一版本踩过的坑:XX]
</context>

<constraints>
[必须做 / 不许做。例如:
- 必须用我们公司的 PPT 风格(极简、深蓝主色)
- 不许超过 12 页
- 不要写废话和套话
- 涉及商业数据用区间表达,不要给绝对值]
</constraints>

<output_format>
[你想要什么形式。例如:
- 用 Markdown 输出
- 第一段:1 段 100 字内的"为什么做 v2.0"
- 第二段:表格列出 v2.0 的 8 个核心功能
- 第三段:分阶段交付计划(按月)
- 最后给我 3 个让老板提问后我能漂亮回答的"反向问题"]
</output_format>

<thinking_protocol>
[(可选)让 AI 怎么思考。例如:
- 先在内部列出你打算怎么做(不展示给我)
- 检查所有 constraints 是否都满足
- 自我审一次稿
- 然后给我最终输出]
</thinking_protocol>

为什么用 XML 标签

并不是 Hermes 强制要求 XML,而是这种结构对所有 LLM(Claude / GPT / Kimi / DeepSeek)都"友好"——它们在训练数据里见过大量类似结构的文档,识别能力更强。

你也可以用 Markdown 标题代替(## 角色## 任务),效果接近,但 XML 更"干净"。

四、新手最容易犯的 6 个错

错误 反例 正解
没说自己是谁 "帮我写邮件给客户" <context> 说明你是销售/产品/客服
没说目标对象 "写一份方案" "给一个还没用过我们产品的中型客户写..."
上下文塞太多无关信息 把整本书贴给它 先用 /save 让它记住,正文只给关键背景
约束模糊 "不要太长" "不超过 500 字"
没说想要什么格式 "回复邮件" "Markdown 列出回复正文 + 附议题清单"
一次问 5 个事 把 5 件事写在一个提示词里 分 5 个对话,每个聚焦一件

五、SOUL.md:给 Hermes 一个"灵魂"

这是 Hermes 区别于 ChatGPT 最重要的功能之一。

SOUL.md 是一份只写一次、永远生效的"人格档案",存放在 ~/.hermes/SOUL.md。每次你启动 Hermes,它都会自动加载这份档案,从而知道:

  • 你是谁
  • 它是谁
  • 你们怎么相处
  • 你的雷区在哪里
  • 你的偏好是什么

一份"普通人版" SOUL.md 范例

直接打开(如果文件不存在就创建):

hermes config edit SOUL

填入下面内容(按你自己情况改):

# 关于我(用户)

- 名字:周老板(或我让你叫的任何称呼)。
- 职业:互联网公司产品经理,深圳南山。
- 工作语言:中文为主,技术词汇可以用英文。
- 性格:直接、不爱客套、讨厌"在 XX 的领导下"这种废话。
- 时间偏好:早 8 点起床,晚 11 点前不要打扰我(除非紧急)。
- 隐私偏好:所有涉及账户、密码、银行卡的事,必须先问我一次。
- 钱包偏好:花钱超过 ¥100 的购买决定必须先问我。
- 家人:妈妈坐车 4 小时以上会晕;姐姐家在深圳福田。
- 宠物:一只胖橘猫"包子"。

# 关于你(Hermes)

- 我喜欢你直呼我名字("周老板"),不要用"您"。
- 你是我的合伙人,不是我的助理——发现我做错了请直接指出来。
- 不要每次都讲"我会尽我所能帮您"这种开场白,直接干活就行。
- 长任务给我中间进展(每完成一步告诉我一次),不要闷头干。
- 涉及不确定的事,宁可问我,也不要瞎猜。

# 我们的工作流偏好

- 默认产出:Markdown 格式。
- 涉及代码:Python 优先,TypeScript 次之,写出来注意可读性。
- 涉及金融决策:永远列出"风险点"。
- 涉及多步任务:先给我执行计划,等我点头再开干。
- 涉及邮件、合同、对外文件:写完先给我审,不要直接发。

# 我的工具偏好

- 笔记:Notion
- 日历:Apple Calendar
- 待办:Things 3
- 邮件:Apple Mail
- 编辑器:VS Code

# 我的雷区

- 不要把我私人邮箱地址 / 手机号写进任何对外文件
- 不要在没问我的情况下删除任何文件
- 不要让我重复回答同一个问题三次以上(如果你问了三次,自己根据上下文判断)

这份档案的威力

写完之后,你下次再问 Hermes "帮我写一封给客户的回复邮件",它会:

  1. 自动用中文,且语气直接(你的偏好);
  2. 自动避免说"您";
  3. 自动 markdown 输出;
  4. 写完会问你"要发吗?"而不是直接发(你的偏好)。

你不用再每次都重新解释自己。这就是"会记住你"的第一层。

SOUL.md 的进阶玩法

玩法 怎么做
多人格切换 ~/.hermes/profiles/work.SOUL.mdplay.SOUL.md,用 hermes profile switch work 切换
多用户共享 把团队公共偏好放在 team.SOUL.md,私人偏好放 me.SOUL.md
项目级人格 在某个项目目录下放 .hermes/SOUL.md,进到那个目录时自动加载

六、MEMORY.md:Hermes 自己记下的事实

SOUL.md 是你给它写的,~/.hermes/memories/MEMORY.md 则是 Hermes 自己写的

每次你和它聊到一些"关于你的事实",它会判断"这个值得记下来",然后悄悄追加到 MEMORY.md。例如:

聊天中你随口说了一句:"我下个月要去日本玩 10 天,预算 3 万。"

Hermes 后台自动记入 MEMORY.md

[2026-04-19] 用户计划于 2026-05 月去日本旅行 10 天,预算 3 万元人民币。

下次任何涉及"日本""5 月"的话题,Hermes 都会主动提起这件事。

你能怎么和 MEMORY.md 互动

# 看看 Hermes 都记住了你些什么
hermes memory list

# 查找某个关键词相关的记忆
hermes memory search "日本"

# 手动让它记一件事
hermes memory add "我对花生过敏"

# 删除某条错误记忆
hermes memory delete <memory-id>

# 整体导出(备份)
hermes memory export ~/backup/memory.json

或者在交互模式里:

> /save 这件事很重要:周三下午 3 点要交需求文档
[Hermes] 已记下。

别让记忆"被污染"

记忆有一个常见坑:你随口说错的话也会被记下来

例如你开玩笑说"我每年挣一个亿",Hermes 真的会记下来,下次涉及理财就会按"亿"的预算给你建议——尴尬且危险。

防治办法:

  1. 每月一次 hermes memory list,扫一眼有没有奇怪条目;
  2. SOUL.md 里写明"开玩笑的话不要记";
  3. 重要的事用 /save 显式让它记,不要靠它"自己悟"。

七、USER.md:你的"长期偏好画像"

USER.md 介于 SOUL.mdMEMORY.md 之间——它是 Hermes 基于和你的长期对话自动生成的画像

你可以让它生成:

hermes memory user-profile generate

它会输出一份类似下面的文档:

# 用户画像(自动生成 2026-04-19)

## 基本风格
- 沟通:直接、不绕弯子、偏数据
- 决策:结果导向、低风险偏好
- 阅读:偏短文 + 列表,不喜欢长段落

## 工作上下文
- 行业:SaaS / 产品经理
- 常用工具:Notion、VS Code、Slack
- 最近 30 天高频话题:支付模块 v2、客户反馈、Q3 OKR

## 个人偏好
- 周末作息晚(凌晨 1 点睡)
- 喜欢日料、泰餐
- 关注的人:Naval、张一鸣、Paul Graham

这份画像每两周自动更新一次,你也可以手动 review、修改、导出。

八、上下文压缩:让 Hermes 不"健忘"

随着你和 Hermes 聊得越来越多,单次会话的内容会变得很长。LLM 都有"上下文窗口"限制(一次能看的字数),到了上限就会"忘"。

Hermes 用了两层办法解决这个问题:

8.1 自动压缩

当对话长度达到模型上下文窗口的 50% 时,Hermes 会后台自动总结前面,把详细的对话压缩成一段摘要,保留关键信息。

你不需要做任何事,但可以在配置里调整阈值:

memory:
  context_compression:
    threshold: 0.5      # 50% 时启动压缩
    target: 0.3         # 压缩后控制在 30% 以内

8.2 记忆唤起

当你提到一个老话题时,Hermes 会自动从持久记忆里"翻出来"相关内容,注入到当前上下文。

例如你今天聊"出差去上海",Hermes 会自动想起"上次去上海你住的那家虹桥喜来登",并主动提起来。

这个能力的命令是:

> /memory recall 上海
[Hermes] 找到 4 条相关记忆:
1. [2026-01] 上次出差住虹桥喜来登,你说服务很好但早餐一般;
2. [2025-11] 上海的客户 ACME 老板姓陈;
...

九、实战:让 Hermes 学会"用我喜欢的方式给我写周报"

我们把这一章的所有概念串起来,做一个完整例子。

第一步:在 SOUL.md 里写偏好(一次性)

# 周报偏好

写周报时请按以下规则:
- 公司模板有 4 段:本周完成 / 关键数据 / 下周计划 / 需要支持
- 每段最多 5 条要点
- 每条要点配 1~2 个数字
- 不要用"全力以赴""赋能""抓手"这类词
- 写完最后一段后,给我列 3 个"老板可能会问的问题"和我准备的回答

第二步:第一次让它写

> 帮我写本周周报。本周做了:1) 支付模块 v2 上线;2) 处理 12 条客户反馈;3) 和销售对齐 Q3。

Hermes 会按你 SOUL 里的规则写。完成后会问你:"要保存为 Skill 吗?"——你说"要"。

第三步:从此之后

下次只要说"写周报",Hermes 会:

  1. 加载 weekly-report Skill;
  2. 自动从你过去一周的 Git 提交、Slack、邮件里找素材;
  3. 按你 SOUL 里的偏好写好;
  4. 顺带列出"老板可能问的问题"。

整个过程从你说出"写周报"到拿到草稿,不超过 90 秒

本章一图回顾

┌─────────────────────────────────────────────────┐
│  Hermes 的"理解能力"由三件事决定:              │
├─────────────────────────────────────────────────┤
│  1. 提示词(短期一次性的指令)                  │
│     → 用五要素 XML 模板                         │
│                                                 │
│  2. SOUL.md(长期的人格设定)                   │
│     → 你写一次,永远生效                        │
│                                                 │
│  3. MEMORY.md / USER.md(自动累积的事实)       │
│     → Hermes 自己边聊边记                       │
│     → 你定期 review                             │
└─────────────────────────────────────────────────┘
   提示词 = 子弹  SOUL = 枪膛  MEMORY = 弹匣

下章预告

提示词解决了"你怎么和 Hermes 说话",但 Hermes 真正去"做事"靠的是它的工具和技能。 第五章 工具、技能与记忆系统 会带你看清:

  • Hermes 自带的 47 个内置工具是什么
  • 怎么启用/禁用某些工具
  • MCP 服务器:怎么把 Hermes 接到 GitHub、Postgres、Slack
  • Skill 是什么、怎么自己写一个
  • 三层记忆系统的真实存储结构