
Savvy:默认安静,只为三种理由开口
开源 macOS 会议助手 Savvy 不默认插话:只在对方提问、触碰红线或你按 Advice 时进入思考,并用 SAY/AVOID 与来源校验把复核权交回用户。
Savvy 是一款开源的 macOS 会议助手。它不加入 Zoom、Meet 或 Teams,也不在会议里扮演「另一个与会者」;用户会在会前把本地文件夹拖进应用,生成一份版本化的谈判简报(brief),会议中它只通过系统音频听对话,并在需要时弹出带来源引用的建议卡片。
产品面向的场景很具体:销售、采购、客户成功这类需要边谈边守边界的实时对话。作者在发布说明里把它写成「把你自己的知识变成可执行的指导」——不是会后纪要工具,也不是全程插话的副驾。
当前公开材料能核对的版本是 GitHub 上的 v0.1.0(2026-08-26),MIT 许可,要求 Apple Silicon 与 macOS 14+,推荐引擎走本机已安装的 Claude Code 或 Codex CLI。
默认安静:只为三种理由进入「思考」
多数会议 AI 的默认姿态是「尽量多帮」:持续摘要、随时提示、会后补一份长文档。Savvy 把默认姿态反过来写成「安静」。官方 README 用一句话钉死产品边界:
Savvy speaks up for exactly three reasons.
源码里的
should_run_thinking 把这句话落成可执行规则。系统只会在三种情况下切换到「thinking」状态,真正去生成一条会顶到前台的建议:- Question(仅对方) 远程说话人提出的问题,命中了简报里已经准备好的答案。本机说话人(也就是用户自己)的问题不会触发这条路径——产品刻意避免在用户说话时抢话。
- Risk(任何说话人) 对话触碰了简报里的红线(
red_lines)。红线是会前写进 brief 的硬约束,例如底价、不能承诺的范围、禁止对外说的说法。谁说出口都算。 - Manual 用户主动按下悬浮条上的 Advice。这是唯一不依赖模型判断「该不该开口」的入口。

这三条规则的设计价值,不在「AI 更聪明」,而在把「开口权」从模糊的意图猜测,收成可对账的产品义务。
对做实时协作 AI 的人来说,这里有一个可迁移的取舍:先规定系统何时有权打断用户,再谈模型多能。 Question 只看对方、Risk 看所有人、Manual 完全交还用户——三种触发各自对应不同的责任分配,而不是混成一个「相关就提示」的总开关。
源码里还有第四条更安静的路径:大约每 45 秒会跑一次静默扫描(
silent_scan)。它也会产出卡片,但标题固定为「Savvy noticed」,并且不会自动钉到主界面。也就是说,系统可以在后台保持观察,却不把观察自动升级成打断。自动触发的 thinking 与静默扫描,被拆成了两种权限等级。卡片必须过关:说什么、别说什么、依据在哪
触发只解决「何时开口」。Savvy 的第二层设计,解决「开口之后用户如何接管」。
会前准备阶段,用户拖入本地文件夹后,应用会生成结构化简报。领域模型里的
NegotiationBrief 不只是摘要,还显式拆出了几类边界字段:red_lines(红线)、prohibited_claims(禁止主张)、unauthorized_commitments(未授权承诺),再加上事实、让步、要问的问题等。红线不是提示文案,而是后续 Risk 触发与卡片校验要对照的对象。
会议中弹出的建议卡片,结构也不是自由文本。演示里可以看到固定分区:
- SAY:建议用户可以说的话
- AVOID:建议用户不要说的话
- 底部带来源引用(演示里是
Q3_pipeline.md一类本地文件名)


更关键的是生成后的校验门,而不是界面分区本身。
validate_and_normalize 会在自动展示前检查几件事:- 自动推荐的 grounding 分数至少达到 0.55,否则丢弃
- 卡片引用的 source id 必须落在本轮允许的文档切片集合里;对不上就整条丢掉
say文本压到约 90 词以内,并清理禁止出现的元话语(例如模型自我解释)- 若 brief 里写了红线,而建议内容撞上红线,则拒绝自动展示;用户手动点 Advice 时,则改为附加警告,而不是直接封死
这套门禁把「有来源」从营销话术变成了失败路径:引用对不上、分数不够、话太长,卡片都不会以自动推荐的身份出现在用户眼前。
作者在设计博文里把动机写得很直白:实时辅助如果只给结论、不给依据,用户在高压对话里反而更难判断要不要采信。Savvy 选择把依据和「别说什么」一起塞进同一张卡片,让用户用一两秒完成复核,而不是事后翻聊天记录。
代价写在明处:本地优先,不等于音频不出门
Savvy 的隐私表述值得单独看一眼,因为它没有把「本地优先」写成「完全离线」。
官方 README 的数据表写得很清楚:
| 数据 | 是否离开本机 | 去向 |
|---|---|---|
| 源文档、索引、转录文本 | 否 | 留在 Mac |
| 麦克风 / 系统音频 | 是 | Deepgram 或 AssemblyAI 做转写 |
| 选中的摘录与 brief | 是 | 发往用户配置的 Claude Code 或 Codex CLI 做推荐 |
也就是说,文档和索引可以本地,但实时转写默认走云端;推荐计算则复用用户本机已登录的编码代理 CLI,而不是再嵌一套黑盒模型账号。README 还提醒:可在提供商控制台为 Deepgram / AssemblyAI 打开
mip_opt_out=true,降低音频被用于训练的风险,但转写本身仍然出站。对产品设计者,这是另一条可迁移的诚实原则:把「哪些数据真的本地」拆开写,比宣称端到端隐私更有用。 用户要判断的是风险面,不是形容词。
适用边界也同样清楚。Savvy 当前是 Apple Silicon 上的桌面 overlay,依赖系统音频权限和外部转写;它不替代会议录制合规流程,也不能保证每一句红线都能被模型及时听出来。Risk 触发再严格,上游仍受转写延迟、说话重叠和 brief 写得是否具体制约。手动 Advice 之所以被保留成一等入口,正是承认自动判断会漏、会晚、会误。
收束
Savvy 真正值得拆的,不是「又一个 AI 会议助手」,而是它把实时辅助拆成了两道闸门:
- 何时有权思考:Question / Risk / Manual,外加不会自动打断的静默扫描
- 思考结果何时配出现在用户眼前:来源必须对得上、分数要过线、话要短、红线要避
对正在做 Copilot、销售助手或任何「边工作边提示」产品的人,可直接拿走的不是界面皮肤,而是这两句决策:
- 把打断权写成少数几条可测试的触发,而不是「相关就说」
- 把用户复核所需的最小信息(可说 / 不可说 / 出处)做成卡片的一等结构,并用校验门把不合格结果拦在自动展示之外
默认安静,并不是功能更少;它是在高压对话里,把注意力预算还给正在说话的那个人。
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.
