乐于分享
好东西不私藏

我用 OpenClaw 一周,才发现它根本不是一个"可控系统"

我用 OpenClaw 一周,才发现它根本不是一个"可控系统"

写 skill。

调 prompt。

设规则。

我以为这和写代码差不多。

写对了,它就该稳定执行。

你为什么会自然地这样理解它?

因为这套流程看起来太像”配置”了——写进去、设规则、按逻辑跑。

我当时甚至觉得,这件事只要调到位,后面就是维护问题,不是使用问题。

真正让我开始怀疑,是同一个 skill 在两轮对话里表现不一样。

用了一周之后,我发现完全不是。

它更像一个:

在不断猜你意图的系统。

❶ 记忆不是”存进去就会用”

我以为 memory 是”存储”。

实际上它更像”被模型重新组织的一段信息”。

我写了一个 skill,让它固定用某种格式回答。

第一轮,它是对的。

第二轮,它开始少了一部分字段。

第三轮,它直接换了一种表达方式。

我回头看 memory 里写的东西,还是完整的。

但它用出来的,已经不是那一套结构了。

我当时没有改 memory,本来以为问题出在输出偶然波动,后来才意识到是它根本没按原结构用。

你存进去的,不是一个结构。

而是一堆会被重写的上下文。

❷ 能力会自己消失

它不是”有了能力”,而是”暂时维持住了一种表现”。

第 1 轮对话,skill 表现稳定。

第 5 轮,开始变弱。

第 10 轮,能力基本消失。

刚调好的 skill,用着用着就不对了。

有一瞬间我会怀疑是不是自己记错了,回头翻前几轮记录才发现,它确实在漂。

一开始我以为是 prompt 写得不够好。

后来我发现不是。

是这个系统本身,没有”稳定状态”。

❸ 自动生成 skill 不可靠

我让它自动生成一个 skill,用来做信息整理。

它写出来的规则里,直接包含了我给的例子。

甚至把具体内容写死在里面。

看起来是对的。

但换一个输入,就完全不适用了。

看上去像抽象规则,实际上只是把我刚才给的例子换了个壳。

模型不会帮你做抽象,它只是在延续当前输入。

它不是在建立结构,它是在拟合你当前给它的输入。

❹ router 不是调用,是猜测

有一种现象我叫它「能力漂移」:同一个 skill 在不同对话轮次里,表现会逐渐偏移。

我同时有两个 skill,名字和功能都很接近。

我以为它会选我刚刚用的那个。

但它经常会选另一个。

甚至有时候,选了一个完全不相关的。

最麻烦的不是它偶尔猜错,而是你很难一眼判断它这次到底是没理解,还是选错了 skill。

它不是精确分发。

它是模糊匹配。

不是”调用某个 skill”。

而是”模型觉得你可能想用这个”。

❺ 抽象总结

OpenClaw 不是一个”写规则 → 稳定执行”的系统。

它更像:

一个不断根据上下文”重构能力”的系统。

你不是在配置系统。

你是在约束一个不稳定的模型。

❻ 怎么用

想让一个 skill 稳定一点,不是去追求更复杂的配置。

反而是反过来:把每件事都做小。

skill 要小。我一开始会把多个功能塞进一个 skill,后来发现只要稍微复杂一点它就开始乱,拆成多个小 skill 之后反而更稳定,出了问题也容易定位。

prompt 要显式。我后来不再让它自己选用哪个 skill,而是明确说「用这个 skill 来做这件事」,歧义明显减少,输出格式也更一致。

不要依赖自动生成。我曾经以为模型会帮我做抽象,后来发现它只是把我给的例子换了个壳,修正的方式是只把它当初稿,人工收敛,后续泛化能力才更强。

必须反复验证。调通一次不等于好了,我后来养成习惯在不同上下文里反复测试,能更早发现漂移,而不是等到用户反馈才发现问题。

你不是在写配置。

是在不断”收紧不确定性”。

❼ 结尾

我现在不会再假设它会稳定执行,而是默认它随时可能偏。

以前我是写完规则再试,现在是边试边收紧。

这个变化不是技巧问题,是理解方式变了。

我现在还在用 OpenClaw。

但我已经不再把它当成一个”系统”。

我更把它当成一个:有能力,但不稳定的工具。

一旦你还在用”配置系统”的方式去理解它,

你就会不断失望。

接受它不是 deterministic 的那一刻,

你才真正开始用对它。


本文来自作者亲身经历,数据已脱敏