粉丝8获赞116


如果一个微信机器人不只是能自动回复消息,而是能接入酷 richard 做带人设记忆和图片识别的自然群聊, 还能自动监控 steam 好 友状态播报 c s 二战绩。接入 ai agent, 让 agent 反过来调用 bot api 回复消息和文件,推送灾害预警,并通过网页远程管理。你会不会想知道它是怎么做出来的? 这个项目叫 c solidarity, 先不讲概念,我们直接看他能做什么。 steam 好 友状态播报负责监控好友的游戏状态变化,并把变化整理成群聊通知。比如群友开始玩 ctrl strike, 二,机器人会自动把状态发到微信群,离开游戏时也会计算本次游玩时长并提醒 完美世界。战绩播报负责夺取比赛结果。它可以把 c s 二对局数据整理成群聊消息,包括击杀、死亡、助攻、评分和排行榜信息。 ai 能力分成两类, corechat 更偏自然聊天,可以结合上下文、人设记忆和图片识别来决定是否回复。而 chat auto 更像一个可触发的 agent 入口,用户在群里发出带前缀的自然语言指令后,他会通过大语言模型接口把任务交给 ai agent。 这些能力不是单点功能堆叠,而是一条连续链路,外部状态变化被捕捉,业务模块完成处理,最后再通过统一的发送通道回到微信群。 这个 agent 不 只是生成一段文本,它可以继续调用 bot 本地 api, 把结果、文件、图片或者处理后的内容发回微信群。 灾害预警系统可以接入地震、气象、海啸等多元数据,再按不同群聊配置推送。它的重点是完成数据接入、整理和定向推送。 外部管理面板提供远程运维能力,你可以查看报的状态、查日期、改配置管理实力,甚至执行重启和控制操作。 所以这个项目的重点不是我写了一个自动发消息的小脚本,而是把一整套微信自动化能力做成了可以长期运行、可以扩展、可以远程运维的系统。 大家好,这次介绍的是 cs solidarity, 一个基于 windows 微信 pc 端的多功能自动化机器人。它的底层不是后壳微信进程,也不是直接读写微信内存,而是基于 w x auto win 三十二 g u i 自动化和窗口控制能力,像真实用户一样操作微信窗口。 从功能上看,它能做 steam 监控、 ai 对 话、 ai agent 自动化、信息推送、灾害预警和 web 远程管理。从工程上看,它更像一个微信自动化框架,不同功能模块可以独立运行,但所有真正操作微信的动作都会被收束到统一的主县城和反检测机制里。 理解这个项目可以先抓住三个关键词,第一个是县城安全,微信 g u i 自动化,不能让多个后台县城同时操作窗口,所以项目把所有实力要发送的消息先放进队列,再由主县城统一发送。 第二个是反检测自动化,如果每次点击都太直、太准、太规律,就很容易暴露机器行为。它在鼠标、键盘、窗口切换和等待时间上都加入了更接近真人操作的随机性。 第三个是远程管理, bot 可以 跑在内网 windows 电脑上, web server 跑在公网 vps 上, agent 主动向外连接 server, 这样浏览器就能远程管理 bot, 同时不需要给内网机器做端口映设,后面所有功能其实都围绕这三个设计展开。 项目目前可以概括成四大核心能力,第一,游戏状态监控。它会定时拉取 steam 好 友状态,判断谁开始游戏、谁结束游戏,并把变化推送到微信群。 第二,智能对话和 agent 编排。它支持 open ai 兼容接口,既可以用命令前缀触发 chat auto, 把自然语言任务交给 ai agent, 也可以像监听群聊上下文做更自然的长期对话。 第三,信息与预警推送。除了日常资讯、金价、股票,还可以接入 cs、 新闻日报、地震气象和海啸预警。 第四,远程管理面板,它提供 dashboard 日制配置文件实力和控制能力让这个 bot 不 只是能跑,还能被远程维护。 系统全景可以拆成三部分,第一部分是外部数据源和外部工具,比如 steamweb api、 完美世界 ai 模型接口、 ai agent 财经接口、灾害预警数据源,以及像 c s r insight agent 这样的 demo 解析和视频处理工具。 第二部分是 bot 主程序,它负责实力调度、消息队列、消息路由、本地 bot api 以及最终的微信窗口操作。 第三部分是 web 管理部分, agent 跑在内网 windows 上, server 跑在公网 vps 上浏览器访问 server, 再由 server 通过 web socket 把操作转发给 agent。 最关键的一点是,不管消息来自 steam、 ai agent、 灾害预警还是 web 面板,最后真正操作微信的动作都必须回到 bot 主线城。这就是为什么这些能力可以共用一个。微信自动化核心 项目内部可以拆成三层,第一层是库尔框架层,这里包括 main dpy 主循环、 base instance、 机类实力、工厂消息队列和反检测 patch。 这一层决定整个系统怎么启动、怎么调度、怎么收发消息。 第二层是 instances 功能层, steam auto chat auto, create chat info, push daily auto disaster warning 都是独立实力,它们各自处理业务逻辑,但不直接抢占微信窗口。 第三层是 external 接入层,它负责连接 steam 完美世界、 ai 接口 a、 夜间上报、本地 api、 财经数据、灾害预警和 web panel。 这个分层的好处是新功能不需要硬塞进主循环,你只需要写一个新的 base instance, 此类注册到工厂,再在配置里添加十粒,就能接入整个系统。 项目目前包括六种,十粒, steam auto 负责游戏状态、 cs 二新闻、完美战绩和每日榜单。 chat auto 不 只是负责命令式 ai 对 话,它更重要的作用是把微信群里的自然语言请求变成 ai agent 任务。先通过大语言模型接口理解用户意图,再让 agent 调用 bot api 把结果发回对应群聊。 这让微信不只是一个聊天入口,而是变成了 agent 的 交互界面。它可以承接定时汇总文件、处理内容生成和结果回传这类工作流,再通过 bot api 把处理结果发回对应群聊。 corechat 则是另一类 ai 能力,它不是命令入口,而是更接近常驻群友的自然聊天机器人。它可以按群配置不同人设读取群聊上下文, 结合记忆系统和图片识别来判断是否回复。有的群只在艾特或触发词命中时回复,有的群可以配置成更主动的陪伴式对话。 这也能看出 chat auto 和 corechat 的 区别。 chat auto 负责把明确命令交给 agent, corechat 负责更自然地参与聊天。 info push 负责金价、股票、每日新闻这类定时信息。 delete auto 负责固定时间发送固定消息,比如每日提醒。 disaster warning 负责灾害预警,把不同来源的数据整理后推送到对应会话。 这些实力看起来功能差异很大,但它们接入主程序的方式是一致的,后台处理业务发送时进入队列,或者由 agent 调用 bot api 入队,最后都有主线程操作。微信 steam auto 是 最容易理解的一个实力,它会定时调用 steam web api, 拿到好友当前状态,然后把这一轮状态和上一轮缓存作对比。 如果某个好友的游戏状态从空变成七百三十,就说明他开始玩 cs。 二。如果从七百三十变为空,就说明他离开了 cs 二。机器人就可以生成一条群聊通知, 这些进入游戏、离开游戏和战绩播报消息不是人工写死的文案,而是代码根据 steam 状态变化、游戏名称和计时结果生成的。 对于 cs 二项目,还可以继续接入完美世界平台,查询最近比赛数据,并把结果整理成适合群聊阅读的播报。 每天的定时任务还会把这些数据合成一张标准日报图片,它不是手工排版,而是代码模板自动生成,里面包含好友今日游玩统计、完美平台统计以及完整的历史战绩排行榜。 关键点是, steam auto 自己不直接操作微信,他只负责发现状态变化,然后调用发送消息函数。这个函数已经被主程序替换成放入发送队列,所以真正发微信的动作仍然回到主县城执行。 微信高自动化最容易出问题的地方是行为太像机器,比如鼠标每次都走直线,点击位置完全一样,键盘输入间隔固定,窗口一直保持前台,这些都不是正常用户的操作习惯, 所以项目在底层做了一组反检测。 patch 鼠标移动使用贝塞尔曲线路径并加入高斯扰动,点击前后会有随机等待,键盘输入会模拟按键之间的时间差,窗口显示会移除不自然的置顶状态,发送完成后还会切回安全聊天,并最小化微信。 更重要的是,这些逻辑不需要每个实力或者 agent 自己实现。 steam auto chat auto, curry chat 只关心业务,外部 agent 只需要调用 bot api, 真正像人一样操作。微信的细节由 core 层统一处理, 主循环可以理解成五步,第一步,检查维护窗口,默认在维护时间段减少主动操作,降低异常和无效动作。第二步,处理 web 消息,来自远程面板的指令会先进入队列,再走统一逻辑。 第三步,消费发送队列,后台实力产生的所有待发送消息都会在这里有主县城统一发送。第四步,接收和分发新消息程序检测微信新消息,再根据路由规则交给不同时令处理。第五步,空闲时最小化微信窗口。 主循环的顺序很重要,项目优先处理,待发送消息再去读取新消息,这样可以减少切换聊天窗口时未读状态被清掉的静态问题。 消息进入系统后会分成两种路由方式,第一种是独占实力,比如 chat auto, 只处理带固定前缀的消息, 只要前缀匹配,这条消息就交给他,不再广播给其他实力。后续他可以直接调用大语言模型回复,也可以把任务交给 ai agent, 再由 agent 通过 bot api 发挥结果。 如果用户发出明确命令,这条消息就应该直接交给 chat auto。 如果用户只是普通聊天消息,才会继续广播给 qqchat 这类上下文监听模块。 第二种是广播实力,普通群聊消息会分发给需要全量监听的模块,比如 corechat, 这样他可以观察上下文,再决定是否参与对话。 这个设计解决的是多个功能同时监听一个群聊时,谁应该处理消息的问题。命令式功能和自然对话式功能可以共存,而且不会互相抢消息。 远程管理这部分核心是 agent 主动连出 bot 所在机器。通常在内网,没有攻网 ip, 如果要求用户做端口映设或者内网穿透,部署会很麻烦,也会增加安全风险。 这个项目的做法是 agent 跑在内网 windows 上主动通过 web socket 连接攻网 server, 浏览器只需要访问 server 多一会,再把请求转发给 agent。 所以在 word 面板里,我们可以看到 boss 状态、运行时间、实力状态和实时日记,也可以修改配置、上传文件,执行启动、停止和重启。这说明 boss 不是 只能在本机控制,而是可以远程观测、远程配置、远程运维, 外部面板把运维能力集中在一起。 dashboard 用来看 agent 和 bot 是 否在线。 config 用来编辑 json 配置并支持备份恢复。 control 用来执行启动、停止和重启。 logs 用来查看实时日记和历史日记 files 用来管理外部端或 agent 的 端上传文件。 chat 用来把网页消息转发给 bot 实立,并可选择同步到微信或仅在网页显示。 如果从网页 chat 发出一条消息,后面会依次经过 web 请求 agent 转发 bot 发送队列,最后由微信窗口完成发送。这样网页控制不是一个独立面板,而是真的接到了 bot 的 发送通道上。 对一个长期运行的机器人来说,功能本身很重要,但可观测和可维护同样重要。否则一旦抱特跑在另一台电脑上出问题,就只能远程桌面或者手动查日记,维护成本会很高。 总结一下, cs solidarity 表面上是一个微信机器人,但它真正的功成价值是把微信 g u e 自动化做成了一套框架。 第一,县城安全后台实力,只负责业务逻辑和消息入队,真正操作微信的动作统一回到主县城。第二,模块化扩展 steam ai 信息推送、灾害预警都可以作为独立实体接入,不需要破坏主循环。 第三,远程可运维 agent 主动连接 server, 让内网, windows 上的 bot 也可以通过攻网外部面板管理。 如果你关注微信自动化、游戏数据推送、 ai 群聊机器人,或者想看一个 g u i 自动化项目怎么做成可维护的系统,这个项目会是一个很好的参考。以上就是 cs solidarity 的 项目介绍。