毕业老学长给我留的最后一句话是:“AI 写的,别挂我名。” 我直接 神(Trae + Seed Evolving) 来!助我!并不只看表面做法,关键还要理解相关条件、限制和后续影响。

随着生成式 AI 快速发展,它已经越来越多地进入科研工作:帮我们读论文、整理资料、提取数据,甚至辅助写作。AI 的确可以让很多事情变得更快,但对于科研工作者来说,效率永远不能排在科研诚信前面。
尤其是在材料研究中,一个看起来很普通的数据,背后可能对应着具体的材料体系、制备工艺、测试温度、测试方法和实验条件。如果 AI 在提取过程中出现幻觉,给出了一个“看起来很像真的”数值,却没有可靠出处,我们很容易在不知情的情况下引用错误数据,甚至进一步带来科研诚信风险。
所以我一直在想:既然我们无法保证 AI 永远不产生幻觉,那能不能换一种思路——不要求它永远正确,但要求它说出的每一条材料数据,都必须有出处、有条件、可复查。
于是,我用 Seed Evolving 做了一个材料文献数据提取与核验 Agent——MatTrace。
用户只需要上传论文,AI 就会按照我设计的 Skill 完成文献解析、数据提取、条件核验、证据绑定和结构化整理。与其让 AI 直接告诉我“答案是什么”,我更希望它告诉我:这个答案从哪里来、依据是什么,以及哪些地方它其实并不确定。
以前我也很喜欢分享提示词。
比如怎么让 AI 写得更像人,怎么让 AI 帮我改代码,怎么让 AI 整理资料。
但这次做完 MatTrace 之后,我感觉提示词只是很小的一部分。
真正有价值的不是“我怎么问 AI”,而是:

所以这次我做的不是一个单纯的聊天页面,而是一个材料文献数据抽取 Skill,再配一个可以在线演示的 Agent。
用户上传论文以后,AI 会按照这个 Skill 的规则去处理文献,然后把材料组成、性能指标、测试条件、来源页码、缺失字段、可信度和证据链都整理出来。
AI 幻觉这个问题,大家都知道。
它会一本正经地编引用、编结论、编数据。有时候你不仔细查,还真看不出来。
但我觉得,解决 AI 幻觉不一定只靠“让模型更聪明”。
还有一种办法更直接:
在 MatTrace 里,一条材料数据不是只输出:
“这个材料的离子电导率是 1.2 × 10^-3 S/cm。”
而是要继续说明:

这样一来,AI 就很难靠一句“我觉得”蒙混过去。
它可以提取,但不能随便补全。
它可以总结,但必须留下证据。
它可以发现冲突,但不能静默覆盖。
这就是我做这个 Skill 的出发点。
本项目通过 Github 和 Cloudflare Worker 成功部署上线:lucianaib2004.github.io/mattrace-de…
进入 Demo 后,首页是一个材料文献工作台。
左边是导航,中间是文档工作区和分析结果,右边是证据链预览、缺失条件提醒、冲突检测和导出报告。
它不是一个普通的“你问我答”聊天框。
我更希望它像一个科研工作台:你把文献放进去,它一步一步告诉你自己做了什么。

进入页面后,可以先载入公开论文,也可以上传自己的 PDF、DOCX、TXT 或 Markdown。
我在 Demo 里内置了几篇真实公开论文,方便用户不用找文件也能直接体验。
载入文献以后,用户可以自己勾选想分析哪几篇。
点击“开始真实分析”以后,它会按六个阶段往下跑:
最后得到的不只是一个答案,而是一张带证据的数据表。
每一行数据都能看到材料体系、制备工艺、性能指标、数值、测试条件、来源文档、页码和可信度。

这次项目里我还专门做了一个 Skill 管理界面。
这里不是只放一个 SKILL.md。
我把完整 Skill 文件夹都放进去了,包括:

