一个整理下载文件夹的工具,最反直觉的设计是:不让AI碰文件。SlothDesk把语言模型当成"不可信的推理引擎",而不是能随手改文件的执行者。模型没有写权限,不能跑shell命令,也不能执行动态Python脚本,手里只有3个只读的元数据检查工具。

打开网易新闻 查看精彩图片

下载文件夹是公认的黑洞,发票、设计素材、压缩包、代码脚本、固件混在一起。市面上的工具通常走两个极端:一类是死板的正则脚本,遇到边缘情况就崩,还逼你遵守固定命名;另一类是云端AI工具,把私人文档和文件名上传到第三方API,再按月收订阅费。SlothDesk选了第三条路——完全离线运行。

文件改动和AI推理,在架构上被彻底分开

不少AI文件整理器会给模型直接写文件的能力或shell权限,模型一旦产生幻觉或遇到模糊上下文,文件可能被永久删除。SlothDesk的做法是把风险掐断在权限层:

  • 模型零执行权限,只给3个只读工具:get_file_metadata、get_allowed_categories、validate_category
  • 操作严格锁在配置的SLOTHDESK_ROOT内,含".."的路径、绝对盘符、符号链接一律拒绝
  • 目标文件已存在或计划内重名时,自动解析为{name}_{counter}{ext},例如invoice_october_1.pdf,绝不覆盖
  • 扫描时计算每个文件的SHA-256哈希和字节大小,执行时重新校验;等待审批期间被改动或删除的文件直接跳过
  • 每次批准的移动都生成不可变的JSON审计清单,支持一键回滚

先出方案,再等用户点头

点击"扫描并生成方案"后,系统通过LM Studio调用smolagents。每个文件会得到一个带颜色标识的分类徽章、目标路径预览、模型给出的理由,以及自动的重名处理结果。分类目录固定为Documents、Images、Videos、Audio、Archives、Code、Other七类。

在用户明确查看方案摘要和安全检查清单、并在弹窗中确认之前,没有任何文件会被改动。执行历史里每次移动都对应一份审计清单,点"撤销操作"即可把文件还原到原始根目录位置。

离线时也不假装AI在工作

LM Studio运行时,面板显示Local AI: qwen2.5-7b-instruct及工具推理状态;LM Studio离线时,系统自动切换到确定性的规则兜底引擎。SlothDesk不会在兜底生效时谎称用了AI模型。

技术栈方面,后端是Python 3.11加FastAPI,配合Pydantic做校验;前端是React 19加TypeScript,Vite 6负责构建和反向代理;部署走Podman无根容器流程;测试用pytest写了28个单元、API、agent和安全测试。本地推理跑在消费级硬件上,配置为NVIDIA RTX 5050笔记本GPU、8GB显存。

项目采用MIT协议开源,仓库地址为github.com/Ani0811/slothdesk,另附架构说明、安全测试报告和演示脚本三份文档。按DEV社区规范,该项目声明了ai_disclosure_level: some_ai。