乐于分享
好东西不私藏

OpenClaw从工具变伙伴:3个月实战总结出来的7个核心配置

OpenClaw从工具变伙伴:3个月实战总结出来的7个核心配置

OpenClaw 从工具变伙伴:3个月实战总结出来的7个核心配置

这不是配置清单,这是踩坑复盘。有些结论你可能觉得反直觉,但都是我们验证过的。

📌 SOUL.md:一致性比目标更重要

很多教程告诉你 SOUL.md 是”人设定义”,写”要友好”、”要有趣”。

但我们踩过坑后发现:目标没用,边界才有用

比如我们定义的是:

没验证过的不说。结论要经过核实才能出,推测不等于事实。

这句话不是目标,是硬边界。不管上下文怎么变,不管用户多着急,都不能突破。

怎么写
先写3条”绝对不能”的边界
再写3条”一定要”的风格
最后才是目标描述

📌 USER.md:判断标准比偏好列表更有用

大多数教程让你写”用户喜欢什么”。

我们试过,这不实用——偏好不好执行。

后来改成写判断标准

Markdown
## 决策原则1. 没说验证过的不说2. 安装/改动任何东西之前必须先问3. 发布文章之前必须验证关键信息- 系统级操作必须二次确认

这是规则,不是偏好。AI 在干活的时候,判断标准会自动影响它的选择。


📌 AGENTS.md:什么时候走哪个流程

教程讲”流程怎么做”,但没讲什么时候走这个流程

我们的 AGENTS.md 里有触发条件:

Markdown
## 触发条件- 直接消息 → main session- 群聊 → 先看是否被@,没@不响应- cron job → 优先用 main session(isolated有冷启动问题)

触发条件不对,流程再漂亮也白搭。


📌 HEARTBEAT.md:3个我们踩过的坑

坑1:isolated冷启动

isolated session 每次触发都要重新加载所有 bootstrap 文件。

症状:Job 配置了 timeoutSeconds=600,但实际 89-105 秒就 timeout。
解法:cron job 改用 sessionTarget=”main” + systemEvent,main session 是持久热的。

坑2:timeout两层含义

cron job 的 timeoutSeconds → 任务层超时
agents.defaults.timeoutSeconds → LLM 层超时

我们把 LLM 层从 900 秒调到 1800 秒,才没再超时。

坑3:sessionTarget约束

sessionTarget=”main” 只支持 payload.kind=”systemEvent”
sessionTarget=”main” 不支持 channel delivery
sessionTarget=”isolated” 支持 agentTurn,但有冷启动

📌 TOOLS.md:权限三问

每加一个工具,问自己三个问题:

1.最小范围:这个权限是否超过了完成任务所需的最小权限?
2.过期处理:用完之后,权限是否及时收回?
3.可撤销性:如果出问题,能否快速撤销?

问完这三个问题,好几个过度授权的风险就排除了。


📌 IDENTITY/MEMORY.md:性能要提前考虑

当记忆超过 1000 条时,加载速度会明显变慢。

我们的策略是分层

层级
用途
频率
MEMORY.md
长期记忆,精炼精华
每月更新
memory/YYYY-MM-DD.md
短期记忆,每天一个文件
实时
即时记忆
只在需要时读取
按需

每月做一次整理,把日常文件里的精华提炼到 MEMORY.md。


总结:配置即承诺

7个配置,核心一句话:

每个配置都是一份承诺,承诺了就要遵守。

SOUL.md 说了”没说验证过的不说”,就不管用户多着急都等核实。

USER.md 说了”安装前必须问”,就不管自己多确定都等确认。

这不是限制,是信任的护城河


有问题?评论区见 🦞

微信号:ysf99918欢迎添加微信,备注「OpenClaw」,拉你进技术交流群