把 AI 学长“塞“进 QQ 群!我用 OpenClaw 为班级打造 24 小时智能助教

把 AI 学长“塞“进 QQ 群!我用 OpenClaw 为班级打造 24 小时智能助教

欢迎来到我的博客,代码的世界里,每一行都是一个故事

🎏:你只管努力,剩下的交给时间

🏠 :小破站

把 AI 学长"塞"进 QQ 群!我用 OpenClaw 为班级打造 24 小时智能助教

前言:一个被 QQ 消息淹没的下午

那是一个普通的周三下午,我还没来得及喝上第一口水,QQ 消息就已经刷屏了。

“学长,这道算法题我不会……”
“帮我看看这段代码,我找了一小时也没找到 bug……”
“Java 的泛型到底是什么意思啊,书上写的我完全看不懂……”

我盯着屏幕,陷入了沉思。作为班里稍微能写点代码的"老油条",被同学问问题本是件好事,但当同一天被问了七八个相似的问题之后,我开始想:有没有一种方法,让这些高频、重复的问题有人"代劳"回答?

恰巧这时候,我在腾讯云开发者社区刷到了 OpenClaw 这个项目——一款可以部署在自己服务器上、支持接入 QQ 等 IM 工具的 AI Agent。脑子里的想法一闪而过:把 AI 塞进班级 QQ 群,让它当 24 小时在线的 AI 学长,不就解决了吗?

说干就干。


什么是 OpenClaw?

OpenClaw(原名 Clawdbot / Moltbot)是一款开源的 AI 助理框架,最大的特点是:你可以把它部署在自己的服务器上,然后将它接入 QQ、飞书、Telegram 等你日常使用的 IM 工具,让 AI 真正融入你的沟通场景,而不是另开一个 App 才能使用。

与那些需要打开网页、需要科学上网的 AI 工具不同,OpenClaw 接入 QQ 后,同学们只需要在群里 @ 一下机器人,AI 就会直接回复——这对于把 QQ 当主要通讯工具的学生党来说,简直是零摩擦。

腾讯云 Lighthouse(轻量应用服务器)已经为 OpenClaw 提供了一键部署的应用模板,整个部署过程极其简单,下面我来详细复盘这次实践。


第一步:用 Lighthouse 应用模板一键部署 OpenClaw

我手上原本有一台腾讯云 Lighthouse 实例,平时用它跑一些小项目,正好可以直接重装为 OpenClaw。在 Lighthouse 控制台的「重装系统」入口,选择「使用应用模板」,然后在模板列表里就能看到 OpenClaw 的专属入口。

1-使用应用模版openclaw重装系统.png

如上图所示,模板页面提供了多种应用类型,包括 AI 智能体、Web 开发、电商等分类,OpenClaw 就位于 AI 智能体分类下。选中它,设置好登录密码,点击确认,系统就开始自动重装并初始化 OpenClaw 所需的所有环境依赖。

这个过程大约需要 1~3 分钟,期间完全不需要手动操作。等镜像安装完成后,服务器就已经是一台装好了 OpenClaw 的机器了。相比起手动 clone 仓库、配置依赖、处理各种环境冲突,这种方式省去了大量时间,对新手来说尤其友好。


第二步:开放防火墙端口

服务器装好后,还有一件事不能忘——开放 OpenClaw 所需的端口。Lighthouse 的防火墙默认只开放了 22(SSH)和 80(HTTP)端口,而 OpenClaw 的网关服务需要额外的端口才能与外部通信。

放开openclaw端口.png

在 Lighthouse 实例详情页,点击「防火墙」标签,可以看到当前的端口规则列表。按照 OpenClaw 官方文档要求,我在这里添加了对应端口18789的 TCP 规则,来源设置为「全部 IPv4 地址」,策略为「允许」。这一步完成后,外部请求才能正常打到 OpenClaw 的服务。

防火墙这一步很容易被忽略,但它是整个接入流程中非常关键的环节。如果配置完后机器人没有响应,先检查防火墙端口是否正确开放,往往能解决大多数连通性问题。


