开源项目› 会中辅助› 手册
手册 · 03

规则包与话术库

约 3 分钟阅读 Apache-2.0 本文基于 v0.1.0(2026-11-01)

QuickCue 的判断全部来自规则文件,不来自模型。这一篇讲规则长什么样、怎么改、话术库怎么组织。

01两个产品仓,机制同构

text
quickcue/(会中辅助仓)
├── core/py/quickcue_engine.py    判定引擎:触发判定 + 出卡闸 + 结果卡协议 + 反馈 SDK
├── packs/meeting/rules.example.yaml    规则面全量示例(全中文注释)
└── hosts/mcp/meeting_server.py   stdio MCP 服务器(Python 3.10+)

recoscan/(项目体检仓)
├── core/js/                      体检引擎(仅 Node.js 内置模块)
├── packs/project/rules.example.yaml    指标权重 / 风险阈值示例(全部可改)
└── hosts/mcp/project_server.mjs  stdio MCP 服务器(Node 18+)

两件机制同构,学会一件就会第二件。

02规则文件里有什么

packs/meeting/rules.example.yaml 是闸参数与判据面的全量示例,全字段中文注释:

诉求改哪个字段改成预期效果
卡太吵,想再克制些global_cooldown_sec60 → 120两张卡间隔拉大到 2 分钟
出卡总量想收紧max_per_meeting12 → 8单场会议最多出 8 张卡
我说话有忌讳画像 banned 黑名单填禁用词命中的话术候选直接跳过

画像字段 role / style / phrases 参与话术模板选择;banned 子串命中即弃候选(只跳过,不改写文案)。

03当前版本(v0.1.0)的行为

引擎内置默认参数开箱即用,默认值与示例文件逐字一致(全局冷却 60 秒 / 同型冷却 180 秒 / 场均上限 12 张)。把示例文件复制为 rules.yaml 改成你自己的口径,规则文件自动加载接入引擎后即本地生效(演进路径见 packs/meeting/README.md 的「60 → 70 → 80 分」)。改规则前先跑宿主里的 rules.validate 校验结构,改错的字段会被标出。

04判定链路逐层拆解

1. L0 触发判定:客户角色发言 ∧ 疑问判定 ∧ 完整性判定——三个都过才进下一层。 2. L1 强度打分:逼宫式追问和客套式一问优先级不一样;带负例抑制,避免瞎提醒。 3. 三层闸:全局冷却 / 同型冷却 / 场均上限(默认 60 秒 / 180 秒 / 12 张),同一句话去重。闸的作用不是限制你,是保住它不被你关掉。 4. 话术库直出:命中规则就从你的库里取那句,组卡渲染,全程零大模型调用。

05话术库怎么组织

一条话术的最小结构:触发条件(哪类疑问)+ 应答文案(能直接说出口的一句话)+ 证据(出处或依据)。分组按场景走(报价 / 交付 / 售后 / 数据安全 …)。cue.analyze 每次出卡都会在卡面上标证据行——没有出处的话术不值得进库,这是这个工具的性格。