0%

我的OpenClaw Skill

关于我对OpenClaw的看法

OpenClaw又称小龙虾,本质上是一个持久化运行在个人终端(目前还主要是PC或服务器)的,基于大模型能力的,在赋予权限后对个人终端有独立操作能力的AI智能体。

小龙虾的出现,无论其是否有背后推手,都可称得上爆火,从其飙涨的GithubStar数就可见一斑。同时又在国内外掀起了一场AI农场热,甚至出现了上门付费安装的服务。卖教程的,卖token的,卖安装/卸载服务的算是踩在了风口,多多少少赚了一笔。之后又因其安全问题,闹出了不少乐子,又催生了上门卸载的服务(其实没必要,把服务关停即可,如果已经被安装了木马,那即便卸载也无济于事)。

这里简单聊一聊我对小龙虾的看法,就如我对其的定义,一个在个人终端持续运行的AI智能体。

他能替我们做很多事情,至于能做多少事情,取决于我们给它多少权限。比如最简单的它必然需要具备清理自身运行过程中生产的一些临时文件的能力,由此就需要rm -rf的执行权限,给一个基于transformer推理模型的实体赋予rm -rf权限,无论其表现的多么稳定,终归还是不够安全。但凡其在推理的过程中给出的路径出现错误(这在Coding的过程中时常出现,并不是一个小概率事件),那问题的后果就是灾难性的。包括基于提示词的注入攻击简直是太简单了,利用难度极低但过后很严重。谈完了其风险再来谈谈其能做什么,也由此来引出我的几个SKill,都是自己开发的小工具,而非通用型能力,关于其通用型SKill的介绍到处都是这里就不在赘述。再谈一下我对小龙虾的理解,由于给了他足够的权限(网络权限,创造脚本权限,本地脚本执行权限)现阶段他可以帮我们实现一定程度上的电脑自动化,凡事我们要在电脑上做的,被我们定义为工作的(乐在其中的,比如打游戏,这类不算,让他代替也没意义),都可以尝试交给小龙虾来自动化。

阅读全文 »

我的 Vibe Coding

随着Coding Agent工具的发展,将代码的生成能力从方法级,模块级提升到了工程级。个人的代码的产出率也来到了90%。这里简单聊一下我的Vibe Coding,一方面做个分享,另一方面也做个梳理,梳理一下用法上的问题,也梳理一下Coding Agent工具的能力边界。最后也做个反思,反思一下AI工具把程序员从软件开发这个工作中解放出来了之后我们还能做些什么(本文已经太长了,单独写吧)

阅读全文 »

Chrome Profile 登录状态持久化问题排查总结

问题现象

启动 Chrome 自动化脚本时,日志显示”复用已有 Profile(登录状态将保留)”,但实际登录状态未保留。伴随 boss-go-chrome-profile 目录下大量文件被修改。

根本原因

核心问题:Chrome 单例机制

Chrome 单例机制:当系统中已有 Chrome 实例在运行时,新的 Chrome 进程(包括指定了 --user-data-dir 的)会忽略 user-data-dir 参数,直接附加到已有进程,并使用已有进程对应的 profile。

这导致:

  1. 脚本启动的 Chrome 实际使用的是系统默认 profile,而非指定的 boss-go-chrome-profile
  2. 登录信息写入的是系统默认 profile
  3. 下次脚本运行时,加载的是 boss-go-chrome-profile(无登录信息)
阅读全文 »

浏览器自动化检测解决方案

概述

本文档记录了针对网站反自动化检测的完整解决方案,适用于 OpenClaw 项目。主要以 Boss直聘 (zhipin.com) 为案例,但原理适用于其他有类似检测的网站。


一、问题背景

现代网站使用多种技术检测自动化浏览器:

检测类型 说明 检测方式
navigator.webdriver Puppeteer/Playwright 等添加的自动化标识 'webdriver' in navigator
CDP 变量 Chrome DevTools Protocol 注入的全局变量 window.cdc_adoQpoasnfa76pfcZLmcfl_*
headless 模式 无头浏览器特征检测 navigator.plugins.length === 0
浏览器指纹 WebGL、Canvas、字体等指纹 多维度综合检测
行为分析 访问频率、鼠标轨迹等 机器学习/规则引擎

阅读全文 »

Claude-Code 使用体验

背景