第三步:配置 AI 模型与 QQ 通道

进入 Lighthouse 的「应用管理」页面,OpenClaw 提供了一个非常直观的可视化配置面板,分为模型(Models)通道(Channels)技能(Skills) 三大模块。

3-模型配置.png

在模型选择区,OpenClaw 内置支持了腾讯混元、腾讯云 DeepSeek、通义千问、Moonshot AI(Kimi)等多个主流大模型,还支持自定义模型接入。我这里选择了自定义模型,配置了一个兼容 OpenAI 接口格式的 API,填入 base_url 和 api_key 后点击「添加并应用」即可。

与此同时,在通道(Channels)配置区,可以清晰地看到 QQ 的接入入口——只需填入 QQ 机器人的 App ID 和 App Secret,就能完成绑定。在技能(Skills)这侧,我还看到了 tavily-searchagent-browsergithubnotion 等已安装的玩法扩展,让 OpenClaw 的能力边界大大扩展——不过这是后话,咱们先把 QQ 接通。


第四步:在 QQ 开放平台注册并实名认证

接下来需要去 QQ 开放平台(q.qq.com)创建属于自己的机器人。这里有一个很多人不知道的好消息:QQ 开放平台支持个人主体注册,不需要企业资质,用普通 QQ 号就能完成全部流程。

首次进入平台,需要完成主体信息填写和实名认证。

填写主题信息.png

主体类型选择「个人」,填写身份证号、手机号并通过验证码验证。验证方式支持人脸认证,整个流程大约 3~5 分钟就能完成,符合实名要求后即可进入下一步。

QQ开放平台设置超级管理员.png

实名完成后,还需要设置 QQ 账号作为该主体的「超级管理员」。超级管理员拥有该账号的最高管理权限,后续可以直接用 QQ 号扫码登录开发者后台,操作非常方便。


第五步:创建机器人「AI 学长」

认证完成后,进入机器人创建页面。此前还没有创建过任何机器人,页面提示「你还没有创建机器人」。

创建机器人.png

点击「创建机器人」,进入信息填写页面。我给它起了个名字叫 AI 学长,上传了一个简单的头像。名称需要通过 QQ 平台的合规检测,长度限制为 4~30 个字符(中文按两个字符计算)。

填写机器人信息.png

填写完成后提交审核,机器人的基本信息就创建好了。接下来最重要的步骤是获取机器人的凭证信息:AppIDAppSecret


第六步:获取 AppID / AppSecret,完成接入配置

机器人创建成功后,在应用详情页可以看到 AppID 和 AppSecret。AppSecret 只在创建时明文显示一次,务必第一时间复制并妥善保存——平台的提示也特别强调了这一点,一旦关闭页面就无法再次查看完整密钥,只能重置。

机器人app配置.png

拿到 AppID 和 AppSecret 后,回到 OpenClaw 的 Lighthouse 应用配置面板,在通道配置区填入这两个参数,点击「添加并应用」。


第七步:沙箱配置与连接验证

为了在正式发布前先做测试,QQ 开放平台提供了「沙箱模式」。沙箱模式下,只有被加入白名单的 QQ 账号才能与机器人互动,非常适合在小范围内验证接入效果。

沙箱配置.png

在「沙箱配置」页面,将自己的 QQ 号添加到测试白名单中,即可开始私聊或群聊测试。这一步完成后,整个配置就进入了收尾阶段。

回到 OpenClaw 配置面板,可以看到配置成功的状态——模型已接入,QQ 通道已建立连接。

配置成功QQ.png

如图所示,自定义模型配置已正确加载,通道状态显示已接入,整个 OpenClaw + QQ 的链路正式打通。看到这个界面的瞬间,心里着实松了一口气。


实战场景一:私聊测试,AI 助手的第一声问候

配置完成后,我第一时间打开 QQ,找到「AI 学长-测试中」发了一条「你好」。

QQ单人聊天.jpg

机器人的第一条消息让我眼前一亮:

