毕业老学长给我留的最后一句话是:"AI 写的,别挂我名。" 我直接 神(Seed Evolving) 来!助我!
毕业老学长给我留的最后一句话是:"AI 写的,别挂我名。"
那我就做一个让 AI 提取的每一条材料数据,都能被追溯、被质疑、敢挂名的工具。

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

所以这次我做的不是一个单纯的聊天页面,而是一个材料文献数据抽取 Skill,再配一个可以在线演示的 Agent。
用户上传论文以后,AI 会按照这个 Skill 的规则去处理文献,然后把材料组成、性能指标、测试条件、来源页码、缺失字段、可信度和证据链都整理出来。
换句话说,AI 不只是"回答我",而是要"带着证据回答我"。
3.我想解决的其实是 AI 幻觉
AI 幻觉这个问题,大家都知道。
它会一本正经地编引用、编结论、编数据。有时候你不仔细查,还真看不出来。
但我觉得,解决 AI 幻觉不一定只靠"让模型更聪明"。
还有一种办法更直接:
你说什么都可以,但你必须给我证据。
在 MatTrace 里,一条材料数据不是只输出:
"这个材料的离子电导率是 1.2 × 10^-3 S/cm。"
而是要继续说明:
- 出自哪篇文档
- 在第几页
- 原文证据是什么
- 单位是什么
- 测试温度是多少
- 测试方法有没有写清楚
- 这条数据可信度为什么是高、中或低
- 如果条件缺失,缺了什么

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

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

4.3 Skill管理
这次项目里我还专门做了一个 Skill 管理界面。
这里不是只放一个 SKILL.md。
我把完整 Skill 文件夹都放进去了,包括:
- 任务描述
- 输入输出 Schema
- 单位规范化规则
- 失败案例
- 输出示例
- 核心脚本
- 可导出的完整 Skill ZIP

这样用户不只是看到"这个页面能跑",也能看到背后那套 Skill 到底长什么样。
4.4 配置设置
模型配置这里支持用户输入自己的 API Key。
Key 只保存在当前浏览器,不会写进项目、不进导出报告,也不会上传到 GitHub。
目前我主要接入了火山方舟 Agent Plan,模型用的是 doubao-seed-evolving。另外也支持 ChipCloud 和自定义 OpenAI-compatible 接口。
这里还有一个上线时遇到的小坑。
本地跑的时候可以直接走本地代理,但线上 GitHub Pages 是纯静态页面,没有后端服务。火山方舟 Agent Plan 的接口又会拦截浏览器里的 Authorization 请求头,所以线上会出现
Failed to fetch。 解决办法:最后我用 Cloudflare Worker 做了一个固定白名单中转。
这个 Worker 不保存 Key,也不是开放代理,只解决浏览器 CORS 的问题。用户自己的 Key 还是由用户自己输入、自己调用。

本项目已完全开源,感兴趣的可以获取项目,然后进行二改:github.com/LucianaiB20...
5. 技术栈
5. 1 Seed Evolving
使用这个模型,主要它一直保持的是一张永远"最新"的模型卡片,就在一周前,它依旧一直在更新。

这次为什么选 Seed Evolving?
这是它 8 月 1 日进行的一次更新:
- Coding 工程能力大幅提升:复杂仓库修复、跨文件修改、真实功能开发和长程工程任务表现更好,复杂任务执行更稳定
- Agent 检索能力显著增强:信息检索、缺失信息召回、搜索结果整合更好,多工具并行调用与结果回传更稳定
- 幻觉控制能力明显改善:搜索幻觉、工具调用幻觉、抗误导与状态幻觉均改善,更少基于错误结果继续作答
与我这次降低 AI 幻觉风险的目标非常契合,我觉得可以使用我抵消 AI 幻觉的办法,加上模型的抵消 AI 幻觉,达到一个双抵消幻觉的效果。

材料文献抽取不是简单问一句"帮我总结一下论文"。
它需要:
- 先读文档
- 再找材料数据
- 再按格式输出
- 再绑定页码和原文
- 再检查缺失条件
- 再判断是否能比较
- 最后生成结构化报告
这个过程很像一个小型科研助理在做数据整理,而不是单轮问答。
我选择 Seed Evolving,也是因为我希望它在这个过程中更稳一点:少一点瞎编,少一点硬凑,多一点"我检查过什么、我没找到什么、我为什么这么判断"。
之前我看到的一些测试里,Seed Evolving 在幻觉控制、工具调用、抗误导、状态保持这些方面都有改善。比如有些任务里,它会更愿意说明自己没有验证到,而不是为了完成任务去编一个看起来漂亮的结论。
这点和 MatTrace 的思路很一致。
科研数据里,承认没找到,比编一个答案更重要。
5.2 Claude Code + CC Switch
使用 CC Switch 在 Claude Code 无缝衔接 Agent Plan。
我们只需要 CC Switch 输入请求地址和 API 密钥以及选择的模型即可。

