一条「致癌」消息拆出四条谣言,Doubao-Seed-Evolving 帮我做了台辟谣机器
2026/9/5 8:14:16 网站建设 项目流程

上次我做了个家族博物馆,把爷爷奶奶的一辈子做成一个能走进去的网页。

做完自己也挺喜欢,但它始终是给人「看」的。看过、点过,也就过去了。我慢慢觉得,真正让人愿意留着的东西,都得是能拿来「用」的。

正好 8 月 27 日 Doubao-Seed-Evolving 发了新版,页面顶上挂着四个新特性:通用 Agent 与 Coding、深度搜索与真实性、工具调用与复杂任务、视觉理解与长程规划。

我拿自己家的一个真麻烦来试这四个特性。做出来的东西叫鉴谣台。

它是这么使的:把家庭群里转的养生截图、「紧急通知」丢进去,它读图、查权威来源、给个判定,最后吐出一张能转回群里的辟谣卡。

鉴谣台首页。左「粘贴文字」右「上传截图」,顶部是当前挂载的模型,底部只有「核查」「设置」两个口,老人点不错

1

被群里一条消息噎住了

群里时不时就冒出这种:「紧急通知!吃过夜食物会致癌,家家都有,赶紧扔!」。你回一句「这是谣言」,多半会被反问「你懂什么,人家都这么说」。

这话能把人噎住。倒不是气他,是我真拿不出证据。总不能跟他讲「隔夜菜亚硝酸盐在冷藏条件下远低于 GB 2762 限值」——听不进去,也不该让他听。

给群里的老人辟谣,难在几步。说法常常藏在截图里,得先有人读出来;每条都要查权威来源,做子女的没空一条条翻;查明白了,还得说成老人愿意往回转的一句话。

这四个新特性,正好一个对一个。

2

通用 Agent 与 Coding:一次接住四条谣言

第一张卡是通用 Agent 与 Coding。我拿最绕的一条去试:一句话里塞了疫苗阴谋、喝尿养生、碱性体质、过夜菜致癌,四样东西混在一起,全丢给模型。

它一次拆出了四条,逐条判断、逐条给来源,没含糊一条。这事技术上不容易,拆说法、查证、判定、汇总,整条链得一次跑通,中间断一环就全废。

功能能跑之后,我又让它按无障碍的规矩把页面重排了一遍。这东西的真实用户是老人,所以字号没一个小于 15px,按钮高 54px,四种判定用图标加文字而不单靠颜色,红绿色盲也分得清。没有紫渐变,就是暖白底配一个深的绿。

图 1,鉴谣台模型设置页。多厂商选择 + 方舟 Agent Plan 的专属 endpoint(/api/plan/v3),Key 只存本机浏览器

3

深度搜索与真实性:它自己抓到过时话术

第二张卡讲时效和来源。我埋了个不太容易看出来的坑:酸性体质早就被辟谣了,我偏把它写成「十几年前的理论现在又流行回来,所以可以照做」。

它没顺着「老理论」就放行。判的是「部分属实」,理由是「确实是十几年前就被翻炒的老说法,但流行不等于有道理」。过期话术它认得出旧瓶装新酒,还主动提醒核对时效。它不光判对错,还问一句:这说法是不是早该过时了。

图 2,真实核查报告。2 条失实、3 条部分属实、0 条属实、0 条无法核实,每条带把握度与权威来源

4

工具调用与复杂任务:格式焊死,想胡说都难

第三张卡是工具调用。我没让模型自由发挥,而是定义了一个叫 submit_report 的函数工具,报告结构用 schema 锁死。

claims,拆出来的每条说法,得带上中立的表述、判定、把握度、一句人话解释、来源;

elder_card,一张能转发的辟谣卡,带标题、正文、一句行动建议;

notes,留给自己复查,证据不足就直说。

图 3,submit_report 工具真实源码。方舟 Agent Plan 专属 endpoint(/api/plan/v3)+ schema 焊死的结构化报告

我连着跑了五个 case,最狠的一条是把疫苗、尿疗、碱性、过夜菜混一起,它输出的报告每条都带判定、把握度和来源链接,一个字没出 schema。让 Agent 稳定跑复杂任务,长这样。

剩下两张卡,视觉理解对上「读截图」。爸妈转来的九成是图片,鉴谣台能直接传群截图,模型把图里的说法一条条抠出来。下面这张,一句话里「微波炉热饭会产生辐射」和「会致癌」两条都拆开了,前一条属实、后一条失实。长程规划对上「越用越厚」:每次核查都存本地,谣言库越用越厚,1M 上下文装得下爸妈一周转的几十张图。

图 4,传一张截图进去,模型拆出两条对立的说法,各自带把握度和来源

前面是挑出来重点讲的。真跑的一共十五条,四张卡一卡不落,过程截图 55 张都存在仓库里。全列在下面。

通用 Agent 与 Coding

