Files
get_wechat/plan.md

11 KiB
Raw Blame History

ChatLab 接入公司 AgentBox 与内网平台方案

1. 目标

当前 ChatLab 项目是独立运行的 Windows 本地应用,主要能力包括:

  • 读取 PC 微信聊天记录
  • 群聊检索
  • 话题分类
  • 售后问题归档
  • AI 总结与报告生成
  • 本地知识库管理

公司已有 AgentBox 主机,主机内置:

  • 7B Qwen 智能体
  • 类 Dify 的平台系统
  • 业务系统
  • 数据库
  • 工作流
  • MCP 工具体系
  • 内网部署能力

本方案目标是把 ChatLab 接回公司平台体系,并部署到 AgentBox 内网环境中,让员工只能在公司内网访问,同时让平台工作流和智能体能够调用 ChatLab 的售后分析能力。

2. 推荐方案概览

推荐采用:

Windows 采集端 + AgentBox 业务端 + MCP 工具接入 + 平台统一鉴权

整体形态如下:

员工浏览器
  -> 公司平台 / 内网网关
    -> 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 上建议部署以下服务:

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 内网访问方式

推荐访问地址:

http://agentbox内网IP/chatlab

或者由公司平台菜单进入:

公司平台 -> 售后智能助手 -> ChatLab

对外只开放内网访问,不开放公网访问。

推荐网关路径:

/chatlab/        -> ChatLab Web
/chatlab/api/    -> ChatLab FastAPI
/chatlab/mcp/    -> ChatLab MCP Server

4.3 端口建议

80 / 443     公司平台网关或 Nginx
8000         ChatLab FastAPI仅内网或网关访问
8001         ChatLab MCP仅平台服务访问
模型端口      只允许 AgentBox 本机访问
5030         chatlog.exe仅 Windows 采集端本机访问

5. 数据流设计

5.1 聊天数据采集流程

PC 微信
  -> chatlog.exe
    -> Windows 采集端
      -> AgentBox ChatLab API
        -> 平台 API
          -> 平台数据库

采集端不直接暴露给用户访问,只负责把微信数据同步给 AgentBox。

5.2 AI 报告生成流程

用户选择群聊 / 平台工作流触发
  -> ChatLab 检索聊天记录
    -> 创建话题
      -> 调用 AgentBox Qwen 7B
        -> 生成 Markdown 报告
          -> 写入公司平台业务对象
            -> 人工确认 / 工作流流转

5.3 MCP 调用流程

平台智能体 / 工作流
  -> MCP Tool
    -> ChatLab API
      -> 消息检索 / 话题生成 / 报告生成
        -> 平台业务数据

6. 平台数据库对接方式

推荐不让 ChatLab 直接连接平台数据库,而是通过公司平台 API 写入业务对象。

原因:

  • 保留平台权限控制
  • 保留审计日志
  • 保留工作流触发能力
  • 避免绕过平台业务规则
  • 后续平台升级时耦合更低

建议平台侧提供以下业务对象。

6.1 售后群对象

{
  "external_id": "微信群ID",
  "name": "群名称",
  "source": "wechat",
  "collector_id": "采集端ID",
  "status": "active"
}

6.2 话题对象

{
  "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 售后报告对象

{
  "external_id": "报告ID",
  "topic_external_id": "话题ID",
  "title": "报告标题",
  "content_markdown": "Markdown报告正文",
  "evidence": [],
  "ai_model": "qwen-7b",
  "review_status": "pending|approved|rejected"
}

6.4 任务对象

{
  "external_id": "任务ID",
  "type": "sync|summarize|topic_detect",
  "status": "queued|running|success|failed",
  "progress": {
    "processed": 10,
    "total": 100
  },
  "error": ""
}

7. MCP 工具设计

第一版建议提供以下 MCP 工具:

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 群列表工具

chatlab_list_groups

用途:

  • 获取当前可分析的微信群
  • 给平台智能体或工作流选择分析对象

7.2 消息检索工具

chatlab_search_messages

参数示例:

{
  "group_id": "微信群ID",
  "keyword": "退款",
  "start_date": "2026-05-01",
  "end_date": "2026-05-18",
  "limit": 50
}

用途:

  • 按关键词查找聊天记录
  • 支持售后问题溯源
  • 支持工作流自动筛选问题片段

7.3 上下文获取工具

chatlab_get_message_context

用途:

  • 根据某条消息获取前后文
  • 避免 AI 只看单条消息误判

7.4 创建话题工具

chatlab_create_topic

用途:

  • 把一组消息整理成售后话题
  • 可由人工触发,也可由工作流触发

7.5 生成报告工具

chatlab_summarize_topic

参数示例:

{
  "topic_id": "话题ID",
  "write_to_platform": true
}

用途:

  • 调用 AgentBox 上的 Qwen 7B
  • 生成售后问题报告
  • 写入平台业务对象
  • 进入人工确认流程

8. AI 模型对接方案

当前项目已经使用 OpenAI-compatible 调用方式,因此 AgentBox 的 Qwen 7B 只需要提供兼容接口:

POST /v1/chat/completions

ChatLab 后端配置为:

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 注入用户身份:

X-Platform-User-Id
X-Platform-User-Name
X-Platform-Roles

ChatLab 根据这些身份头判断用户权限。

9.3 角色建议

普通用户:
- 查看授权群
- 查看报告

售后人员:
- 创建话题
- 生成报告
- 提交人工确认

管理员:
- 管理采集端
- 管理模型配置
- 管理平台 API 配置
- 查看同步状态

工作流服务账号:
- 调用 MCP 工具
- 写入报告和任务状态

9.4 采集端安全

采集端和 AgentBox 通信使用 HMAC 签名。

请求头建议:

X-Collector-Id
X-Timestamp
X-Signature

签名方式:

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。

最稳妥的路线是:

微信采集继续留在 Windows
业务系统迁到 AgentBox
AI 调用切到 AgentBox Qwen
数据写入公司平台
能力通过 MCP 暴露给工作流和智能体
Web 入口通过内网平台访问

这样可以最大程度复用当前项目,同时快速接回公司平台体系,并且避免微信采集在 AgentBox 上不可控的问题。