这页过去把 SOUL.md、USER.md 和 HEARTBEAT.md 当成三份并列配置。当前官方迁移说明已经改变了其中一项:SOUL.md 与 USER.md 仍是工作区上下文文件,旧 HEARTBEAT.md 则由系统管理的 monitor scratch 接替。如果旧安装里还留着 HEARTBEAT.md,先检查迁移状态,不要把新旧教程拼在一起。

先确认工作区属于哪一代
新工作区按当前文档设置;旧工作区先运行官方 Doctor。搜索结果可能同时出现两代写法,实际迁移结果以本机 Doctor 输出为准。

按信息的用途选择位置

内容当前位置适合写什么
SOUL.md工作区上下文人格、语气、边界
USER.md工作区上下文稳定的用户偏好与称呼
AGENTS.md工作区说明操作规则、项目约定、工具说明
monitor scratch系统管理的 cron job定时检查、提醒条件、无变化时如何处理

SOUL.md:先写红线,再写任务

SOUL 是 Agent 的“性格和法律”。普通用户最重要的不是让 AI 更会说,而是让 AI 知道不能做什么。建议把红线放在文件开头,并使用清晰的禁止句。

你是ChainSentry的只读信息整理 Agent。
禁止:输出买卖建议、仓位建议、收益承诺、保证安全结论。
禁止:要求用户提供助记词、验证码、远程控制、交易权限 API Key。
必须:每条关键结论附来源、时间、人工复核提示。

USER.md:把个人偏好写成字段

USER 不是日记,而是偏好表。建议写关注资产、语言、推送时间、风险关键词、忽略列表和输出长度。这样你后续调整时,不需要改 SOUL 的底层边界。

旧 HEARTBEAT.md:先迁移,不再继续加内容

当前官方迁移页说明,新工作区不再创建或读取 HEARTBEAT.md。旧文件存在时,使用 openclaw doctor --fix 导入并归档;不要同时保留文件版和 monitor 版的同一任务。

迁移后,用 openclaw automations list --all 找到 monitor job,再用 openclaw automations scratch <jobId> 查看当前说明。确认目标 job 后,才使用 --set、--file 或 --unset 修改。旧教程里的 openclaw cron … 是同一组命令的别名(官方 Automations 文档写明 cron 仍可用),两种写法效果一样;任务不按时触发时,按定时任务与 Heartbeat 排错的顺序查。

推荐字段表

字段建议写法检查点
sources列官方公告、行情 API、链上浏览器是否能打开原文
output_format固定为概览、异常、待复核、禁止结论是否减少废话
red_lines禁止收益承诺和交易指令是否放在前 20 行
failure_policy接口失败时输出“数据缺失”是否避免编造

修改配置时留下可恢复版本

修改前保存当前文件,并写下日期、目的和预期变化。一次只改一个变量,例如语气、来源或输出格式;验证失败就恢复上一版,不要继续叠加补丁。

配置没按预期工作时,先定位文件

  • 语气忽冷忽热:检查 SOUL.md 是否有冲突规则。
  • 用户偏好总记错:检查 USER.md 是否同时保留新旧指令。
  • 定时提醒重复:检查 cron job 和 monitor scratch,不要只搜索 HEARTBEAT.md。
  • 修改像没生效:确认 Gateway 使用的是同一个 agent workspace,并查看实际注入的上下文。

一次只改一个文件,用正常请求、信息不足的请求和越界请求分别测试。当前职责可查 Agent workspace 与 Agent runtime;旧文件迁移看 HEARTBEAT.md 迁移说明。

事实复核:2026-09-26。本文不复制容易变化的字符上限或默认周期。