bot-on-anything
Bot-on-Anything 是一款强大的开源 AI 聊天机器人构建工具,旨在帮助开发者轻松将 ChatGPT、Claude、Gemini 等大语言模型集成到各类软件应用中。无论是 Telegram、Slack、钉钉、飞书等即时通讯平台,还是 Gmail 邮箱、个人网站乃至命令行终端,它都能通过轻量级配置快速实现对接。
该工具主要解决了大模型与应用场景之间“连接难、适配繁”的痛点。传统开发往往需要为不同平台编写重复的接口代码,而 Bot-on-Anything 采用模块化架构,实现了模型能力与应用渠道的解耦。用户只需修改配置文件中的类型字段,即可在同一项目中灵活切换不同的 AI 模型或部署渠道,无需重写核心逻辑,极大提升了开发效率与系统的可扩展性。
Bot-on-Anything 特别适合具备一定编程基础的开发者、技术爱好者以及希望快速验证 AI 应用场景的研究人员使用。其支持 Linux、macOS 和 Windows 系统,基于 Python 运行,安装部署简便。凭借“一次配置,多端复用”的独特设计,它让构建跨平台智能对话机器人变得像搭积木一样简单,是探索 AI 落地应用的理想起点。
使用场景
某跨国电商团队的客服主管希望将最新的 AI 大模型能力快速部署到企业微信、Slack 和官网等多个渠道,以统一处理全球用户的咨询。
没有 bot-on-anything 时
- 开发重复造轮子:每接入一个新渠道(如从 Slack 扩展到钉钉),都需要重新编写一套完整的 API 对接代码和消息解析逻辑,耗时数天。
- 模型切换成本极高:若想从 ChatGPT 切换到 Claude 进行效果测试,必须修改多处核心代码并重新部署,无法灵活验证不同模型的回复质量。
- 维护分散且困难:各个渠道的机器人独立运行,配置分散在不同项目中,一旦需要更新提示词或修复漏洞,需逐个系统操作,极易遗漏。
- 资源利用率低:每个渠道单独调用模型接口,缺乏统一的上下文管理和并发控制,导致 Token 消耗不可控且响应速度不稳定。
使用 bot-on-anything 后
- 一次配置,多端运行:只需在
config.json中简单修改channel类型,即可在同一套代码基础上瞬间激活企业微信、Slack 或官网 Web 端机器人,新渠道上线缩短至小时级。 - 模型热插拔式切换:通过更改配置文件中的
model.type字段,即可在 ChatGPT、Claude 等模型间无缝切换,无需改动任何业务代码,轻松对比不同模型的客服效果。 - 集中化管理架构:所有渠道共享同一套模型能力和配置中心,更新提示词或调整参数只需修改一处,立即同步至所有终端,大幅降低运维风险。
- 架构弹性扩展:新增模型能力可自动复用于所有已接入渠道,新增渠道也能直接调用现有模型资源,实现了真正的“模型与渠道解耦”。
bot-on-anything 通过轻量化的配置驱动架构,让团队不再受困于繁琐的接口适配,真正实现了 AI 能力的“一次构建,无处不在”。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
Bot on Anything 是一款功能强大的 AI 聊天机器人构建工具,可帮助您快速搭建聊天机器人,并将其部署到任何地方运行。
简介
开发者只需通过轻量级配置,即可在各类 AI 大模型与应用渠道之间进行选择并建立连接,从而构建和运行智能对话机器人。它支持在一个项目中轻松切换多种路径。这种架构具有很强的扩展性:每个应用都可以复用现有的模型能力,而每新增一个模型也可以在所有应用渠道上运行。
模型:
应用:
快速入门
1. 运行环境
支持 Linux、MacOS 和 Windows 系统,且需安装 Python。建议使用 Python 3.7.1 至 3.10 版本。
克隆项目代码并安装依赖:
git clone https://github.com/zhayujie/bot-on-anything
cd bot-on-anything/
pip3 install -r requirements.txt
2. 配置说明
核心配置文件为 config.json,项目中提供了一个模板文件 config-template.json,可将其复制生成最终有效的 config.json 文件:
cp config-template.json config.json
每个模型和渠道都有各自的配置块,共同组成完整的配置文件。整体结构如下所示:
{
"model": {
"type" : "openai", # 所选 AI 模型
"openai": {
# openAI 配置
}
},
"channel": {
"type": "slack", # 要集成的渠道
"slack": {
# slack 配置
},
"telegram": {
# telegram 配置
}
}
}
配置文件最外层分为 model 和 channel 两部分。其中,model 部分用于模型配置,type 字段指定了要使用的模型;channel 部分则包含应用渠道的配置,type 字段指定了要集成的应用。
使用时,只需更改模型和渠道配置块下的 type 字段,即可在任意模型和应用之间切换,实现不同路径的连接。接下来将依次介绍各模型及应用的配置与运行流程。
3. 运行
在项目根目录下运行以下命令,默认渠道为终端:
python3 app.py
II. 选择模型
1. ChatGPT
默认模型为 gpt-3.5-turbo。详情请参阅官方文档。它也支持 gpt-4.0,只需修改模型类型参数即可。
(1) 安装依赖
pip3 install --upgrade openai
注意:openai 版本需高于
0.27.0。若安装失败,可先通过pip3 install --upgrade pip升级 pip。
(2) 配置项说明
{
"model": {
"type" : "chatgpt",
"openai": {
"api_key": "YOUR API KEY",
"model": "gpt-3.5-turbo", # 模型名称
"proxy": "http://127.0.0.1:7890", # 代理地址
"character_desc": "你是 ChatGPT,由 OpenAI 训练的大型语言模型,旨在回答和解决人们提出的任何问题,并能用多种语言交流。当被问及你是谁时,你也应告知提问者,输入 #clear_memory 可开始新的主题探讨。输入 draw xx 可为你生成一幅图片。",
"conversation_max_tokens": 1000, # 回复的最大字符数,包括输入和输出总和
"temperature":0.75, # 熵值,范围在 [0,1] 之间,值越大,候选词选择越随机,回复不确定性越高;建议与 top_p 参数二选一,创造性任务推荐使用较高值,精确性任务则推荐较低值
"top_p":0.7, # 候选词列表。0.7 表示仅考虑前 70% 的候选词,建议与 temperature 参数二选一
"frequency_penalty":0.0, # 范围在 [-2,2] 之间,该值越大,越能减少模型输出中词语的重复,倾向于生成不同的内容
"presence_penalty":1.0, # 范围在 [-2,2] 之间,该值越大,模型受输入限制越小,鼓励生成未出现在输入中的新词,倾向于生成不同内容
}
}
api_key: 填写注册账号时创建的OpenAI API KEY。model: 模型名称,目前支持gpt-3.5-turbo、gpt-4、gpt-4-32k(gpt-4 API 尚未开放)。proxy: 代理客户端地址,详情请参阅 #56。character_desc: 此配置保存一段您对 ChatGPT 所说的文本,ChatGPT 会将其作为自身设定记住;您可以为其自定义任何个性。max_history_num[可选]: 对话的最大记忆长度,超过此长度将清除之前的记忆。
2. LinkAI
配置项说明
{
"model": {
"type" : "linkai",
"linkai": {
"api_key": "",
"api_base": "https://api.link-ai.tech",
"app_code": "",
"model": "",
"conversation_max_tokens": 1000,
"temperature":0.75,
"top_p":0.7,
"frequency_penalty":0.0,
"presence_penalty":1.0,
"character_desc": "你是一个智能助手。"
},
}
api_key: 调用 LinkAI 服务的密钥,可在控制台创建。app_code: LinkAI 应用程序或工作流的代码,可选,详情请参阅应用创建。model: 支持国内外常用模型,详情请参阅模型列表。可留空,应用程序的默认模型可在LinkAI 平台中修改。- 其他参数含义与 ChatGPT 模型中的参数相同。
III. 选择通道
1. 命令行终端
配置模板中默认启动的应用程序是终端模式,无需额外配置。您可以在项目目录下直接执行 python3 app.py 启动程序。用户通过命令行输入与对话模型交互,并支持流式响应效果。

2. Web
贡献者: RegimenArsenic
依赖
pip3 install PyJWT flask flask_socketio
配置
"channel": {
"type": "http",
"http": {
"http_auth_secret_key": "6d25a684-9558-11e9-aa94-efccd7a0659b", // JWT 认证密钥
"http_auth_password": "6.67428e-11", // 认证密码,仅供个人使用,作为初步防御他人扫描端口和 DDOS 攻击浪费 token
"port": "80" // 端口
}
}
本地运行:执行 python3 app.py 后,访问 http://127.0.0.1:80。
服务器部署:部署完成后,访问 http://公网域名或IP:端口。
3. 个人订阅号
要求: 一台服务器和一个订阅号。
3.1 安装依赖
安装 werobot 依赖:
pip3 install werobot
3.2 配置
"channel": {
"type": "wechat_mp",
"wechat_mp": {
"token": "YOUR TOKEN", # Token值
"port": "8088" # 程序监听的端口
}
}
3.3 运行程序
在项目目录下运行 python3 app.py。如果终端显示以下内容,则表示运行成功:
[INFO][2023-02-16 01:39:53][app.py:12] - [INIT] load config: ...
[INFO][2023-02-16 01:39:53][wechat_mp_channel.py:25] - [WX_Public] 微信公众号服务启动!
Bottle v0.12.23 server starting up (using AutoServer())...
Listening on http://127.0.0.1:8088/
Hit Ctrl-C to quit.
2.2 设置订阅号的回调URL
前往 微信公众平台 的个人订阅号,启用服务器配置:

服务器地址(URL)配置:如果通过浏览器访问服务器上的 Python 程序时能够正常打开配置的 URL(默认监听 8088 端口),则说明配置有效。由于订阅号仅支持配置 80 或 443 端口,您可以将配置修改为直接监听 80 端口(需 sudo 权限)或使用反向代理转发(如 nginx)。根据官方文档,此处可填写公网 IP 或域名。
Token 配置:必须与 config.json 中的 token 保持一致。
详细操作流程请参考 官方文档。
2.3 使用方法
用户关注订阅号后,即可发送消息。
注意:用户发送消息后,微信后台会推送至配置的 URL 地址,但如果 5 秒内未回复,连接将会断开,并重试 3 次。然而,调用 OpenAI 接口通常需要超过 5 秒的时间。在本项目中,通过异步和缓存机制已将 5 秒的超时限制优化至 15 秒,但若超过此时间仍无法正常回复。同时,每次连接因 5 秒超时而断开时,Web 框架都会报错,后续将进一步优化。
4. 企业服务号
要求: 一台服务器和一个认证的服务号。
在企业服务号中,通过先异步访问 OpenAI 接口,再利用客服接口主动推送消息的方式,解决了个人订阅号 15 秒超时的问题。服务号的开发者模式配置与订阅号类似,详情请参阅 官方文档。
企业服务号的 config.json 配置只需将类型改为 wechat_mp_service,但配置块仍沿用 wechat_mp,此外还需添加两个配置项:app_id 和 app_secret。
"channel": {
"type": "wechat_mp_service",
"wechat_mp": {
"token": "YOUR TOKEN", # Token值
"port": "8088", # 程序监听的端口
"app_id": "YOUR APP ID", # App ID
"app_secret": "YOUR APP SECRET" # App secret
}
}
注意:服务器 IP 必须配置到“IP 白名单”中,否则用户将无法接收到主动推送的消息。
5. QQ
要求: 一台 PC 或服务器(国内网络)以及一个 QQ 账号。
运行 QQ 机器人需要额外运行一个 go-cqhttp 程序,该程序负责接收和发送 QQ 消息,而我们的 bot-on-anything 程序则负责调用 OpenAI 生成对话内容。
5.1 下载 go-cqhttp
从 go-cqhttp Release 下载对应系统的程序,解压后将 go-cqhttp 可执行文件放置于我们的 bot-on-anything/channel/qq 目录中。此处已准备好 config.yml 配置文件,您只需填写 QQ 账号配置(账号 UIN)即可。
5.2 安装 aiocqhttp
使用 aiocqhttp 与 go-cqhttp 进行交互,执行以下命令安装依赖:
pip3 install aiocqhttp
5.3 配置
只需将 config.json 配置文件中 channel 块的 type 改为 qq 即可:
"channel": {
"type": "qq"
}
5.4 运行
首先,进入 bot-on-anything 项目的根目录,在终端 1 中运行:
python3 app.py # 此时将监听 8080 端口
第二步,打开终端 2,进入 cqhttp 所在的目录,运行:
cd channel/qq
./go-cqhttp
注意:
- 目前尚未设置关键词匹配或群聊白名单;所有私聊均会自动回复,在群聊中只要被 @ 到也会自动回复。
- 如果遇到账号被封禁等异常情况,可以将 go-cqhttp 同级目录下
device.json文件中的protocol值由 5 改为 2,具体可参考此 Issue。
6. Telegram
贡献者:brucelt1993
6.1 获取 Token
申请 Telegram 机器人可以在 Google 上轻松找到相关信息,关键是要获取机器人的 Token ID。
6.2 安装依赖
pip install pyTelegramBotAPI
6.3 配置
"channel": {
"type": "telegram",
"telegram":{
"bot_token": "YOUR BOT TOKEN ID"
}
}
7. Gmail
要求: 一台服务器和一个 Gmail 账号。
贡献者: Simon
按照 官方文档 为您的 Google 账号创建应用专用密码,按如下方式配置,即可开始使用!!!
"channel": {
"type": "gmail",
"gmail": {
"subject_keyword": ["bot", "@bot"],
"host_email": "xxxx@gmail.com",
"host_password": "GMAIL ACCESS KEY"
}
}
8. Slack
❉ 不再需要服务器或公网IP
贡献者: amaoo
依赖项
pip3 install slack_bolt
配置
"channel": {
"type": "slack",
"slack": {
"slack_bot_token": "xoxb-xxxx",
"slack_app_token": "xapp-xxxx"
}
}
设置 Bot Token 范围 - OAuth & 权限
将 Bot 用户的 OAuth Token 写入配置文件 slack_bot_token。
app_mentions:read
chat:write
启用 Socket 模式 - Socket Mode
如果您尚未创建应用级别的 Token,系统会提示您创建一个。请将生成的 Token 写入配置文件 slack_app_token。
事件订阅(Event Subscriptions)- 订阅机器人事件
app_mention
参考文档
https://slack.dev/bolt-python/tutorial/getting-started
10. 钉钉
要求:
- 企业内部开发机器人。
依赖项
pip3 install requests flask
配置
"channel": {
"type": "dingtalk",
"dingtalk": {
"image_create_prefix": ["draw", "draw", "Draw"],
"port": "8081", # 外部端口
"dingtalk_token": "xx", # Webhook 地址的访问令牌
"dingtalk_post_token": "xx", # 钉钉回传消息时头部携带的验证令牌
"dingtalk_secret": "xx" # 群机器人中的安全加密签名字符串
}
}
参考文档:
生成机器人
地址:https://open-dev.dingtalk.com/fe/app#/corp/robot
添加机器人,在开发管理中设置服务器的出站 IP 和消息接收地址(即配置中的外部地址,如 https://xx.xx.com:8081)。
11. 飞书
依赖项
pip3 install requests flask
配置
"channel": {
"type": "feishu",
"feishu": {
"image_create_prefix": [
"draw",
"draw",
"Draw"
],
"port": "8082", # 外部端口
"app_id": "xxx", # 应用程序的 app_id
"app_secret": "xxx", # 应用程序的 Secret
"verification_token": "xxx" # 事件订阅的验证令牌
}
}
生成机器人
地址:https://open.feishu.cn/app/
- 为企业添加一个自建应用。
- 开启以下权限:
- im:message
- im:message.group_at_msg
- im:message.group_at_msg:readonly
- im:message.p2p_msg
- im:message.p2p_msg:readonly
- im:message:send_as_bot
- 在菜单中订阅“接收消息 v2.0”事件,并配置请求地址(即配置中的外部地址,如 https://xx.xx.com:8081)。
- 在版本管理和发布中上线应用,待审核通过后,即可在群聊中使用该自建应用。
12. 企业微信
要求: 一台服务器和一个已认证的企业微信账号。
企业微信的 config.json 配置只需将类型改为 wechat_com,默认的消息接收服务器 URL 为:http://ip:8888/wechat。
"channel": {
"type": "wechat_com",
"wechat_com": {
"wechat_token": "YOUR TOKEN", # Token 值
"port": "8888", # 程序监听的端口
"app_id": "YOUR APP ID", # 应用 ID
"app_secret": "YOUR APP SECRET", # 应用 Secret
"wechat_corp_id": "YOUR CORP ID",
"wechat_encoding_aes_key": "YOUR AES KEY"
}
}
注意:服务器 IP 必须配置到“企业可信 IP 列表”中,否则用户将无法接收到主动推送的消息。
参考文档:
通用配置
clear_memory_commands: 对话中的内部命令,用于主动清除之前的记忆,字符串数组可以自定义命令别名。- 默认值:["#clear_memory"]
版本历史
1.1.02023/04/111.0.02023/03/220.0.72023/03/070.0.62023/03/020.0.52023/02/280.0.42023/02/200.0.32023/02/180.0.22023/02/150.0.12023/02/15常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
OpenHands
OpenHands 是一个专注于 AI 驱动开发的开源平台,旨在让智能体(Agent)像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点,通过自动化流程显著提升开发速度。 无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员,还是需要快速原型验证的技术团队,都能从中受益。OpenHands 提供了灵活多样的使用方式:既可以通过命令行(CLI)或本地图形界面在个人电脑上轻松上手,体验类似 Devin 的流畅交互;也能利用其强大的 Python SDK 自定义智能体逻辑,甚至在云端大规模部署上千个智能体并行工作。 其核心技术亮点在于模块化的软件智能体 SDK,这不仅构成了平台的引擎,还支持高度可组合的开发模式。此外,OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩,证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能,支持与 Slack、Jira 等工具集成,并提供细粒度的权限管理,适合从个人开发者到大型企业的各类用户场景。