乐于分享
好东西不私藏

电脑里两千多个文件找不到,我让 Seed Evolving 做了个个人资料管家

电脑里两千多个文件找不到,我让 Seed Evolving 做了个个人资料管家

电脑里的文件多到一定程度以后,整理已经不是建几个文件夹能解决的了。

实现

Downloads 里混着 PDF、Word、Markdown、图片和压缩包。需要某份资料时,脑子里往往只记得其中一句话,文件名却完全想不起来。用系统搜索碰运气,搜不到就继续翻目录。好不容易找到,又不敢交给所谓的“自动整理工具”:万一它顺手改了文件名、挪了目录,甚至删错东西,麻烦比找不到还大。

这不是程序员才有的烦恼。做方案的人会攒合同和报告,学生会攒论文和课件,老师、研究人员、内容创作者的电脑里也都有一座越堆越高的资料山。

正好 Seed Evolving 完成了一次升级,官方提到的变化集中在 Coding 工程能力、Agent 检索和幻觉控制。我不太想再看一遍参数,更想知道这些升级落到真实任务里是什么样。于是给它出了个题:从零做一个本地“个人资料管家”。

Seed Evolving 本次能力升级

这次还是通过火山方舟 Agent Plan 使用 Seed Evolving。我买的是 Medium 档,购买时是 49.9 元一个月,套餐页面显示的额度为 5 小时 10000 AFP、每周 35000、每月 100000。除了 Seed 系列,套餐里还能切换 GLM、MiniMax、DeepSeek、Kimi 等模型,临时想换一个模型验证结果,不需要重新接一套工具。

接入时有个很容易忽略的地方:Agent Plan 使用专属 API Key,它和普通按量计费的 Key 不是同一把。拿旧 Key 配上去,请求可能照样能跑,但费用会走按量计费,订好的套餐并没有被使用。Base URL 也要对应协议:Anthropic 协议是 https://ark.cn-beijing.volces.com/api/plan,OpenAI 协议是 https://ark.cn-beijing.volces.com/api/plan/v3,少了中间的 plan 同样会走到另一套计费入口。

先把“不能做什么”说清楚

最初的需求很短:电脑里的下载文件、PDF、Markdown 和 Word 越来越多,经常找不到需要的资料;同时不敢让工具直接删除或移动原文件。

Seed Evolving 没有立刻开始搭界面。它先把产品边界拎了出来:工具默认只读,扫描、提取、建索引、搜索和预览都不能改原文件;标签、备注、收藏只写进应用自己的数据库;涉及原文件的操作必须再次确认。

把真实痛点交给模型

接着它追问了四件事:桌面端准备用什么技术栈,搜索先做到什么程度,原文件操作的安全边界放在哪里,第一版先扫描哪些目录。

我选了 Tauri,搜索先做全文检索,危险操作逐条确认,目录从 Downloads 和手动添加的文件夹开始。确认完这些,它才给出实施计划。

模型先追问方案再制定计划

这个停顿挺关键。需求里只有一句“不敢让工具删除或移动文件”,它没有把这句话当成普通偏好,而是把它落实成了整个项目的安全模型。后面无论是标签、收藏还是预览,都没有绕开这条边界。

项目从一个空目录开始。技术组合最后定为 Tauri 2、Rust、React、TypeScript 和 SQLite FTS5。Rust 负责扫描文件和提取正文,SQLite 存元数据、索引、标签与收藏,前端只负责搜索和查看。

项目开始实现并生成说明文档

写到可以运行时,Seed Evolving 主动停下来同步进度。后端被拆成数据库、分词、正文提取、增量索引和 Tauri Commands;前端已经有搜索栏、类型筛选、结果列表、详情和设置面板。它给出的记录里还列出了 20 个已经通过的测试,并说明 release 构建尚未完成,因为当时被我打断了。

这句“还没跑完”比一句笼统的“项目完成”更可信。长任务里最怕的不是慢,而是模型把写完代码当成验证完成。

同步当前实现和测试进展

能跑还不算完,它开始自己挑问题

我只说了一句“可以先跑一下让我看看效果”。编译完成、窗口弹出后,我还没开始找问题,它先从启动日志里指出 Rust 端和 npm 端的 Tauri 版本不一致。这个警告暂时不影响启动,但继续放着可能给 IPC 留下问题。它还主动说明:图片型 PDF 没有文本层,当前只能标记为“提取失败”,并没有把“支持 PDF”说成所有 PDF 都能识别。

实际启动程序并说明发现的问题

它没有停在“窗口能打开”这里,而是继续跑扫描。过程中遇到一个使用 UniGB-UCS2-H 编码的中文 PDF,pdf-extract 直接 panic。更麻烦的是扫描还在主线程上,这一个文件足以让整个应用退出**。这个问题不是我把报错贴给它以后才定位的,而是它在运行、读取日志和检查扫描结果时自己撞出来的。

Seed Evolving 没有把坏文件简单排除,而是在 PDF、DOCX 解析外包了一层 catch_unwind。单个解析库崩溃后,该文件被记为“提取失败”,扫描继续处理其他文件。对于真实的 Downloads 目录,这种容错比演示环境里的全绿结果有用得多,谁也不知道里面会混进什么年代、什么编码的文档。

运行中发现特殊编码 PDF 导致的崩溃

修复后应用重新启动,同时把 Tauri 两端版本对齐。它交代得很具体:修了什么、为什么会崩、失败后现在会怎样处理。从主动检查到定位、修改、重新启动,这次没有等我逐步追问。图片型 PDF 依然不能抽正文,这个限制也原样保留。

