跳到正文

三栏一体化 AI 话术策略工作台 ​

本文档详细说明系统二(callout-server 与 callout-webpage)中三栏一体化 AI 话术策略工作台(/ai/strategies)的架构设计、视觉动线、核心功能与实操规范。


1. 架构背景与设计理念 ​

callout-webpage 的三栏一体化话术策略工作台基于以流程为中心(Flow-Centric)的节点内联 Prompt 架构构建:

  • 话术与策略同构:提示词、意图分支、抽取字段及采样温度作为流程节点(nodes[].data)的内联属性,版本随流程脚本统一沉淀;
  • 沉浸式三栏动线:左侧大纲树快速定位节点,中间黄金视区深度调优与微拓扑穿透,右侧常驻即时拨测与思考链洞察;
  • 无损原子更新:通过专用原子更新接口,微调 Prompt 毫秒级落库,不破坏画布全图结构。

2. 三栏工作台全景架构与视觉动线 ​

工作台通过系统二前端一级菜单「AI 策略运营中心」(路由 /ai/strategies)访问,布局遵循宽屏沉浸式工作流设计:

┌───────────────────────────────────────────────────────────────────────────────────────────────────┐
│  顶部操作栏: AI 策略运营中心 | [Dirty 徽章] [刷新] [打开画布]                                      │
├────────────────────┬───────────────────────────────────────────┬──────────────────────────────────┤
│ 1. 话术与节点大纲   │ 2. 节点深度调优区 (黄金视区)                │ 3. 常驻即时拨测中心               │
│    (~280px)        │                                           │    (默认 440px,可折叠)          │
│                    │ - 节点身份徽章与微拓扑链条 (前驱 ➜ 当前 ➜ 后继) │                                  │
│ - 话术脚本列表筛选 │ - [AI 生成 ▾] [原子保存]                    │ - 草稿实时拨测 (无需保存即刻生效)│
│ - 自动提取 AI 节点 │ - System Prompt 编辑与上下文变量 (+变量名) │ - 意图命中判断 / 槽位抽取结果     │
│   • router (决策)  │ - Exit Prompt (Chat 节点多轮退出分支判定)  │ - Chat 多轮流式会话仿真          │
│   • collect (抽取) │ - 推理温度 (Temperature) 滑块与数值输入    │ - 原始返回 (Raw Output) 折叠     │
│   • chat (对话)    │ - 候选分支 / 抽取字段展示                 │ - 思考链 (Thinking Process) 折叠 │
│ - 未保存脏状态提示 │ - 全量 Prompt 预览                        │                                  │
└────────────────────┴───────────────────────────────────────────┴──────────────────────────────────┘

2.1 左栏:话术与 AI 节点大纲树(StrategyScriptOutline) ​

  • 功能定位:目录导航与节点快速检索。
  • 核心逻辑:
    • 加载当前租户下的全部流程脚本列表,并在前端自动遍历 flowJson.nodes,筛选提取类型为 router、collect、chat 的 AI 决策节点。
    • 每个节点以特定色系图标、节点名称、类型标识(如 收集节点、路由节点、多轮对话)紧凑呈现。
    • 脏状态穿透:当某个节点在中间编辑区被修改且未保存时,大纲树中该节点右侧高亮显示黄色编辑状态徽章,防止运营人员误切丢失草稿。
    • 支持按话术名称模糊搜索,并提供一键跳转至流程设计器画布(/flow-scripts?scriptId=...)的穿透入口。

2.2 中栏:节点深度调优区(StrategyNodeEditor) ​

  • 功能定位:核心创作视区,兼顾微拓扑上下文感知与 Prompt 深度调教。
  • 核心逻辑:
    • 微拓扑时序链(Micro-Topology): 工作台根据 flowJson.edges 动态计算当前节点的前驱节点(prev)与后继节点(next,包含分支路由条件 branchKey),以水平流程链条形式展示在顶部:
      text
      流程时序: [前驱: 开场白欢迎] ──东──> [当前: 意向分流跟进] ──东──> [高意向] [预约确认] / [拒绝] [挽留安抚]
      运营人员可直接点击前驱或后继节点徽章,平滑切换调优上下文,无需反复返回大纲树。
    • System Prompt 调优与变量注入: 配置大模型的人设约束、场景上下文与判定规则。上方提供「插入上下文变量」标签条(如 + customer_name、+ appointment_time 等),点击即可自动将模板占位符插至光标处。
    • Exit Prompt 调优(Chat 节点专属): 针对多轮会话节点的退场与意图跳转判定,独立配置退出指令(例如“客户明确表达暂不需要或反感时退出至拒绝分支”)。
    • 推理超参控制: 实时调节采样温度(temperature,0.0 ~ 1.0),界面明确标注文档推荐基准(例如结构化路由推荐 0.1,开放式对话推荐 0.7)。
    • 分支与字段概览: 直观陈列当前节点绑定的路由分支列表(branches)或待抽取字段清单(fields),鼠标悬停查看字段校验规则或分支描述。

