Better-Chatbot - 全能型AI聊天机器人框架,适用于开发者与企业级智能体应用
你是否曾经想过拥有一个像ChatGPT一样强大,但又完全属于自己、可以随意定制和扩展的AI助手?你是否希望这个助手不仅能聊天,还能帮你上网搜索、执行代码、生成图片,甚至自动化完成复杂的业务流程?今天要介绍的Better-Chatbot项目,正是这样一个将多种前沿AI能力集于一身,并且完全开源免费的解决方案。
Better-Chatbot不仅仅是一个聊天机器人界面,它是一个完整的、生产就绪的AI应用框架。它巧妙地将智能体、MCP(模型上下文协议)和可视化工作流融为一体,让你能够快速构建出功能强大、交互自然的AI应用。无论你是想为自己的团队打造一个内部智能助手,还是希望将AI能力集成到现有产品中,这个项目都提供了一个绝佳的起点。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | better-chatbot |
| GitHub地址 | https://github.com/cgoinglove/better-chatbot |
| 项目描述 | Just a Better Chatbot. Powered by Agent & MCP & Workflows. |
| 作者 | cgoinglove |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | TypeScript / CSS |
| 支持平台 | Windows / macOS / Linux / Web |
| 最后更新 | 2026-04-04 |
一、项目介绍
Better-Chatbot是一个基于Next.js和Vercel AI SDK构建的现代化AI聊天机器人应用。它的核心理念是“一个更好的聊天机器人”,而这个“更好”体现在它对多种先进AI架构模式的集成上。
首先,它支持智能体。你可以创建专门的自定义智能体,为每个智能体设定独特的系统指令和可用的工具集。例如,你可以创建一个“GitHub管理员”智能体,它拥有创建Issue、合并PR、评论代码的权限,然后通过简单的@github_manager命令就能调用它处理仓库事务。
其次,它实现了MCP协议。MCP(模型上下文协议)是一个让AI模型能够与外部工具和服务进行标准化交互的协议。通过MCP,Better-Chatbot可以让LLM自主决定如何调用浏览器自动化工具、数据库查询工具等,完成复杂的多步骤任务。
再者,它引入了可视化工作流。你可以通过拖拽连接LLM节点和工具节点,构建出复杂的业务流程。这些工作流可以像普通工具一样被发布和调用,极大地提升了AI应用的可复用性和自动化水平。
除了这些核心架构,Better-Chatbot还内置了丰富的实用功能:支持OpenAI、Claude、Gemini、xAI、Ollama等主流AI模型;提供实时语音对话功能;支持图片生成与编辑;内置网页搜索、代码执行器、数据可视化工具等。所有这些功能都被整合在一个直观易用的界面中,通过@符号就能快速调用任何功能。
二、核心优势
开源免费,自由定制
项目采用宽松的MIT开源协议,你可以自由使用、修改和分发代码。无论是个人学习研究,还是企业商业应用,都没有任何法律障碍。你可以根据自己的需求,任意增删功能模块,打造独一无二的AI助手。
架构先进,扩展性强
基于MCP协议的架构设计,让工具和服务的集成变得异常简单。任何遵循MCP标准的工具都可以无缝接入系统。这意味着Better-Chatbot的生态系统会越来越丰富,你能调用的能力也会越来越多。
部署灵活,成本可控
项目提供了多种部署方式,包括Docker Compose一键部署、Vercel平台快速托管、传统Node.js环境部署等。最令人惊喜的是,你只需要一个AI提供商的API密钥,数据库、文件存储、托管服务都可以使用免费额度,真正实现了零成本启动。
功能丰富,开箱即用
从基础的对话功能,到高级的代码执行、网页搜索、数据可视化,再到创新的智能体和工作流,Better-Chatbot提供了几乎你能想到的所有AI应用功能。你不必从零开始搭建,而是可以站在巨人的肩膀上,快速实现自己的想法。
社区活跃,持续更新
从GitHub的提交记录可以看出,项目保持着非常活跃的更新频率。核心开发者积极响应社区反馈,不断修复问题、添加新功能。这意味着你使用的是一个有生命力的、在持续进化的项目。
三、适用场景
开发者学习与研究
对于想要学习现代AI应用开发技术的开发者来说,Better-Chatbot是一个完美的学习样本。它的代码结构清晰,使用了Next.js、Vercel AI SDK、MCP协议等前沿技术,展示了如何构建一个生产级别的AI应用。通过阅读源码,你可以学到状态管理、API设计、工具集成、部署运维等多方面的实战经验。
企业内部智能助手
许多企业希望为员工提供一个统一的AI助手入口,帮助大家提高工作效率。Better-Chatbot可以轻松定制为这样的内部工具。你可以集成公司的内部API作为MCP工具,让AI助手能够查询CRM系统、创建工单、分析销售数据。通过自定义智能体,不同部门的员工可以获得针对性的帮助。
个人效率工具
作为一个独立开发者或技术爱好者,你可以利用Better-Chatbot搭建自己的个人AI工作台。让它帮你管理待办事项、总结RSS订阅、生成代码片段、自动化处理邮件。通过可视化的Workflows,你可以把日常重复性的工作串联成一个自动化流程,每次只需一个命令就能完成。
产品原型验证
如果你有一个AI产品的想法,Better-Chatbot可以成为你快速验证原型的平台。它的插件化架构让你可以专注于核心业务逻辑的实现,而不必关心底层的基础设施。你可以快速搭建出一个功能完整的演示版本,收集用户反馈,迭代产品方向。
四、安装教程
Better-Chatbot的安装过程非常友好,官方提供了多种方式。这里我们以最通用的Docker Compose方式为例,带你一步步完成部署。
系统要求确认
在开始之前,请确保你的系统满足以下要求:
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Python | 运行环境 | [https://python.org/] (版本要求:3.8 或以上) |
| Node.js | 运行环境 | [https://nodejs.org/] (版本要求:14.0 或以上) |
| Git | 下载项目代码 | [https://git-scm.com/] |
| pnpm | 包管理器 | npm install -g pnpm |
| Docker | 容器化部署 | [https://docker.com/] (可选但推荐) |
详细安装步骤
第一步:获取项目代码
使用Git将项目克隆到本地,并进入项目目录。
git clone https://github.com/cgoinglove/better-chatbot.git
cd better-chatbot第二步:安装项目依赖
项目使用pnpm作为包管理器,执行以下命令安装所有依赖。
# 如果你还没有安装pnpm,先全局安装它
npm install -g pnpm
# 安装项目依赖
pnpm install执行pnpm install后,项目会自动在根目录生成一个.env环境变量文件。
第三步:配置环境变量
这是最关键的一步。打开项目根目录下的.env文件,填入必要的信息。对于最简化的运行,你只需要配置两样东西:
- 一个AI提供商的API密钥(任选其一即可)
- 数据库连接地址
# 选择一个或多个你有的API密钥填入
OPENAI_API_KEY=sk-你的OpenAI密钥
# 或者
ANTHROPIC_API_KEY=你的Anthropic密钥
# 或者
GOOGLE_GENERATIVE_AI_API_KEY=你的Gemini密钥
# 数据库配置(重要)
# 如果你有现成的PostgreSQL数据库,直接修改下面的连接字符串
POSTGRES_URL=postgres://用户名:密码@数据库地址:5432/数据库名
# 为了安全性,生成一个Better Auth的密钥
# 可以通过命令生成:npx @better-auth/cli@latest secret
BETTER_AUTH_SECRET=你生成的随机密钥如果你没有现成的PostgreSQL数据库,不用担心,项目提供了快速启动一个数据库容器的命令。在另一个终端窗口中运行:
pnpm docker:pg这会启动一个PostgreSQL容器,你可以在.env中使用对应的连接字符串。
第四步:构建并启动项目
所有配置完成后,执行以下命令来构建和启动项目。
# 构建项目并启动
pnpm build:local && pnpm start如果你希望在开发模式下运行,方便调试和查看实时日志,可以使用:
pnpm dev第五步:访问应用
当看到类似ready - started server on 0.0.0.0:3000, url: http://localhost:3000的日志输出时,说明启动成功了。打开浏览器,访问http://localhost:3000,你应该就能看到Better-Chatbot的界面了。
五、使用示例
安装完成后,让我们通过几个实际的使用案例,来感受Better-Chatbot的强大功能。
示例一:使用网页搜索工具
在聊天输入框中,输入@符号,你会看到一个工具列表弹出。选择web-search工具,然后输入你的问题。例如:
@web-search 请帮我搜索2026年人工智能领域的最新发展趋势AI会调用内置的网页搜索功能(基于Exa AI),返回相关的搜索结果并总结给你。这个功能对于需要实时信息的场景非常有用,比如查询新闻、查找文档、调研竞品等。
示例二:创建和使用自定义智能体
假设我们想创建一个专门处理代码任务的智能体。点击界面上的“Agents”选项,创建一个新的智能体,进行如下配置:
- 智能体名称:
code_helper - 系统提示词:
你是一个经验丰富的软件工程师,擅长Python和JavaScript编程。你会收到用户的编程问题,请提供清晰、可运行的代码解决方案,并解释关键逻辑。 - 启用的工具:
js-executor和python-executor
保存后,在聊天中就可以这样使用它:
@code_helper 请写一个Python函数,用于判断一个字符串是否是回文串,并给出测试用例。这个智能体会按照你的设定,提供代码和解释,并且可以直接执行代码来验证正确性。
示例三:构建一个自动化工作流
Better-Chatbot的可视化工作流是其最强大的特性之一。让我们创建一个简单的日报生成工作流。
- 在工作流编辑器中,拖入一个“Web Search”节点,配置它搜索当日的热点科技新闻。
- 拖入一个“LLM”节点,连接到上一个节点的输出,并设置提示词:“根据以下新闻内容,总结出3个最重要的技术趋势。”
- 拖入一个“HTTP Request”节点,配置为向一个企业内部API发送POST请求,将总结好的内容作为日报发送。
- 将三个节点连接起来,保存并发布这个工作流,命名为
daily_report。
现在,你只需要在聊天中输入@workflow daily_report,这个完整的工作流就会自动执行,从搜索新闻到生成总结再到发送报告,一气呵成。
示例四:实时语音对话
如果你的设备有麦克风,可以尝试语音对话功能。点击输入框旁边的麦克风图标,授予权限后,你就可以直接对Better-Chatbot说话。它会将你的语音转为文本,由LLM处理,再将回复以语音形式读出来。在这个过程中,你依然可以使用@来调用各种工具,比如说出“帮我查询一下北京的天气并读出来”。
六、常见问题
问题一:启动时提示数据库连接失败
这通常是因为PostgreSQL没有正确启动或者.env中的POSTGRES_URL配置有误。解决方案:
- 确认你执行了
pnpm docker:pg来启动数据库容器(如果使用Docker方式)。 - 检查
.env文件中的用户名、密码、数据库名是否与启动的数据库一致。 - 确保数据库端口没有被防火墙阻止,默认是5432。
问题二:调用工具时没有反应或报错
大部分工具都需要相应的API密钥。例如,网页搜索需要EXA_API_KEY,图片生成需要对应AI模型的API密钥。请检查:
- 确认在
.env文件中添加了必要的API密钥。 - 重启应用,让新的环境变量生效。
- 查看控制台日志,通常会打印出具体的错误信息,比如
Missing EXA_API_KEY。
问题三:如何让应用支持更多的AI模型?
Better-Chatbot本身已经集成了众多主流模型。如果你想添加一个自定义的、兼容OpenAI API格式的模型,可以按照以下步骤:
- 在
.env中添加该模型的BASE_URL和API_KEY。 - 在项目的模型配置文件中,按照OpenAI Provider的格式添加新条目。
- 具体的操作方法,可以参考项目文档中的“Adding openAI like providers”部分。
问题四:部署到Vercel后,某些功能无法使用
一些功能(如文件上传、数据库操作)需要正确的环境配置。解决方案:
- 在Vercel的项目设置中,确保所有的环境变量(如数据库连接字符串、API密钥)都已正确添加。
- 对于文件存储,Vercel默认使用Vercel Blob,你需要运行
vercel env pull来拉取存储令牌。 - 如果是自建的PostgreSQL数据库,请确保Vercel的网络能够访问到你的数据库地址(可能需要使用云数据库或设置防火墙规则)。
七、总结
Better-Chatbot是一个非常出色的开源AI应用框架。它并没有试图重新发明轮子,而是巧妙地整合了当前AI领域最优秀的设计模式和工具。智能体带来了专业化分工,MCP提供了标准化扩展,可视化工作流实现了自动化串联。这三者的结合,让Better-Chatbot远远超出了一个简单聊天机器人的范畴,成长为一个功能强大的AI应用开发平台。
对于开发者而言,它是学习和参考的绝佳范本;对于企业而言,它是快速构建内部AI应用的基石;对于个人用户而言,它是提升效率的强大助手。虽然项目目前有一些功能还在开发中(如完整的RAG支持、S3存储),但其现有的能力已经足够应对绝大多数场景。
最重要的是,这个项目处于非常活跃的维护状态。就在几天前(2026-04-04)还有更新,社区贡献者也在积极参与。这意味着你遇到的问题很快能得到解决,你提出的功能建议有可能被采纳。如果你正在寻找一个现代化、功能全面、开箱即用的AI聊天机器人解决方案,Better-Chatbot值得你投入时间去研究和使用。
评论:
AlexJohnson|This tutorial is incredibly thorough! I've been looking for an open-source alternative to proprietary chatbots. The MCP integration looks promising.
SarahChen|终于有一篇把MCP协议讲得这么清楚的文章了,之前看文档一直迷迷糊糊的,感谢作者。
MikeWilliams|The visual workflows feature is what sold me. Being able to create reusable automation without coding every time is huge.
DavidKim|部署成功了!用了Docker方式,确实像文章说的十几分钟就搞定了。不过遇到数据库的小坑,还好常见问题里有解答。
EmmaBrown|I appreciate how the article breaks down the use cases. As a developer, I can see using this for internal tools at my company.
LisaWang|从@符号调用工具这个设计太人性化了,用起来就像在Slack里@人一样自然,用户学习成本很低。
TomHolland|Great write-up! I've starred the repo. The live demo they have on Vercel is impressive - the voice assistant works surprisingly well.
ChrisEvans|This is exactly what my startup needs. We wanted to add AI capabilities but didn't want to build from scratch. Better-Chatbot seems perfect.
JamesLee|文章提到的智能体功能让我很感兴趣,能不能出一期专门讲如何创建和管理自定义智能体的教程?
AnnaTaylor|I tried the image generation feature after reading this. It works with Gemini and OpenAI models seamlessly. Very cool.
RobertMartin|作为一个运维人员,我最关心的是部署和扩展性。文章详细介绍了Docker和Vercel两种方式,很实用。
SophiaDavis|The comparison with other open-source chatbots would be helpful. But this article alone convinced me to try Better-Chatbot first.
DanielWhite|有没有人和我一样,看到支持Ollama立刻就决定用了?本地运行大模型加上这个前端,完美。
OliviaMartin|I've been using it for a week now. The response speed is great, and the token usage is optimized well when using @ mentions.
KevinZhang|教程写得很有条理,从安装到使用示例都很详细。新手跟着做一遍基本就能上手了。
MeganAnderson|The real-time voice feature with MCP tool integration is mind-blowing. Imagine telling your assistant to "order pizza" and it actually does it.
PaulRobinson|Can this be integrated with existing authentication systems like LDAP or Active Directory? Would love to see that in a future tutorial.
NatalieClark|开源协议是MIT这点太棒了,公司可以放心使用。作者格局很大。
BrandonLee|我刚在Windows上部署成功,Node.js环境跑得很顺畅。之前担心Windows兼容性,现在看来多虑了。
RachelGreen|I love the concept of "temporary chat windows". It's a small UX detail but makes a big difference when testing different prompts.
GeorgeMiller|工作流功能让我想起了Zapier或IFTTT,但这是AI驱动的,更智能。可以用它来做很多自动化任务。
AshleyYoung|文章对MCP的解释很到位,让我理解了这个协议的价值。标准化工具接口确实能避免重复造轮子。
JoshuaHall|有没有在生产环境使用这个项目的大佬?想听听关于性能和稳定性的反馈。
JessicaAllen|The data visualization tools are underrated. Being able to generate charts directly from chat is super useful for data analysis tasks.
BrianMoore|看完文章立刻去GitHub给项目点了个star,1.1k的star说明质量确实不错。
StephanieLee|我试着创建了一个专门处理邮件的智能体,配合IMAP工具,效果出奇的好。感谢作者的推荐。
MatthewTaylor|部署过程中的小贴士很贴心,特别是关于环境变量配置的部分,帮我避免了好几个坑。
LaurenAnderson|I'm impressed by the regular updates. The last commit was just days ago. Active maintenance is crucial for open-source projects.
AndrewThomas|能不能在后续教程中讲讲如何为Better-Chatbot开发自定义的MCP服务器?我觉得这会是很多开发者需要的。
VictoriaJackson|The article mentions S3 storage is coming soon. That will be a game-changer for handling large files and attachments.
JonathanHarris|我用的是Arm架构的Mac,Docker部署完全没问题。项目对多架构的支持做得很好。
MichelleWhite|免费额度就能跑起来真的太良心了。Exa的1000次/月搜索额度,对于个人使用完全够了。
GregoryLewis|文章结构很清晰,从介绍到安装再到使用示例,阅读体验很好。期待作者的其他技术教程。
AmandaWalker|I shared this with my team. We're considering replacing our current AI tool with Better-Chatbot because of the agent capabilities.
EdwardGreen|作为一个AI产品经理,这篇文章让我看到了技术实现的细节,对规划产品功能很有帮助。
Keywords: Chatbot, Framework
有没有人和我一样,看到支持Ollama立刻就决定用了?本地运行大模型加上这个前端,完美。
The comparison with other open-source chatbots would be helpful. But this article alone convinced me to try Better-Chatbot first.
作为一个运维人员,我最关心的是部署和扩展性。文章详细介绍了Docker和Vercel两种方式,很实用。
I tried the image generation feature after reading this. It works with Gemini and OpenAI models seamlessly. Very cool.
文章提到的智能体功能让我很感兴趣,能不能出一期专门讲如何创建和管理自定义智能体的教程?
This is exactly what my startup needs. We wanted to add AI capabilities but didn't want to build from scratch. Better-Chatbot seems perfect.
Great write-up! I've starred the repo. The live demo they have on Vercel is impressive - the voice assistant works surprisingly well.
从@符号调用工具这个设计太人性化了,用起来就像在Slack里@人一样自然,用户学习成本很低。
I appreciate how the article breaks down the use cases. As a developer, I can see using this for internal tools at my company.
部署成功了!用了Docker方式,确实像文章说的十几分钟就搞定了。不过遇到数据库的小坑,还好常见问题里有解答。
The visual workflows feature is what sold me. Being able to create reusable automation without coding every time is huge.