🛎️ HakkoAI Feedback Agent

全渠道用户反馈 → AI 分类分流 → 飞书双群报送 → AI 草稿回复 的自动化中台。跑在 Cloudflare Worker + Container 上,7×24 每 10 分钟自动运行。
⏱ 2026-05-25 → 2026-06-01 📦 30 次提交 🌐 6 个反馈渠道 ☁️ Cloudflare Worker + Container + D1 🤖 豆包 LLM 分类/翻译/草稿

🧩核心能力

从拉取到回复的完整闭环,共 8 大模块。

📥 全渠道拉取

邮件(support@)、Discord、端内反馈、App Store、Google Play、NPS 六个来源统一汇集。

🗄 存储 + 去重

Cloudflare D1 数据库,OR IGNORE 去重,schema 自动迁移。

🧠 AI 分类分诊

豆包 LLM 输出情感、优先级、话题标签、中英翻译、是否重要/紧急、14 类分类、回复策略、建议处理人/时效/升级、分类理由。

📨 双群路由派发

重要+紧急 → 问题反馈群(红卡快速升级);其余非垃圾 → 海外客诉群(配色分类卡);垃圾不推。卡片含 User ID + 处理建议。

💬 AI 回复闭环

群内讨论 → 豆包按原语言出草稿 → 回「确认发送」→ 按渠道真实回复:邮件 / Play / App Store / Discord。

🔎 ByteHouse 反查

email ↔ user_id 双向查,补全用户身份与联系方式。

📊 报告生成

每周周报(HTML + 飞书卡,含全量明细/翻译/解决进度) + Google Play 评论报告 / 全年报告 / 回复草稿。

🛠 运维

Secrets Store 灌密钥、容器 HTTP 入口、防灌群三重护栏。

🔄端到端工作流程

两条 cron 驱动:实时流水线(每 10 分钟) + 周报(每周一 10:30 北京)。
每 10 分钟 cron → Worker → 启动 Container → run_email_pipeline
实时链路总入口
1
Pull 拉取
全渠道拉取(邮件 + Discord + 端内 + App Store + Google Play)
2
Ingest 入库
写入 D1,OR IGNORE 去重
3
Classify 分类
豆包:情感 / 优先级 / 14 类 / 重要紧急 / 回复策略 / 处理建议 / 分类理由
4
Dispatch 派发
重要紧急 → 问题反馈群(红卡);其余非垃圾 → 海外客诉群;垃圾不推
5
Reply 回复闭环
读卡片 thread → 出草稿 → 有人「确认发送」→ 按渠道真实回复用户
📚
每周一 02:30 UTC cron → postWeeklyDigest
上周全渠道周报卡 + 完整 HTML 报告链接 → 海外客诉群
对外只暴露只读路由:/health/weekly-report/admin/run-weekly-digest(均需 token);/run 不公开,防止被外部触发。

🏗技术栈

Cloudflare Workers Cloudflare Containers D1 (SQLite) Secrets Store TypeScript (Worker) Python (容器流水线) 豆包 / Ark LLM 飞书开放平台(胖猫 App) ByteHouse App Store Connect API Google Play Developer API + GCS Cloudflare Pages(报告托管)

📜完整更新日志

按阶段分组,共 30 次提交(2026-05-25 → 06-01)。功能 修复
阶段 0 · 初始化05-25
  • init从 data_agent 抽出 feedback agent 独立成仓
  • arch明确中心化架构:D1 + Ark(豆包)LLM 为共享,不是每用户一套
  • discDiscord 多服务器支持 + GitHub Actions 定时拉取 + QUICKSTART
阶段 1 · 接入数据管线 + 容器化部署05-26 ~ 05-27
  • #1让 feedback 能力与 data_agent 对齐
  • #2support@ 邮箱专用 + 重要/紧急 → 胖猫飞书推送 + 上 Cloudflare Containers
  • #3把真实 hakko-secrets store_id 接进 wrangler.toml
  • #4关掉 workers.dev 公开访问 + 加 package.json
  • #5改用 @cloudflare/containers 的 Container 类 + HTTP 入口
阶段 2 · 全渠道回复闭环 + 客服协作05-28
  • #6回复工作流:推送/回复扩展到全部反馈渠道
  • #7公开渠道回评:Google Play / App Store / Discord
  • #8给客服团队写 HTML 功能指南
  • #9日报:从实时紧急路径独立出来
  • #10客服指南补充日报说明 + 托管到 Cloudflare Pages
  • #11双群路由 + AI 分类分诊 + 处理建议(核心分流逻辑成型)
阶段 3 · 报告增强 + User ID 反查05-28
  • #12日报底部加全量反馈明细表
  • #13按邮箱反查 ByteHouse user_id 并显示在卡片上
  • #14明细表加 User ID 列
  • #17Google Play 评论报告 → 飞书 docx 生成器
  • #18从 GCS 导出桶做 GP 全年评论报告 → 飞书
  • #19批量生成 GP 评论回复草稿 → 追加进飞书文档
阶段 4 · 全渠道拉取 + 防灌群05-28
  • #15容器流水线从只拉邮件改为拉全渠道 + 防灌群护栏
  • #16全渠道每 10 分钟拉一次(替代 邮件10min/重活每小时)
阶段 5 · 数据正确性修复05-28 ~ 05-29
  • #20修复 user_id 精度丢失(Int64→float64,末位变 0)→ 存字符串 + 读 CAST(...AS TEXT)
  • #21回复工作流:in_app/nps 按 user_id 经 ByteHouse 反查邮箱
  • #22in_app 拉取:无邮箱时回退到 mindcraft.users 账号邮箱
阶段 6 · 交接 + 周报改造05-30 ~ 06-01
  • #24加 HANDOFF.md 交接文档
  • #23功能 日报改周报(周一 10:30,覆盖上一整周)+ 强化重要紧急判定 + 分类理由字段 + 误判审计脚本 + 过滤 Discord 官方回复
  • #25收紧 Discord 过滤(改 user-id 白名单,避免误杀真实用户)+ 删日报死代码 + 更新客服指南
  • #26HANDOFF 同步周报路由/cron
  • #27修复 周报日期标签 off-by-one(周日少算一天)
  • #28修复 分类器 NameError(update_d1 的 batch 参数作用域,导致每次分类都崩)