T1 多说法拆解。这轮最难。给它的是一句话里硬塞四条:「疫苗是绝育的阴谋,千万别打」「坚持喝尿能大补养生」「多吃碱性食物调理酸性体质」「过夜菜里有亚硝酸盐,吃了致癌」。预期是别糊成一锅,得一条条拆、一条条判、一条条给来源。跑完它拆出 4 条,逐条落判、逐条挂来源,一条没漏,也没把两条并成一条。这条最容易踩的坑是拆不干净——四条缠在一起,漏一条、并一条都算翻车,它没犯。

T1 过程图:一句里四条全拆开,疫苗、喝尿当场判失实,统计栏 3 失实 1 部分属实,一条没并

T2 全链路跑通。拆说法、查证、判定、汇总、出辟谣卡,整条链一次到底。预期是中间别断。结果是链条稳,一步没断,最后吐出一张能往回转的卡片。

T2 过程图:柿子配螃蟹整条判失实,挂辟谣平台、卫健委、科普中国 3 个来源,链条一次到底

T3 无障碍重排。让模型照无障碍的硬规矩把页面重排一遍。预期是字号不低于 15px、按钮 54px、判定不单靠颜色。结果它做到了——四种判定用图标加文字区分,红绿色盲也分得清,暖白底配一个深绿,没上紫渐变。这一步测的是它能不能听进一堆约束条件,而不只是会写页面。

T3 过程图:重排后的首页,字号、图标加文字、底部只剩「核查」「设置」两个口,老人点不错

T4 预扫到核查两步衔接。输入瞬间本地词典先命中预警,再点一下进深度核查。预期是两步接得顺。结果是本地预警秒出,深度核查接得上,中间不卡。这四条里的 T1、T2、T4 都调了模型深度核查、reasoning 全开,是真的花钱的,量级见下面那条总账。

T4 过程图:输入就触发本地预扫,黄色预警先跳「命中 2 条已知模式」,再点「开始核查」进深度,两步接得上

深度搜索与真实性

T5 时效性。我埋了个坑:把「酸性体质是百病之源」写成「十几年前的养生理论现在又流行回来」。预期是它别一看「老理论」就放行。结果它没顺这个「老」字走,判的是「部分属实」,理由是「确实是十几年前就被翻炒的老说法,但流行不等于有道理」,还主动提醒核对时效。它认得出旧瓶装新酒。这坑藏得浅,但一旦判错方向就是整条误判,它咬住了。

T5 过程图:埋坑输入——「酸性体质」写成十几年前的旧理论又流行回来,本地只命中 1 条

T6 派生骗局。一条是「高龄津贴 800 元」的政策信息,夹一句「点链接领补贴」。预期是别只看津贴数字,把派生的骗局一起抓。结果它连「点链接领补贴」一起判失实,没放过那个诈骗尾巴。

T6 过程图:高龄津贴那条,「点链接领补贴」的诈骗尾巴一样判失实,没放过,来源挂政府网、民政部

T7 无法核实。给它一条查不到出处的话。预期是查不到就直说,别硬编来源。结果它老老实实标了「无法核实」,没编链接。这条的槽点在于「无法核实」这结果对老人不好消化,得靠辟谣卡补一句「先别转,问问子女或医生」才落地。这三条也全是模型深度核查,每条都是那个「几百秒、上万 token」的量级。

T7 过程图:祖传秘方这条标了「无法核实·先别转」,没硬编来源;「三副药根治」判失实

工具调用与复杂任务

T8 结构化 schema。submit_report 这个函数工具把输出结构焊死,只留 claims、elder_card、notes 三个字段。预期是它一个字都别出 schema。结果报告工工整整,字段一个不差,格式没跑偏。这也是后面所有深度核查能稳定吐报告的底座。

T8 过程图:submit_report 焊死的报告,每条带判定、把握度、来源,一个字段没出 schema

T9 多档分类。几条定性完全不同的话混着进,每条得各落各的档。预期是四档各归各位,别全糊成一个结论。结果一次出了 2 条失实、2 条部分属实、0 属实、0 无法核实,分得清清楚楚。

T9 过程图:过夜菜批里夹了「酸性体质」,2 失实 2 部分属实各落各档,没糊成一锅

T10 噪声过滤。给句正常话「西瓜三块五一斤」。预期是 0 命中 0 信号,别误伤。结果就是 0 命中 0 信号。这条最要紧——早先预扫用单字匹配时翻过车,把「过夜菜」误命中到微波炉、味精上,后来改成纯正则精确匹配才压住。这三条里的 T8、T9 走模型,T10 只走本地词典、不耗 token。

T10 过程图:本地只按正则精确匹配,「西瓜冷藏过夜」这种正常话没被误判成谣言,0 命中 0 信号

视觉理解与长程规划

T11 上传截图拆说法。这轮直接对应上面图 4。传一张群截图,图里「微波炉热饭会产生辐射」和「会致癌」挤在一条里。预期是拆成两条、分开判。结果真拆成两条:前一条判「属实」、后一条判「失实」,各自给了把握度和来源(WHO、美国 FDA)。细到这个程度,是我最满意的一条。深度核查,又是几百秒、上万 token。

