这是一套基于 Laravel + React 开发的 SaaS AI 客服系统,主要用于把 AI 客服直接部署到现有网站中。系统可以读取网站公开页面内容,建立属于当前工作区的知识库,再生成一个可以嵌入其他网站的 AI Agent。
前端 Widget 不依赖特定网站程序,只需要加入一行 <script> 标签即可使用,支持 WordPress、Shopify、Next.js、React、Vue 以及普通 HTML 页面。系统本身则提供 Agent 配置、知识库、收件箱、人工接管、线索管理、Webhook、计费和发布版本等后台能力。
除了基础的 AI 问答功能,当前版本还增加了 MCP 工具服务器支持。AI 客服可以调用外部 MCP 服务提供的工具,例如订单系统、CRM 或内部 API,从“回答网站问题”进一步扩展到实际业务操作。
部署后使用admin@mail.com登录,点击右上角设置图标进行系统设置,如ai api语言、外观、支付网关、邮件、集成等,具体的设置自行摸索。
修改前端代码后需要再次编译生效。
源码直接打包测试,实际部署可能需要自行清理\bootstrap\下缓存,具体自行查阅laravel项目相关部署教程及注意事项
AI 客服如何嵌入现有网站?
部署方式比较直接。创建 Agent 后,在目标网站的 </body> 标签之前加入一段 Script,即可加载客服 Widget。
由于 Widget 使用 Shadow DOM 渲染,组件样式与宿主网站之间保持隔离,可以减少与 WordPress、Shopify 或前端框架现有 CSS 产生冲突的情况。
- 支持 WordPress
- 支持 Shopify
- 支持 Next.js
- 支持 React
- 支持 Vue
- 支持纯 HTML 网站
Widget 打包后体积控制在 50KB gzip 以内,采用异步加载方式。访客会话支持跨页面刷新保持,另外可以选择启用浏览器 SpeechRecognition 进行语音输入。
从网站内容建立自己的知识库
创建 Agent 时,可以直接填写需要读取的网站 URL。系统会尝试发现站点地图以及关于、价格、FAQ、文档等关键页面,站长可以选择哪些页面需要进入索引流程。
抓取过程会遵循 robots.txt,并限制对需要鉴权的路径进行访问,同时不会主动访问内部主机。
抓取后的网页内容会进行正文提取,再按语义边界切分成多个文本块。当前配置中单个分块约为 500 token,并保留一定重叠内容,随后通过 Cloudflare bge-base-en-v1.5 或 OpenAI text-embedding-3-small 生成向量。
向量数据可以写入 Cloudflare Vectorize 或 Qdrant。每个数据块都会带有 workspace 和 agent 标识,用于保持不同租户之间的检索隔离。
Agent 可以独立配置
知识库建立之后,可以单独设置 Agent 的角色和行为,包括:
- 人设和语气
- 回复语言
- Widget 主题色
- 开场提示
- 行为规则
- 预设回答
- 置信度阈值
对于价格、退款等不希望 AI 自由改写的内容,可以直接配置预设回答。实时预览可以查看访客最终看到的 Widget 样式和基本交互。
Widget 当前支持 8 种语言:英文、西班牙文、法文、德文、葡萄牙文、日文、阿拉伯文和中文。
通过行为规则判断访客意图
AI 客服除了回答问题,还可以根据访客行为触发不同的处理方式。
系统支持按照滚动深度、空闲时间、离开意图以及意图关键词设置行为规则。例如用户连续进行多轮咨询、询问价格或者明确要求演示时,可以触发 Lead 表单。
不同规则还可以进行 A/B 测试,用于比较不同触发条件下的实际转化数据。
Lead 线索捕获与人工接管
当访客表现出较高的购买意向时,系统可以在对话中显示 Lead 表单。访客提交的信息会进入后台收件箱,并可以同时触发其他外部通知。
当前支持的线索处理方式包括:
- 进入系统收件箱
- Slack 提醒
- POST 到自定义 Webhook
- 接入 HubSpot
- 接入 Pipedrive
- 接入 Mailchimp
出站 Webhook 使用 HMAC 签名负载,便于第三方系统验证请求来源。
当需要人工处理时,客服人员可以直接接管当前会话。访客端会显示类似“人工已就位”的状态,而后台收件箱通过 Reverb WebSocket 实时接收新的消息和会话变化。
AI 回答的检索流程
访客发送问题后,系统会优先检查预设回答,再进行向量检索和重排,最后结合检索结果生成带有来源引用的提示并通过 SSE 流式返回模型回复。
当前设计中没有在热路径同步写入数据库,持久化工作会在响应结束后异步处理。
回答可以显示 [1]、[2] 等来源标记,并链接回对应的原始网站页面。每个 Agent 还可以设置自己的置信度阈值,当检索结果不足时,系统可以返回“我不知道”,而不是继续猜测。
MCP 工具服务器:让 AI 不只是回答问题
当前版本增加了 MCP 工具服务器功能。客服 Agent 可以调用外部 MCP Server 中提供的工具,将 AI 客服与企业已有业务系统连接起来。
例如,外部 MCP 服务可以提供订单查询、CRM 数据、内部 API 或其他业务工具。每个工作区只需要登记一次 MCP Server,系统会发现服务器提供的工具,再根据客服人员的权限决定哪些工具可以实际使用。
服务器注册
服务器注册表负责保存 MCP 端点和相关凭据,同时处理 JSON-RPC 握手和服务器信息获取。凭据在存储时进行加密,并不会直接显示在用户界面中。
按 Agent 分配工具权限
发现工具后,系统会列出对应的工具结构,并为每个 Agent 建立明确的允许列表。即使多个 Agent 共用一个 MCP Server,也不会因此自动拥有该服务器中的全部工具。
远程工具安全控制
远程 MCP 工具被视为不可信输入,调用参数在发送前会进行清理,工具输出进入模型提示之前会进行长度限制,每个服务器还设置了断路器机制。
当某个服务器连续出现故障时,断路器可以暂时停止继续调用,避免单个远程工具故障影响整个客服流程。
MCP 活动日志
系统会记录工具调用情况,包括调用目标、结果大小、执行时长和返回结果等信息,并支持按照客服人员查看。日志还可以按照计划进行清理。
发布版本与一键回滚
Agent 的编辑内容不会直接影响线上 Widget。系统采用“草稿 + 发布快照”的方式管理配置。
点击发布后,当前 Agent 会生成一个不可变版本,Widget 运行时读取已经发布的版本,而不是实时读取后台草稿。这样在修改人设、知识库规则或行为条件时,不会因为保存草稿就立即影响线上访客。
每次发布都会保留版本历史,并可以回滚到之前的任意快照。
Widget 初始化接口 /v1/widget/init 还会执行允许来源校验,用于限制 Widget 的合法加载来源。
部署环境
PHP:8.4 及以上
MySQL:8.0
Redis:需要
项目使用 Laravel,因此部署前需要准备 PHP、Composer、数据库和 Redis 环境,同时根据实际功能配置 AI 模型、向量数据库、邮件、支付及第三方集成服务。
Laravel 项目初始化
完成项目依赖安装和环境变量配置后,可以执行以下 Artisan 命令:
php artisan key:generate
php artisan migrate --seed
php artisan storage:link
初始化数据会创建默认管理员和客户账号:
管理员:admin@mail.com
客户:customer@mail.com
默认密码:password
首次登录后,可以进入后台设置页面,对 AI API、语言、外观、支付网关、邮件和第三方集成等项目进行配置。
启动 Laravel Octane
项目提供 Laravel Octane 服务启动方式,默认端口为 8000:
php artisan octane:start --port=8000
实际生产环境中,还需要根据服务器架构配置 Nginx、PHP-FPM 或其他反向代理方式。当前项目给出的 Nginx 环境中,需要特别注意 FastCGI 缓冲区和读取超时参数。
fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_read_timeout 120;
如果部署路径、PHP-FPM 端口或域名不同,需要按照自己的服务器环境修改对应配置。
适合哪些场景?
这套系统适合需要在现有网站中加入 AI 客服,同时希望自己控制知识库、Agent 配置和后台数据的项目。
比较典型的使用方式包括企业官网 AI 客服、SaaS 产品咨询、在线文档问答、销售线索捕获、产品售前咨询以及需要连接 CRM 或内部业务系统的智能客服场景。
如果只需要一个简单的网站聊天窗口,这套系统提供的功能相对完整;而如果项目还需要知识库、人工接管、Lead、版本控制和 MCP 工具调用,那么现有架构更适合作为二次开发基础。
系统核心组成
- Laravel + React 应用
- AI Agent 与网站知识库
- 可嵌入任意网站的 Chat Widget
- 实时收件箱与人工接管
- Lead 捕获与 Webhook
- Slack、CRM 等外部集成
- MCP 工具服务器
- Agent 工具权限控制
- 发布快照与版本回滚
- 多语言 Widget
- 行为规则和 A/B 测试
从功能结构来看,这套项目已经不仅是一个简单的 AI 问答 Widget,而是把网站内容索引、知识库检索、Agent 配置、实时客服、销售线索以及外部工具调用整合到了同一个 Laravel + React 应用中。对于准备搭建自己的 AI 客服 SaaS 或将 AI Agent 接入现有网站的开发者,可以作为进一步开发和部署的基础。

本文永久链接地址:https://www.ymkuzhan.com/76190.html












