乐于分享
好东西不私藏

李宏毅大模型笔记:openclaw

李宏毅大模型笔记:openclaw
1 openclaw 介绍
  • 用户对openclaw加指令

  • openclaw对指令做一些加工后给语言模型

  • 语言模型处理完之后将输出给openclaw,openclaw再处理一下后把处理完的结果给人

  • openclaw的聪明程度取决于语言模型的聪明程度

2  system prompt

  • 在D端存了很多信息,相关信息会被openclaw整理成一大段(也即system prompt),送给语言模型
  • 每一次和语言模型交互的时候,system prompt都会附带上去
使用openclaw非常烧钱,因为每次需要传很长的system prompt
soul.md

继续会话,会把之前的会话信息一并赋给语言模型

3  使用工具

  • 有哪些工具可以使用是放在system prompt里面的
  • 这样语言模型就会自己决策要不要使用工具
  • openclaw看到语言模型返回的内容里有执行工具的信号,就直接执行那一个工具的命令
  • system propmt+过去的信息(语言模型是不知道自己过去呼叫过read这件事,只知道用户不知道为什么原因调用了read这个工具,然后读取了一些东西)送给语言模型,语言模型返回调用write工具
  • write 工具会回传一个done,表示完成操作,于是语言模型提示任务完成,openclaw 输出任务完成
3.1  自己创造工具
如果不会创造工具的话
  • 如果语言模型觉得太繁琐了,可以要求openclaw写一段代码,即自己创建一个脚本

  • 语言模型要求在D端写了这个代码

  • 多数代码写完就遗忘了,每次就重新写一份代码

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

3.2  特殊工具  sub-agent

召唤两个“子代”
  • 大龙虾等小龙虾的执行结果

  • 小龙虾把结果传给大龙虾

  • 大龙虾把小龙虾给的输出丢给语言模型

  • 从大龙虾的角度看,可以节省context window,因为小龙虾交互中繁琐的过程不在大龙虾的context window

相当于一种context engineering
  • 为了防止小龙虾再生成更小的龙虾,openclaw在spawn的程序段禁用小龙虾的生育能力

4 Skill
  • 工作的流程
  • 把一些复杂工作的流程记录下来,以免遗忘+可以重复使用
  • 每次产生system prompt 之前搜寻有没有skill.md的文件
    • skill.md中记录了可用的skill的摘要和路径
    • 需要的时候再提取这个skill
    • skill也相当于一种context engineering
skill 在指定的文件夹,可以把自己的新skill 放进去
5 记忆
  • 运行时会把记忆写进文档里面
  • 这个是system中要求的,openclaw自己决定什么内容写进memory.md里面
  • 怎么读取记忆呢?就类似于rag了