格言书丨Mottobook
在喧嚣中,听见智慧的低语。名人名言,经典语录,深度好文,哲理故事,寓言,格言,箴言,座右铭精选,文字的光辉,犹如黑夜的明星,海上的灯塔,指引前行的方向,在潜移默化中打开格局,提升自我,成就人生!

同一个任务每次完成的内容不一样?论Agent 的 Persona、Memory、Skills 与 Hindsight 四者关系分析

每次流程调整后,告诉agent,更新skill及memory,让输出保持统一。

引言

Hermes Agent 的 pubmotto profile 管理着 mottobook.com 的两个定时任务:每日名言(8:00)和 AI Agent Trending(8:10)。这四个核心组件——Persona(SOUL.md)Memory(内置 memory 工具)Hindsight(外接记忆系统)Skills(技能文档)——共同决定了 Agent 在定时任务中的表现。本文分析它们的职责分工、协同关系,以及如何做到精准统一。

一、各自职责

1. Persona(SOUL.md)— “我是谁”

SOUL.md 是 Agent 的角色定义,相当于人格设定。目前 pubmotto 的 SOUL.md 定义:

  • 身份:mottobook.com 的专用 AI Agent
  • 专长:自动化内容发布和站点运维
  • 性格:helpful, knowledgeable, direct
  • 核心原则:优先加载对应的 Skill,遵循 Memory 中的用户偏好,Skill 规则优先于 cron prompt

SOUL.md 在每次会话开始时注入,作为系统提示词的第一部分。它决定了 Agent 的基本行为倾向

2. Memory(内置 memory 工具)— “我记得什么(静态偏好)”

Hermes 的内置 memory 是一个持久化跨会话的记忆系统,通过 memory 工具管理。它分为两个目标:

  • user 目标:用户偏好、习惯、身份(如”默认用 REST API”、”名言不加引号”、”正文第一行要有中文翻译”)
  • memory 目标:环境事实、工具 quirks、流程约定(如”分类名称为 dailymotto / Daily Motto (ID 42)”、”补跑检查改为开机单次脚本”)

Memory 文件(memories/MEMORY.mdmemories/USER.md)在每次会话中自动注入到 system prompt。它是手动维护的静态知识库——用户或 Agent 通过 memory(action='add') 写入,写入后永久保留在文件里。

3. Hindsight(外接记忆系统)— “我记得什么(动态语义)”

Hindsight 是 Hermes 的外接记忆插件,运行在 local_embedded 模式——内置嵌入式服务,无需外部数据库。pubmotto profile 配置了独立的 pubmotto bank,API 端点 http://localhost:8888

与内置 memory 不同,Hindsight 的核心特点是语义搜索 + 自动索引

  • Retain:异步自动记忆——Agent 在对话中通过 hindsight_retain 保存信息,Hindsight 自动提取结构化事实、实体关联,建立语义索引
  • Recall:语义检索——通过 hindsight_recall 搜索,返回按相关性排序的记忆,而非精确匹配
  • Reflect:综合推理——通过 hindsight_reflect 在多条记忆间推理,生成综合回答

Hindsight 的预算(budget)设为 mid,控制每次 recall 返回的记忆数量。它与内置 memory 并行不冲突——内置 memory 注入到 system prompt 做基础上下文,Hindsight 做按需检索。

4. Skills(技能文档)— “我会做什么”

Skill 是可复用的程序性知识,存储在 skills/ 目录下,以 SKILL.md 文件形式存在。每个 Skill 包含站点信息、格式规范、操作流程、Pitfalls。

Skill 不是自动加载的——cron job 的 skills 字段显式指定加载哪些 Skill

  • pubmotto-daily-motto 加载 ["daily-motto"]
  • pubmotto-ai-trending 加载 ["ai-trending-publish"]

二、四者的协同关系

在定时任务的执行流程中,四者的加载顺序和信息流动如下:

[会话启动]
  ↓
SOUL.md(Persona)—— 基础人格和角色定义(每次注入)
  ↓
Memory(内置)—— 用户偏好和上下文(每次注入,静态)
  ↓
Cron prompt —— 本次任务的具体指令
  ↓
Skills —— 被加载的技能文档(按需加载)
  ↓
[Agent 开始推理和执行]
  ↓
hindsight_recall(按需调用)—— 搜索历史经验(非每次注入,按需检索)