这样用户不只是看到“这个页面能跑”,也能看到背后那套 Skill 到底长什么样。
模型配置这里支持用户输入自己的 API Key。
Key 只保存在当前浏览器,不会写进项目、不进导出报告,也不会上传到 GitHub。
目前我主要接入了火山方舟 Agent Plan,模型用的是 doubao-seed-evolving。另外也支持 ChipCloud 和自定义 OpenAI-compatible 接口。
这里还有一个上线时遇到的小坑。
这个 Worker 不保存 Key,也不是开放袋里,只解决浏览器 CORS 的问题。用户自己的 Key 还是由用户自己输入、自己调用。

使用这个模型,主要它一直保持的是一张永远"最新"的模型卡片,就在一周前,它依旧一直在更新。

这是它 8 月 1 日进行的一次更新:
与我这次降低 AI 幻觉风险的目标非常契合,我觉得可以使用我抵消 AI 幻觉的办法,加上模型的抵消 AI 幻觉,达到一个双抵消幻觉的效果。

材料文献抽取不是简单问一句“帮我总结一下论文”。
它需要:
这个过程很像一个小型科研助理在做数据整理,而不是单轮问答。
我选择 Seed Evolving,也是因为我希望它在这个过程中更稳一点:少一点瞎编,少一点硬凑,多一点“我检查过什么、我没找到什么、我为什么这么判断”。
之前我看到的一些测试里,Seed Evolving 在幻觉控制、工具调用、抗误导、状态保持这些方面都有改善。比如有些任务里,它会更愿意说明自己没有验证到,而不是为了完成任务去编一个看起来漂亮的结论。
这点和 MatTrace 的思路很一致。
科研数据里,承认没找到,比编一个答案更重要。
使用 Trae Work CN 无缝衔接 Agent Plan。
我们只需要 Trae Work CN 添加 API 密钥以及选择的模型即可。


在Trae进行项目启动项目:

工具确实强大,帮我发现了一些不少我之前没有发现的问题
以前我觉得 AI 项目最重要的是“模型能力”。
模型越强,效果越好。
但这次做完以后,我感觉真正落地时,模型只是其中一环。
一个能给用户用的 AI 工具,还要考虑很多细节:
这些东西看起来不像“AI 能力”,但它们决定了用户会不会真的使用。
尤其是科研场景,不能只追求“生成得快”。
如果一个工具生成得很快,但用户不敢相信,那它还是没用。
普通论文总结工具更像是在回答:
MatTrace 更像是在追问:
所以它有几个我自己比较满意的点。
第一,它要求每条数据都有证据链。
没有来源、没有页码、没有原文片段的数据,不能当成高可信结果。
第二,它会记录每篇文档的处理状态。
如果一篇文档没有抽到数据,也要说明是没找到、失败了,还是被取消了。不能只展示有结果的部分。
第三,它会做缺失条件提醒。
比如温度没写、测试方法没写、样品状态没写,这些都会被标出来。
第四,它会做可比性判断。
不是所有数字都能放在一起比较。不同温度、不同测试方法、不同样品状态下的数据,直接比较很容易误导。
第五,它能导出结果。
JSON、CSV、Markdown 都可以导出,后续可以继续整理、复查、写报告。
这点我觉得必须说清楚。
MatTrace 不是想证明“AI 可以替科研人判断一切”。
恰恰相反,我想做的是让 AI 的输出更容易被人检查。
AI 可以帮我读文献,可以帮我整理数据,可以帮我找证据,但是最后该不该采用这条数据,还是要人来判断。
所以我没有把重点放在“让 AI 说得更像专家”。
我更想让它说清楚:
这才是我觉得 AI 在科研里比较健康的姿势。
目前 Demo 已经上线:
lucianaib2004.github.io/mattrace-de…
用户可以打开页面后:

如果只是想看项目结构,也可以看开源 Demo 仓库:
github.com/LucianaiB20…
这个仓库里包含网页端完整代码。
这次项目最开始,只是因为一句话:
但做到最后,我反而觉得这句话说得挺对。
不是说 AI 不能用,而是不能让 AI 变成一个没人负责的黑箱。
如果 AI 帮我们写东西、整理数据、生成结论,那它至少应该告诉我们:
证据在哪里。
条件是什么。
哪里不确定。
哪里需要复核。
所以我做了 MatTrace。
它不一定是一个很大的项目,但它表达了我现在对 AI 工具的一个想法: