首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >把 AI 学长"塞"进 QQ 群!我用 OpenClaw 为班级打造 24 小时智能助教

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

原创
作者头像
一只牛博
发布2026-02-27 12:20:31
发布2026-02-27 12:20:31
8261
举报
文章被收录于专栏:AIAI

前言:一个被 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
1-使用应用模版openclaw重装系统.png

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

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


第二步:开放防火墙端口

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

放开openclaw端口.png
放开openclaw端口.png

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

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


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

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

3-模型配置.png
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
填写主题信息.png

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

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

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


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

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

创建机器人.png
创建机器人.png

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

填写机器人信息.png
填写机器人信息.png

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


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

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

机器人app配置.png
机器人app配置.png

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


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

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

沙箱配置.png
沙箱配置.png

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

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

配置成功QQ.png
配置成功QQ.png

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


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

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

QQ单人聊天.jpg
QQ单人聊天.jpg

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

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

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


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

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

群聊中加入机器人jpg.jpg
群聊中加入机器人jpg.jpg

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

QQ群聊1.jpg
QQ群聊1.jpg

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

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

核心作用:

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

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

QQ群聊2.jpg
QQ群聊2.jpg

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

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


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

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

代码语言:java
复制
public static double getAverage(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
}

public static int getMax(List<Integer> scores) {
    int max = 0; // Bug 3
    for (Integer score : scores) {
        if (score > max) max = score;
    }
    return max;
}

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

bug询问解决.png
bug询问解决.png

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

bug询问解决2.png
bug询问解决2.png

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

bug询问解决3.png
bug询问解决3.png

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

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

bug询问解决4.png
bug询问解决4.png
代码语言:java
复制
public static double getAverage(List<Integer> scores) {
    if (scores.isEmpty()) return 0; // 防止除 0
    int total = 0;
    for (int i = 0; i < scores.size(); i++) {
        total += scores.get(i);
    }
    return (double) total / scores.size();
}

public static int getMax(List<Integer> scores) {
    if (scores.isEmpty()) throw new IllegalArgumentException("列表为空");
    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
工作空间下的文件.png

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

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

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

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

提示词修改效果.png
提示词修改效果.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 群,让它替你解答那些"今天第十次被问"的问题吧。


参考资料

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:一个被 QQ 消息淹没的下午
  • 什么是 OpenClaw?
  • 第一步:用 Lighthouse 应用模板一键部署 OpenClaw
  • 第二步:开放防火墙端口
  • 第三步:配置 AI 模型与 QQ 通道
  • 第四步:在 QQ 开放平台注册并实名认证
  • 第五步:创建机器人「AI 学长」
  • 第六步:获取 AppID / AppSecret,完成接入配置
  • 第七步:沙箱配置与连接验证
  • 实战场景一:私聊测试,AI 助手的第一声问候
  • 实战场景二:群聊中讲解 Java 泛型
  • 实战场景三:深度 Bug 分析,AI 学长挑出三处隐患
  • 进阶玩法:给 AI 学长定制专属人格
  • 总结与思考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档