如果搜索“免费 AI Discord bot”,你会找到几十个选项。有些确实免费。大多数并不是,至少不是你可能预期的那种免费。本文会拆解实际可用的方案、它们的取舍,以及当涉及 AI 推理时,“免费”真正意味着什么成本。
为什么“免费 AI”很复杂
运行 LLM 需要成本。每当用户发送一条消息并获得回复时,都有人在为计算付费。对于 OpenAI 或 Anthropic 这样的托管 API,你按 token 付费。对于自托管模型,你以硬件、电力和维护时间的形式付费。这个事实无法绕过:推理存在非零边际成本。
当某项服务提供“免费 AI 机器人”时,通常符合以下情况之一:
- 你直接支付推理成本(例如,提供自己的 API key)。
- 服务商承担成本,并通过付费层级、广告或数据收集收回成本。
- 你在自己的硬件上运行推理,使用开源模型。
- 免费层级受到低用量限制,以限制提供商面对的计算成本敞口。
理解某个机器人属于哪一种情况,是评估它是否真正适合你的用例的关键。
免费 AI Discord 机器人的三类方案
1. 自托管开源机器人(真正免费,但你提供硬件)
这是唯一一种没有第三方控制你用量限制的选项。你在本地(或 VPS 上)运行开源 LLM,通过自己编写或 fork 的机器人连接到 Discord,并自行处理所有事项。
典型技术栈:
- Ollama 用于本地模型服务
- discord.py 或 discord.js 用于 Discord 机器人
- Llama 3.1 8B、Mistral 7B 或 Gemma 2 9B 等模型
你得到的内容:
- 除电费外没有按消息计费的成本
- 完全控制模型、system prompt 和数据
- 没有第三方施加的速率限制(只适用 Discord 自身的 API 限制)
- 本地模型处理:推理保留在你的机器上,而 Discord 仍然传输并存储消息
你放弃的内容:
- 你需要硬件。以合理速度运行 7B 参数模型需要至少 8 GB VRAM 的 GPU,或配备统一内存的现代 Mac。CPU 推理可以运行,但速度较慢(7B 模型每次回复需要数秒)。
- 你需要维护基础设施。更新、重启、监控以及模型权重占用的磁盘空间都由你负责。
- 模型质量低于前沿模型。Llama 3.1 8B 有一定能力,但不是 GPT-4o 或 Claude Sonnet。用于简单问答和闲聊时表现可以。用于细致推理或复杂多轮对话时会不足。
- 没有内置知识库、分析或转人工功能。你需要自行构建所需功能。
常见模型的最低硬件要求:
| 模型 | 参数 | 所需 VRAM | CPU RAM(仅 CPU) | 响应速度(GPU) |
|---|---|---|---|---|
| Gemma 2 2B | 2B | ~2 GB | ~4 GB | ~60 tokens/sec |
| Llama 3.1 8B | 8B | ~6 GB | ~10 GB | ~40 tokens/sec |
| Mistral 7B | 7B | ~6 GB | ~10 GB | ~40 tokens/sec |
| Llama 3.1 70B (Q4) | 70B | ~40 GB | ~48 GB | ~15 tokens/sec |
(速度为近似值,基于 RTX 4090 测量。量化变体使用更少内存,但会带来少量质量损失。)
2. 免费增值托管服务(带上限的免费层级)
这些产品由其他人托管 AI 和机器人基础设施。你通过 Web 控制台配置机器人。免费层级提供有限用量,更多用量需要付费。
示例:
| 服务 | 免费层级 | 消息限制 | 模型控制 | Discord 支持 | 需要信用卡 |
|---|---|---|---|---|---|
| Quickchat AI | Free plan | 包含用量因计划而异 | 提供商管理(前沿模型) | 是(所有层级) | 否 |
| MEE6 | Free plan | AI 功能仅限 premium | 提供商管理 | 是 | 否(免费层级) |
| Botpress | Free tier | 2,000 条传入消息/月 | 可配置 | 通过集成 | 否 |
Quickchat AI 的 Free plan 允许你在无需信用卡的情况下测试。Discord 集成在每个层级都可用,因此你可以连接机器人,并在正式投入前用真实用户测试。连接只需一次点击:在 External Apps 中打开 Discord,点击 Add to your Discord server,然后选择要添加到的服务器。付费计划从 Starter 开始,价格为 $9/mo,或按年计费 $8/mo。
托管服务的关键优势是,你获得的不只是原始 LLM 推理:从你的文档和网站构建的知识库、对话分析(情感分析、主题检测)、多渠道部署(同一个 agent 可用于你的网站、WhatsApp、Slack 和 Discord),以及在 AI 无法解决时进行人工转接。在自托管模型基础上从零构建这些能力,是一个相当大的工程项目。
MEE6 主要是一个审核和互动机器人。它的 AI 聊天功能被锁定在 premium 订阅之后(截至 2026 年初为 $11.99/mo)。免费层级覆盖等级系统、基础审核命令和欢迎消息,但不包含 AI 驱动的对话。
Botpress 提供免费层级,每月在所有渠道合计 2,000 条传入消息。它提供可视化流程构建器,并支持自定义 LLM 配置。不过,对于一个简单的 Discord 机器人而言,它的设置比 Quickchat 更复杂,因为 Botpress 主要面向结构化对话流程,而不是开放式聊天。
3. BYO API key 机器人(你向 LLM 提供商付费)
第三类:在服务器上运行、但调用商业 API(OpenAI、Anthropic、Google 等)进行推理的开源机器人。你提供自己的 API key。机器人代码本身免费,但你需要按 token 向模型提供商付费。
GitHub 上的示例:
- GPT Discord Bot(OpenAI 的官方示例)
- 使用
discord.py+ OpenAI Python SDK 构建的各种社区机器人
使用商业 API 的每条消息成本(近似值,截至 2026 年初):
| 模型 | 输入成本(每 1M tokens) | 输出成本(每 1M tokens) | ~每条消息成本* |
|---|---|---|---|
| GPT-4o mini | $0.15 | $0.60 | ~$0.0003 |
| GPT-4o | $2.50 | $10.00 | ~$0.005 |
| Claude 3.5 Haiku | $0.80 | $4.00 | ~$0.002 |
| Claude Sonnet 4 | $3.00 | $15.00 | ~$0.007 |
| Gemini 2.0 Flash | $0.10 | $0.40 | ~$0.0002 |
*假设每次消息交互约 500 个输入 token 和约 200 个输出 token,不包含对话历史。如果包含对话历史,输入成本会随上下文长度线性增长。
使用 GPT-4o mini 时,每月 1,000 条消息大约花费 $0.30。每月 10,000 条消息大约花费 $3.00。这些数字看起来很小,直到你把对话历史算进去:如果每条消息都包含完整对话上下文(例如前 10 轮对话),每条消息的输入 token 数会从 ~500 膨胀到 ~5,000,因此输入成本上升 10 倍,总成本也会增加。
各类方案的成本对比
下表估算了不同消息量下的月成本。“Self-hosted”假设使用小型 VPS 或现有硬件。“BYO API Key”使用 GPT-4o mini 定价。“Managed”使用 Quickchat AI 的定价作为参考。
| 每月消息数 | Self-Hosted (Ollama + VPS) | BYO API Key (GPT-4o mini) | Managed (Quickchat AI) |
|---|---|---|---|
| 100 | ~$5-20(VPS 成本) | ~$0.03 | Free plan 或 $9/mo 的 Starter |
| 1,000 | ~$5-20(VPS 成本) | ~$0.30-3.00 | $9/mo 的 Starter 或 $29/mo 的 Basic |
| 5,000 | ~$15-40(VPS 成本) | ~$1.50-15.00 | $99/mo 的 Essential 或 $299/mo 的 Professional |
| 10,000 | ~$30-80(VPS 成本) | ~$3.00-30.00 | $299/mo 的 Professional 或 $999/mo 的 Business |
| 35,000 | ~$60-150(VPS 成本) | ~$10.50-105.00 | $999/mo 的 Business 或 Enterprise,起价 $0.50/resolution |
关于 self-hosted 列的说明:范围取决于你使用仅 CPU 的 VPS(更便宜但回复更慢)还是 GPU 实例。Hetzner 提供约 $5-10/mo 的 CPU VPS 实例,可运行量化的 7B 模型,不过响应时间会是 5-15 秒。GPU 云实例(例如来自 Lambda、RunPod 或 Vast.ai)单 GPU 起价约 $0.20-0.50/hr,如果 24/7 运行,折合 $150-360/mo。对于间歇性使用,spot 实例或 serverless GPU 提供商可以降低成本。
BYO API key 列显示的是一个范围,因为成本在很大程度上取决于你是否在每个请求中包含对话历史。下限是单轮(无历史),上限是包含约 10 条上下文消息的多轮。
托管服务列反映的是 Quickchat 截至 2026 年 6 月的定价。这些计划包含知识库管理、分析和多渠道支持等功能,而在另外两种方案中,如果没有额外工程工作,这些功能并不存在。
快速自托管设置:Python + discord.py + Ollama
下面是一个最小可运行示例,展示了使用 Ollama 进行本地推理的 Discord 机器人。这要求已安装并运行 Ollama,并且已拉取一个模型(例如 ollama pull llama3.1:8b)。
前提条件
- Python 3.10+
- 已安装并运行 Ollama(
curl -fsSL https://ollama.com/install.sh | sh) - 已拉取一个模型:
ollama pull llama3.1:8b - Discord bot token(在 Discord Developer Portal 创建)
- 机器人已添加到你的服务器,并具备
Send Messages和Read Message History权限
安装依赖
pip install discord.py aiohttp
机器人代码
import discord
import aiohttp
import json
DISCORD_TOKEN = "your-bot-token-here"
OLLAMA_URL = "http://localhost:11434/api/chat"
MODEL = "llama3.1:8b"
SYSTEM_PROMPT = "你是 Discord 服务器中的 helpful assistant。回复保持简洁。"
# Store conversation history per channel (in-memory, resets on restart)
conversations: dict[int, list[dict]] = {}
MAX_HISTORY = 10 # Keep last 10 messages per channel
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
async def query_ollama(channel_id: int, user_message: str) -> str:
"""Send a message to Ollama and return the response."""
if channel_id not in conversations:
conversations[channel_id] = []
conversations[channel_id].append({"role": "user", "content": user_message})
# Trim history to avoid unbounded memory growth
if len(conversations[channel_id]) > MAX_HISTORY:
conversations[channel_id] = conversations[channel_id][-MAX_HISTORY:]
messages = [{"role": "system", "content": SYSTEM_PROMPT}] + conversations[channel_id]
payload = {
"model": MODEL,
"messages": messages,
"stream": False,
}
async with aiohttp.ClientSession() as session:
async with session.post(OLLAMA_URL, json=payload) as resp:
if resp.status != 200:
return f"Ollama returned status {resp.status}"
data = await resp.json()
reply = data["message"]["content"]
conversations[channel_id].append({"role": "assistant", "content": reply})
return reply
@client.event
async def on_ready():
print(f"Logged in as {client.user}")
@client.event
async def on_message(message: discord.Message):
# Ignore own messages
if message.author == client.user:
return
# Only respond when mentioned
if client.user not in message.mentions:
return
# Strip the mention from the message
content = message.content.replace(f"<@{client.user.id}>", "").strip()
if not content:
return
async with message.channel.typing():
reply = await query_ollama(message.channel.id, content)
# Discord has a 2000-character limit per message
if len(reply) > 2000:
for i in range(0, len(reply), 2000):
await message.reply(reply[i:i+2000])
else:
await message.reply(reply)
client.run(DISCORD_TOKEN)
这段代码约 60 行,会给你一个可运行的 AI 机器人,在被提及时回复。它在内存中维护按频道划分的对话历史(重启后丢失),并处理 Discord 每条消息 2,000 字符的限制。
这个最小机器人缺少什么
上面的代码适合测试和小型服务器。对于更进一步的使用,你会遇到多个生产机器人需要处理的问题:
- 持久化对话历史。 内存中的 dict 会在进程重启时丢失。生产机器人会把对话存储在 Redis 或数据库中。
- 速率限制。 Discord 允许每个频道每 5 秒发送 5 条消息。如果你的机器人很受欢迎,你需要队列。
- 并发请求。 Ollama 默认一次处理一个请求。多个用户同时发消息时会排队。你可以在负载均衡器后运行多个 Ollama 实例,或使用 Ollama 的
OLLAMA_NUM_PARALLEL选项(自 v0.1.33 起可用)。 - 错误处理和重试。 Ollama 可能崩溃、内存不足,或返回格式错误的响应。机器人应能优雅处理所有这些情况。
- 上下文窗口管理。
MAX_HISTORY = 10设置很粗糙。更好的方法是计算 token,并裁剪到模型上下文窗口内(Llama 3.1 8B 默认 8,192 token,可配置到 128K,但长上下文会降低质量)。 - 线程支持。 在 Discord 中,机器人对话常发生在线程里。处理线程创建和按线程维护历史需要额外逻辑。
- 知识库 / RAG。 如果你希望机器人回答有关项目文档的问题,需要检索增强生成设置:对文档进行 embedding,将 embedding 存入向量数据库,并在发送给 LLM 前检索相关片段。
技术注意事项
Discord API 速率限制
Discord 在多个层级施加速率限制:
- 按路由限制: 每个 API endpoint 都有自己的速率限制,会在响应头中返回(
X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset)。 - 全局限制: 所有 endpoint 合计每秒 50 个请求。
- 按频道消息限制: 每个频道每 5 秒 5 条消息。
- Gateway 限制: 每 60 秒 120 个 gateway 事件。
discord.py 库会在你达到限制时通过排队请求来自动处理其中大多数限制。不过,如果你的机器人同时位于许多服务器或频道中,仍然可能触及全局限制。此时,你需要考虑 sharding(将机器人的服务器连接拆分到多个 gateway 连接中)。
对于使用 MESSAGE_CONTENT intent(读取消息文本所需)的机器人,如果机器人位于超过 100 个服务器中,Discord 要求你验证机器人。这需要提交机器人用途说明,并获得 Discord 批准。
模型质量取舍
小型开源模型与前沿商业模型之间的差距比两年前更小,但仍然存在。下面是常见 Discord 机器人任务的粗略对比:
| 任务 | 7-8B 本地模型 | GPT-4o mini | GPT-4o / Claude Sonnet |
|---|---|---|---|
| 闲聊 | 良好 | 良好 | 良好 |
| 事实问答 | 中等(更多幻觉) | 良好 | 很好 |
| 代码生成 | 基础 | 良好 | 很好 |
| 多语言 | 有限 | 良好 | 很好 |
| 指令遵循 | 中等 | 良好 | 很好 |
| 保持角色 | 中等 | 良好 | 良好 |
如果你的 Discord 机器人面向游戏社区,主要处理闲聊和简单查询,本地 8B 模型效果不错。如果它用于客服且准确性重要,质量差距会变成实际问题。保持角色也不仅取决于模型,更取决于设置:如何构建一个能保持角色设定的角色扮演 AI 聊天机器人 展示了角色 prompt 和 canon 知识库即使搭配标准模型也能走多远。
上下文窗口管理
这是 Discord 机器人中最被低估的技术挑战。Discord 对话天然是多轮的:用户会发送许多短消息,机器人需要记住对话早些时候说过什么。
每次机器人回复时,都需要在 prompt 中包含此前的对话历史。这意味着:
- 输入 token 数会随对话长度线性增长。
- 对于基于 API 的机器人,成本也会线性增长。
- 对于本地模型,推理时间会随上下文长度增长(在注意力计算中为二次增长,不过 Flash Attention 等优化会有帮助)。
- 到某个时点,对话会超过模型的上下文窗口,你需要策略:从开头截断、总结旧消息,或开启新对话。
一种实用方法是保留最近 N 条消息的滚动窗口,如果对话已经很长,则在前面添加一段较早上下文的简短摘要。这需要额外一次 LLM 调用来生成摘要,但可以把每条消息的成本控制在有界范围内。
隐私影响
这会因方案而有显著差异:
- 自托管: AI 推理保留在你的硬件上,因此你控制模型处理日志和留存。Discord 仍然传输并存储消息,本地推理并不会让整个对话都变成本地的。
- BYO API Key: 消息会发送给 API 提供商(OpenAI、Anthropic 等)。请查看他们的数据留存政策。截至 2026 年初,OpenAI 表示默认不会用 API 数据进行训练,Anthropic 也有类似政策。不过,消息仍然会经过他们的服务器。
- 托管服务: 消息由服务提供商处理。请查看其隐私政策和数据处理协议。对于在欧盟处理用户数据的企业,GDPR 合规在这里很重要。例如,Quickchat AI 在欧盟处理数据,并为企业客户提供 DPA。
对于休闲 Discord 服务器,隐私通常不是首要问题。对于使用 Discord 机器人做客服的企业,值得准确了解对话数据存储在哪里,以及谁有权访问。
自托管与托管:总拥有成本
上表中的原始计算成本对比只说明了一部分情况。总拥有成本还包括工程时间。
使用自托管机器人时需要自己构建的内容:
- 机器人代码和部署
- 对话历史存储
- 上下文窗口管理
- 错误处理和监控
- 知识库 / RAG pipeline(如需要)
- 分析和日志
- 多渠道支持(如需要)
保守估计,对于经验丰富的开发者,构建一个具备对话历史、知识库和基础分析的生产级自托管 AI Discord 机器人需要 40-80 小时工程时间。维护它(模型更新、依赖更新、调试、监控)还会增加持续投入。
使用托管服务时开箱即用的内容:
- 机器人托管和正常运行时间管理
- 从你的网站、文档和文件构建的知识库
- 对话分析(情感、主题、评分)
- 多渠道部署(同一个 agent 用于 Discord、网站、WhatsApp、Slack 等)
- 当 AI 无法提供帮助时转人工
- AI Actions(由对话上下文触发的自定义 API 调用),包括超时、踢出和封禁等审核操作
问题在于,托管服务的月费是否低于你的工程时间机会成本。对于运行兴趣型 Discord 服务器的独立开发者,使用 Ollama 自托管可能是正确选择。对于将 Discord 用作面向客户支持渠道的企业,通常托管服务在成本上更合理,因为核心 LLM 周边的功能(分析、知识库、转人工)才是让机器人真正有用的部分。AI 工单机器人指南 在 Free plan 上从头到尾构建的正是这种组合,因此你可以用一个具体方案来对比替代方案成本。
总结
不存在普遍意义上“最好”的免费 AI Discord 机器人。正确选择取决于“免费”对你意味着什么:
- 如果你想要零持续成本,并且有可用硬件,就使用 Ollama 和开源模型自托管。你控制本地模型处理及其数据留存,而 Discord 仍然传输并存储消息。你会放弃相对于前沿模型的模型质量,并承担所有工程工作。
- 如果你想在付费前用真实用户测试,Quickchat AI 的 Free plan 允许你在无需信用卡的情况下开始。Discord 集成可在 Free plan 上使用,付费计划从 $9/mo 开始。
- 如果你想要前沿模型质量,并且愿意管理 API key,BYO API key 机器人可以用较低的按消息成本提供这种能力(尤其是使用 GPT-4o mini 或 Gemini Flash 时)。你仍然需要托管机器人代码,并构建原始聊天之外的任何功能。
- 如果你需要生产功能(知识库、分析、转人工、多渠道),托管服务是最快路径。根据你预期的消息量和实际需要的功能进行评估。
“免费 AI Discord 机器人”中的“免费”承担了很多含义。计算总是有成本的。问题在于谁为它付费,以及你获得了什么(或放弃了什么)作为交换。
如需更广泛地比较所有 AI Discord 机器人(不仅是免费机器人),请参阅我们的 2026 年最佳 AI Discord 机器人 汇总。如果你的服务器专门用作支持渠道,AI Discord 工单机器人 会演示如何根据你的文档回答问题,并将其余问题升级到私有工单线程。