Better-Chatbot - 全能型AI聊天机器人框架,适用于开发者与企业级智能体应用

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
开源状态公开状态
LanguagesTypeScript / 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文件,填入必要的信息。对于最简化的运行,你只需要配置两样东西:

  1. 一个AI提供商的API密钥(任选其一即可)
  2. 数据库连接地址
# 选择一个或多个你有的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-executorpython-executor

保存后,在聊天中就可以这样使用它:

@code_helper 请写一个Python函数,用于判断一个字符串是否是回文串,并给出测试用例。

这个智能体会按照你的设定,提供代码和解释,并且可以直接执行代码来验证正确性。

示例三:构建一个自动化工作流

Better-Chatbot的可视化工作流是其最强大的特性之一。让我们创建一个简单的日报生成工作流。

  1. 在工作流编辑器中,拖入一个“Web Search”节点,配置它搜索当日的热点科技新闻。
  2. 拖入一个“LLM”节点,连接到上一个节点的输出,并设置提示词:“根据以下新闻内容,总结出3个最重要的技术趋势。”
  3. 拖入一个“HTTP Request”节点,配置为向一个企业内部API发送POST请求,将总结好的内容作为日报发送。
  4. 将三个节点连接起来,保存并发布这个工作流,命名为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格式的模型,可以按照以下步骤:

  1. .env中添加该模型的BASE_URLAPI_KEY
  2. 在项目的模型配置文件中,按照OpenAI Provider的格式添加新条目。
  3. 具体的操作方法,可以参考项目文档中的“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

已有 35 条评论

    1. EdwardGreen EdwardGreen

      作为一个AI产品经理,这篇文章让我看到了技术实现的细节,对规划产品功能很有帮助。

    2. AmandaWalker AmandaWalker

      I shared this with my team. We're considering replacing our current AI tool with Better-Chatbot because of the agent capabilities.

    3. GregoryLewis GregoryLewis

      文章结构很清晰,从介绍到安装再到使用示例,阅读体验很好。期待作者的其他技术教程。

    4. MichelleWhite MichelleWhite

      免费额度就能跑起来真的太良心了。Exa的1000次/月搜索额度,对于个人使用完全够了。

    5. JonathanHarris JonathanHarris

      我用的是Arm架构的Mac,Docker部署完全没问题。项目对多架构的支持做得很好。

    6. VictoriaJackson VictoriaJackson

      The article mentions S3 storage is coming soon. That will be a game-changer for handling large files and attachments.

    7. AndrewThomas AndrewThomas

      能不能在后续教程中讲讲如何为Better-Chatbot开发自定义的MCP服务器?我觉得这会是很多开发者需要的。

    8. LaurenAnderson LaurenAnderson

      I'm impressed by the regular updates. The last commit was just days ago. Active maintenance is crucial for open-source projects.

    9. MatthewTaylor MatthewTaylor

      部署过程中的小贴士很贴心,特别是关于环境变量配置的部分,帮我避免了好几个坑。

    10. StephanieLee StephanieLee

      我试着创建了一个专门处理邮件的智能体,配合IMAP工具,效果出奇的好。感谢作者的推荐。

    11. BrianMoore BrianMoore

      看完文章立刻去GitHub给项目点了个star,1.1k的star说明质量确实不错。