“你好!我是 OpenClaw AI 助手。看起来这是我们第一次聊天,很高兴认识你!需要我帮你做点什么吗?比如:设置提醒、定时任务;搜索信息;管理文件;或者只是随便聊聊?随时告诉我你的需求!”

响应速度很快,对话流畅自然,完全没有"机器感"。私聊测试通过之后,我把机器人邀请进了班级群——一个叫做「12 班大家庭」的 QQ 群。


实战场景二:群聊中讲解 Java 泛型

群里加入机器人后,我率先发了一条 @ 消息测试效果。

群聊中加入机器人jpg.jpg

机器人已经出现在群机器人列表中,显示「已添加 1/20」。随后我在群里 @ 它问了一个同学们最常问到的问题:Java 的泛型到底是什么?

QQ群聊1.jpg

机器人的回答结构清晰、层次分明:

Java 泛型(Generics)是 JDK 5 引入的特性,允许在编写类、接口和方法时使用类型参数,而不是具体类型。

核心作用:类型安全 —— 编译时检查类型,避免运行时 ClassCastException消除强制转换 —— 自动类型转换,代码更简洁代码复用 —— 一套代码适配多种数据类型

紧接着,AI 学长还主动补充了代码对比示例:

QQ群聊2.jpg

不用泛型时,List 里可以往任意类型塞数据,取出来还要强制转换,一旦类型不对就会在运行时崩溃。而用了泛型后,编译器就能在编写代码时就帮你拦住错误。AI 学长用代码和文字双管齐下,比起翻书,这种问一句立刻有答案的体验好得多。

群里那个之前问了我半天泛型的同学,回复了一个表情:「懂了懂了!」


实战场景三:深度 Bug 分析,AI 学长挑出三处隐患

光讲知识点还不够,真正能检验 AI 能力的,是面对复杂代码时的分析质量。我把之前准备好的一段有 Bug 的 Java 学生成绩计算代码丢进了群里,让 AI 学长找问题。

