当然可以!我们可以一起探讨各种有趣的话题,比如科技发展、文化知识、日常生活技巧等。请告诉我你感兴趣的具体方向或者问题,我会尽力提供帮助和相关信息。让我们一起探索和创造吧!

摘要:这一章我们演示用龙虾制作我的专属技能-“中医方剂卡片”的全过程,同时轻度解密龙虾的几个核心设计,看看龙虾为何俘获了这么多人的心~
春节前,科技圈被一只“龙虾(OpenClaw)”突袭了。 朋友圈里的各类标题党简直不忍直视:“AGI降临!”“最强记忆管理!”“打工人的终结者!” 看了看底层代码,第一感受是:“确实是一次很棒的产品级创新,但要说技术上的颠覆?uh\(#&en!%\)#^感觉好像也没有 但是!只有用了才有发言权。所以这篇文章分两部分: 实战环节:用OpenClaw创建一个新技能——"中医方剂卡片生成" 原理拆解:分析OpenClaw到底戳中了用户的哪些爽点 先看看最终效果,这是我和龙虾折腾大半天的最终成果,完整技能详见ark_of_mind 动手篇:用龙虾捏一个“老中医”智能体 在动手之前,先聊聊"技能"到底是什么。大致上可以分两类: 类型 举例 本质 操作手册类 如何写入PPTX 工具的使用说明书 任务完成类 个股财报分析 端到端的工作流SOP 我们普通开发者要干的,就是把业务里那些恶心、重复、不想再干第二次的SOP,沉淀成后者的“技能(Skill)”。而龙虾的特点就是把“Skill”做到了极致,万物皆Skill。 但如果说skill一定是Agent的未来么?对这一点我个人并不完全看好。Skill的优点很明显,上手成本低,并且可以随模型对话进行持续改进优化,似乎有了进化的潜力。但本身它不具备任何约束效力,每一步指令都是软约束。这在高精密场景又似乎是个bug。所以要拥抱,但同时也对新的形态保持open mind吧。 下面我们进入“中医方剂卡片”技能的正式制作过程 第一步:该独立时要独立(创建独立智能体) 让我们先创建一个独立智能体,一个独立的智能体拥有独立的 workspace:存储后面会提到的所有记忆文件 agentDir:模型配置,鉴权信息等等 openclaw agents add card-maker 为什么要单开一个Agent? 如果在代码编辑器里,一个项目一个Agent很正常(需要独立环境和Git仓)。但在龙虾里,问题有点模糊,因为龙虾有“全局记忆”。 如果只是临时的系统或任务,用主Agent(主进程)就行。但如果你要做一个长期迭代的复杂项目,强烈建议单开一个独立的Agent。这就好比你不会让你的“私人生活助理”和“无情的写Bug机器”共用一个大脑一样。独立的Agent拥有干净的上下文,不会因为你昨晚让它查了菜谱,今天就在代码里给你加两勺盐。 第二步:用魔法创建魔法(善用skill-creator) 身边朋友问:"做个啥技能呀?"一拍脑门啥也想不出来。 这里给两个思路: Demo反推:把你原来干的活(未来再不想干的)拿来,逆向工程 Histroy压缩:把过往你和模型对话中重复过很多次的对话拿来,压缩抽象 至于怎么写这个Skill的代码?千万别自己手搓!如果你足够了解它,你就不想手搓了。直接召唤 Claude 官方的skill-creator技能: skill-creator会引导模型一步步获取创建技能所需的信息。 第三步:反复拉扯=进化?(技能持续优化) 技能搭好后,就是反反复复的测试。这里你能明显感受到国内外模型的“脑回路差异”。国内有些模型因为缺乏AI相关的训练数据,一上来就喜欢用传统后端开发的思维去搭框架,动不动就给你搞个复杂的类、加一堆后处理,完全偏离了 Skill 轻量化的设计初衷。 分享2个开发tips: 系统级施压:在 Agent.md 里把最核心的SKILL设计原理写进去,别让它放飞自我。 重要的事情说三遍:每一次大的优化和调整指令后,都反复强调要followskill-creator的说明 最重要的一点,在和Agent合作的过程中积累的经验一定要记下来 🗣️ “Note it Down(记在你的小本本上)!” 这句指令是当前 Agent 框架下让 AI 进化的核心。我让这个做卡片的 Agent 把踩过的坑全写进了它的长期记忆里(后面会细讲这个机制)。 技能搭建虽然充满艺术性和想象力,但最终是要变成生产力的。所以验证和量化评估非常重要。 这一章我只尝试了“AI测试->我来反馈->AI修改->记笔记”的循环,量化评估等我试了Claude新版skill-creator后再来补充。 我的做法是: 清空上下文(注意这一点很重要) 让模型基于技能进行批量测试 每个卡片给出反馈 让模型基于反馈优化,再更新到Skill中 3个版本迭代后,我就拥有了基本符合我审美的技能效果(哈哈前几个版本不要太浮夸) 架构拆解篇:龙虾到底凭什么火? 玩完了Demo,我们来扒一扒龙虾的底层逻辑。它为什么能给用户带来所谓的“AGI体感”? 🌍 【环境变了】从云端“仙女”变成了本地“牛马” Agent部署环境的变化其实才是我认为最核心的变化。 以前的Agent基本都是云端部署——Agent住在一个空空如也的Docker里,对用户、对用户环境一无所知。所以以前的Agent都是"任务型"的:写文档、做PPT、生成网页。 而OpenClaw能干什么? 帮你自动分类邮箱 帮你回复钉钉消息 帮你整理桌面文件夹 帮你在日历上订阅日程并提醒 核心不是能力变了,而是这只龙虾从云端落了地。飞在空中的龙虾,怎么能碰到地面上形形色色的人呢? 但代价是什么?极度危险。 它有了你的操作权限,这意味着它能帮你回消息,也能一键删掉你的毕业论文。现在网上甚至有个openclaw.allegro.earth的网站,展示了20多万个在公网未加防护的 OpenClaw 示例。 所以说这在安全和企业使用上还有一段路要走。 ✅ 【CORE】交互体感变了:Task Oriented -> User Oriented 环境变化带来的是工作内核的变化。因为拥有了更多"人"的信息维度,交互体验上的"AGI"味道更浓了。 而真正赋予OpenClaw用户维度理解能力的,是它的记忆机制。 🧠 【Memory】养龙虾的核心:什么信息随使用变化? 养龙虾的核心在两点:记忆和技能。 技能偏项目化,而记忆系统更有AGI色彩。来看看它的设计原理: 所有记忆都存储在Markdown中,文件是唯一形式 模型不记忆对话Session之外的任何信息,只读写文件 采用最简单的文本格式,方便人类阅读和编辑 身份记忆 Openclaw提供了以下几种身份记忆信息,默认保存在每个agent的工作目录下,包括 USER.md:你是谁(我不说,你懂的,各种你的喜好和八卦)。 IDENTITY.md:它是谁。 SOUL.md:这个最有趣,它是AI的“灵魂和底线”。 更新方式有两种: 初始化更新:首次通过openclaw onboard进入时,会根据BOOTSTRAP.md的指令引导用户更新。我的“一卦”长这样(USER.md就不给你们看了哈哈): 手动更新:所有.MD文件可以手工编辑,所以不用工具、不用模型,你自己可以编辑所有以上的记忆文件。 三个文件的定位: USER + IDENTITY:让Agent更懂你,也让Agent更像人 SOUL:需要长期打磨,把你的人生哲学和处事原则灌输给它 💡 有趣的灵魂万中无一,所以SOUL是龙虾行为模式的核心。 官方自带的SOUL文件其实非常有趣,白话翻译几条核心原则: 别说废话:少给我来“好问题!”、“我很乐意帮忙!”这套虚的,直接干活。 允许有脾气:你可以觉得这事很无聊。一个没个性的助手就是个搜索引擎。 别做伸手党:自己先看文档、搜上下文。实在搞不定再问我。带答案来,别带问题来。 懂点规矩:你主人的家底都给你看了,处理对外事务(发推、发邮件)长点心。 行为记忆 如果说身份记忆是人格化的核心,那行为记忆是让龙虾成为你助手的核心。 龙虾设计了一长,一短两种行为记忆 类型 文件 作用 加载时机 短期/日常记忆 memory/YYYY-MM-DD.md 按天组织的日志,知道你每天干什么 只加载最近两天,剩余按需加载 长期/核心记忆 MEMORY.md 决策和持久化事实,Agent进化的核心 每次主对话都加载 短期记忆的更新机制: 只提供append模式,自动触发条件: 当前对话上下文长度超过阈值 用户输入/new开启新对话 触发后,OpenClaw会启动独立Agent,对最近15条对话进行摘要总结。下面是我配置龙虾第一天、接入钉钉插件后,在重启对话时模型保存的当日memory: 而短期记忆的摘要指令非常简单,并没有之前我们看过的很多记忆项目中反复的分类,但效果现在确实缺少有效的评估机制,比较见仁见智。 “” 长期记忆的更新: 老实说,当前版本的OpenClaw对长期记忆的管理有些混乱——记什么、什么时候触发,完全靠Agent自主控制。 感兴趣的朋友可以看看这个Git Issue,大佬们在讨论如何在文档中明确Memory机制对长期记忆的定位。 但好消息是:所有文件都可以通过指令更新。你可以说: "请把这些记下来" "请更新到你的长期记忆中" 就像前面我在SKILL制作过程中把多轮调优积累的经验都放到了MEMORY里面。但当前龙虾的长期记忆确实比较粗浅。何时更新、何时失效、究竟压缩什么经验,并说不清除。 再有就是记忆搜索功能,需要你接入OpenAI的向量模型才能使用,方案也比较常规就是BM25(0.3)+向量(0.7),也都支持用户自行配置,这里就不多展开了。 【GateWay】交互形式简化:从对话中来回到对话中去 这块技术细节暂时不展开,后面会有一章借着多智能体群聊,细说Gateway和钉钉、飞书、Slack这些聊天软件的接入。 但我个人认为Gateway层的加入有点返璞归真的感觉: 从ChatGPT最初爆火就是简单的对话框,但这两年随着任务复杂化,大家把功能做得越来越复杂——Workflow、Canvas、CLI…… 可是最初想象中的Jarvis,其实就是简单的对话啊。 当然不同场景,最趁手的工具可能有不同形态。但最能击中大众的,可能还是对话。 💓 【HearBeat】简单却有趣的新技能:心跳&定时任务 最后再说下龙虾的心跳机制,很有趣的实现思路。不大的功能,造就了无数博主博人眼球的标题,AI帮我盯盘!AI帮我自动下单!每周AI自动写周报! 毕竟原来AI都是被动响应人类的提问,而有了心跳机制,AI可以主动向人类发问 这背后其实是两个机制,OpenClaw巧妙地将两种调度模式结合: 特性 心跳 Cron 定时精度 近似(可漂移) 精确 会话上下文 主会话 主会话或隔离会话 批处理能力 强(可批量检查多项) 弱(独立任务) 成本效率 高(批量检查) 低(独立调用) 智能决策 强(基于上下文) 弱(预设逻辑) Cron很好理解是精准的后端定时,在几点几点,触发一个独立的定时任务。而心跳的设计很巧妙,为了和当前用户的状态无缝衔接,心跳的触发是放在当前主对话中的,可以直接关联前后对话的上下文,整个触发机制如下 系统定时器触发(every 30 min可配置) ↓ 后端发送用户消息: "Read HEARTBEAT.md if it exists..." ↓ 模型看到:常规系统提示词 + 这条特殊用户消息 ↓ 模型执行:读取HEARTBEAT.md文件(使用`read`工具) ↓ 模型根据HEARTBEAT.md内容决定回复: - 有需要关注的事项 → 回复具体内容 - 无事项 → 回复"HEARTBEAT_OK"