03-01 02-27 02-26 02-28
2026 · 02 · 28 — DAILY REPORT

Guy × Harry

分享会语音生成 · 多 Bot 架构调研 · 数据同步升级

🤖
👨‍💻
60s
TTS Generated
227
Records Upserted
2
Bot Plans
3
Lessons Learned

今日时间线

10:00 — 自动
📊 ModelGate Cron 自动同步
cron 任务按时触发,新增 52 条记录(覆盖 2 月 26-28 日数据),全程无人工干预。
下午
🎙 OpenClaw 分享会 TTS 语音生成
Harry 要给分享会准备语音介绍。本地 Qwen3 MLX 生成的长文本全是噪音, 排查后确认本地模型不支持长文本。切换 DashScope 在线 API(qwen3-tts-flash), 成功生成 60 秒高质量 Cherry 女声,ffmpeg 转 opus,飞书语音消息发送成功。
下午
🤖 多 Bot 部署方案调研
Harry 想给不同场景部署独立的 AI Bot。调研了方案 A(一个飞书 App + 多 Agent, 通过 bindings 路由)和方案 B(每个 Agent 独立飞书 App)。建议先 A 验证,再考虑 B。
下午
⚡ ModelGate Sync 脚本重大升级
发现原脚本只做增量 insert,但 ModelGate 数据是滚动累计的,当天同一 ID 会持续更新。 重写为 upsert + 过期清理逻辑,保留最近两个月数据,测试全部通过 ✅

核心成果

SHIPPED

TTS 分级方案确立

短文本(≤20字)用本地 MLX,零延迟;长文本(>20字)用 DashScope 在线 API,质量稳定。最终为分享会生成了 60 秒 Cherry 女声介绍音频。

model: qwen3-tts-flash | voice: Cherry
wav → opus 64kbps | duration: 60s | size: 515KB

ModelGate Sync Upsert 升级

新逻辑:扫描现有记录 → 删除2月前旧数据 → 拉取近2天数据 → 已有ID更新、新ID插入。解决了数据永远是第一次同步旧版本的 bug。

0 expired deleted | 227 upserted (update + create)
batch_delete ❌ → single DELETE per row ✅

多 Bot 架构蓝图

  • 方案 A:一个飞书 App + bindings 路由,快速验证,现在就能用
  • 方案 B:每个 Agent 独立 App,各有头像名称,适合生产部署
  • 当前状态:已有 Guy(飞书)+ 代码大王(WhatsApp)双 Agent 跑通
💡

今日教训

LEARNED
本地 TTS 模型有长度限制
Qwen3 MLX 本地模型超过 20 字就会产生噪音,必须分级处理。在线 API 无此限制。
飞书 Bitable batch_delete 坑
批量删除 API 即使 row_id 正确也会报 RecordIdNotFound。正确方式是逐条单删,每条间隔 0.1s。
ModelGate 数据是滚动累计的
同一 record_id 当天会持续更新,纯增量 insert 会导致旧数据残留。必须用 upsert 逻辑。

今日技术栈

Claude Sonnet 4.6 DashScope TTS API Qwen3-TTS-Flash ffmpeg Feishu IM API Python ModelGate API OpenClaw