discord机器人开发历程

前言

前面了解到可以做discord机器人,可以直接使用命令聊天,我就做了一个,基本上复现了我前面在服务器上面部署的AStrBot的QQ机器人,包含多种功能,而且这个我可以自己DIY,添加自己想要的功能,而不用被插件市场限制住,我前面也做了一个机器人,但是当时vibe coding还不是很成熟,我自己也不是很精通代码,所以就搁置了,随着各种code工具和AI的兴起,我也应着openclaw的热潮做了一个类似的。

一、shen-test

这是我做的第一个正式的机器人,包含多种功能,可以AI对话,它也可以用命令,并且对接了多种API。

总览

首先,使用/help命令可以显示出可以使用的所有内容。

help命令

基础功能

基础功能包括如下部分

(1)status

这是查看服务器的状态的命令,可以显示出链接状态,运行时间和当前的时间。

status命令

(2)models

这个命令可以切换AI对话所使用的模型,支持多种模型切换,包括硅基流动的各种模型、OpenRouter、DeepSeek等。

models命令

AI对话功能

这是机器人的核心功能,直接在频道里@机器人或者私信它,就可以进行AI对话。支持多轮对话上下文记忆,对话体验流畅自然。

AI对话

值得一提的是,这个机器人还支持Mem0长期记忆功能,开启后AI可以记住你之前说过的内容,实现真正的个性化对话体验。

AI自动执行命令

这是我非常喜欢的一个功能,AI可以识别用户意图并自动执行对应的命令,无需手动输入斜杠命令。

比如:

  • “上海的天气怎么样?” → 自动调用天气查询
  • “给我看看今天的科技新闻” → 自动调用新闻
  • “帮我画一只可爱的猫咪” → 自动调用生图
  • “今天历史上发生了什么?” → 自动调用历史查询
  • “10分钟后提醒我开会” → 自动设置提醒

AI自动执行

信息查询功能

(1)weather 天气查询(API)

查询指定城市的天气信息,显示温度、湿度、风力等详细数据。

weather命令

(2)news 新闻查询(API)

获取最新新闻,支持互联网、科技、世界等多个分类,可以指定数量和关键词搜索。

news命令

(3)history 历史上的今天(API)

查看历史上今天发生的重大事件,支持详细模式显示更多信息。

history命令

娱乐功能

(1)海龟汤 turtle

海龟汤是一种情境推理游戏,机器人会给出一道谜题,玩家通过提问来推理出完整的故事。

  • /turtle_start - 开始游戏
  • 直接提问 - 进行推理
  • /turtle_reveal - 揭晓答案
  • /turtle_stop - 结束游戏

海龟汤

(2)fortune 今日宜忌(API)

查看今天的宜忌,类似老黄历的功能。

fortune命令

(3)star 星座运势(API)

查看指定星座的今日运势。

star命令

(4)liuren 小六壬

传统占卜方式,随机给你一个卦象解读。

liuren命令

(5)其他娱乐命令

  • /joke - 讲笑话
  • /roll - 掷骰子
  • /rps - 石头剪刀布
  • /guess - 猜数字
  • /quiz - 知识问答(API)
  • /slots - 老虎机
  • /girl - 随机美女图(API)
  • /drama - 搜索短剧(API)

娱乐命令

实用功能

(1)reminder 提醒功能

可以设置定时提醒,支持相对时间(如10分钟后)和绝对时间。

  • /reminder_set_minutes - 设置相对时间提醒
  • /reminder_set_time - 设置绝对时间提醒
  • /reminder_list - 查看提醒列表
  • /reminder_delete - 删除提醒

reminder命令

(2)task 定时任务

可以设置每天定时执行的命令,比如每天早上自动推送天气或新闻。

  • /task add_command - 添加定时任务
  • /task list - 查看任务列表
  • /task delete - 删除任务

task命令

(3)persona 人设系统

可以切换不同的AI人设,让机器人以不同的性格和风格回复你。

  • /persona list - 查看所有人设
  • /persona set - 切换人设
  • /persona add - 添加新人设
  • /persona delete - 删除人设

persona命令

多媒体功能

(1)draw AI生图

使用Kolors模型进行AI绘图,支持多种尺寸。

draw命令

(2)tts 语音回复

开启后,机器人会用Edge TTS将回复转换成语音发送,让对话更有趣味。

(3)asr 语音识别

发送音频文件,机器人会自动识别语音内容并转成文字。

二、shen-play

除了通用的助手机器人,我还做了一个AI对战的机器人,提供多种有趣的玩法。

(1)debate 多轮辩论

让两个AI模型针对一个话题进行辩论,可以设置多个回合,观看AI之间的精彩交锋。

debate命令

(2)stance 立场投票器

让多个AI模型对某个话题表达立场和理由,然后让用户进行投票。

stance命令

(3)story 三句接龙

随机挑选三个AI模型,让它们依次续写一个故事,看看会产生什么样的创意。

story命令

(4)haiku俳句

给定主题,AI会生成5-7-5格式的俳句。

俳句

三、技术实现

架构设计

整个项目使用Python开发,基于discord.py库实现Discord的交互。主要特点:

  1. 模块化设计:不同功能分离,便于维护和扩展
  2. 异步处理:使用async/await实现高效并发
  3. 配置分离:敏感信息通过配置文件管理
  4. 数据持久化:使用JSON存储提醒、任务等数据

使用的API和服务

  • 硅基流动API:AI对话和生图
  • 天行API:新闻、运势等功能
  • 天气API:天气和历史查询
  • OpenRouter:多模型支持
  • Mem0:长期记忆功能
  • Edge TTS:语音合成
  • TeleSpeech:语音识别

部署方式

项目结构清晰,可以直接在服务器上运行:

1
2
3
4
5
6
7
8
# 安装依赖
pip install -r requirements.txt

# 配置API密钥
# 编辑 config/config.yaml

# 运行
python bot.py

四、总结与展望

这个Discord机器人项目让我学到了很多,从最初的想法到现在的功能完善的机器人,过程中遇到了很多挑战,也收获了很多。主要成就感来自:

  1. 功能丰富:集成了聊天、查询、娱乐、实用工具等多种功能
  2. 用户友好:支持自然语言触发命令,降低了使用门槛
  3. 可扩展性强:模块化设计让添加新功能变得简单

未来计划:

  • 添加更多API接口支持
  • 优化AI对话的响应速度
  • 增加更多娱乐玩法
  • 支持多语言

如果你也想做一个自己的Discord机器人,欢迎参考这个项目,有问题可以一起交流!

项目地址:https://github.com/yys806/discord-bot


discord机器人开发历程
http://example.com/2026/02/18/discord机器人开发历程/
作者
Leo shen
发布于
2026年2月18日
许可协议