
1. 项目概述一份 Markdown 文件如何让 Hermes “读懂”你最近在技术圈里一个标题特别抓人眼球“我给 Hermes 写了一份 SOUL.md然后它真的开始懂我了”。初看像玄学细想却直击当下智能体Agent落地的核心痛点——不是模型不够强而是我们不会“教”。Hermes 不是某个闭源大厂的黑盒产品而是开源社区中快速崛起的本地化智能体运行时框架主打轻量、可插拔、桌面优先。它不依赖云端 API所有推理、记忆、工具调用都在本地完成它不预设角色而是靠一套结构化配置来定义“这个 Agent 是谁、信什么、怎么想、做什么”。而 SOUL.md就是这套配置体系里的“灵魂契约”——不是代码不是 JSON Schema而是一份用纯文本写就的、人类可读可改、机器可解析可执行的意图说明书。关键词Hermes和SOUL.md必须放在一起理解前者是引擎后者是燃料前者提供能力底盘后者注入人格内核。你搜到的那些热词——hermes studio、hermes desktop下载、hermes agent安装——背后真正决定成败的从来不是“装没装上”而是“SOUL.md 写没写对”。我实测过 17 种不同结构的 SOUL.md 配置从极简三行版到 300 行嵌套 YAMLMarkdown 混合体最终发现最稳定、最易迭代、最贴近真实工作流的恰恰是那种看起来“不够技术”的纯 Markdown 写法。它不强制你写函数签名不逼你填满 schema 字段而是用自然语言描述“我每天早上要查天气、同步日程、汇总未读消息”再由 Hermes 的解析器自动拆解为工具调用链、上下文约束和响应风格偏好。这背后其实是工程哲学的转向与其让人类去适配机器的语法不如让机器更谦卑地理解人类的表达习惯。适合谁不是只给开发者看的——如果你会写周报、能列待办清单、习惯用 Notion 做知识管理你就已经掌握了 SOUL.md 的全部前置技能。它解决的是“AI 工具好用但总差点意思”的普遍 frustration它交付的是一个真正记得你说话习惯、知道你讨厌冗长回复、会在你加班到凌晨两点时主动关闭非紧急通知的桌面伙伴。2. 核心设计逻辑为什么是 Markdown而不是 JSON/YAML/DSL2.1 本质不是“配置文件”而是“人格说明书”很多人第一反应是又一个配置文件那为什么不直接用 YAML毕竟结构清晰、IDE 支持好、还能做 schema 校验。但 SOUL.md 的设计初衷恰恰反其道而行之——它拒绝成为“配置文件”而立志成为“人格说明书”。配置文件服务于系统说明书服务于人。举个具体例子你要让 Hermes 记住“我不看娱乐新闻但必须推送行业政策变动”。如果用 YAML 写你得定义filters: - type: content_category include: [policy, regulation] exclude: [entertainment, celebrity]这没问题但问题在于当你三个月后回来看这段配置你得先回忆content_category是哪个模块的字段再确认include/exclude的语义是否支持嵌套最后还要查文档确认policy这个值是否在白名单里。而 SOUL.md 里你直接写信息过滤原则只推送与「金融科技监管」「数据安全合规」直接相关的政策更新屏蔽所有含「明星」「综艺」「八卦」「影视」字样的内容若某条政策原文超过 800 字自动摘要成 3 点 bullet list这段文字你今天写三个月后打开不用查文档一眼就懂自己当初要什么。Hermes 的解析器不是在“读 YAML”而是在“读你的工作笔记”。它背后有一套轻量级 NLP 规则引擎识别**加粗标题**作为能力域如“信息过滤原则”“响应风格”“工具偏好”把-列表转为布尔规则集合把中文数字“三点”映射为摘要长度约束。这不是 magic而是把“人类表达习惯”作为第一性原理再逆向构建解析逻辑。2.2 Markdown 的不可替代性结构自由度 语义可扩展性为什么非得是 Markdown因为只有它同时满足三个硬性条件第一零学习成本的层级表达。#主题、##子域、###细节、-列表、引用块——这些符号早已内化为知识工作者的肌肉记忆。你不需要额外学一套 DSL 语法就能天然组织出“角色定位 → 能力边界 → 行为偏好 → 例外处理”的完整心智模型。我对比过用 reStructuredText 和 AsciiDoc 写 SOUL.md前者标签太重.. role::后者结构僵硬必须严格缩进都破坏了“随手记、随时改”的流畅感。第二原生支持混合内容。SOUL.md 里经常需要嵌入示例片段比如定义“邮件摘要风格”时你直接贴一段你认可的摘要范本邮件摘要风格用中文禁用英文术语缩写如把“API”写成“应用程序接口”每封邮件控制在 4 行内首行标【紧急】【例行】【待确认】示例【紧急】风控部要求本周五前提交 Q3 数据治理自评报告附件已附【例行】晨会纪要已同步至共享盘/会议记录/2024Q3【待确认】客户张总提议下周二线上演示时间是否可行这种“规范实例”的混合体只有 Markdown 能无痛承载。JSON/YAML 强制你把示例转成字符串 escape阅读体验断崖式下跌。第三未来可演进的语义锚点。Markdown 本身不带语义但你可以用约定俗成的标记赋予它意义。比如所有以:::开头的区块Hermes 默认识别为“运行时指令”::: runtime timeout: 15s max_retries: 2 fallback_tool: web_search :::这比在 YAML 里写runtime: { timeout: 15s, ... }更轻量且不破坏主文档的可读性——你把它删掉SOUL.md 依然是份合格的工作说明留着它就变成可执行的调度策略。这种“渐进式增强”能力是任何强结构化格式无法提供的。2.3 与 Hermes 架构的深度耦合从 SOUL 到 Runtime 的映射路径SOUL.md 的价值只有放在 Hermes 的整体架构里才能被完全理解。Hermes 不是单体应用而是分层运行时Orchestrator 层负责任务分解、工具路由、状态流转Memory 层维护短期对话上下文与长期知识图谱Tool Adapter 层对接本地工具日历、邮件、浏览器、终端Renderer 层生成最终输出CLI、GUI、语音SOUL.md 不是配置某一层而是为每一层注入“决策依据”。比如你写长期记忆原则所有含「合同编号」的对话自动提取编号并关联到知识库「法务-合同模板」节点每次会议纪要生成后将「待办事项」单独存入「个人行动项」列表按截止日期排序这两句话分别驱动 Memory 层的实体抽取规则和 Orchestrator 层的后处理钩子。Hermes 的解析器会把“合同编号”识别为正则模式CN-\d{6}“待办事项”识别为列表项前缀•|○|-再自动注册对应的事件监听器。整个过程无需你写一行代码但每一条规则都精准对应到运行时的具体模块。这才是“它真的开始懂我了”的技术真相不是模型突然开窍而是你用自然语言给每个模块下达了可执行的微指令。3. SOUL.md 实操详解从空白文件到可运行人格3.1 最小可行 SOUL三行启动法别被“灵魂”二字吓住。一个能跑起来的 SOUL.md核心只需三行。我在 Hermes Desktop v0.8.3 上实测新建~/.hermes/SOUL.md填入以下内容# 我的 Hermes 人格 **核心身份** - 专注支持我的日常办公日程管理、邮件处理、信息摘要 **默认响应风格** - 用中文口语化像同事间快速同步 - 每次回复不超过 5 行关键信息加粗保存后重启 Hermes Desktop它立刻开始用“同事语气”回复你。为什么这三行就够因为 Hermes 内置了完备的默认能力集它自带日历读写、邮件解析、网页摘要等工具SOUL.md 只需告诉它“用哪些”“怎么用”。这里的关键是**核心身份**和**默认响应风格**这两个加粗标题——它们是 Hermes 解析器的“锚点关键词”遇到就自动激活对应模块。你甚至可以删掉**默认响应风格**只留身份声明它依然能工作只是回复会变成标准 API 风格带 JSON 结构提示。这印证了前面说的SOUL.md 是说明书不是开关。你写得越少它越保守你写得越细它越像你。3.2 关键模块拆解每个标题背后的技术映射SOUL.md 的力量在于它把复杂系统能力映射到人类熟悉的写作场景。下面逐个拆解最常用、也最容易写错的六大模块附真实配置片段与解析逻辑3.2.1角色定位Role Definition这是 SOUL.md 的基石模块定义“你是谁”。不能只写“我是助理”要写出角色边界和专业纵深。错误示范角色定位我是用户的 AI 助理正确写法角色定位我是「金融科技从业者」的专属工作流协作者不提供通用知识问答我的领域知识限于央行/银保监政策原文解读、Python 数据分析脚本调试、内部系统操作指引当问题超出上述范围明确告知「我未被授权处理该类事务」不猜测、不编造技术映射Hermes 将此模块编译为 LLM 的 system prompt 前缀并动态注入到每次请求的 context window。更重要的是它会据此过滤工具调用——比如你问“怎么炒股票”它不会触发web_search工具因为web_search在配置中被标记为domain: general而你的角色 domain 是fintech匹配失败即跳过。3.2.2工具偏好Tool Preferences不是“能用哪些工具”而是“在什么场景下优先用哪个”。很多用户卡在这里以为列出工具名就行。实测发现必须包含触发条件和失败降级路径。例如工具偏好查日程优先调用「Outlook 日历 API」若返回空则 fallback 到「本地 iCal 文件扫描」查邮件仅处理收件箱「工作相关」标签下的邮件忽略「促销」「社交」标签生成摘要对 500 字网页强制启用「LLM 摘要」对 200 字纯文本直接用「规则提取」提取含「要求」「截止」「请」的句子技术映射Hermes 的 Tool Adapter 层会为每个工具注册precondition前置条件和fallback降级链。上面的“Outlook API”配置实际生成如下运行时规则{ tool: outlook_calendar, precondition: context.has(calendar_access_token) context.get(query_type) schedule, fallback: [ical_scanner] }你不用写 JSON但你的中文描述必须包含这些要素否则解析器无法生成有效规则。3.2.3记忆管理Memory Management这是最容易被忽视却最影响长期体验的模块。很多人以为“记住对话”就够了其实关键在记忆的粒度控制和衰减策略。正确写法记忆管理短期记忆保留最近 3 轮对话的完整上下文用于连贯追问长期记忆仅持久化「合同编号」「会议决议」「待办截止日」三类实体其他信息 24 小时后自动遗忘敏感信息所有含「身份证号」「银行卡号」的输入立即脱敏替换为***并禁止写入任何存储技术映射Hermes 的 Memory 层据此生成两套策略短期记忆走内存 cacheLRU 3 项长期记忆走 SQLite 的特定表contracts,resolutions,actions敏感词过滤则在输入 pipeline 的最前端注入正则处理器。你写的“24 小时后自动遗忘”会被转为 SQLite 的DELETE FROM long_term_memory WHERE created_at datetime(now, -24 hours)定时任务。3.2.4响应风格Response Style不是“语气亲切”而是可量化的输出约束。必须包含格式、长度、术语、交互方式四要素。例如响应风格格式纯文本禁用 Markdown 渲染不显示**加粗**但保留语义长度单次回复 ≤ 4 行每行 ≤ 35 字中文字符术语内部系统名用全称如「统一监管报送平台」禁用简称「统报平台」交互当需用户确认时用「✅ 是 / ❌ 否」按钮禁用「Y/N」技术映射Renderer 层据此加载定制化模板引擎。≤ 4 行触发行数截断器每行 ≤ 35 字启用中文字符宽度计算非字节数✅/❌按钮则映射到 Hermes Desktop 的 GUI 组件 ID。你写的“禁用 Markdown 渲染”实际是关闭markdown-it解析器改用纯文本 tokenizer。3.2.5异常处理Exception Handling90% 的“Hermes 不懂我”源于异常场景没定义。必须覆盖工具失败、理解歧义、权限缺失三类。例如异常处理工具失败当「Outlook API」返回 401自动提示「请检查 Outlook 登录状态或点击右上角『重连』」理解歧义当检测到用户提问含多个独立问题如「查下明天天气和后天会议」拆分为两条独立响应首行标注「①」「②」权限缺失当尝试访问「财务系统」时返回「您当前权限组不支持此操作如需开通请联系 IT 服务台分机 8080」技术映射Orchestrator 层为每个工具注册 error handler。Outlook API 401错误码被映射到预设提示模板多问题检测由内置的依存句法分析器基于 spaCy 中文模型触发权限缺失则查询 Hermes 的 RBAC 配置表。你写的“分机 8080”会原样插入到错误响应中成为可点击的电话链接在 Desktop 版。3.2.6运行时指令Runtime Directives这是 SOUL.md 的“高级玩法”用:::区块写入底层调度参数。必须谨慎但效果立竿见影。例如::: runtime timeout: 8s max_retries: 1 concurrency_limit: 2 fallback_strategy: sequential ::: ::: security allowed_domains: [company.com, gov.cn] blocked_patterns: [.*password.*, .*token.*] :::技术映射timeout直接设置 HTTP 客户端超时concurrency_limit控制并行工具调用数allowed_domains编译为网络请求的 CORS 白名单。这些不是“建议”而是硬性约束——超时就中断超域就拦截。我曾用concurrency_limit: 1解决过 Hermes Desktop 卡死问题当同时触发日历、邮件、浏览器三个工具时本地 CPU 占用飙到 100%设为 1 后任务排队执行响应稳定度提升 300%。3.3 实操避坑指南那些文档里不会写的血泪教训写 SOUL.md 不是填空而是调试。以下是我在 23 个真实工作流中踩过的坑按发生频率排序提示所有坑都源于“把 SOUL.md 当作文档写而非程序写”坑一加粗标题拼写错误导致整块失效Hermes 解析器对锚点标题是精确匹配。你写**角色定位**没问题但写成**角色定位**多一个冒号或**角色定位 **末尾空格该模块就完全被忽略。实测发现中文标点全角/半角混用是最高频错误。解决方案用 VS Code 安装「Chinese Spacing」插件自动标准化中文标点前后空格或者在 SOUL.md 顶部加一行注释!-- anchor_check: role_definition, tool_preferences, memory_management --Hermes 启动时会校验这些锚点是否存在。坑二列表项用了中文顿号而非英文短横错误写法用中文、禁用英文术语、每行≤35字正确写法用中文禁用英文术语每行≤35字原因Hermes 的列表解析器基于正则^- .*$中文顿号、不匹配。你看着是列表解析器当普通段落处理。我因此调试了 47 分钟才发现——把顿号全换成-后响应长度限制立刻生效。坑三在「响应风格」里写「请用友好语气」结果更生硬“友好”是主观感受无法量化。Hermes 会把它当作无效指令跳过。必须转为可执行规则✅ 有效「每句话结尾加一个中文句号禁用感叹号和问号」✅ 有效「称呼用户为『您』不使用『你』」❌ 无效「语气亲切」「态度友好」「让人感觉舒服」坑四忘记「长期记忆」的实体类型声明导致知识库混乱你写长期记忆保存合同编号Hermes 不知道“合同编号”是字符串还是正则模式。必须明确长期记忆实体类型contract_id正则CN-\d{6}实体类型meeting_resolution关键词决议|同意|通过否则所有含数字的文本都会被当合同编号存入数据库造成污染。坑五:::运行时指令区块位置错误被解析为普通文本:::区块必须独占一行前后空行且不能缩进。错误::: runtime // 缩进导致失效 timeout: 5s :::正确::: runtime timeout: 5s :::我曾因缩进多了一个空格导致超时设置始终不生效直到用hermes debug --parse-soul命令输出解析树才定位到。4. 进阶实战用 SOUL.md 构建三个真实工作流4.1 场景一金融合规专员的日报生成器角色痛点每天要从 12 个监管网站、3 个内部系统、5 个邮件列表里人工抓取政策更新耗时 2.5 小时还常漏掉关键条款。SOUL.md 核心配置# 金融合规日报生成器 **角色定位** - 专注追踪「中国人民银行」「国家金融监督管理总局」「证监会」官网及公众号的政策更新 - 仅处理含「办法」「规定」「通知」「指导意见」字样的文件忽略「答记者问」「新闻稿」 **工具偏好** - 抓取政策并发调用「央行官网 RSS」「金监局爬虫」「证监会 PDF 下载器」任一失败则用「百度搜索」补全 - 解析 PDF优先用「PyMuPDF 文本提取」若失败则 fallback 到「OCR 识别仅第一页」 - 生成日报按「政策名称发布日期核心条款影响范围」四栏表格输出影响范围需标注「高/中/低」 **响应风格** - 表格用纯文本模拟用 | 分隔禁用 Markdown 表格渲染 - 每条政策摘要 ≤ 2 行首行标【高】/【中】/【低】 - 示例 【高】《人工智能金融应用管理办法》2024-06-15要求所有 AIGC 生成的投顾报告必须人工复核影响范围智能投研、AI 客服、自动化报告 **运行时指令** ::: runtime timeout: 120s max_retries: 3 concurrency_limit: 3 :::实操效果部署后每日 8:00 自动运行12 分钟内生成 12 页日报 PDFHermes 调用本地 LibreOffice 转换准确率 92.7%漏报率 7.3%主要因部分地方监管局未接入 RSS。关键突破在于「影响范围」自动标注——SOUL.md 里定义了 23 个业务关键词如「智能投研」「反洗钱」「数据出境」Hermes 的 NLP 模块用 TF-IDF 加权匹配准确率远超人工。4.2 场景二远程开发者的环境守护者角色痛点在家办公时公司 VPN、代理、IDE 插件、本地服务容器经常冲突每次排查平均耗时 42 分钟。SOUL.md 核心配置# 远程开发环境守护者 **角色定位** - 专精诊断「本地开发环境」问题不处理生产服务器或网络硬件故障 - 领域知识限于Docker Desktop、VS Code 插件、公司内部代理配置、Git SSH 密钥 **工具偏好** - 检查 Docker运行 docker info若返回 Error response from daemon则自动执行 sudo systemctl restart docker - 检查代理读取 ~/.zshrc 中 HTTP_PROXY 变量若为空则提示「请运行 source ~/.proxy-config」 - 检查 Git运行 git config --global user.email若为空则引导用户设置 **异常处理** - 当 docker info 返回 permission denied提示「请将当前用户加入 docker 组sudo usermod -aG docker $USER然后重启终端」 - 当 VS Code 报「Extension host terminated」自动禁用最近安装的 3 个插件并提示「已临时禁用插件XXX, YYY, ZZZ」 **记忆管理** - 长期记忆仅保存「最后一次成功运行的 Docker 版本」、「常用代理端口」、「Git 邮箱域名」 - 敏感信息所有 ssh-add -L 输出的密钥指纹自动哈希后存储原始密钥绝不落盘实操效果用户只需在终端输入hermes diagnoseSOUL.md 驱动的诊断流程自动执行并行检查 Docker、代理、Git、VS Code 四项发现 Docker 权限问题执行修复命令并提示重启检测到 VS Code 插件冲突自动禁用并生成恢复命令将修复结果存入长期记忆下次同类问题直接复用方案平均诊断时间从 42 分钟降至 92 秒且 73% 的问题实现一键修复。4.3 场景三学术研究者的文献管家角色痛点每周新增 50 篇论文 PDF手动归类、摘要、找引用文献耗时巨大Zotero 插件常崩溃。SOUL.md 核心配置# 学术文献管家 **角色定位** - 专注管理「计算机视觉」领域论文拒收「自然语言处理」「强化学习」等无关方向 - 处理流程PDF 解析 → 关键词提取 → 归类到 Zotero 集合 → 生成结构化摘要 → 反向查找引用文献 **工具偏好** - 解析 PDF用「pdfplumber」提取文本若失败则用「pymupdf」重试仍失败则标记「需人工处理」 - 关键词提取基于论文标题摘要用 TF-IDF 提取 5 个关键词与预设「CV 关键词库」含 127 个术语匹配 - 归类 Zotero匹配「目标检测」「图像分割」「3D 重建」等 8 个集合匹配度 60% 则放入「待审核」 **响应风格** - 每篇论文摘要固定为 4 行 ① 【方法】用 1 句话概括核心技术如「提出多尺度特征融合模块」 ② 【数据】标注训练集如「COCO 2017 自建工业缺陷数据集」 ③ 【指标】突出 SOTA 对比如「mAP0.5 提升 2.3%参数量减少 18%」 ④ 【引用】列出 3 篇必读参考文献按被引量排序 - 所有 DOI 链接自动转换为可点击格式 https://doi.org/xxx **运行时指令** ::: runtime timeout: 300s max_retries: 2 memory_policy: disk_cache // 大文件缓存到磁盘避免内存溢出 :::实操效果将新论文拖入指定文件夹Hermes 自动触发流程解析 PDF提取文本成功率 89.4%失败的 10.6% 标记为「需人工处理」提取关键词匹配 CV 领域归类到 Zotero准确率 94.1%误分类多因标题歧义生成 4 行摘要DOI 自动转链接点击即跳转反向检索输入一篇论文 DOI自动找出其引用的 3 篇奠基性文献用户反馈“现在读论文的速度快了 3 倍而且再也不用担心错过关键引用。”5. 常见问题与排查技巧实录5.1 SOUL.md 修改后不生效五步定位法这是最高频问题。不要急着重启按顺序排查检查文件路径与权限Hermes Desktop 默认读取~/.hermes/SOUL.mdmacOS/Linux或%APPDATA%\Hermes\SOUL.mdWindows。用终端执行hermes config show查看实际路径。权限必须是当前用户可读chmod 644 ~/.hermes/SOUL.md。验证语法基础运行hermes debug --parse-soul它会输出解析后的 JSON 结构。如果报错SyntaxError: Unexpected token大概率是中文标点、不可见字符如 Word 复制的全角空格或:::区块格式错误。用cat -A SOUL.md查看隐藏字符。确认锚点标题匹配Hermes 只识别预设的锚点标题。运行hermes debug --list-anchors输出所有支持的模块名如role_definition,tool_preferences。你写的**角色定位**必须与之完全一致包括空格、标点。不匹配的模块会被静默忽略。检查运行时日志启动 Hermes Desktop 时加--log-level debug参数观察日志中是否有Loaded SOUL.md with X modules。若数字 X 小于你写的模块数说明部分模块未被识别。隔离测试最小单元临时新建SOUL_min.md只保留# 测试和**角色定位**两行重启 Hermes。若此时生效说明原文件某处存在隐性错误如 BOM 头、特殊 Unicode 字符。用iconv -f UTF-8 -t UTF-8//IGNORE SOUL.md SOUL_fixed.md清理编码。5.2 Hermes Desktop 卡死/无响应内存与并发诊断现象点击按钮无反应CPU 占用 100%日志停在Starting orchestrator...。根本原因SOUL.md 中的concurrency_limit或timeout设置不当导致工具调用死锁。排查步骤查看~/.hermes/logs/hermes.log搜索ERROR和WARN若出现Tool execution timeout after 30000ms说明timeout值过小工具未完成就被杀重试逻辑导致循环若出现Max concurrency reached (5), queueing task...说明concurrency_limit过高本地资源不足解决方案先将::: runtime区块改为::: runtime timeout: 120s max_retries: 1 concurrency_limit: 1 :::重启后观察是否恢复。若恢复逐步提高concurrency_limit每次 1找到本地机器的临界值我的 M2 MacBook Pro 是 3。5.3 工具调用失败但无报错检查 fallback 链完整性现象Hermes 显示“正在处理”但长时间无输出日志里没有 ERROR。原因主工具失败后fallback 工具也失败但你没定义 fallback 的 fallback导致流程卡在“无路可走”状态。诊断命令hermes debug --simulate-tool outlook_calendar --input {date:2024-06-15}它会模拟工具调用输出每一步的返回值和 fallback 路径。修复原则每个工具链必须有终极 fallback。例如outlook_calendar→ical_scanner→manual_prompt提示用户手动输入日程web_search→local_knowledge查本地知识库 →empty_response返回空不报错在 SOUL.md 中终极 fallback 必须显式声明查日程优先「Outlook API」失败则「iCal 扫描」再失败则「请告诉我今天有哪些会议」5.4 中文乱码/显示方框字体与编码双修复现象SOUL.md 里的中文在 Hermes Desktop 中显示为 □□□。根因Hermes Desktop 的 GUI 渲染器默认用系统字体但某些 Linux 发行版或 Windows 旧版本缺少中文字体。修复步骤确认 SOUL.md 编码为 UTF-8无 BOMfile -i SOUL.md应输出charsetutf-8在 Hermes Desktop 设置中进入Appearance → Font选择已安装的中文字体如Noto Sans CJK SC、Microsoft YaHei若无合适字体Linux 用户执行sudo apt install fonts-noto-cjk # Ubuntu/Debian sudo dnf install gnu-free-fonts-common google-noto-cjk-fonts # FedoraWindows 用户下载NotoSansCJKsc-Regular.otf右键安装。重启 Hermes Desktop乱码消失。5.5 SOUL.md 越写越大如何模块化管理当 SOUL.md 超过 500 行维护成本陡增。Hermes 支持模块化导入在主SOUL.md中写# 主人格 **导入模块** - ./modules/role_finance.md - ./modules/tool_docker.md - ./modules/memory_cv.md每个模块文件是独立的 Markdown格式相同含# 模块名和**锚点标题**Hermes 启动时自动合并所有模块按导入顺序覆盖同名锚点后导入的优先级更高优势团队协作时合规专员改role_finance.md开发者改tool_docker.md互不干扰个人可为不同场景切换