随着 AI Agent 的发展,一批工具随之大火,如 OpenCodeCodeXClaude CodeOpenClaw 等,极大提升了开发效率,同时也重塑了传统开发流程。

近期抽了些时间简单体验了 AI Agent 开发工具,并基于 Claude Code 和几个国产模型在 Web 开发上做了一些简单测试,这里做个分享。

阅读全文 »

基于AI调整图标细节

AI生成图标可用性调研中简单调研了国内外一些支持生成图像的AI在生成图标场景上的应用,结论为大多数模型直出的图标大多数处在基本可用基本不可用之间,本文尝试基于上文中生成的图标进行二次微调在其中选择一个将其调整为可用状态。

调整思路

本文选择下图中的图标作为基底

image-20260129191151640

混合这个图标的边框,字体和配色设计

image-20260129191314238

要基于文字明确显示【别点广告】的主题,以及显示一个大大的广告,和一个隐藏起来的绿色的【下一关】按钮,手指放在下一关的按钮上。

模型表现

这里选择在前文中表现较好的几个模型。

请帮我生成一个图标,主体设计请参考图片1,要基于文字明确显示【别点广告】的主题,以及显示一个大大的广告,和一个隐藏起来的绿色的【下一关】按钮,手指放在下一关的按钮上。边框、字体、配色设计请参考图片2。生成的图像像素应该为144*144。

星流

别点广告游戏界面

阅读全文 »

AI生成图标可用性调研

一个简单的背景,要为一个名为【不要点广告】的微信小游戏生成一个图标。这里简单调研一下各大AI的可用性。

国内版

国内版所用提示词如下:

请帮我生成144px*144px的图标10个,用于表示一个微信小游戏【别点广告】(一个休闲益智小游戏,避免点击广告,准确进入下一个关)的小程序头像。在这10个图标中选出你最推荐的一个并说明理由。

请帮我生成一个144px*144px的图标,用于表示一个微信小游戏【别点广告】(一个休闲益智小游戏,避免点击广告,准确进入下一个关)的小程序头像。

文心 4.5 Turbo

image-20260128113334635

生成的图标完全不可用,且并没有理解10个的概念,将描述改为10个144px*144px的图标仍然不行,仅支持根据描述生成单幅图片。并不支持真正意义上的文本+图片的组合生成模式。

阅读全文 »

背景

本文简析词云(wordcloud)的源码。

布局算法

  1. 初始化:设置画布大小、背景色、网格大小等。
  2. 词处理:每个词根据其重要性(频率、权重等)被赋予一个大小。
  3. 位置选择:算法在画布上为每个词寻找合适的位置。这通常通过在画布中心开始,并向外螺旋(或其他形状,如圆形、星形等)搜索空间来实现。
  4. 碰撞检测:在放置每个词时,算法会检查该位置是否会与已放置的词重叠。这通常通过一个网格来实现,网格记录了画布上的哪些区域是空的,哪些已被占用。
  5. 绘制:一旦找到空间,词就会在画布上绘制出来,并更新网格状态。
  6. 迭代:重复上述过程,直到所有词都被尝试放置。

核心方法

  • weightFactorshape 函数用于计算词的大小和布局形状。
  • getPointsAtRadius 函数计算给定半径上的点,这些点可能是词云中词的候选放置位置。
  • getTextInfo 函数计算单个词的布局信息,如大小和旋转。
  • canFitText 检查一个词是否可以放在特定位置而不覆盖已有的词。
  • drawText 将文本实际绘制到canvas上。
  • updateGrid 更新网格状态,标记已被占用的区域。
阅读全文 »

本文简述G2如何实现点击图例联动数据筛选。

这里回答三个问题

  1. 实现图例联动数据筛选的核心逻辑。
  2. 如何隐藏/移除数据。
  3. 如何显示/新增数据。

结论

实现图例联动数据筛选的核心逻辑

  1. 点击图例图元后触发了legend:filter事件。
  2. legend模块相应了legend:filter事件,根据图例的筛选状态执行了filter方法。
  3. filter中根据上下文实例context获取了图表的marks。忽略了legends``marks对其他marks修改了其transformscale

如何隐藏/移除/显示/新增数据

由于filter操作本质上是在修改marks修改了其transformscale, 并没有涉及数据的移除和添加,所以隐藏/显示逻辑其实并无区别。

阅读全文 »