
回看那句话
已发布小程序技术栈: WeChat native mini program · TypeScript · Tencent CloudBase · Tencent Hunyuan (hy3) · Node.js · node:test
吵完架先别急着回。把聊天放进来,看看是哪一句,让事情变了味。 「回看那句话」是一个微信小程序:你贴进一段自己选的聊天,它帮你看清冲突卡在哪里、对方可能怎么想,再给几种更容易开口的说法。它不会告诉你谁对谁错,说不说、怎么说,都由你定。这是我为 2026 微信小程序开发大赛(命题「与 AI 共生」)做的作品。
核心特点
是镜子,不是法官
不判输赢、不打分、不贴人格标签、不替人读心。它只摆出白纸黑字写了什么、可能是什么意思、光看这几句看不出什么。
每个结论都能点回原话
重要结论后面都挂着原话,点一下就能跳回去核对。证据不够的地方直接写「不足」,不硬凑结论。
只改你自己的那句
「重来一次」只改写你最容易被误会的那句,前后并排放着;不替你认错,也不要求对方改变,有时候它会说:先不回,也是一种选择。
不留聊天正文
聊天只留在内存里:不写本地缓存、不放链接参数、不放转发卡片。服务端只保存额度记录,日志只记白名单字段,不打印任何用户文字。
贴进来,说背景,看复盘
在微信里选好要看的几条消息,复制,回到小程序粘贴。提交之前可以先删掉不想让 AI 看的内容,手机号之类的敏感信息会有提醒。接着告诉它对方是谁(伴侣、家人、朋友、同事、同学,或者自己写一个),你想要什么,比如「想弄懂对方的意思」「想把话说清楚」「想守住边界」。



复盘里有什么
先把对话原样摆出来,后面每个结论都能对回去。然后是三章:争议焦点、升级点、下一步沟通。事实和推测分开放,每一种理解都标明是「可能」,不是结论。


升级点把对话可能从哪里开始变紧张画成一条双方都在其中的路径,讲的是转折,不指责任何一个人。「重来一次」给出几种改写自己那句话的方式,并说明为什么这样更不容易吵起来;还可以对着这份报告继续追问,每份报告有次数上限。


工作原理
小程序是原生微信 + TypeScript。纯逻辑(粘贴解析、计数、敏感信息提醒、结果视图)单独放着,用普通 Node 就能测,页面只通过一个服务模块和云端说话。云端是一个 CloudBase 云函数:用数据库事务扣额度,输入先过微信内容安全,再经云开发 AI 调用腾讯混元(hy3),结果经过校验才返回给用户。模型密钥从来不在小程序里。
工程细节
- 一次复制多条消息,只读到第一条。 真机测试发现,读剪贴板的接口只返回首条,而在原生文本框里粘贴,三条都完整,还能分出两位发言人。所以导入改成了粘贴框:多一次长按,换来一段不会被截断的完整对话。
- 平台的硬限制塑造了设计。 hy3 资源包只允许 SDK 调用,并发超限平台也不能提额。云函数先短暂等待重试一次,再切到混元系列的备用模型,不用备案范围之外的模型。
- 「不判输赢」在提示词里最难守。 模型特别爱做「各打五十大板」的总结,也爱替当事人补一句「他其实是好意」。我给提示词补了大量反例,又在结果校验里拦这类表述、检查引用的原话是不是真在聊天里;不合格就修,修不好就如实报错,不拿一份糊弄的结果交出去。
- 安全一律往保守的方向失败。 内容安全拿不到结果按不通过处理;聊天里出现伤害自己或他人的迹象时,不再分析和改写,只给出求助提示。每份结果都标注「AI 生成」。
- 边界写下来,并有测试盯着。 每条规则都是一份决策记录(ADR),约 185 个自动化测试和 30 个合成评测用例(20 个复盘、10 个追问)守着它们。所有样例都是虚构的,没有用过真实聊天。
当前状态
已发布在微信上,每位用户每天有免费额度。复盘主流程、升级点、重来一次、有限追问、隐私清理和意见反馈都已可用。接下来想做:只含用户自选内容的本地分享图、用户自愿保存的记录、更长的聊天文本。源码是私有仓库,所以本页用截图代替代码;所有截图都是开发者工具模拟器里的示例复盘或合成对话,不含个人信息。
该项目的源码为私有仓库,因此这里用截图和文字说明代替,可以在面试中现场演示代码。