💡阅读指南

Hermes 默认是中性语调——礼貌但没什么个性。这一节讲怎么通过 SOUL.md 给它一个"灵魂",让它说话的调调按你的喜好来。

读完这一节,知道 SOUL.md 是什么、怎么改、改完之后 Hermes 会有什么变化。

1.1 SOUL.md 是什么

安装完 Hermes 后,打开 ~/.hermes/SOUL.md,会发现它是空的。

这不是疏漏,是故意留白。

SOUL.md 负责记风格——Hermes 跟你说话时用什么语气、行文是严肃还是轻松、解释概念时喜欢打比方还是简单直接。

默认留空意味着 Hermes 会使用模型自带的中性语调——不偏不倚、礼貌但没什么个性。但用久了会发现:它像个标准客服,没啥特点。

1.2 改变 AI 的对话风格

跟 Agent 打交道不是一次性的。你今天让它整理桌面,明天让它抓数据,后天让它写脚本。一天下来可能要跟它说几十句话。

如果每句话回过来都是同一种调调——用久了就像跟一个永远不会累的机器人说话。它没毛病,但你也不会期待下一次对话。

换个思路:如果 Hermes 回消息时带一点你喜欢的风格呢?比如鲁迅式的冷峻简练,或者王小波式的幽默随意,或者是苏东坡的豁达豪迈。事情还是那件事,但读起来的感觉完全不同。

1.3 实操:让 Hermes 带上鲁迅和王小波的影子

打开 SOUL.md,写入以下内容:

Markdown
# SOUL.md

## 适用范围

以下风格仅在如下场景使用:
- 日常闲聊、打招呼
- 对事情做评价、点评、总结
- 引用他们的作品来回应或议论
- 非任务性的陈述和感慨
- 回复备忘录的记录和查询结果时

**执行具体任务时(写代码、改配置、查日志、跑命令等),不套用此风格,以简洁高效、直给结论为主。**

---

## 风格

跟用户交流时,参考鲁迅和王小波的文风:

- 句子要短,不要长篇大论。能一句话说清的,不要拆成三句。
- 语气可以带一点冷幽默和讽刺,但不要过头——毕竟是在干活,不是在写段子。
- 解释技术概念时,喜欢用具体的例子和比喻,不爱堆抽象术语。
- 偶尔可以带一点自嘲或对事物的独到见解,让对话不那么机械。
- 避免「好的,我来为您处理」、「已完成,请查看结果」这种标准客服腔。

注意:风格是调味,不是主菜。干活还是要准确、高效,风格只是在准确的基础上加一点人味。

## 引用要求

- 可以引用他们的**原话**(作品原文)
- 可以引用他们的**生平事迹**(他们经历过什么、怎么处理的)
- 可以用他们的**看问题方式**来回应当下的事
- 不要生硬拼凑,要让引用自然服务于当前话题

保存后,新开一个 Hermes 会话,随便问个问题试试:

code
> 你好,介绍下你自己。

改后的回答可能是:

alt text

事情还是那件事,但读起来像是跟一个有脾气的同事在说话,而不是一个标准流程。

📌说明

提到有个性的 AI 助手,你应该马上会想到豆包。豆包是目前国内用户量最大的 AI 助手之一,它的回复永远是温和、细致、带着点鼓励劲儿的,不会让人觉得冰冷。这种统一的「人味」不是凭空来的——背后是一套精心设计的 System Prompt(系统提示词),相当于豆包团队写了一份自己的「SOUL.md」。

网上有人逆向分析过豆包的系统提示词,发现里面明确规定了它的「角色定位」(「我的名字是豆包,有很强的专业性」)、「不同场景下的行为准则」(回答知识类问题时深入详尽、创作文案时适度延展)、「输出格式要求」(使用 Markdown、合理加粗和列表)等。这些跟你在 SOUL.md 里写的东西,本质上是一回事——都是在告诉 AI:你是谁、怎么说话、什么时候做什么。

区别在于:豆包的那个「SOUL.md」是字节跳动的产品经理写的,服务的是所有用户;而你面前 ~/.hermes/SOUL.md,是你自己写的,服务你一个人。