publicstaticdoublegetAverage(List<Integer> scores){int total =0;for(int i =0; i <= scores.size(); i++){// Bug 1 total += scores.get(i);}return total / scores.size();// Bug 2}publicstaticintgetMax(List<Integer> scores){int max =0;// Bug 3for(Integer score : scores){if(score > max) max = score;}return max;}

AI 学长的回复出乎我意料地详细,它精准找出了三处 Bug

bug询问解决.png

Bug 1 —— 数组越界: 循环条件 i <= scores.size()i 等于 scores.size() 时,scores.get(i) 会抛出 IndexOutOfBoundsException,正确写法应为 i < scores.size()

bug询问解决2.png

Bug 2 —— 整数除法精度丢失:total / scores.size() 是整数除整数,结果仍为整数,小数部分会被截断。如果平均分是 87.5,这里会返回 87。修复方案是强制类型转换:(double) total / scores.size()

bug询问解决3.png

Bug 3 —— 最高分初始值问题:int max = 0 在正常分数范围内没问题,但如果成绩列表全是负数(如 [-5, -10, -3]),正确最大值应为 -3,但函数会错误地返回 0。修复方案是改为 Integer.MIN_VALUEscores.get(0)

最终,AI 学长还给出了完整的修正版代码:

bug询问解决4.png
publicstaticdoublegetAverage(List<Integer> scores){if(scores.isEmpty())return0;// 防止除 0int total =0;for(int i =0; i < scores.size(); i++){ total += scores.get(i);}return(double) total / scores.size();}publicstaticintgetMax(List<Integer> scores){if(scores.isEmpty())thrownewIllegalArgumentException("列表为空");int max =Integer.MIN_VALUE;for(Integer score : scores){if(score > max) max = score;}return max;}

AI 学长在末尾加了一句总结,读来深有共鸣:

“边界条件、类型转换、初始值——这三类是 Java 初学者最常踩的坑 😄”

这句话捕捉得很准。很多初学者写代码时只关注"能不能跑",忽略了边界情况。让 AI 在群里分析这段代码,也是一次生动的学习机会。


进阶玩法:给 AI 学长定制专属人格

跑通基本功能之后,我又做了一件事——让 AI 学长真正"知道自己是谁"。

默认情况下,OpenClaw 的自我介绍是通用的"我是 OpenClaw AI 助手",没有什么个性。这时我发现,OpenClaw 在部署时已经在 workspace 目录下预置了一套文件驱动的人格系统,不需要任何额外安装,直接修改即可:

工作空间下的文件.png

如图所示,workspace 下自带了多个 Markdown 文件,其中最关键的两个是:

  • SOUL.md:AI 的核心价值观与行为边界。OpenClaw 的默认内容就写得很好——强调"真正有帮助而非表演性有帮助"、“有自己的观点”、"在群聊中不要主动发言"等原则,和我想要的 AI 学长风格高度契合。我只需在文件末尾追加一段专属身份描述即可,原有内容完全保留
  • IDENTITY.md:控制 AI 的名字和自我介绍方式。将其修改为:
我叫 AI 学长,是一个部署在腾讯云服务器上的 AI 编程助理。 如果有人问"你是谁",回答: "我是 AI 学长,专注于计算机科学与编程答疑,随时帮你解决 Java、算法、代码 bug 等问题!" 

另外还有 USER.md 可以填写使用者背景(比如"班级群里主要是学计算机的同学,常问 Java 和算法题"),帮助 AI 在对话时更有针对性。

修改完成后重启网关,再在 QQ 里问一句"你好,你是谁"——

提示词修改效果.png

回复变成了:

“你好!我是 AI 学长,一个部署在腾讯云服务器上的 AI 编程助理。专注于计算机科学与编程答疑,随时帮你解决 Java、算法、代码 bug 等问题!有什么编程相关的困惑吗?随时找我聊聊!”

这就是我想要的效果。整个定制过程没有动任何配置文件,只是在 OpenClaw 预置的 Markdown 文件里追加了几行文字——OpenClaw 会在每次会话开始时自动读取 workspace 下的这些文件,将内容注入系统提示词,设计非常优雅。


总结与思考

从搭建到跑通,整个过程大约花了一个多小时,其中真正复杂的环节只有两处:QQ 开放平台的实名认证(需要准备好身份证号和手机号,接码),以及防火墙端口的正确配置。其余的步骤,借助 Lighthouse 的应用模板和 OpenClaw 的可视化面板,即便是没接触过服务器运维的同学也能顺利完成。

这次实践让我真切体验到了 OpenClaw + QQ 这套组合的价值所在

  • 零摩擦接入:同学们不需要注册新账号、不需要学任何新工具,直接在 QQ 里 @ 一下就能用
  • 7×24 小时在线:部署在 Lighthouse 上,只要服务器不停机,AI 学长就永远在线
  • 场景真实:从解释泛型概念到找出三处实际 Bug,AI 的回答质量完全可以满足日常学习答疑需求
  • 数据自主:所有的对话记录和配置都在自己的腾讯云服务器上,隐私和安全有保障

当然,这次实践也有一些值得继续探索的方向。目前已经通过 SOUL.mdIDENTITY.md 完成了人格定制,AI 学长有了自己的名字和风格;下一步想研究的是开启 OpenClaw 的 Memory Hook,让它能记住同学的名字和历史提问记录,实现真正意义上的"个性化助教"。此外 Skills 模块里的 tavily-search 也值得探索——让 AI 学长在答疑时能实时搜索最新资料,而不只是依赖训练数据。

这些都是后续值得继续折腾的方向。但就目前这个版本来说,一个部署在腾讯云 Lighthouse、有名字有人格、运行 24 小时的 QQ 群 AI 学长,已经让班里的同学少问了我不少重复问题——这,就是我认为 OpenClaw 最实在的价值。


如果你也有一台腾讯云 Lighthouse,或者正考虑入手,不妨跟着这篇文章试一试。把 AI 装进你们的 QQ 群,让它替你解答那些"今天第十次被问"的问题吧。

参考资料

  • OpenClaw 部署指南:https://cloud.tencent.com/developer/article/2624003
  • QQ 接入指南:https://cloud.tencent.com/developer/article/2626045
  • OpenClaw 实践合辑:https://cloud.tencent.com/developer/article/2624973

Read more

C++ 设计模式概述及常用模式

C++ 设计模式概述 本文介绍了C++中23种设计模式的分类及实现示例,主要分为三大类: 创建型模式(5个):单例模式(常用)、工厂方法模式(常用)、抽象工厂模式(常用)、建造者模式和原型模式。这些模式专注于对象的创建机制。 结构型模式(7个):适配器模式(常用)、桥接模式、组合模式和装饰器模式(常用)等。这些模式处理类和对象的组合方式。 行为型模式:未完整列出,但包含观察者模式等(未展示完整代码)。 文章通过简洁的C++代码示例展示了常用设计模式的实现方法,如单例模式通过私有构造函数和静态方法确保唯一实例,工厂方法模式通过抽象工厂类创建产品等。这些模式为解决特定设计问题提供了可重用的解决方案。 C++ 设计模式概述及常用模式 设计模式可分为三大类:创建型、结构型、行为型。以下是23个设计模式的分类及代码示例: 一、创建型模式(5个) 1. 单例模式(Singleton)⭐ 常用 classSingleton{private:static

By Ne0inhk
Java篇之继承

Java篇之继承

目录 一. 继承 1. 为什么需要继承  2. 继承的概念 3. 继承的语法  4. 访问父类成员 4.1 子类中访问父类的成员变量 4.2 子类中访问父类的成员方法 5. super关键字 6. super和this关键字  7. 子类构造方法 8. 代码块的执行顺序  9. protected访问修饰限定符 10. 继承方式 11.final关键字 12. 继承与组合 结语 一. 继承 1. 为什么需要继承  在Java中类是对现实生活中一组对象的抽象描述,是创建对象的模板,经过实例化后的对象可以用来表示现实中的实体,但是我们可以发现很多事物是存在一些关联的,比如:永劫无间中的治疗型英雄和进攻性英雄、他们都是英雄角色  用我们的Java语言该如何实例化一个永劫无间中的英雄对象呢 public class Therapeutic {//治疗型

By Ne0inhk
【Linux/C++多线程篇(一) 】多线程编程入门:从核心概念到常用函数详解

【Linux/C++多线程篇(一) 】多线程编程入门:从核心概念到常用函数详解

⭐️在这个怀疑的年代,我们依然需要信仰。 个人主页:YYYing. ⭐️Linux/C++进阶系列专栏:【从零开始的linux/c++进阶编程】 系列上期内容:【Linux/C++多进程篇(二) 】linux系统编程之进程间通信 (IPC) 系列下期内容:【Linux/C++多线程篇(二) 】同步互斥机制 & C++ 11下的多线程 目录 前言:为什么需要多线程? 多线程基础概念 一、进程与线程的区别 二、进程与线程的关系 三、多线程的优缺点  📖 优点  📖 缺点 多线程编程 一、创建线程:pthread_create  📖 向线程体中传递单个数据  📖 向线程体中传入多个数据 二、线程号的获取:pthread_self 三、

By Ne0inhk
【2026 最新】Java 与 IntelliJ IDEA 详细下载安装教程 带图演示(Windows 版)

【2026 最新】Java 与 IntelliJ IDEA 详细下载安装教程 带图演示(Windows 版)

前言 Java 是全球最广泛使用的编程语言之一,适用于企业级应用、Android 开发、大数据处理和后端服务。而 IntelliJ IDEA(简称 IDEA)作为 JetBrains 公司推出的旗舰级 Java IDE,凭借卓越的智能代码补全、深度框架集成、强大的调试器和流畅的用户体验,被广大开发者誉为“最强 Java 开发工具”。 本教程专为 Windows 系统用户 编写,将手把手指导你完成 Java Development Kit (JDK) 和 IntelliJ IDEA 的下载、安装与基础配置,助你快速搭建专业的 Java 开发环境。 一、Java(JDK)下载与安装 💡 注意:开发 Java 程序需要安装 JDK(

By Ne0inhk