修复崩溃并重新运行

接下来才是我实际使用时发现的问题:界面一直显示“开始扫描”,结果里似乎只有 Downloads,另外添加的目录没有动静。

这次它没有只盯着前端按钮猜。先查数据库里到底存了什么,再对照监控目录和已有索引,发现了两个问题:监控目录列表已经为空,但旧索引还保留着 2495 个文件;前端把状态改成“开始扫描”后,后端遍历到零个目录直接返回,没有完成事件把状态复原。如果添加的是整个用户主目录,还会撞进 Library、Applications、废纸篓等庞大或受权限限制的目录。

根据实际现象检查数据库和扫描状态

这一段很能体现 Agent 检索能力的变化。它不是在网页上多搜几条资料,而是在项目现场把界面现象、数据库状态、目录配置和索引逻辑串起来,再从矛盾里找原因。答案不是“可能是权限问题”这种万能句,而是能落到具体状态和代码的判断。

五个角色同时挑毛病

功能能跑,不代表适合长期放在电脑里。我又把当前项目分给五个角色同时检查:代码是否符合既定 Skill 规范,文件和路径操作是否安全,功能有没有对应测试,真实用户流程是否顺畅,以及 README 和代码是否一致。

要求也写得很死:先只审查,不要改代码;每个结论要带严重程度、文件位置、事实证据、验证状态和是否建议修复。

五个角色并行开始审查项目

五个角色一共给出 47 条原始发现,去重合并后剩下 24 类。排在前面的不是样式问题,而是几处会真正影响使用的风险:move_to_trash 可以接收任意路径、数据库文件权限过宽、扫描时长时间持有全局锁、搜索和详情状态陈旧、标签与备注存在交互问题,以及确认按钮可以重复点击。

其中“移入废纸篓”尤其刺眼。前端有确认弹窗,但后端没有限制传入路径必须属于已索引或已监控范围。界面上的确认只能防误触,不能当安全边界。这个结论正好回到了最开始那句“不敢让工具乱动文件”。

多 Agent 审查汇总和关键风险

审查只负责把问题找全、排好顺序,没有假装这些问题已经修完。随后我让 Seed Evolving 开一个 Loop,按“安全和崩溃、扫描和交互、代码清理”的顺序推进,每批修改后都要跑测试再继续。

Loop 先从分词器里两个容易出错的点动手:连字符会让 FTS 查询出现否定或列分隔误判,摘要生成时的字符串边界也可能越界。它先调整实现,再继续处理下一批问题。这里能看到的只是 Loop 开始和第一批修改,因此我没有把后面的所有审查项都算成“已经解决”。

根据审查结果开启 Loop 分批优化

最后做出来的,不是自动整理器

应用最终保持了最初的样子:它更像一张本地资料索引,而不是一个替我决定文件去向的管家。

标签颜色和名称可以自己建,但标签只存在应用数据库里,不会写回原文件。这样既能给工作资料、临时文件做分类,也不会污染文件内容或改变目录结构。

在应用数据库里管理标签

需要管理哪个目录,就在设置里手动添加。这里把 Downloads 加入监控后,界面明确显示了目录路径和“已添加”状态。移除监控也不会顺手删除已经建立的索引,更不会动原文件。

添加需要监控的文件夹

扫描完成后,顶部保留了原始数据:2495 个文件、1.9 GB,其中 232 个成功提取正文,6 个失败。失败没有被藏起来。它们可能是图片型 PDF、特殊编码或损坏文件,至少现在能知道哪些文件没有进入全文索引。

左侧可以按 PDF、Word、Markdown 和文本筛选。切到 Markdown 后显示 188 个结果,正文摘要直接铺在列表里;深色模式也能正常切换。

按 Markdown 类型筛选已索引资料

点开文件后,右侧会显示类型、大小、修改时间和路径,正文可以直接预览。需要回到原文件时,可以在 Finder 中定位或交给默认程序打开,不用再沿着目录一层层翻。

查看文件详情和正文预览

经常用的资料可以收藏。收藏状态仍然只写进本地数据库,列表里会留下星标,不改变原文件。这些功能看起来都不复杂,但它们共同解决了一个实际问题:资料仍在原来的地方,我只是终于能找到它们了。

把常用资料加入收藏

这次升级,落在了哪些地方

回头看完整个过程,新版 Seed Evolving 的变化并不只体现在代码写得更快。

Coding 工程能力落在了跨技术栈的持续推进上。从 Tauri、Rust 到 React、SQLite FTS5,它不仅搭出界面,还处理了正文提取、增量索引、分词、状态同步和测试。中间遇到特殊编码 PDF、版本不一致和扫描状态卡住,也没有推倒重写。

Agent 能力落在了查问题的方式上。收到一句“为什么一直显示开始扫描”后,它会去核对数据库、目录配置和前后端状态;多 Agent 审查时,不同角色能同时沿着安全、测试、交互和文档继续往下挖,再由主流程去重汇总。

幻觉控制则藏在那些没有被说满的地方:release 构建被打断,就写尚未完成;图片型 PDF 没有文本层,就承认当前无法提取;多 Agent 只完成了审查,就不把 24 类问题都算成已修复;没有实际验证的状态,继续保留为风险。

它最终做出来的工具也没有被包装成“替所有人自动整理电脑”。它做的是一件小得多、也更可靠的事:在不碰原文件的前提下,给散落的本地资料建一份可搜索、可预览、可标记的索引。

电脑里那两千多个文件还在原来的地方。不同的是,下次只记得文档里的一句话时,不必再从 Downloads 第一页开始翻了。