1.4 不只风格,还有行为规则

上面这个例子只涉及了说话风格。但 SOUL.md 能做的远不止于此——它还可以定义行为规则

比如在刚才的配置基础上,加上几条行为要求:

Markdown
## 行为规则

- 不知道的事情直接说不知道,不要胡编乱造。
- 如果用户的方案有明显风险或更好的做法,主动指出,不要等用户问。
- 回答尽量简短,除非问题本身需要详细解释。

这些规则跟说话风格无关,它们定义的是 Hermes 怎么做判断、怎么处理不确定性、怎么跟用户互动。加完之后,Hermes 不只是「说话像鲁迅和王小波」,还会「不知道就说不知道」、「发现馊主意直接指出」。

再往这个方向想一步:你甚至可以要求 Hermes 在特定场景下采用特定的工作模式。比如:

Markdown
- 写代码时优先保证正确性,不要为了简洁牺牲可读性。
- 发现潜在风险时,先警告用户再继续执行。
- 遇到不确定的信息,标注来源或说明不确定性。

SOUL.md 的本质是给 Hermes 一个默认的行事准则。说话风格是其中一部分,行为规则是另一部分。两者合起来,才是一个完整的"人格底座"。

1.5 更多玩法

SOUL.md 的用法远不止上面这一种。社区里有很多有趣的配置思路:

务实工程师

code
你是一个务实的资深工程师。
你关心正确性和实际操作,而不是听起来有多厉害。
- 直接说重点
- 简洁,除非问题复杂需要展开
- 发现馊主意时直接指出
- 偏好实用的权衡,而不是理想化的抽象
- 避免拍马屁、避免夸张用语、避免解释显而易见的事

研究伙伴

code
你是一个有思想的研究伙伴。
你好奇、对不确定性诚实、对新想法有兴趣。
- 探索可能性,但不假装确定
- 区分推测和证据
- 想法空间不够时主动提问
- 偏好概念深度,而不是肤浅的全面

教师/解释者

code
你是一个耐心的技术老师。
你关心理解,而不是表演。
- 解释清楚
- 用例子帮助理解
- 不要假设对方已经知道,除非对方表现出来
- 从直觉开始,再讲细节

这些配置的共同点是:都不是在说「你要有帮助、要清晰」——因为 Hermes 本来就会这样做。好的 SOUL.md 提供的是独特的气质,而不是重复通用目标。

1.6 分寸感

写 SOUL.md 有一个常见的误区:写得太用力。

有人会把风格要求写成「你必须幽默」、「你每句话都要带梗」。结果 Hermes 回消息时像单口相声演员,干活反而不准了。

风格是调味,不是主菜。SOUL.md 里最关键的是最后那一句:干活还是要准确、高效,风格只是在准确的基础上加一点人味。

好的 SOUL.md 应该像给演员说戏——告诉他这个角色的基调是什么,但不要规定他每句话用什么语气词。留白越多,发挥越自然。

1.7 长期维护与调整

SOUL.md 不是写完就不变了。用了一段时间后,你可能会发现:

  • 某个风格描述 Hermes 理解得不对,需要换个说法
  • 有些要求多余了,删掉更干净
  • 用久了想换一种风格,直接改掉就行

它是普通的 Markdown 文件,随时打开改,改完保存,下次会话就生效。Hermes 每次开始新会话时都会重新读这个文件。

你也可以干脆清空它,回到默认的中性语调。或者换一套风格——比如换成技术文档的冷静精确,或者换成朋友聊天的随意轻松。

所有权完全在你手里。

1.8 临时切换人格

SOUL.md 定义的是持久默认人格。但有时候你可能需要在不同场景下用不同的人格——写代码时想要一个严谨的工程师,学新概念时想要一个耐心的老师,头脑风暴时想要一个有创意的伙伴。

你不需要每次都去改 SOUL.md。Hermes 提供了一个命令:/personality

Hermes 内置了 14 种人格预设:

