用OpenClaw做qq ai办公机器人(支持群聊关键词触发+自定义域名发送任意邮件)

用OpenClaw做qq ai办公机器人(支持群聊关键词触发+自定义域名发送任意邮件)

1.OpenClaw对接QQ(qq账号当机器人使用)

在任意文件夹创建项目文件夹napcat及需要的文件夹,并创建docker-compose.yml

mkdir -p napcat && cd napcat
mkdir -p config .config logs

docker-compose.yml内容参考

services: napcat: image: mlikiowa/napcat-docker:latest container_name: napcat restart: unless-stopped environment: - NAPCAT_UID=${NAPCAT_UID:-1000} - NAPCAT_GID=${NAPCAT_GID:-1000} - MESSAGE_POST_FORMAT=string # 网络服务(根据需求启用) - HTTP_ENABLE=true - HTTP_HOST=0.0.0.0 - HTTP_PORT=3000 - WS_ENABLE=true - WS_HOST=0.0.0.0 - WS_PORT=3001 ports: - "3000:3000" - "3001:3001" - "6099:6099" volumes: # 1. NapCat 配置(网络设置、WebUI token) - ./config:/app/napcat/config # 2. QQ 数据(登录凭证、持久化登录状态) # 官方路径是 /app/.config/QQ, - ./.config:/app/.config/QQ # 3. 日志(可选) - ./logs:/app/napcat/logs # 注意:没有 network_mode: bridge,与 ports 冲突 stdin_open: true tty: true

启动docker,并执行以下命令

NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker-compose up -d
命令拆解含义
NAPCAT_UID=$(id -u)设置环境变量 NAPCAT_UID 为当前用户的用户 ID
NAPCAT_GID=$(id -g)设置环境变量 NAPCAT_GID 为当前用户的组 ID
docker-compose up -d在后台启动 Docker Compose 服务

因为NapCat 容器内以 NAPCAT_UID 用户运行,需要与宿主机用户权限匹配,所以动态获取当前用户 ID,环境变量传递给 Docker Compose

启动完成

执行docker-compose logs -f,手机qq扫描登录日志的二维码登录

也可以根据日志的token打开http://127.0.0.1:6099/webui?token=你的token,输入账号和密码

如果提示需要验证码,暂时不支持的话就扫码登录,登录后只要日志没有显示离线就可以退出手机qq

点击网络配置,添加http server(可选)和websocket server

复制websocket server的token

两个插件选一个即可,建议用openclaw_qq,因为目前@izhimu/qq插件似乎群里有人发消息就一定会回复且不支持/model等命令(可能要自己研究怎么配置或修改源码?),而openclaw_qq在群@机器人的名字或设置关键词触发

插件1(推荐):

在另一个终端执行cd ~/.openclaw/extensions && git clone https://github.com/constansino/openclaw_qq.git qq命令给openclaw安装插件,然后执行cd ~/.openclaw/extensions/qq && pnpm install 2>&1 | tail -20编译安装

插件2:

执行pnpm openclaw plugins install @izhimu/qq给openclaw安装插件,如果你的openclaw不是通过pnpm安装则去掉pnpm,下同

输入pnpm openclaw gateway restart重启,然后打开http://127.0.0.1:18789/channels,粘贴websocket的token,点击保存,过一会看到yes即成功连接

如果qq机器人回复出现Connection error(这里已经换成小号当QQ机器人,防止主号乱发消息被封),去用户目录的.opneclaw里,比如/Users/Zhuanz/.openclaw,打开openclaw.json,找到channels,再找qq,将enable改为true;如果还是这样,看看agents.defaults.model.primary是不是本地 ollama 模型且此时没启动ollama(注意在网页或tui输入/model等命令要在对应的qq聊天session执行才对qq机器人有效)

之后执行pnpm openclaw gateway restart或其他命令重启,测试效果,如果你的openclaw不是通过pnpm安装则去掉pnpm,下同

用@izhimu/qq插件的情况

已经成功回复,但如果是用@izhimu/qq插件不会对聊天中直接发/model等命令执行且给结果,只有让对话中强调执行这个命令才有效,但在openclaw_qq可以直接执行命令给结果(下图)

