Files
chatwoot-ai-agent/CHANGELOG.md
T
2026-06-05 04:30:48 +00:00

82 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## v1.4 (2026-06-05) — 消息防抖 + AI 重试
### 新增
- **消息防抖 (Debounce)** — 同一会话 5 秒内到达的多条消息被自动累积合并,合并后发给 AI 一次处理,避免重复调用和混乱回复
- 累积消息用 `\n---\n` 分隔,AI 获得完整上下文
- 人工在此期间回复则跳过,兼容正常转人工流程
- 日志标记:`⏳ Debounce` / `📦 Debounce: processing N merged msgs`
- **AI 错误重试 (Retry)** — `call_qwenpaw_ai()` 加入指数退避重试机制(最多 2 次重试,等待 1s/2s)
- 覆盖超时、空回复、非零返回码、任意 Exception
- 每步日志输出 retry 状态,最终失败标记 ERROR 级别
### 改进
- 调用方无需修改:`generate_ai_reply()`, `translate_to_chinese()` 自动受益于重试
- 防抖不影响人工检测优先级(`is_human_active` 仍在防抖前检查)
---
## v1.3 (2026-06-03) — 代码清理 + 监控 + 状态持久化
### 清理
- 删除 30+ 冗余 argparse 参数(1374 行 → 1025 行)
- 修复 f-string 嵌套引号语法错误
- 推送到 GitHub main 分支,打 v1.3 tag
### 新增
- **Metrics 监控** — WebSocket 连接状态、断连次数、每个 inbox 的 AI 回复成功率与响应时间
- **健康检查 CLI** — `--health` 参数输出 JSON 状态
- **日志分级** — INFO / WARN / ERROR 级别,每个 inbox 独立日志标识
- **状态持久化** — `ai_sent_msg_ids``human_active_convs``_ai_pending_convs` 每 30 秒写入 JSON 文件
- **启动恢复** — 加载 1 小时内快照(安全兜底)
- **配置验证** — `_validate_config()` 检查必要字段
---
## v1.2 (2026-06-02) — 多租户架构:热加载 + 自动开通
### 新增
- **`inboxes.json`** — 外部配置文件,WS Agent 每 30 秒检测变化自动热加载,新增 inbox 无需重启
- **`provision.py`** — 一键开通脚本:自动建 Chatwoot Inbox + QwenPaw Agent + 写入路由配置,输出嵌入代码
### 改进
- **WS Agent 架构重构** — `INBOX_CONFIG` 从硬编码改为从 `inboxes.json` 动态读取,支持在线新增/修改/删除 inbox
- **超时检查线程** — 同时负责清理过期人工超时 + 热加载配置
### 待做
- FastAdmin 管理后台对接 provision.py
- 租户自助注册 + 支付
---
## v1.1 (2026-06-02) — Amazon 集成 + 人工检测修复
### 新增
- **Amazon API Inbox 集成** — 创建 Inbox 8 (Channel::Api),支持 Amazon 客户消息路由到 amazon-agent AI 自动回复
- **多 Inbox 路由** — 支持 Inbox 1 (GreatQiu 采购) / Inbox 7 (HALO 博客) / Inbox 8 (Amazon) 三路并行
### 修复
- **API Inbox 人工消息检测** — Channel::Api 发送的消息 sender_type 为 "Contact" 而非 "User",原检测抓不到,新增 `message_type=1` 兜底检测
- **amazon-agent ID 不匹配** — agent ID 为 `9hxc2Y` 但 INBOX_CONFIG 配置了名称 `amazon-agent`qwenpaw CLI 查不到导致 AI 空回复
### 配置
- Amazon agent 模型从 xiaomi/mimo-v2.5-pro 改为 opencode/big-pickle
---
## v1.0 (2026-06-01) — 初始版本
### 功能
- **Chatwoot WebSocket AI 客服** — 基于 ActionCable 实时双向通道
- **GreatQiu 采购助手** — Inbox 1 (WebWidget), 英文 sourcing-agent, 自动回复采购询盘
- **HALO 博客技术顾问** — Inbox 7 (WebWidget), 中文 halo-blog-agent, 安防弱电知识库
- **AI ↔ 人工无缝切换**
- 人工回复后 AI 自动回避
- 15 分钟超时后 AI 自动接回
- 会话状态改为 Pending/Resolved 后 AI 恢复
- AI 识别到需要人工介入 → [HANDOFF] 标记 + 通知坐席
- **私密备注** — 每次 AI 回复后自动写中文备注,方便人工排查
- **HALO 博客兼容** — Pjax 无刷新跳转 + CSP frame-ancestors 适配
- **GitHub 代码管理** — 仓库 `hanmolabiqiu/chatwoot-ai-agent`