经过上一周的学习,我已经对nanobot的主体部分有了了解,本周我计划对nanobot框架中的其他部分进行学习,并针对其提供的经典skills–weather(天气)和memory(记忆)进行学习,为开发适配我们项目的skills打下基础,然后实现OpenClaw在本地的部署,最后完成项目的模块划分。
1. 核心框架层(上篇博客已介绍)
这是 Nanobot 的灵魂,包含所有 Agent 通用的底层抽象和核心引擎,所有其他模块都围绕它定义的规范展开。
2. 桥接适配层(bridge/)—— 核心与外部的「翻译官」
它的核心任务是翻译:把核心框架的抽象接口,转化为具体外部服务能理解的请求,同时把外部服务的响应 / 事件,转化为核心框架能处理的格式。
典型场景:
- LLM 适配:核心框架只需要调用统一的
llm.generate()接口,bridge层可以实现 OpenAI、Anthropic、本地模型(如 Llama)等不同提供商的适配,更换模型时核心框架完全不用修改。 - 外部业务系统桥接:针对
MarketClaw营销助手,bridge层可以适配电商平台 API、CRM 系统、社交媒体平台,把 Agent 的营销决策(如发送优惠券、推送消息)转化为这些平台的实际操作,同时把用户下单、咨询等事件转化为核心框架能处理的事件。 - 工具调用适配:比如
weather插件用curl调用wttr.in,底层就是bridge层处理了 HTTP 请求和响应解析,核心框架只需要调用统一的工具接口。
3. 测试保障层(tests/)—— 全链路质量「守门员」
它负责验证整个系统的正确性,保证修改代码后不会破坏现有功能。
测试类型:
- 单元测试:单独测试核心框架的模块(如记忆系统、事件总线)
- 集成测试:测试核心框架和桥接层的交互,比如 Agent 调用桥接层的工具是否正常
- 端到端测试:测试整个场景(比如
case里的营销 Agent)的完整流程
它和其他层的关系:覆盖核心框架、桥接层、场景实例,是整个系统稳定运行的保障。
4.完整交互流程示例(以本次项目 MarketClaw 为例)
在整体学习完成后,我对我们本次项目有了更明确的认识,我用一个 “查询热点商品,自动生成营销图文与 PPT 文档” 的场景,看各层怎么协作:
- 用户发起业务请求:需要抓取全网热点商品数据,产出配套营销图文宣传素材与汇报 PPT
- 桥接层翻译:bridge 层接收用户指令,统一转为框架标准事件格式,通过内部事件总线完成消息分发
- 核心框架处理:Agent 大脑调取 MEMORY.md 长期记忆,读取项目营销定位与风格规范,调用数据爬取、内容生成插件,完成热点商品筛选、卖点提炼、内容排版规划
- 桥接层执行:调用图文渲染、PPT 生成第三方工具接口,自动完成配图、文案编辑、页面排版,批量输出完整营销物料
- 日志记录:本次商品查询与内容生成全流程写入 HISTORY.md,优质营销模板、商品筛选规则等关键信息沉淀至长期记忆文件
- 测试验证:自动化测试校验数据准确性、图文格式、PPT 兼容性,保障营销生产功能稳定可靠
这是 Nanobot 框架中标准的天气技能(Skill)配置文件,是一个无需 API 密钥、开箱即用的 Nanobot 天气插件,核心作用是让机器人通过命令行调用免费接口,获取当前天气、天气预报、天气图片、结构化数据,仅依赖系统自带的curl工具。
1.顶部配置块(Nanobot 插件核心规则)
name: weather description: Get current weather and forecasts (no API key required). homepage: https://wttr.in/:help metadata: {"nanobot":{"emoji":"🌤️","requires":{"bins":["curl"]}}}
这是插件的身份证,Nanobot 框架靠这段代码识别、加载、运行插件:
1.name: weather插件名称,框架调用的唯一标识(输入 weather 即可触发)
2.description插件功能描述:获取当前天气和预报,无需 API 密钥
3.homepage官方帮助文档地址,查看完整用法
4.metadata(框架专属元数据)emoji":"🌤️:插件图标requires":{"bins":["curl"]}:依赖声明,系统必须安装 curl 命令才能运行
2.wttr.in 服务 Bash 代码解释
curl -s "wttr.in/London?format=3" curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w" curl -s "wttr.in/London?T" curl -s "wttr.in/Berlin.png" -o /tmp/weather.png
这部分所有 Bash 代码均依托curl -s命令调用 wttr.in 免费天气服务,是系统自带的网络请求工具,用于发起 HTTP 请求获取天气数据,-s参数代表静默模式,执行时不会显示请求进度、加载状态等冗余信息,仅输出纯净的天气结果;所有命令通过修改 URL 中的目标城市、参数配置、后缀格式,实现不同场景的天气查询需求。
1.curl -s "wttr.in/London?format=3"是极简单行查询命令,URL 中的 London 为指定查询城市,可自由替换为其他城市,?format=3是服务预设的固定参数,作用是输出仅包含城市名、天气图标、温度的精简结果;
2.curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w"是自定义格式查询命令,通过format=参数拼接专属占位符,可按需组合展示天气信息,输出定制化的天气数据;
3.curl -s "wttr.in/London?T"用于获取完整天气预报,?T参数的核心作用是关闭终端颜色代码,输出纯文本格式的多日完整预报内容;
4.curl -s "wttr.in/Berlin.png" -o /tmp/weather.png是天气图片导出命令,在城市后添加.png后缀请求图片接口,-o参数用于指定图片的保存路径和文件名,将目标城市的天气图片保存到系统指定目录中。
这是 Nanobot 框架的核心永久记忆技能,采用双层记忆架构,实现 AI 的长期记忆存储、历史对话检索、自动整理,全程无需 API,基于文件和系统命令实现,always: true 代表该技能永久启用、不会关闭。
1.顶部配置(技能基础定义)
name: memory description: Two-layer memory system with grep-based recall. always: true
- name: memory:技能名称,框架核心标识
- description:双层记忆系统,支持 grep 关键词检索
- always: true:关键特性,技能全局永久启用
2.核心:双层记忆文件结构
1.MEMORY.md(长期记忆)存储永久有效的关键信息:用户偏好、项目信息、人物关系;会自动加载到 AI 上下文,AI 随时可以读取使用。
2.HISTORY.md(历史日志)纯追加式的对话 / 事件记录,每条带时间戳 [年-月-日 时:分];不会加载到上下文(避免占用资源),需要时主动搜索。
3.三大机制
1.历史记录检索规则
根据文件大小选择检索方式:
- 文件小:用 read_file读取全文,在内存中搜索
- 文件大 / 长期使用:用exec 调用系统命令精准搜索(性能更高)
2.长期记忆更新规则
遇到重要固定信息,必须立即通过edit_file/write_file写入 MEMORY.md:
- 用户使用习惯、偏好设置
- 项目技术规范、核心配置
- 人员角色、协作关系
3.自动整合机制(无需人工操作)
框架自带自动化处理:
- 对话过长时,自动总结旧对话
- 总结内容追加到HISTORY.md
- 自动提取核心事实,存入MEMORY.md
在进行OpenClaw本地部署的时候,我遇见了很多问题,下面我将其进行一一汇总。
1. 依赖安装失败
问题:sharp 安装提示 "please add node-gyp to your dependencies",或 libvips 版本冲突。
原因:系统全局 libvips 与 sharp 依赖版本不兼容,或 node-gyp 缺失。
解决方法
# 清除缓存并重新安装 npm cache clean --force rm -rf node_modules package-lock.json # 安装依赖 npm install --build-from-source=sharp # 或单独安装sharp npm install sharp@latest
2.模型 API 调用失败
症状:提示 "API Key 错误"、"baseUrl 格式错误" 。
原因:API 配置错误。
解决方法:我先仔细检查手动填写的API密钥,逐个核对字母、数字和符号,确保没有多空格、少字符、大小写输错的情况。然后再检查模型接口请求地址,确认地址末尾有没有漏掉/v1等必要后缀,保证接口格式完全规范。随后我登录模型平台后台,查看个人账号余额是否充足、有没有过期、是否被限制调用权限。接着我本地测试网络连通性,确认电脑能正常外网访问模型服务器,网络卡顿就手动配置合规代理工具,打通网络链路。最后我清空旧的错误缓存配置,重新保存密钥和接口参数,重启网关服务,重新发起调用测试,一步步排查直到AI模型正常连通、不再报错。
3.缺少文件、组件加载失败
现象:提示文件丢失、界面打不开、功能缺失。
原因:杀毒软件误删、解压不完整、我乱动文件夹。
解决方法:我把旧文件全部删掉,重新解压完整安装包,把程序加入杀毒软件白名单,不乱移动、不乱删除项目里面的任何文件。
4.对我们项目的启发
1.要提前做好 Windows、Linux、Mac 三个系统的兼容测试,写好对应操作说明,避免用户系统不一样就跑不起来。
2.把所有配置集中写在一个文件里,端口、密钥、全部可改,方便用户随时调整,不用改代码。
3.要在 MarketClaw 里面自带端口检测、环境体检功能,自动检查端口有没有被占。
暂时分为以下几个模块:
- 商品分析与文案生成 Skill:提取商品结构化信息,分析目标人群,生成小红书图文文案。
- 热点信息采集 Skill:爬取微博热搜、小红书话题热度,检索竞品营销内容。
- 小红书自动化执行 Skill:自动发布笔记、获取评论,完成情感分析与智能回复,引导评论互动。
- 账号预热与人群锚定 Skill:生成账号人设,规划模拟真人的预热运营行为。
- 爆款分析与策略迭代 Skill:采集笔记数据,提取爆款特征,更新优化营销模板。
- 支撑创新 Skill:包含长期记忆自学习、轻量级聊天交互、多场景营销物料生成。
下周我将开始具体skills的开发,并与其他小组成员就各方面细节进行深度讨论。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/282778.html