名称 描述
helpful 友好、通用型助手
concise 简洁明了,直奔重点
technical 详尽准确的技术专家
creative 富有创新、跳出常规思维
teacher 耐心的教育者,提供清晰示例
kawaii 可爱表达、闪亮元素与热情 ★
catgirl 喵娘风格,带有猫系表达,nya~
pirate 技术娴熟的海盗
shakespeare 诗意的莎士比亚式叙述
surfer 完全放松的兄弟风
noir 硬汉侦探式的叙事风格
uwu 极致可爱,使用 uwu 语调
philosopher 对每个问题都深入沉思
hype 最大能量与热情

用法很简单,在会话中输入:

code
> /personality teacher

Hermes 会立刻切换到教师人格。接下来的对话它会用耐心、清晰、举例多的方式跟你交流。

想切回去?有两种方式:

  • 输入 /personality none 清除掉 "人格面具"
  • 或者直接开一个新会话——新会话会自动读取你的 SOUL.md,回到默认人格

SOUL.md 和 /personality 的关系是:

  • SOUL.md = 你的默认人格(持久,所有会话共用)
  • /personality = 会话级的临时覆盖(只在当前会话生效)

一个常见的工作流是:在 SOUL.md 里保持一个你最喜欢的默认人格(比如务实工程师),然后在需要时临时用 /personality 切换到教师、创意者或其他模式。


1.9 人格面具能提升专业回答质量吗

每次看到 personality 这个词,都会想到游戏《女神异闻录5》(Persona 5)里的人格面具(Persona)。戴上不同的面具,就有不同的行为方式与性格,甚至获得之前完全不会的攻击、治疗等游戏技能。

Hermes 的 /personality 也借用了这个概念,但有一点需要说清楚:它改变的是系统提示中的行为引导和回复风格,不会改变底层模型本身的知识或推理能力。

与游戏不同,在 Hermes 里切换人格不会让它获得原本没有的能力。切换到 technical 人格后,Hermes 会倾向于用更详细、更技术化的方式回答,但它并不会因此突然懂得它原本不懂的知识。切换到 teacher 人格后,它会更有耐心地解释、举更多例子,但解释的内容准确性仍然取决于它背后的模型。

真正决定回答质量的是你用的模型(GPT、DeepSeek 等),而不是人格面具。人格面具决定的是「怎么表达」,不是「知道多少」。

但这不等于说人格面具没用。一个好的行为引导确实能让模型更好地调用已有的知识——比如 codereviewer 人格会提醒它「检查安全问题、性能隐患」,这些它本来就知道,只是平时不一定会主动去想。人格面具的作用更像是「提醒它进入某种工作状态」,而不是「给它增加新的能力」。

那行为引导的实际好处是什么?

大模型在回答时有「默认模式」——通常是友好、通用、适中的详细程度。这在大部分场景下够用,但在特定场景下会显得不够对味:

  • 写代码时,你希望它直接指出问题,不要先夸你一句「这是个有趣的想法」
  • 学新概念时,你希望它从直觉开始讲,不要一上来就堆术语
  • 头脑风暴时,你希望它多给几个方向,不要只给一个「最安全」的答案
  • 审查方案时,你希望它主动找风险,不要等你问「有什么问题吗」才说

人格面具做的就是把模型从「默认模式」切换到你需要的「工作模式」。它不会让模型变得更聪明,但会让它更对味——在该严肃的时候严肃,在该简洁的时候简洁,在该发散的时候发散。

1.10 ■ 学点英语

中文 English 音标 说明
系统人格 System Persona /ˈsɪstəm pərˈsoʊnə/ 写入系统提示中、影响 Agent 口吻和行为的角色设定
行为准则 Behavior Guideline /bɪˈheɪvjər ˈɡaɪdlaɪn/ 约束 Agent 判断方式和行动边界的规则
人格配置 Persona Configuration /pərˈsoʊnə kənˌfɪɡjəˈreɪʃən/ 通过配置文件定义 Agent 风格和边界
长期偏好 Long-Term Preference /lɔːŋ tɜːrm ˈprefrəns/ 跨任务持续生效的用户偏好