

用户对openclaw加指令
openclaw对指令做一些加工后给语言模型
语言模型处理完之后将输出给openclaw,openclaw再处理一下后把处理完的结果给人
openclaw的聪明程度取决于语言模型的聪明程度
2 system prompt


在D端存了很多信息,相关信息会被openclaw整理成一大段(也即system prompt),送给语言模型 每一次和语言模型交互的时候,system prompt都会附带上去






继续会话,会把之前的会话信息一并赋给语言模型
3 使用工具

有哪些工具可以使用是放在system prompt里面的 这样语言模型就会自己决策要不要使用工具 openclaw看到语言模型返回的内容里有执行工具的信号,就直接执行那一个工具的命令

system propmt+过去的信息(语言模型是不知道自己过去呼叫过read这件事,只知道用户不知道为什么原因调用了read这个工具,然后读取了一些东西)送给语言模型,语言模型返回调用write工具

write 工具会回传一个done,表示完成操作,于是语言模型提示任务完成,openclaw 输出任务完成


如果语言模型觉得太繁琐了,可以要求openclaw写一段代码,即自己创建一个脚本
语言模型要求在D端写了这个代码
多数代码写完就遗忘了,每次就重新写一份代码

需要注意的是,有一些比较弱的模型,本身并不会调用工具(虽然他的输出看上去像是调用了工具)
3.2 特殊工具 sub-agent



大龙虾等小龙虾的执行结果
小龙虾把结果传给大龙虾
大龙虾把小龙虾给的输出丢给语言模型
从大龙虾的角度看,可以节省context window,因为小龙虾交互中繁琐的过程不在大龙虾的context window中

为了防止小龙虾再生成更小的龙虾,openclaw在spawn的程序段禁用小龙虾的生育能力

工作的流程 把一些复杂工作的流程记录下来,以免遗忘+可以重复使用

每次产生system prompt 之前搜寻有没有skill.md的文件 skill.md中记录了可用的skill的摘要和路径 需要的时候再提取这个skill skill也相当于一种context engineering



运行时会把记忆写进文档里面 这个是system中要求的,openclaw自己决定什么内容写进memory.md里面

怎么读取记忆呢?就类似于rag了

夜雨聆风