OpenClaw一周体验

最近一只大龙虾在科技圈好火,甚至说早已出圈了,各种平时不是科技内容的公众号,也开始说这只无所不能,甚至“成了精的”了的龙虾。我初步用了一周时间,现在记录一下自己的体验。 我对于OpenClaw的理解是赋予了大模型本地电脑的命令执行能力,尤其通过Terminal这个接口,能做很多事情了,而不仅仅是之前聊聊天只是给用户一个建议,真正执行还需要用户自己去做。 首先是安装步骤,这个工具目前还远达不到常见软件的使用便利度,在终端安装并且通过命令行配置真会劝退很多人,后边还涉及模型接入和Skills补充,如果不是工科背景,真挺有挑战的。现在网上安装指导已经多如牛毛了,不是我要记录的重点,我想分享的,是这期间对多个模型不同能力的感受,并且我还是不是完全敢赋予它我本地电脑全部权限,现在我是将其部署在我的服务器上的,主要尝试其一些远程能协助我的功能。 从一开始到现在我相对深入尝试过5个模型:GPT-40, Claude Opus 4.6, Kimi 2.5, Kimi 2.5 Coding, Gemini-3-pro-preview,我在这几个模型中都尝试了这几个问题: 告诉我现在的金价/告诉我北京天气:测试工具联网搜索整合信息的能力; 给我每分钟告诉我一次天气/当前时间:测试工具集合大模型定时任务的效果 一开始用的是GPT-4o,主要是其在我的CoPilot订阅中免费(后来得知只是在VS Code中免费,像在OpenClaw中通过API也不免费),配置好后几轮沟通下来感觉像个智障,完全没有网上帖子说的神乎又神自己去解决问题的能力,而是连基本的能力都不会,我问个天气问不出来,最后给我编了一个,还好比较诚实后来告诉是编的。。。同时我让它给我设个定时任务,每1分钟给我发个消息,也搞不定。感觉如果说给我这样一个助力,我真的不敢用,给我收集信息不敢信的同时,对于提醒也收不到。 然后看OpenClaw官方说最最推荐的模型是Claude Opus 4.6,我订阅的CoPilot也可以使用这个模型,于是我切过去试了相同的问题,真正让我感受到不同的天赋真是不能比,因为是天与地的差别。我问了金价,并且让给我定时报时,真的是一次成功,没有任何的纠结可言,这让我稍微感受到了助理的感觉,同样我的环境没有做任何改变,只是换了一个模型,信息也能推送了,网络也能搜索了,而不像前一位GPT-4o同学,抱怨环境不好,抱怨工具有问题,然后任务没完成的同时,抛回给我一大堆问题让我去给他解决,而Claude Opus 4.6就像是一位很聪明的助力,咔咔咔不废话把任务完成(联网查询金价,通过飞书推送时间),然后顺便说了我的飞书配置有些问题,但是不影响当前的任务已经做完了。这感觉非常像职场上不同风格的下属了,把任务交给能力强的人比如Opus 4.6就很放心,即使中间有不少挑战(比如我配置的飞书有瑕疵),该下属也能灵活应变将其搞定从而完成任务。而把任务交给一个能力欠佳的人比如GPT-4o,推进途径遇到很多麻烦一次又一次回来麻烦领导,最后好多任务完不成(比如定时通知),好不容易完成的一个(比如查询天气),老板也不敢信任,因为那个天气真的是编的。。。 后来我又尝试了Gemini-3-pro-preview,像一个还算聪明,但是很马虎的下属。同样的问题,查询天气一次搞定,但是推送时间上,首先第一次推送到飞书,通道对了,但是给我推送的是欧洲柏林时间,我指出其问题后,时间确实改对了是北京时间了,但是又把这个信息推送到了trace而不是飞书,真是不靠谱。如果是这样的下属,我感觉至少是聪明,马虎的问题还是一定程度有解决的空间的。 最后我还试了Kimi 2.5 和Kimi Code,这两者差异不大,总体靠谱程度感觉介于Claude Opus 4.6和Gemini-3-pro-preview之间。上边两个问题基本OK,除了在时区上有点栽。 总结下来就最聪明的大模型在智能助手上感觉确实到了能有正收益的临界点,一些信息收集整理,真可以交给这位助手来解决。目前我是部署在服务器上,我感觉按照Claude Opus 4.6给我的正反馈,安装在自己个人电脑让其逐步开始帮我处理一些文件整理,材料整备等内容,真的是可以去信赖了。但是如果是GPT-4o我感觉会吓死人的,部署在自己电脑上指不定会出什么幺蛾子。我感觉这真的是像极了职场,老板招聘员工时候一方面很缺人一方面又招不来人,因为很多时候宁缺毋滥,让一个很蠢的人来帮自己做事,作为老板们可能还不如自己做。今天我一直以老板以领导的角度来思考问题,都快差点忘了我却是那个给老板打工的人,努力让自己成为Claude Opus,很很多时候感觉自己是GPT-4o。 在切换多个模型过程中,我还问了新模型有没有记得我对于OpenClaw的一些嘱咐,通过回答可以了解到OpenClaw对于用户个人信息其实就是将其总结然后存在本地的一个md文件中,在新的会话或者换了模型后,这些核心信息也会加载到与大模型沟通的内容中。这个过程是带提炼总结压缩的,尤其是上下文太长的时候,其中可能就会丢失信息,最近新闻提到一个安全专家的邮件都被删了,据说就是由于信息压缩把一些很重要内容搞丢了造成的。 再总结一下费用方面,对于OpenClaw部署,多数人是安装在自己的电脑上,也有一些人可能买了Mac Mini,(确实在把玩Skills发现如果在Mac工作环境下应该体验更好),这块应该投入还好,VPS也不贵,电脑大家都有,即使新买个Mac Mini也是一次性的。关键是大模型费用,真的挺烧Token挺贵的。我的CoPilot订阅是一个月10刀,Claude Opus 4.6是三倍Token用量,也就是说我10刀用100个来往交流就烧没了!事实上也是这样,我差不多用了两天,我的CoPilot就提示超额度了。。。其次我还尝试了Kimi,如果使用moonshot的API订阅的话,基本上每一次对话就是几毛钱的费用,不知道随着使用得越久上下文越长,每一次的沟通就是一个很夸张的费用。后来尝试了Kimi Code 49元/月的订阅,感觉比从moonshot订阅得到的额度大多了,其是按照周用量和频现来要求的,也比CoPilot合理很多。感觉是对于普通OpenClaw用户最合适的选择。 我的一周体验大致总结差不多了,给我的整体感受是这个真的是一个跨度很大的能力跃迁,并且成熟速度惊人OpenClaw几乎一天一更新,感觉用不了多长时间,就能够很大程度上成为普通用户友好的智能助手,投入到每天具体的牛马工作中。我的计划是继续在服务器用一段时间,然后在之后某个时间点将其引入我的个人电脑上,尝试提升我的效率,将一些我一直想做但是没时间做的事情,看看能否交给OpenClaw帮我完成。 大致就先记录到这里啦,如果你也最近对这只龙虾很上头,我们可以多交流交流,分享经验心得一起玩一起玩。

