05 触达护栏Sales Ops Assistant

触达护栏:确定性流水线

归属:理想汽车 · 跟进/话术落地 — 服务简历「差异化客户跟进」护栏,不是腾讯 SSC 或字节招聘。入口 理想。

AI 会写不是难点;难点是重复发送、脏数据、非工作时间、越权群发。用代码护栏回答「能不能发」。

Demo · 场景回放 GitHub

1. 架构图

flowchart LR U[一句话 / 定时任务] --> R[意图路由] R --> L{幂等锁 · 时间窗} L -->|过| F[刷新数据 · 失败重跑] F --> H{健康检查} H -->|过| C[计算 + 渲染] C --> P{预览确认} P -->|确认| S[按白名单顺序发送] S --> A[(audit.jsonl + message_id)] L -->|拦| A H -->|拦| A

2. API / 流水线步骤(逻辑接口)

步骤输入失败行为
意图路由自然语言 / 任务 ID越权「发全部」→ 拒绝
幂等锁task + day + halfday已执行 → 跳过
时间窗当前时间窗外 → 停止
数据刷新数据源超时重跑 1 次,仍失败不发
健康检查覆盖率/新鲜度/数值任一不过 → 拦截
预览授权首跑或大批量未确认 → 等待
发送白名单群序禁言/敏感群跳过
留痕每步事件写入 audit + message_id

产品化 HTTP 建议

POST /v1/outreach/preview  { task_id }
POST /v1/outreach/approve  { preview_id, actor }
POST /v1/outreach/run      { task_id } → { status, message_ids[] }
GET  /v1/outreach/audit    { message_id }

3. 技术栈梳理

Python 标准库 场景回放 HTML · 无第三方 IM SDK(公开版模拟发送)

4. Best practices

5. Demo 路径

  1. 打开场景回放,走一遍「重复触发被幂等拦住」。
  2. 演示窗外时间 / 健康检查失败不发。
  3. 展示 audit 中的 message_id。