学习《以openclaw为例介绍AI Agent的运作原理》

目录

1、openclaw必须的底层配置文件:

  • ~/.openclaw/openclaw.json
    • 系统的"大脑":定义模型、渠道、端口、安全策略等所有全局核心设置。
  • ~/.openclaw/workspace/ 目录下的七个文件(用户可以更改,但是不建议,容易导致多个文件之间内容出现矛盾;agent也能自己修改):
    • SOUL.md:agent人格设定,定义AI的性格、核心价值观和沟通风格;
    • AGENTS.md:工作指南,规定AI处理任务的流程和规则;
    • USER.md:用户说明书,让AI了解你------你的偏好、习惯、雷区;
    • MEMORY.md:长期记忆,AI手动可编辑的长期记忆库,记录重要事实、项目进展、你的喜好,实现跨会话(session)的"记住";
    • IDENTITY.md:对外形象,区别于SOUL.md的内在,定义AI的"外在"样子------显示名称、主题色、问候语等;
    • HEARTBEAT.md:自主意识,AI拥有"主动性",定义定时任务和主动触发条件;
    • BOOTSTRAP.md:用于全新工作空间的一次性初始化向导。

2、心跳(HEARTBEAT)机制

  • 一些日常要定时等处理的任务可以放在HEARTBEAT.md中;
  • 其中记录的任务不一定是很明确的,比如,可以指定任务"向目标前进",在SOUL.md中定义过它的目标是"成为世界顶级学者",那么它就会可能自己每隔一段时间去阅读某个paper,或者研究了某个模型写了篇笔记等等。
  • 搭配心跳机制使用的系统------Cron job系统
    • 一般工作逻辑:

    • 一种妙用::让AI学会等待

      AI并不是真的会等待,对于"龙虾"来说,每一次对话都是一个重启,它只是在指定时间之后执行LLM给的指令;

      再好的模型,也可能不会每次都能成功,当前最彻底的解决方式是在memory.md中规定好,只要有"xxx生成中"这类表达,都需要在x分钟之后检查网页。

      • 没有cron job的一般情况
      • 加了cron job的情况:

3、openclaw与LLM配合操作电脑完成任务的过程

1、"龙虾"接收到任务,并将任务prompt发送给LLM,大模型识别到可以使用Read工具,返回Read工具调用指令;

大模型返回的是对Read工具调用的指令,有的LLM可能能力比较差,会光说不练,仅返回"我无法打开xxx文件......"。

2、"龙虾"使用Read工具,读取到文件中的问题,并将问题传给LLM,LLM返回答案和调用Write工具的指令;

3、"龙虾"使用Write工具将答案写入文件中,并返回Done完成标识给LLM,LLM将"主任,任务完成 [DONE]"内容返回。

4、openclaw调用工具(也生成工具)、sub-agent和skills等外援

  • 可以调用工具;
  • 也可以自己生成工具并使用;
  • 调用sub-agent(sessions-spawn):
    其中,context engine指的是通过一定的策略,如"大龙虾"使用sub-agent分开处理长context(另外,加载skills时,初始仅加载他们的name、description等基本信息,也是一种context engine策略),从而使得自己的context window在可控范围内,本质上对于"大龙虾"来说就是进行了context compression。
    • 大龙虾"调用sub-agent这些"小龙虾"进行复杂任务处理(比如比较A、B两篇paper):- 调用skill:初始状态时加载所有的skill的name和description,按需确定真正使用某个skill时加载其所有的信息。

5、openclaw的记忆:

对话页面"new session"按钮,一键清空当前记忆,但是不会完全清空,对于部分重要记忆会按照agent.md文档中的记录记忆的规则进行记录:

  • AGENT.md中对长期记忆的记录规则:
  • 使用memory_search和memory_get工具跨session获取记忆:
  • 当前对话与历史记忆的RAG:

6、openclaw应对危害信息(指令,如rm -rf)的防御策略:

(使用内置规则)执行指令时,弹窗咨询用户意愿。

7、openclaw防止上下文过长的方式

(1)context compression:

  • 对历史context进行摘要(可多次摘要),然后仅记录摘要后的内容;
  • 主agent调用sub-agent处理任务,也是一种context压缩策略。

(2)context过滤后嵌入prompt

  • 读memory的时候,使用的memory_search和memory_get工具其中就使用了一定的过滤机制;
  • 按需加载真正要使用的skill,也是一种过滤策略。

(3)其他,soft trim、hard clear:

  • 将工具的调用记录给抹掉(删除),或者直接使用 [这里曾经有个tool output] 进行替换;
  • 也可以使用 [详见log1.txt] 这么一个说明和附件替换 [这里曾经有个tool output] ,好处是后续如果确实需要查看这个tool output时能调用Read工具直接获取;

(3)context压缩后,效果变差的解决方式

  • 使用另一个LLM,将压缩后,效果变差的例子给该LLM,并让它进行总结反省,得到feedback信息,下次回答问题时,将这些feedback信息一起放在prompt中给到LLM;

(4)何时压缩

  • openclaw使用最简单粗暴的方式:设置一定的长度阈值,超过这个阈值则开始进行压缩;
  • 通过指令强制模型自己进行压缩一般不可行,因为模型本身是不喜欢对context进行压缩的,模型可能不一定会去执行压缩,如果想让模型进行自主压缩,需要对模型进行额外的压缩场景训练;

8、clawHub:

  • 可以把它理解为 OpenClaw AI 的"插件应用商店",可以找到、安装、分享skills;
  • 官网:ClawHub
  • 【国内腾讯skill社区:https://skillhub.tencent.com/
相关推荐
科技社8 小时前
咪咕互娱亮相数字中国峰会:“精品游戏+轻量终端”组合,打开数字娱乐新想象
人工智能
数智化精益手记局9 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
Flying pigs~~9 小时前
RAG 完整面试指南:原理、优化、幻觉解决方案
人工智能·prompt·rag·智能体·检索增强生成·rag优化
love在水一方9 小时前
VLN 入门学习计划 —— 基于 InternNav
学习
博.闻广见9 小时前
AI_概率统计-2.常见分布
人工智能·机器学习
企业架构师老王9 小时前
2026制造业安全生产隐患识别AI方案:从主流产品对比看企业级AI Agent的非侵入式落地路径
人工智能·安全·ai
Aleeeeex10 小时前
RAG 那点事:从 8 份企业文档到能用的问答系统,全过程拆给你看
人工智能·python·ai编程
冬奇Lab10 小时前
一天一个开源项目(第87篇):Tank-OS —— Red Hat 工程师用一个周末,把 AI Agent 塞进了一个可启动的 Linux 镜像
人工智能·开源·资讯
小糖学代码10 小时前
LLM系列:2.pytorch入门:8.神经网络的损失函数(criterion)
人工智能·深度学习·神经网络
Captaincc10 小时前
转发-中央网信办部署开展“清朗·整治AI应用乱象”专项行动
人工智能·vibecoding