Claude Code 极速接入指南
配置环境变量 ANTHROPIC_BASE_URL:
https://ark.cn-beijing.volces.com/api/compatibleANTHROPIC_AUTH_TOKEN:获取 API Key → ANTHROPIC_MODEL:doubao-seed-evolving1 打开配置文件 vim ~/.claude/settings.json 2 编辑配置文件 将<ARK_API_KEY>替换为火山方舟控制台实际生成的 API Key: { "env": { "ANTHROPIC_AUTH_TOKEN": "<ARK_API_KEY>", "ANTHROPIC_BASE_URL": "ark.cn-beijing.volces.com/api/compati...", "ANTHROPIC_MODEL": "doubao-seed-evolving" } } 3 使设置生效 保存配置文件并退出编辑后,打开一个新的终端窗口加载配置。 4 在项目根目录使用 Claude Code 进入项目目录并启动 Claude Code: cd my-project claude 启动后输入/status确认模型连接状态。
6. 做这个项目时,我最大的感受
以前我觉得 AI 项目最重要的是"模型能力"。
模型越强,效果越好。
但这次做完以后,我感觉真正落地时,模型只是其中一环。
一个能给用户用的 AI 工具,还要考虑很多细节:
- 文件怎么上传
- PDF 怎么预览
- 文本解析够不够完整
- 用户能不能选择多篇文档
- 失败以后有没有原因
- API Key 会不会泄露
- 线上能不能真的调用
- 导出的结果能不能复查
- 页面是不是一眼能看懂
这些东西看起来不像"AI 能力",但它们决定了用户会不会真的使用。
尤其是科研场景,不能只追求"生成得快"。
如果一个工具生成得很快,但用户不敢相信,那它还是没用。
7. MatTrace 和普通论文总结工具有什么不同
普通论文总结工具更像是在回答:
这篇论文讲了什么?
MatTrace 更像是在追问:
你提取的这个数据,凭什么可信?
所以它有几个我自己比较满意的点。
第一,它要求每条数据都有证据链。
没有来源、没有页码、没有原文片段的数据,不能当成高可信结果。
第二,它会记录每篇文档的处理状态。
如果一篇文档没有抽到数据,也要说明是没找到、失败了,还是被取消了。不能只展示有结果的部分。
第三,它会做缺失条件提醒。
比如温度没写、测试方法没写、样品状态没写,这些都会被标出来。
第四,它会做可比性判断。
不是所有数字都能放在一起比较。不同温度、不同测试方法、不同样品状态下的数据,直接比较很容易误导。
第五,它能导出结果。
JSON、CSV、Markdown 都可以导出,后续可以继续整理、复查、写报告。
8. 我不是想让 AI 替科研人负责
这点我觉得必须说清楚。
MatTrace 不是想证明"AI 可以替科研人判断一切"。
恰恰相反,我想做的是让 AI 的输出更容易被人检查。
AI 可以帮我读文献,可以帮我整理数据,可以帮我找证据,但是最后该不该采用这条数据,还是要人来判断。
所以我没有把重点放在"让 AI 说得更像专家"。
我更想让它说清楚:
- 我从哪里看到的
- 我检查了哪些页面
- 我发现了什么
- 我没找到什么
- 哪些地方需要人工复核
这才是我觉得 AI 在科研里比较健康的姿势。
9. 上线以后,项目现在能体验什么
目前 Demo 已经上线:
lucianaib2004.github.io/mattrace-de...
用户可以打开页面后:

- 载入公开论文
- 打开模型配置
- 输入自己的 API Key
- 选择要分析的文档
- 点击开始真实分析
- 查看证据链、缺失条件和导出报告
如果只是想看项目结构,也可以看开源 Demo 仓库:
这个仓库里包含网页端完整代码。
10. 最后
这次项目最开始,只是因为一句话:
"AI 写的,别挂我名。"
但做到最后,我反而觉得这句话说得挺对。
不是说 AI 不能用,而是不能让 AI 变成一个没人负责的黑箱。
如果 AI 帮我们写东西、整理数据、生成结论,那它至少应该告诉我们:
证据在哪里。
条件是什么。
哪里不确定。
哪里需要复核。
所以我做了 MatTrace。
它不一定是一个很大的项目,但它表达了我现在对 AI 工具的一个想法:
好的 AI 工具,不只是帮人更快地产出内容,也要帮人更容易地承担责任。