T11 过程图:截图里的「微波炉有辐射」与「会致癌」拆成两条,前属实、后失实

T12 本地预扫·经典。「吃过夜食物会致癌,赶紧扔」。预期是命中已知谣言。结果命中 1 条谣言、抓到 2 个话术信号,判失实并挂 2 个来源。这条不调模型,0 token,秒出。

T12 过程图:过夜菜命中已知谣言,判失实挂辟谣平台、科普中国 2 个来源,0 token 秒出

T13 本地预扫·复合。「微波炉致癌」加「味精脱发」两条混一句。预期是精确命中两条。结果精确命中 2 条、话术信号 1 个也抓到。同样是 0 token,本地词典纯白干、不耗一分额度。

T13 过程图:本地预扫一次命中 2 条谣言模式,复合说法一条不落

T14 长程规划。每次核查都存本地,谣言库越用越厚。预期是历史能积累、能导出导入。结果历史记录里四条说法各带时间戳,能存能导。这步纯本地存储,不花模型钱。

T14 过程图:本台核查记录,四条历史各带时间戳,能导出导入,谣言库越用越厚

T15 模型自查。web_search 挂上去,API 跑通返回成功。预期是看它到底联网没有。结果是它拆了说法、给了来源、判了失实,可自查字段里写着「未实际联网检索」。它没真联网,也没装自己搜过。这是全文最想让评委看到的一条。

T15 过程图:报告给了权威来源、判了失实,可 notes 自查写着未实际开放联网检索

算总账。深度核查那几条,每条都是几百秒、上万个 token——真实记录里「过夜菜」那一轮就是 307 秒、11251 token,其中 9517 全花在推理上,模型把亚硝酸盐剂量、GB2762 限值、冷藏条件下的实测挨个推演了一遍才下结论;本地预扫那几条是 0 token、0 秒、不耗额度。想一条条对着看,这 55 张过程截图都在仓库 screenshots/cases 里。

5

两层结构,一次翻车,一次诚实的核对

鉴谣台是两层。第一层是本地预扫词典,输入就查、秒出预警,不花一分钱额度。第二层才是深度核查,走模型推理加结构化报告。

图 4,本地预扫。输入即命中「酸性体质」已知谣言模式,秒出预警,再点按钮让模型深度核查

翻车照说不误。我手上是火山方舟 Agent Plan 的专属 Key,一开始拿普通按量付费的地址去调,连着 401。折腾五六轮才发现 Agent Plan 有自己的 endpoint(/api/plan/v3),换了地址才通。接着又卡一次:Responses API 的工具格式跟 Chat API 不一样,函数工具的名字要放顶层,不能嵌在 function 对象里,报了 MissingParameter,改成扁平格式才过。

最有意思的在最后。我把 web_search 挂上去,API 跑通返回成功,模型拆出说法、给了权威来源、判了失实。可它自己的自查里写着:「未实际联网检索,所附为权威机构官网首页,不是具体辟谣文章链接。」

Agent Plan 的 web_search 没真触发。模型靠的是自己学过的知识给判定和来源,还主动标了这一点,没装自己真搜过。这反而让我更信它。哪天 web_search 在 Agent Plan 上开了,前端一行不用改,自动升级成真联网。

图 6,两轮真实调用数据。本地预扫三条用例不误伤;深度核查 307 秒、11251 total token(9517 reasoning),全程本机截图存档

6

它不完美的地方

最大的一块,是 web_search 没在 Agent Plan 上真触发。来源是模型自己的知识,不是实时检索,要真联网得换普通按量付费的 Key。

再就是速度。深度核查一轮要 1 到 5 分钟,放家庭群里太慢了。后面得做成预扫秒出,快速核查压到 30 秒以内才像话。

本地词典也薄。就过夜菜、微波炉、味精这几类最经典的,新的、地方性的谣言只能判「无法核实」,往后丢给联网。

还有健康类的判定,永远留一道人工闸。输出里固定一句「涉及健康请遵医嘱」,模型再准也不能替医生下结论。

7

从博物馆到鉴谣台

上次做博物馆,我想的是 AI 能帮人留住什么。这次做鉴谣台,我想的是 AI 能帮人挡住什么。

上次想留住感情,这次想挡住坑。老人被骗几个钱倒还好,最受不了的是连一条消息都分不清真假。

我要做的,是把子女从一条条辟谣的体力活里拽出来,让「这是谣言」这句话说出口时有底气、有出处,还带着一张对方愿意转回去的卡片。

代码我开源了,Node 单文件后端加一个零构建的移动端页面,npm start 就能跑。成果我不敢打包票,但至少现在,再有亲戚转「致癌」那类消息,我手里有东西能甩过去了。

GitHub 仓库:github.com/GoodTimeGGB/jianyaotai

项目用 Doubao-Seed-Evolving 在 Trae 里做的,8/27 版。文里那些判定、来源、自查都是真跑出来的记录,截图也来自本机实际运行。Agent Plan 的 endpoint 是 /api/plan/v3,Key 没写进任何文件。健康问题以医生和权威机构为准。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询