# ChatLab 接入公司 AgentBox 与内网平台方案 ## 1. 目标 当前 ChatLab 项目是独立运行的 Windows 本地应用,主要能力包括: - 读取 PC 微信聊天记录 - 群聊检索 - 话题分类 - 售后问题归档 - AI 总结与报告生成 - 本地知识库管理 公司已有 AgentBox 主机,主机内置: - 7B Qwen 智能体 - 类 Dify 的平台系统 - 业务系统 - 数据库 - 工作流 - MCP 工具体系 - 内网部署能力 本方案目标是把 ChatLab 接回公司平台体系,并部署到 AgentBox 内网环境中,让员工只能在公司内网访问,同时让平台工作流和智能体能够调用 ChatLab 的售后分析能力。 ## 2. 推荐方案概览 推荐采用: **Windows 采集端 + AgentBox 业务端 + MCP 工具接入 + 平台统一鉴权** 整体形态如下: ```text 员工浏览器 -> 公司平台 / 内网网关 -> AgentBox 上的 ChatLab Web -> AgentBox 上的 ChatLab FastAPI -> AgentBox 上的 MCP Server -> AgentBox 上的 Qwen 7B 模型服务 -> 公司平台业务 API / 平台数据库 -> Windows 微信采集端 -> PC 微信 -> chatlog.exe ``` 不建议第一版把微信采集能力完全搬到 AgentBox 上,因为当前项目依赖 PC 微信、Windows 进程、chatlog.exe 和本地微信数据解密。AgentBox 更适合承载平台、模型、业务系统、MCP、数据库和内网 Web 服务。 ## 3. 模块分工 ### 3.1 Windows 采集端 Windows 采集端继续负责和微信强相关的能力: - 登录 PC 微信 - 启动并维护 `chatlog.exe` - 读取群聊、会话、消息、图片、语音、文件等微信数据 - 识别当前微信账号 - 将消息增量同步给 AgentBox - 响应 AgentBox 的按需查询任务 采集端只负责取数据,不再作为主要业务入口。 ### 3.2 AgentBox 业务端 AgentBox 负责承载 ChatLab 的核心业务能力: - ChatLab 后端 FastAPI - ChatLab Web 页面 - MCP 工具服务 - AI 总结、分类、报告生成 - 与公司平台业务 API 对接 - 与 AgentBox 上的 Qwen 7B 模型对接 - 内网访问控制 - 平台数据库写入 AgentBox 是正式的业务入口和平台集成点。 ### 3.3 公司平台 公司平台负责: - 用户登录 - 权限控制 - 菜单入口 - 工作流编排 - 智能体调用 - 业务对象管理 - 数据库存储 - 审计日志 - 报告流转与人工确认 ChatLab 不单独做完整账号体系,而是接入公司平台统一身份体系。 ## 4. 部署方式 ### 4.1 AgentBox 上部署的服务 AgentBox 上建议部署以下服务: ```text chatlab-api chatlab-web chatlab-mcp qwen-openai-compatible-api ``` 其中: - `chatlab-api` 是当前 `chatlog_fastAPI` 改造后的服务端版本 - `chatlab-web` 是当前 React 前端构建后的静态页面 - `chatlab-mcp` 是给公司平台或智能体调用的 MCP 工具服务 - `qwen-openai-compatible-api` 是 AgentBox 本地 Qwen 7B 的 OpenAI 兼容接口 ### 4.2 内网访问方式 推荐访问地址: ```text http://agentbox内网IP/chatlab ``` 或者由公司平台菜单进入: ```text 公司平台 -> 售后智能助手 -> ChatLab ``` 对外只开放内网访问,不开放公网访问。 推荐网关路径: ```text /chatlab/ -> ChatLab Web /chatlab/api/ -> ChatLab FastAPI /chatlab/mcp/ -> ChatLab MCP Server ``` ### 4.3 端口建议 ```text 80 / 443 公司平台网关或 Nginx 8000 ChatLab FastAPI,仅内网或网关访问 8001 ChatLab MCP,仅平台服务访问 模型端口 只允许 AgentBox 本机访问 5030 chatlog.exe,仅 Windows 采集端本机访问 ``` ## 5. 数据流设计 ### 5.1 聊天数据采集流程 ```text PC 微信 -> chatlog.exe -> Windows 采集端 -> AgentBox ChatLab API -> 平台 API -> 平台数据库 ``` 采集端不直接暴露给用户访问,只负责把微信数据同步给 AgentBox。 ### 5.2 AI 报告生成流程 ```text 用户选择群聊 / 平台工作流触发 -> ChatLab 检索聊天记录 -> 创建话题 -> 调用 AgentBox Qwen 7B -> 生成 Markdown 报告 -> 写入公司平台业务对象 -> 人工确认 / 工作流流转 ``` ### 5.3 MCP 调用流程 ```text 平台智能体 / 工作流 -> MCP Tool -> ChatLab API -> 消息检索 / 话题生成 / 报告生成 -> 平台业务数据 ``` ## 6. 平台数据库对接方式 推荐不让 ChatLab 直接连接平台数据库,而是通过公司平台 API 写入业务对象。 原因: - 保留平台权限控制 - 保留审计日志 - 保留工作流触发能力 - 避免绕过平台业务规则 - 后续平台升级时耦合更低 建议平台侧提供以下业务对象。 ### 6.1 售后群对象 ```json { "external_id": "微信群ID", "name": "群名称", "source": "wechat", "collector_id": "采集端ID", "status": "active" } ``` ### 6.2 话题对象 ```json { "external_id": "ChatLab话题ID", "group_external_id": "微信群ID", "title": "话题标题", "source": "manual|ai|workflow", "status": "pending|processing|done|failed", "message_refs": [123, 124, 125] } ``` ### 6.3 售后报告对象 ```json { "external_id": "报告ID", "topic_external_id": "话题ID", "title": "报告标题", "content_markdown": "Markdown报告正文", "evidence": [], "ai_model": "qwen-7b", "review_status": "pending|approved|rejected" } ``` ### 6.4 任务对象 ```json { "external_id": "任务ID", "type": "sync|summarize|topic_detect", "status": "queued|running|success|failed", "progress": { "processed": 10, "total": 100 }, "error": "" } ``` ## 7. MCP 工具设计 第一版建议提供以下 MCP 工具: ```text chatlab_list_groups chatlab_search_messages chatlab_get_message_context chatlab_create_topic chatlab_add_topic_messages chatlab_summarize_topic chatlab_get_report chatlab_search_reports ``` ### 7.1 群列表工具 ```text chatlab_list_groups ``` 用途: - 获取当前可分析的微信群 - 给平台智能体或工作流选择分析对象 ### 7.2 消息检索工具 ```text chatlab_search_messages ``` 参数示例: ```json { "group_id": "微信群ID", "keyword": "退款", "start_date": "2026-05-01", "end_date": "2026-05-18", "limit": 50 } ``` 用途: - 按关键词查找聊天记录 - 支持售后问题溯源 - 支持工作流自动筛选问题片段 ### 7.3 上下文获取工具 ```text chatlab_get_message_context ``` 用途: - 根据某条消息获取前后文 - 避免 AI 只看单条消息误判 ### 7.4 创建话题工具 ```text chatlab_create_topic ``` 用途: - 把一组消息整理成售后话题 - 可由人工触发,也可由工作流触发 ### 7.5 生成报告工具 ```text chatlab_summarize_topic ``` 参数示例: ```json { "topic_id": "话题ID", "write_to_platform": true } ``` 用途: - 调用 AgentBox 上的 Qwen 7B - 生成售后问题报告 - 写入平台业务对象 - 进入人工确认流程 ## 8. AI 模型对接方案 当前项目已经使用 OpenAI-compatible 调用方式,因此 AgentBox 的 Qwen 7B 只需要提供兼容接口: ```text POST /v1/chat/completions ``` ChatLab 后端配置为: ```text AI_BASE_URL=http://127.0.0.1:模型服务端口/v1 AI_API_KEY=agentbox-local-key AI_MODEL=qwen-7b ``` 第一版优先支持: - 文本聊天总结 - 售后问题提取 - 话题分类 - Markdown 报告生成 - AI 建议生成 图片、语音、视频解析可以作为第二阶段增强能力。如果 AgentBox 暂时没有视觉模型或语音模型,系统应允许跳过这些内容,并在报告中提示媒体内容需人工查看。 ## 9. 权限与安全 ### 9.1 访问边界 - 只允许内网访问 - 不暴露公网 - AgentBox 服务只接受公司平台网关或内网指定 IP 访问 - MCP 服务只允许平台服务账号调用 - 采集端只允许带签名的请求写入数据 ### 9.2 用户鉴权 推荐使用公司平台统一登录。 平台网关向 ChatLab 注入用户身份: ```text X-Platform-User-Id X-Platform-User-Name X-Platform-Roles ``` ChatLab 根据这些身份头判断用户权限。 ### 9.3 角色建议 ```text 普通用户: - 查看授权群 - 查看报告 售后人员: - 创建话题 - 生成报告 - 提交人工确认 管理员: - 管理采集端 - 管理模型配置 - 管理平台 API 配置 - 查看同步状态 工作流服务账号: - 调用 MCP 工具 - 写入报告和任务状态 ``` ### 9.4 采集端安全 采集端和 AgentBox 通信使用 HMAC 签名。 请求头建议: ```text X-Collector-Id X-Timestamp X-Signature ``` 签名方式: ```text HMAC_SHA256(secret, method + path + timestamp + body_sha256) ``` AgentBox 拒绝: - 无签名请求 - 签名错误请求 - 时间偏差超过 5 分钟的请求 - 未注册采集端请求 ## 10. 数据存储策略 第一版建议: - 平台数据库存正式业务数据 - ChatLab 本地 SQLite 只作为缓存或临时任务状态 - 微信原始数据库不上传 AgentBox - 消息正文按业务需要同步 - 图片、语音、文件按需同步或按需代理访问 正式进入平台数据库的数据包括: - 群信息 - 话题信息 - 关键消息引用 - AI 报告 - 任务状态 - 人工确认状态 - 审计记录 不建议直接保存所有微信原始数据,除非公司合规要求允许并且平台已有对应权限模型。 ## 11. 推荐落地阶段 ### 第一阶段:平台接入最小闭环 目标: - AgentBox 能访问 ChatLab Web - 平台能通过 MCP 调用 ChatLab - ChatLab 能调用 Qwen 7B 生成报告 - 报告能写入平台业务对象 - 员工只能内网访问 第一阶段完成后,就可以在公司内部演示完整售后分析闭环。 ### 第二阶段:采集端服务化 目标: - Windows 采集端自动心跳 - 自动增量同步消息 - AgentBox 显示采集端在线状态 - 支持多采集端绑定 - 支持多个微信账号隔离 ### 第三阶段:工作流深度融合 目标: - 平台工作流自动发现售后问题 - 自动生成待确认报告 - 人工确认后进入业务系统 - 报告和任务进入平台审计体系 - 支持通知、派单、复盘等业务流转 ### 第四阶段:多模态增强 目标: - 图片内容识别 - 语音转文字 - 视频摘要 - 文件内容解析 - 多模态证据进入售后报告 ## 12. 推荐结论 第一版不要追求把整个项目完全搬进 AgentBox。 最稳妥的路线是: ```text 微信采集继续留在 Windows 业务系统迁到 AgentBox AI 调用切到 AgentBox Qwen 数据写入公司平台 能力通过 MCP 暴露给工作流和智能体 Web 入口通过内网平台访问 ``` 这样可以最大程度复用当前项目,同时快速接回公司平台体系,并且避免微信采集在 AgentBox 上不可控的问题。