openclaw_qq配置参考

插件功能差异对比(原因:目前这个QQ 插件缺少 CommandAuthorized 参数)

插件finalizeInboundContext 参数命令支持
飞书包含 CommandAuthorized: commandAuthorized✅ 支持
QQ缺乏 CommandAuthorized 参数❌ 不支持

两个 QQ 插件功能对比

1)配置项对比

功能@izhimu/qqopenclaw_qq说明
wsUrlWebSocket 地址
accessToken访问令牌
enable启用开关
requireMention✅ 默认 true群聊需要 @ 才触发
keywordTriggers关键词唤醒
admins管理员列表
adminOnlyChat仅管理员可触发
allowedGroups群白名单
blockedUsers用户黑名单
systemPrompt自定义人设
historyLimit历史消息注入
autoApproveRequests自动通过好友 / 群邀请
enableTTS语音回复
enableGuildsQQ 频道支持
rateLimitMs✅ 默认 1000ms发送限速防风控
antiRiskModeURL 风控规避
maxMessageLength✅ 默认 4000消息分片
formatMarkdownMarkdown 转纯文本
showProcessingStatus群名片显示 "输入中"
sharedMediaHostDir跨容器媒体共享

2)核心功能差异

功能@izhimu/qqopenclaw_qq原因
群聊 @ 触发❌ 所有消息都回复✅ 默认仅 @ 触发新插件有 requireMention 配置
关键词唤醒✅ 如 "小助手"新插件有 keywordTriggers
管理员命令✅ /model, /status 等新插件实现了命令处理
/model 命令✅ 仅管理员新插件支持模型切换
群白名单新插件有 allowedGroups
用户黑名单新插件有 blockedUsers
风控优化✅ 限速、URL 规避新插件针对 QQ 风控设计
戳一戳响应新插件处理 poke 事件
自动通过请求新插件有 autoApproveRequests
消息去重新插件有 enableDeduplication
空回复兜底新插件有 enableEmptyReplyFallback

2.自定义域名发送邮件

打开https://resend.com/signup注,密码需要至少12位,注册完需去邮箱验证

打开邮箱进行验证

添加API key,并复制