OpenClaw一周体验 Read More »

大模型学习笔记:Memory 临时、长期记忆

Memory临时记忆 RunnableWithMessageHistory 是LangChain内Runnable接口的实现,主要用于创建一个带有历史记忆功能的Runnable实例(链),在创建时需要提供一个BaseChatMessageHistory的具体实现(用来存储历史消息),InMemoryChatMessageHistory可以实现在内存中存储历史,额外,如果需要在invoke或stream执行链的同时,将提示词print出来,可以在链中加入自定义函数实现。注意函数的输入应原封不动返回出去,避免破坏原有业务。 from langchain_community.chat_models.tongyi import ChatTongyi from langchain_core.prompts import PromptTemplate, ChatPromptTemplate, MessagesPlaceholder from langchain_core.output_parsers import StrOutputParser from langchain_core.runnables.history import RunnableWithMessageHistory from langchain_core.chat_history import InMemoryChatMessageHistory model = ChatTongyi(model=”qwen3-max”) prompt = PromptTemplate.from_template(     “你需要根据会话历史回应用户问题。对话历史:{chat_history},用户提问:{input},请回答” ) “”” prompt = ChatPromptTemplate.from_messages(     [         (“system”, “你需要根据会话历史回应用户问题。对话历史:”),         MessagesPlaceholder(“chat_history”),    

大模型学习笔记:Memory 临时、长期记忆 Read More »

大模型学习笔记:LangChain‘s Chain

Chain Chain链:将组件串联,上一个组件的输出作为下一个组件的输入是LangChain链(尤其是|管道链)的核心工作原理,实现数据的自动化流转与组件的协同工作: chain = prompt_template | model 前提:Runnable子类对象才能入链(以及Callable、Mapping接口子类对象也可以加入)。 重要点: 可以通过“|”符号来让各个组件行成链 成链的各个组件,需是Runnable接口的子类 形成的链是RunnableSerializable对象(Runnable接口子类) 可通过链调用invoke或stream触发真个链条的执行 from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_community.chat_models.tongyi import ChatTongyi chat_prompt_template = ChatPromptTemplate.from_messages(     [         (“system”, “你是一位与人交往风趣幽默的同事,情商超高。”),         MessagesPlaceholder(variable_name=”history”),         (“human”, “有个同事心情不好,你帮我安慰他”)     ] ) history_data = [     (“system”,

大模型学习笔记:LangChain‘s Chain Read More »

大模型学习笔记:RAG

Retrieval Augmented Generation: 检索增强生成技术,利用检索外部文档提升生成结果质量。为大模型提供了从特定数据源检索到的信息,以此来修正和补充生成答案。RAG = 检索技术 + LLM提示。 领域知识和私有数据 实时数据 减少生成不确定性 增强数据安全 RAG标准流程由索引(Indexing)、检索(Retriever)和生成(Generation)三个核心阶段组成。 索引阶段:通过处理多种来源多种格式的文档提取其中文本,将其切分成标准长度的文本块(chunk),并进行嵌入向量化(embedding),向量存储在向量数据库(vector database)中。 加载内容 内容提取 文本分割,形成chunk 文本向量化 存向量数据库 检索阶段,用户输入的查询(query)被转化为向量表示,通过相似度匹配从向量数据库中检索出最相关的文本块。 query向量化 在文本向量中匹配出与问句向量相似的top_k个 生成阶段,检索到的相关文本与原始查询共同构成提示词(Prompt),输入大语言模型(LLM),生成精确且具备上下文关联额回答。 匹配出的文本作为上下文和问题一起添加到prompt中 提交给LLM生成答案 模型本质上就是用户输入,模型给出输出,用户能做的就是在输入上做功夫。核心价值: 解决知识时效性问题:接入最新文档,“与时俱进” 降低模型幻觉:模型的回答基于检索到的事实性资料,而非纯靠自身记忆,大幅减少编造信息的概率 无需重新训练模型:相比微调(Fine-tuning), RAG只需更新知识库,成本更低、效率更高  

大模型学习笔记:RAG Read More »

大模型学习笔记:向量

Vector向量就把一段文字的语义信息,转换成一串固定长度的数字列表,让计算机能“看懂”文字的含义并做相似度计算。简单说就是让计算机连接不同的文本是否表达同一个意思。 文本嵌入模型通过深度学习等技术,从文本提取语义特征并映射为固定长度的数字序列。向量嵌入的过程,我们一般选择合适的文本嵌入模型来完成。 text-embedding-v1模型可以生成1536维的向量。生成向量维度越多,就更好的记录文本的语义特征,做语义匹配会更加精准。更多的向量会在计算、存储和匹配过程中,带来更大压力:tradeoff of precise and performance. 向量的匹配通过算法实现,如余弦相似度。向量的数字序列,共同决定了向量在高纬度空间中的方向和长度,而余弦相似度主要就是撇去长度的影响,得到方向的夹角。夹角越小越相似,即方向相同。 余弦相似度:两个向量的点积 / 两个向量模长的乘积 import numpy as np def get_dot(vec1, vec2):     “””     计算两个向量的点积     :param vec1: 向量1     :param vec2: 向量2     :return: 点积结果     “””     if len(vec1) != len(vec2):         raise ValueError(“两个向量的长度必须相同”)    

大模型学习笔记:向量 Read More »

大模型学习笔记:Json

JavaScript Object Notation:是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Json是带有格式的字符串,主要用于数据交换,即程序和程序之间的信息互传,使用Json会更加方便。Json主要由2种结构:Json对象和Json数组。 { “key”: value, “key”: value } 其中: key必须是字符串 value可以是: 数字 字符串 列表 Json对象或Json数组 Json数组可以简单理解成Python中的列表套多个字典:[{}, {}, {}], Json对象:Python字典 Json对象: { “age”: 11, “name”: “周杰伦”, “hobby”: [“唱”,”跳”,”rap”], “other”: { “身高”:172, “体重”:68 } } Json数组: [ {“name”: “周杰伦”, “age”:11}, {“name”: “蔡依林”, “age”:12}, {“name”: “小明”, “age”:16} ] Python中使用Json: import json d = {     “name”:

大模型学习笔记:Json Read More »

大模型学习笔记:LangChain基础

LangChain 围绕LLMs(大预言模型)建立的一个框架。LangChains自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件“链接”在一起,简化LLMs应用的开发难度,方便开发者快速地开发复杂的LLMs应用。 主要功能: Prompts 优化提示词(提示词工程) Models 调用各类模型 History 管理会话历史记录(记忆) Indexes 管理和分析各类文档 Chains 构建功能的执行链条 Agent 构建智能体 LangChain 是一个LLM相关业务功能的集大成者,是一个Python的第三方库,提供了各种功能的API。 pip install langchain langchain-community dashscope chromadb langchain-ollama langchain: 核心包 langchain-community: 社区支持包,提供了更多的第三模型调用(阿里云百炼) langchain-ollama:ollama支持包,支持调用ollama托管部署的本地模型 dashscope:阿里云通义千问的Python SDK chromadb:轻量向量数据库 LangChain目前支持三种类型的模型:LLMs(大预言模型)、Chat Models(聊天模型)、Embeddings Models(嵌入模型) LLMs: 技术范畴的统称,指基于大参数量、海量文本训练的Transformer架构模型,核心能力是理解和生成自然语言,主要服务于文本生成场景 聊天模型:应用范畴的细分,是专为对话场景优化的LLMs,核心能力是模拟人类对话的轮次交互,主要服务于聊天场景 文本嵌入模型:文本嵌入模型接收文本作为输入,得到文本的向量 LLM 大语言模型 from langchain_ollama import OllamaLLM model = OllamaLLM(model=”qwen3:4b”) res = model.invoke(input = “请介绍一下你自己”) print(res) from

大模型学习笔记:LangChain基础 Read More »

大模型学习笔记:Prompt Engineering 提示词工程

Prompt Engineering 也成为In-Context Prompting, 是指在不更新模型权重的情况下如何与大模型交互以引导其行为以获得所需结果的方法。人工智能领域,Prompt指的是用户给大语言模型发出的指令。 提示词技巧: 详细的描述 让模型充当某个角色 使用分隔符标明输入的不同部分 – 例:用20个字符总结由三引号分割的文本。“”“在此插入文本”“” 对任务指定步骤:对于可以拆分的任务可以尽量拆开,最好能为其指定一系列步骤 – 步骤1:“”“用户输入文本”“”,用一句话总结这段文本,并加上前缀“Summary” – 步骤2:将步骤1中的摘要翻译成英语,并添加前缀“翻译: ” 提供例子:本质类似于few-shot learning。先扔给大模型举例,然后让模型按照例子来输出 – 按照这句评论文本的格式:““”用户输入文本”“”,帮我创造新的样本 基于文本文档:帮助大模型问答,**降低模型“幻觉”**, 经典知识库用法,让大模型使用我们提供的信息来组成答案:- 根据下文中三重引号引起来的文章来回答问题。如果在文章中找不到答案,请写“我找不到答案”, 不要自己造答案。“”“<在此插入文档>”“”“”“<在此插入文档>”“”问题:<在此插入问题> 大模型本身是一种很简单的结构:用户输入,模型输出。不管RAG还是Agent智能体或其他围绕模型的各种复杂的开发工作,本质上都可以简单总结为在提示词上下功夫。 Few-Shot, Zero-Shot思想 Zero-shot Learning(联想),指在训练阶段不存在与测试阶段完全相同的类别,但是模型可以使用训练过的知识来推广到测试集中的新类别上。“零样本”学习。因为模型在训练时从未见过测试集中的新类别,在模型训练和提示词优化中均有体现。 在提示词优化中:用于基于已训练的能力,不提供任何示例,仅通过语言去描述任务的要求、目标和约束,让模型直接生成结果。简单来说就是“用语言定义任务,解放(信任)模型的预训练知识”。 例:请判断“”包围的用户评论中的情感倾向,输出 正面 或 负面。“这款代餐鸡胸肉饱腹感很强,吃起来也不柴,很推荐!” Few-shot Learning (示例)是指少样本学习,当模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,对应的有one-shot learning,单样本学习,也算样本少到为一的情况下的一种few-shot learning from openai import OpenAI import os client = OpenAI(     api_key=os.getenv(“OPENAI_API_KEY”),     base_url=”https://dashscope.aliyuncs.com/compatible-mode/v1″,

大模型学习笔记:Prompt Engineering 提示词工程 Read More »

大模型学习笔记:OpenAI库

OpenAI库是OpenAI官方推出的Python SDK,核心作用是让开发者能简单、高效地调用OpenAI的各类API(如GPT聊天,DALL E绘图,语音转文字等),无需手动处理HTTP请求,身份验证等底层细节。由于其发布较早且比较医用,现如今许多模型服务商均兼容OpenAI SDK的调用。 主要分为三步: 1. 获取客户端对象: from openai import OpenAI client = OpenAI( api_key=os.getenv(“OPENAI_API_KEY”), base_url=”https://dashscope.aliyuncs.com/compatible-mode/v1″, #阿里云百炼 ) 2. 调用模型, 和模型对话 completion = client.chat.completions.create(     model=”glm-5″,     messages=[         {“role”: “system”, “content”: “你是一位怼人大师,请用犀利的语言怼人”},         {“role”: “assistant”, “content”: “专业怼人,专治各种不服!”},         {“role”: “user”, “content”: “你是谁,你能做什么”}  

大模型学习笔记:OpenAI库 Read More »

ROS2学习笔记:Python最小支持Parameters的节点

通过如下命令新建一个package框架: ros2 pkg create –build-type ament_python –license Apache-2.0 python_parameters –dependencies rclpy Python的示例代码为: import rclpy import rclpy.node class MinimalParam(rclpy.node.Node): def __init__(self): super().__init__(‘minimal_param_node’) self.declare_parameter(‘my_parameter’, ‘world’) self.timer = self.create_timer(1, self.timer_callback) def timer_callback(self): my_param = self.get_parameter(‘my_parameter’).get_parameter_value().string_value self.get_logger().info(‘Hello %s!’ % my_param) my_new_param = rclpy.parameter.Parameter( ‘my_parameter’, rclpy.Parameter.Type.STRING, ‘world’ ) all_new_parameters = [my_new_param] self.set_parameters(all_new_parameters) def main(): rclpy.init() node = MinimalParam() rclpy.spin(node) if

ROS2学习笔记:Python最小支持Parameters的节点 Read More »