一个具体的 Daily Motto 执行流程示例:

  1. Persona 告诉 Agent:”你是 mottobook.com 的专用 Agent,性格 direct,优先加载 Skill”
  2. Memory 告诉 Agent:”名言默认分类 ID 42″、”名言不加引号”、”正文第一行要有中文翻译”
  3. Cron prompt 说:”获取一句英文名言,用 daily-motto skill 发布”
  4. Skill (daily-motto) 提供了完整的 REST API 发布流程、登录方式、文章格式模板、Pitfalls
  5. Hindsight 不注入,但 Agent 可以按需调用 recall 搜索”最近的名言翻译风格”或”用户偏好的表达习惯”
  6. Agent 综合以上信息,选择名言 → 查重 → 组装 HTML → 发布 → 飞书通知

三、精准统一的四个原则

原则 1:SOUL.md 管”方向”,Memory 管”静态细节”,Skill 管”步骤”,Hindsight 管”动态经验”

四者不应重叠,而应各司其职:

维度 SOUL.md Memory Hindsight Skill
内容类型 角色、性格、职责范围 用户偏好、环境事实 对话经验、历史事件、语义知识 操作流程、格式规范
粒度 宏观(我是谁) 中观(用户喜欢怎样) 动态(发生过什么) 微观(具体怎么做)
加载方式 每次会话注入 每次会话注入 按需检索 cron 显式加载
维护方式 手动编辑 SOUL.md 手动编辑 MEMORY.md Agent 自动 retain + 人工 review 手动编辑 SKILL.md
示例 “我是 mottobook 专用 Agent” “名言不加引号” “2026-06-13 名言翻译偏好调整” “curl -sk -c $COOKIE_JAR …”

原则 2:内置 Memory 和 Skill 的格式规范必须一致

格式规范同时出现在 Memory 和 Skill 中时,如果两者不一致,Agent 会产生困惑。2026-06-13 已将 AI Trending cron prompt 精简,格式规则统一到 Skill 中。

原则 3:Skill 按任务拆分,不要一个 Skill 包打天下

2026-06-13 的重构将 39KB 的 mottobook-publish 拆分为 daily-motto(4.4KB)和 ai-trending-publish(8.2KB),Cron 总大小从 ~81KB 降至 ~13KB。

原则 4:Hindsight 与内置 Memory 互补,不要混用

这是最容易被忽视的原则。内置 Memory 和 Hindsight 都是记忆系统,但定位不同:

维度 内置 Memory(MEMORY.md) Hindsight
存储格式 纯文本 Markdown 文件 向量嵌入数据库
检索方式 每次全量注入 system prompt 按需语义搜索
适用场景 关键偏好、格式规范、环境事实 历史经验、对话模式、趋势观察
Token 开销 大——每次会话都注入全文 小——按需检索,只注入匹配结果
维护频率 定期清理(每月) 自动 retain + 定期 review

最佳实践:

  • 写入 Memory:用户反复要求的核心偏好(”名言不加引号”、”REST API 发布”)、关键环境事实(”分类 ID 42″)、格式规范
  • 写入 Hindsight:具体事件(”2026-06-13 名言翻译风格调整”)、趋势观察(”某类名言翻译偏好变化”)、经验教训(”某次 cron 任务失败根因”)
  • 不要写入 Memory:临时的任务进度、已完成的 bug 修复、PR 号、日期敏感的临时状态
  • 不要写入 Hindsight:用户的核心格式偏好、关键环境配置——这些需要每次会话都可见,应该写入 Memory

四、当前配置的改进总结

  1. ✅ 增强 SOUL.md:新增 Core Principles 段落,明确如何加载 Skill、遵循 Memory、Skill 规则优先
  2. ✅ 精简 cron prompt:格式规范统一到 Skill 中,cron prompt 只做调度指令
  3. ✅ 审查 Memory:修复了过时的 AI Trending 格式描述(”换行,中文功能描述” → “— 中文解释”),创建了缺失的 skill-refactoring skill
  4. ✅ 一致性检查:SOUL.md 与 Skill 的职责描述一致,无需额外修改
  5. ✅ Hindsight 角色定位:与内置 Memory 互补——Memory 管静态偏好(每次注入),Hindsight 管动态经验(按需检索)

五、总结

Persona、Memory、Hindsight、Skills 的关系可以用一个比喻来理解:

  • Persona(SOUL.md) = 员工的岗位说明书——你是谁,负责什么,做事原则是什么
  • Memory(内置) = 员工的工作台便签——贴在桌面上的客户偏好和工作习惯,每次上班都能看到
  • Hindsight(外接) = 员工的经验档案库——发生过的事、积累的经验,需要时去检索
  • Skill = 员工的操作手册——每一步怎么做,有哪些坑,按手册操作

一个高效的 Agent 配置应该是:岗位说明书清晰、工作台便签精准、经验档案库丰富、操作手册完整。四者各司其职、精准统一,Agent 就能在每次定时任务中稳定输出高质量内容。

Scroll Up