2.3 右栏:常驻即时拨测中心(StrategyLivePlayground) ​

  • 功能定位:所见即所得的验证实验室,支持一键折叠收起。
  • 核心逻辑:
    • 草稿实时拨测:右栏调测请求直接打包中栏当前的未保存草稿(包含当前修改的 System Prompt、Exit Prompt、Temperature 等)。运营人员无需先点保存再测试,真正做到“随改随测、毫秒验证”。
    • 分节点差异化验证:
      • router 节点:输入用户模拟语料,返回识别意向命中分支(如 high_intent)、置信度与分类解释。
      • collect 节点:输入用户自然语言回答,返回结构化字段 JSON 抽取结果及校验通过状态。
      • chat 节点:提供完整的双向多轮会话模拟窗口,支持流式打字输出、意图退出判定及上下文重置。
    • 调试洞察面板:
      • Raw Output 折叠:展示大模型返回的原生文本与完整 JSON 报文,支持一键复制,便于排查数据解析异常。
      • Thinking Process 思考链:针对具备推理链(如 DeepSeek-R1、Qwen-Thinking)的模型,折叠展示思考过程,辅助调优 Prompt 指令强度。

3. 核心特色功能详析 ​

3.1 一句话智能定制生成(AI Prompt Generation) ​

为了降低一线业务人员编写高质量 Prompt 的门槛,中栏操作区集成了「AI 生成」功能:

  1. 节点属性上下文感知:后端自动分析当前节点的类型、名称、上游传入变量、绑定的意图分支(Key / Label / Description)或抽取字段白名单;
  2. 一句话诉求微调:点击「AI 生成」按钮右侧下拉三角,弹出「一句话智能定制生成」浮层。运营人员只需输入通俗的业务诉求(例如:“针对刚毕业的年轻租房群体,语气亲切热情,重点引导加微信详聊”);
  3. 高质量模板合成:调用后端生成服务(POST /api/ai/generate-profile),大模型自动产出符合语音交互规范(短句、口语化、抗幻觉约束)的 System Prompt,并直接回填至编辑器供运营人员确认。

3.2 流程节点内联 Prompt 原子更新(POST /api/scripts/node-prompt-update) ​

传统的全图保存机制在多人协同或微调单个节点时风险极高。工作台采用高内聚的原子局部更新机制:

http
POST /api/scripts/node-prompt-update
Content-Type: application/json
Authorization: Bearer <token>

{
  "scriptId": 12,
  "nodeId": "route-intent",
  "systemPrompt": "你是一名专业的售后回访客服,严格按照满意度评分规则进行判定...",
  "temperature": 0.1,
  "exitPrompt": "当客户提出投诉时跳转至 complaint 分支"
}
  • 执行特征:
    1. 服务端精准锁定 callout.scripts 表中指定 id 的记录;
    2. 仅定位 flowJson.nodes 中匹配 nodeId 的节点,局部打补丁更新其 data 属性;
    3. 刷新记录的 updatedAt 与 updatedBy 审计字段;
    4. 绝不触碰连线(edges)、其他节点坐标或未修改属性,彻底杜绝协同覆盖冲突。

4. 典型场景调优实操指南 ​

场景一:调优意图分类节点(Router) ​

  1. 在左侧大纲树中展开目标外呼脚本,选中意图分流节点(如 route-intent);
  2. 观察中栏顶部的微拓扑,确认该节点前驱为开场提问,后继包含 high_intent、low_intent、reject;
  3. 查看 System Prompt。如需强化对“委婉拒绝”(例如“在开会”、“没时间”)的识别能力,在 System Prompt 中追加针对性少样本说明(Few-shot);
  4. 保持 Temperature 为 0.1(保证分类决策的稳定确定性);
  5. 无需保存,直接在右栏即时拨测区输入:“我现在正好在开车,待会儿再说吧”;
  6. 观察右栏返回:
    • 检查命中分支是否正确解析为 reject 或 callback_later;
    • 展开 Raw Output 确认大模型输出格式为合法的 {"decision": "reject", "reason": "客户反馈在开车"};
  7. 拨测验证无误后,点击中栏右上角「保存修改」,通过 POST /api/scripts/node-prompt-update 接口持久化生效。

场景二:调优信息抽取节点(Collect) ​

  1. 在大纲树中选中信息采集节点(如 collect-profile);
  2. 中栏核对声明的待抽取字段:customer_name(文本)、budget(数字)、has_loan(布尔);
  3. 若大模型经常漏抽隐式表达的预算,可点击「一句话定制」,输入:“客户可能会说‘两三千块钱’或‘预算千把块’,需要准确换算为数字类型”,生成增强后的提示词;
  4. 在右栏输入:“我叫王大锤,大概就想找个月租两千到两千五的,不要贷款”,点击拨测;
  5. 右栏即刻高亮展示抽取出的字段树:
    json
    {
      "customer_name": "王大锤",
      "budget": 2250,
      "has_loan": false
    }
  6. 验证抽取逻辑正确后点击保存。

5. 权限与最佳实践建议 ​

  • 权限要求:访问工作台需具备 ai:strategy 或管理员权限。
  • 发布规范:
    • 生产环境建议在话术正式上线前,覆盖正向、反向、边界歧义语料各至少 3 组进行拨测;
    • 调优时优先调小 Temperature(0.0 ~ 0.2)以保证意图分类的确定性;涉及主观润色和安抚时才适当放宽至 0.6 ~ 0.8;
    • 涉及流程大结构调整(增删节点、修改连线出口)时,应点击顶部「打开画布」进入流程设计器操作;微调话术与 Prompt 时,推荐始终在三栏策略工作台中完成闭环。

文档与代码在同一仓库维护,现有 Markdown 是唯一内容源。