The Fools' Journey

Coding, Physics and Curiosity - Notes from thefooliman

0%

自建openclaw多bot群聊skill始末(烂尾)

这两天又想起openclaw了, 于是租了个hetzner的服务器, 2核4G的RAM, 用的还是共享cpu, 0.01欧/h, 算下来开一个月就需要7欧多, 也就是将近60块钱, 算不上便宜, 但也在接受范围内, 这也是我目前能找到性价比最高的服务器了.

花了一整天时间倒腾openclaw, 不得不说, 这玩意的引导做的是真的差, 毕竟是开源项目, openclaw configure命令极其不好用, 必须手动更改~/.openclaw/openclaw.json文件, 自己nano json文件还很容易出错. (需要去官方文档查keys, values).

最后整了俩agent, 在qq和telegram都各binding一个bot. 一个是我的main, 一个是专门用来发新闻的.

我突发奇想, 如果能让我的两个bot拉个群, 大家一起讨论, 协作,脑暴. 或者给每一个bot一个人设, 让他们在群里聊天, 那就非常有意思了.

于是打算配置一下, 结果发现目前完全不可用, 首先, bot无法接收到bot的信息, 只有user在群组@bot或者私聊才能使用. 其次, 在群聊中, bot也完全无法识别自然语言的call, 必须user显式@.

那么自然而然的就萌生了自己写一个skills的想法.

不过一想, 这靠skills里写文字根本没法完成, 因为我需要把bot的话在底层提取并给另一个bot, 这是skill权限之外的事情.

所以, 最初的想法是通过写一个外部控制器py脚本, 脚本里配置好agent和bot的映射, 接flask库, 用webhook等方式获取并传递信息. 并在后台设置一个锁, 每次只允许一个ai讲话, 讲完随机给另一个bot锁. 并且允许user中途提问补充, 让接下来的bot重点关注user的新input.也允许一个bot指定另一个bot回答

想法很美好, 实现起来很惨淡. 有一些方法确实很快就完成了, 例如hold lock的方法, send方法, choose-send方法, 以及提示词输送的方法. 不过到后面一看, 最关键的webhook, openclaw并不支持, json中也没这个key. 也没有http事件接口, http轮询也走不通.

我预想的推送架构完全废掉了.

到这一步就已经花了将近六七个小时, 官方文档模糊, 问ai又都是早已过时的调用和方法.

没办法, 只能退而求其次, 至少要跑个mvp出来吧.

于是想到不通过openclaw进行消息抓取推送, 而是由py完全外包, 接telegram bot 库, openclaw只负责回复并输出到群组. qq先不管了, 想着先跑个mvp出来.

然后去拿了telegram群组的id, 放了两个测试bot, 然后测试运行.

你猜这么着, 一直报错, 因为一个bot token有同时调用, 直接被telegram的api拒绝了, 把py的所有后台进程杀了再开还是没用, 那行, 不用nohup, 我在前台运行, 还是不行. 这个bug始终无法修复.

再加上到这一步, 已经完全写不下去了, 从最开始想着让其他人也能点击即用, 到现在, 我甚至要为每个bot写一个py脚本控制, 然后需要手动更改py里的agent, bot的id, token, 手动发到服务器, 挂到后台, 即使能跑, 也完全丧失了可用性. 只好放弃, 烂尾. openclaw的底层真是限制太多, 可修改度低, 处处受限.

不过其他的项目还在稳步进行时, seminar arbeit用到的数据模拟py已经快做好一个了, 后面会陆续发在github上.

另外还打算做一个写论文专用claude code skills, 这次写论文真是折腾死我了, 老师允许用ai进行文本塑造, 毕竟也理解尤其是我们这种非母语者, 不可能手写十几页的学术论文. 但是我把我的德中结合的初稿发给ai每段每段重写润色, 结果ai还给我的写的太好了, ai味太浓. 用的也是deepseek api, 用claude可能会好很多. 让他降低level, 他又说违反学术诚信, 这是真纳闷了, 明明内容本身是我写的啊. 于是只能自己从网上找了个humanizer skill, 当然这种skill claudecode是肯定不会调用的, 我用另一个claudecode把skill内容全部提取成md文件规则, 再发给claudecode让他不要触犯上面的禁止, 并按上面的规则写. 逐章修改, 改完又交给别的ai看, 看看会不会还是ai味太浓, 哪里显得特别有ai味, 在交还给claudecode修改. 如此往复. 所以想着做个skills, 自动化这个流程. 也想帮帮所有有像我一样困境的人, 学校允许用ai, 但是ai生成的文本又太过, 不知道合理的区间到底在哪.