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的交互。主要特点:

  • 模块化设计 :不同功能分离,便于维护和扩展

  • 异步处理 :使用async/await实现高效并发

  • 配置分离 :敏感信息通过配置文件管理

  • 数据持久化 :使用JSON存储提醒、任务等数据

使用的API和服务

  • 硅基流动API :AI对话和生图

  • 天行API :新闻、运势等功能

  • 天气API :天气和历史查询

  • OpenRouter :多模型支持

  • Mem0 :长期记忆功能

  • Edge TTS :语音合成

  • TeleSpeech :语音识别

部署方式

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

四、总结与展望

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

  • 功能丰富 :集成了聊天、查询、娱乐、实用工具等多种功能

  • 用户友好 :支持自然语言触发命令,降低了使用门槛

  • 可扩展性强 :模块化设计让添加新功能变得简单

未来计划:

  • 添加更多API接口支持

  • 优化AI对话的响应速度

  • 增加更多娱乐玩法

  • 支持多语言

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

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


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