查找能发邮件的skills(find-skills安装可见教程https://blog.ZEEKLOG.net/weixin_55221858/article/details/158179110

可执行npx skills add resend/resend-skills@send-email -g -y安装

测试成功,默认只能发注册resend账户的邮箱,要发送任意邮箱需添加域名

添加自己的域名,地区随便选,然后点击Add domain

点击允许接收,再点击添加记录

需要添加的全部记录清单

从这个界面可以看到需要添加以下记录:

类型主机记录(Name)记录值(Content)优先级用途
TXTresend._domainkeyp=MIGfMA0GCSqG[...]-DKIM 签名(必需)
MXsendfeedback-smtp.[...]amazonses.com10退信处理(必需)
TXTsendv=spf1 include[...]nses.com ~all-SPF 验证(必需)
TXT_dmarcv=DMARC1; p=none;-DMARC 策略(可选但强烈建议)
MX@inbound-smtp.e[...]amazonaws.com10接收邮件(可选,如果你不需要收邮件可以不填)

以阿里云为例

验证通过,由Pending变成Verified

成功接收邮件

参考教程:

1.https://blog.ZEEKLOG.net/qq_14956715/article/details/157942635

2.https://blog.ZEEKLOG.net/m0_60046831/article/details/157696672

3.https://napneko.github.io/

创作不易,禁止抄袭,转载请附上原文链接及标题

Read more

亲测Z-Image-Turbo_UI界面,AI绘画真实体验分享

亲测Z-Image-Turbo_UI界面,AI绘画真实体验分享 1. 开箱即用的AI绘画体验:为什么我选择Z-Image-Turbo UI? 你有没有试过输入一句话,几秒钟后就能看到一幅堪比专业画师创作的高清图像?这不是科幻,而是我现在每天都在用的现实工具——Z-Image-Turbo_UI界面。 最近我亲自部署并深度体验了这款基于Z-Image-Turbo模型的Web UI,整个过程就像打开一个本地网页那么简单。不需要复杂的命令行操作,也不用担心显存爆炸,只要启动服务,浏览器一开,就能开始“文字作画”。 这次的真实体验让我彻底改变了对AI绘画“难上手、门槛高”的刻板印象。它不仅支持中文提示词精准生成,还能在普通消费级显卡上流畅运行,特别适合设计师、内容创作者、自媒体运营者快速产出高质量视觉素材。 本文将带你从零开始,一步步亲历我的使用全过程:如何启动服务、访问UI、生成惊艳图片,以及如何管理历史作品。全程无代码压力,小白也能轻松上手。 2. 快速启动:三步开启你的AI绘画之旅 2.1 启动模型服务 根据官方文档,我们只需要运行一行Python命令即可加载模型:

(3-3)机器人身体结构与人体仿生学:四肢结构设计原则

(3-3)机器人身体结构与人体仿生学:四肢结构设计原则

3.3  四肢结构设计原则 四肢是人形机器人实现运动执行、负载作业与人机交互的核心执行单元,其设计需围绕“运动灵活性、承载可靠性、轻量化集成”三大核心目标,平衡关节运动范围、驱动效率与力传递性能。 3.3.1  手臂结构:肩、肘、腕的解耦设计 手臂作为人形机器人实现抓取、操作、人机交互的核心执行部件,其运动灵活性与控制精度直接依赖于肩、肘、腕关节的“解耦设计”——即通过结构布局与驱动配置,使各关节自由度运动独立可控,避免运动干涉与动力耦合,同时兼顾负载传递效率与轻量化需求。 图3-9展示了肩部、肘部、腕部的解耦设计,具体说明如下所示。 1. 肩部清晰区分了“前屈/后伸、外展/内收、旋转”三个独立自由度,搭配电机+谐波减速器的独立驱动配置,符合肩部三自由度解耦的球铰式布局; 2. 肘部标注“单自由度肘关节”,聚焦屈伸功能,配合行星减速器,

AstrBot插件开发全攻略:从零实现天气查询机器人(Python3.10+)

AstrBot插件开发全攻略:从零实现天气查询机器人(Python3.10+) 在智能对话系统蓬勃发展的今天,能够快速构建功能丰富的聊天机器人已成为开发者必备技能。AstrBot作为一款支持多平台部署的开源框架,其插件机制为功能扩展提供了无限可能。本文将带你深入AstrBot插件开发的核心环节,通过实现一个实用的天气查询功能,掌握从环境搭建到生产部署的全流程。 1. 开发环境准备与项目初始化 开发AstrBot插件前,需要确保Python环境配置正确。推荐使用Python 3.10及以上版本,以获得最佳的语言特性支持。首先创建并激活虚拟环境: python -m venv astrbot_env source astrbot_env/bin/activate # Linux/macOS astrbot_env\Scripts\activate # Windows 安装核心依赖时,除了AstrBot本体,还需要几个关键库: pip install astrbot requests python-dotenv pytz 项目目录结构对后续维护至关重要,建议采用如下组织方

Stable Diffusion显存优化完全解决方案:彻底告别内存不足错误

Stable Diffusion显存优化完全解决方案:彻底告别内存不足错误 【免费下载链接】sd-webui-memory-releaseAn Extension for Automatic1111 Webui that releases the memory each generation 项目地址: https://gitcode.com/gh_mirrors/sd/sd-webui-memory-release 在AI绘图创作过程中,Stable Diffusion显存优化是每个用户都必须面对的关键问题。当你的显卡内存不足时,不仅会中断创作流程,还可能导致数据丢失。本文将为你提供一套完整的AI绘图内存管理方案,帮助你在低配设备上也能流畅运行Stable Diffusion。 🎯 问题根源:为什么显存总是不够用? 显存消耗的主要来源: * 模型权重残留:生成完成后,模型数据仍占用显存空间 * 缓存累积效应:CUDA缓存随着操作次数增加而不断堆积 * 并发处理压力:批量生成时内存需求呈几何级数增长 快速诊断清单: ✅ 单张图片生成后显存占用是否回落? ✅ 连续操