我的下载文件夹,终于自己会整理了
上周我打开自己的下载文件夹,差点当场崩溃:三百多个文件横七竖八躺在里面,有三个叫"新建文档(3).docx"的,五个"IMG_20231015"的照片,十六个PDF文件跟二十几个乱七八糟的压缩包挤在一起。我一直想整理,但每次打开那个文件夹就脑壳疼。后来我决定把这件事丢给Hermes Agent去做——干脆训练个AI管家来管我的文件。今天就把这套玩法完整的分享给你,纯个人实战,不扯虚的。
先交代一下我的环境:macOS Sonoma,Python 3.10,电脑上文件乱得比较有代表性。安装Hermes特别简单,直接pip搞定:
pip install hermes-agent
装完第一件事,先把配置写好。Hermes的配置文件在~/.hermes/config.yaml,我把它打开,然后把默认工作区指向下载文件夹,顺便接上了DeepSeek的API当推理引擎。配置长这样:
ai:
provider: deepseek
model: deepseek-chat
api_key: sk-你的密钥
workspace:
directory: ~/Downloads
auto_confirm: false
注意最后那个auto_confirm,我故意关掉的。刚开始用AI操作文件,没点确认按钮就让它随便改东西,心里实在不踏实。后来这个决定救了我好几次,后面细说。
装好配置好后,我试着让它看一眼下载文件夹里有什么,命令是:
hermes run "看一眼Downloads目录的文件分布"
它统计出了12种文件类型,占据空间最大的居然是那些根本不知道什么时候下载的视频。那一刻我意识到,这件事找对人,但光靠聊天式的指令不够,得给它一套可以反复执行的规则。于是就有了下面的正经玩法。
给Agent写个"文件分类"技能,让它学会归类
Hermes里技能(skill)是可以长期复用的能力模块,放在~/.hermes/skills/下。我第一次写的时候就踩了坑:技能本质上就是个普通的Python脚本,却把自己绕晕了,搞出一堆yaml配置。其实不复杂,核心逻辑就是"看一眼扩展名,送给对应文件夹"。
我写了一个organize_by_type.py,里面定义了一个映射表:PDF、doc、docx全扔到Documents;jpg、png、raw全部进Images;zip、dmg这些打包的都挪到Archives;视频文件进Videos。用Pathlib遍历目标目录,遇到文件就按后缀查表、移动。代码关键部分不到40行:
category_map = {
'.pdf': 'Documents', '.doc': 'Documents', '.docx': 'Documents',
'.jpg': 'Images', '.jpeg': 'Images', '.png': 'Images', '.heic': 'Images',
'.zip': 'Archives', '.dmg': 'Archives', '.rar': 'Archives',
'.mp4': 'Videos', '.mkv': 'Videos', '.mov': 'Videos'
}
for f in source_dir.iterdir():
if f.is_file():
target = category_map.get(f.suffix.lower())
if target:
shutil.move(str(f), str(target_dir / target / f.name))
把这个脚本丢到skills目录,执行:
hermes run "执行organize_by_type技能,整理下载文件夹"
第一次跑成功的时候,我盯着屏幕看了好几秒:原本乱糟糟的下载目录,几分钟内就变成了Documents、Images、Archives、Videos几个整整齐齐的子文件夹。那个心情,就像终于有人帮我整理了积攒了一年的书桌。不过嘛,AI整理完之后也会有它的小脾气:它把两张扩展名是.png但实际上是截图的文件,跟我画画的草稿文件放在了一起。这让我明白,规则越明确,结果越可控。
批量重命名照片:让Agent去读EXIF信息
分类只是第一步。真正让我觉得"这玩意儿值了"的,是批量重命名照片。我的手机导出来的照片全是IMG_20240415_183022.jpg这种格式,名字里确实带着时间,但手机间隔拍了三张还会带后缀,时间飘忽不定。我想按照2024-04-15_18-30.jpg这样的统一格式重命名所有照片。
我把需求丢给Hermes,让它调用exif工具读元数据,然后写个技能自动处理。关键在~/.hermes/skills/rename_photos.py里做三步:读取每张图片的EXIF拍摄时间,格式化时间字符串,检查重名就加序号。具体命令是这样:
hermes run "用rename_photos技能,把下载文件夹里的照片全部按拍摄时间重命名"
执行完之后还出了个小插曲:有一张2019年的老照片,它的EXIF坏了,读取不到拍摄时间。Agent居然自作主张把文件时间戳当成拍摄时间用了。我看了一下结果,发现那张照片的名字变成了2025-07-12_14-22.jpg,明显不对。当时有点哭笑不得,但这件事提醒我:AI老老实实干活是靠谱的,但指望它理解所有规则之外的情况,还早。后来我在技能脚本里加了判断,如果EXIF缺失,就把原文件名保留,单独记到一个sorting_errors.log里。
这个技能跑完,我一共处理了146张照片,其中131张重命名准确,10张用了文件时间戳,5张进了错误日志。效果我还是满意的,因为时间是实打实节约出来的。从此以后,照片重命名这种事我再没手工干过。
这里我再插一句体会:给Agent写技能,本质上就是把你平时整理文件的习惯翻译成规则。你越清楚自己什么时候会怎么做,技能就越趁手。
让Agent反复干活:用cron定时整理
技能攒了两三个后,我开始琢磨一件事:与其等家里乱了再收拾,不如让Agent每周主动帮忙扫一遍。Hermes自带定时任务功能,用hermes cron create可以创建计划任务。我建了一个每周日早上10点自动整理下载和桌面的任务:
hermes cron create --name weekly-organize --schedule "0 10 * * 0" --task "执行organize_by_type和rename_photos"
创建完它回了一句"任务已创建,下次运行时间:周日10:00"。我瞥了一眼有点感慨,一个能自己跑的管家,总比一个你喊半天才动一下的助理强。
定时任务跑了几周,我渐渐发现一个尴尬的事:很多文件我其实根本还没看过呢,就被Agent按规则丢进了对应的文件夹。有时候我想找个东西,还得分两步走。所以后来我把任务时间调到了每周五晚上,因为我习惯周末收拾一下这一周下载的东西。如果你也有类似的强迫症,记得灵活调整schedule参数,用cron表达式,想什么时候跑就什么时候跑。
另外一个tip:Hermes的记忆功能,用memory命令能长期保存你的偏好。比如我执行完一条命令,就可以告诉它"以后下载的视频一律放Videos/downloads子目录,不要混进Videos里面",下次它整理的时候就会记得。所谓Agent越来越懂你,其实就是靠这些记忆一点一滴积累出来的。
踩过不少坑,给你提个醒
最后聊点血泪教训。第一个坑就是权限问题。让Agent自动移动文件,意味着它完全掌握着你硬盘的"生杀大权"。我有一次不小心让它在项目目录里跑了一次分类整理,直接把.git文件夹当成杂散文件处理了。幸好那次auto_confirm: false保住了我——我点了拒绝,重新修改了技能脚本,把所有隐藏文件和`.git`排除在外。所以强烈建议你第一周,至少第一周,开着确认模式。
第二个坑是文件重名。你没看错,不同文件夹里可能都有一份报告.pdf。如果移动时不做特殊处理,后面的文件会把前面的直接覆盖。我的解决方式是在目标文件已存在时,自动追加时间戳,比如报告_20250415.pdf,一行代码的事,但能拦住一大半数据丢失事故。第三个坑就是路径里的中文和空格。很多脚本跑着跑着就挂了,多半是路径没加引号或者编码没处理好。
再一个需要动脑子的,是清理问题。我一开始建了个"清理三个月未打开的文件"的技能,没跑两天就发现它差点把我珍藏的参考资料全扔了。后来我改了逻辑:所有要清理的文件先移到一个叫_trash的回收站文件夹,保留两周,你再看一眼确认没搞错才彻底删除。这条规矩救了我无数次,真的别嫌麻烦。文件这种东西,丢了就是把"后悔药"扔了,AI再聪明也不会替你后悔。我不建议你一开始就追求"全自动",先跑通半自动,再把控制权慢慢交给Agent,安全得多。
最后说句心里话:用Hermes整理文件这段时间,我最大的收获不是文件夹变干净了,而是我明白了怎么把一个模糊的"我该整理一下"的念头,翻译成Agent听得懂的具体指令。这种能力,比任何一个工具本身都值钱。
💬 你用过哪些AI工具?
好了,唠了这么多,说说你吧。你平时都用什么AI工具来管文件、管生活、管工作?是跟我一样用Hermes写规则,还是用别家的方案硬怼?其实工具只是个开头,找到顺手的最重要。我最近经常逛一个叫AI House排行榜的网站(aibunkhouse.com/rankings/),上面有各路AI模型的最新排名和实测人气。我选模型前都会去瞄一眼,看看大家最近都在用哪个,避免自己手上工具都过时了还当宝。如果你也在纠结换哪个模型跑Agent、或者你喜欢的模型排名怎么忽上忽下,不妨上去看看,顺手给你喜欢的那一个投一票。
对了,顺带提醒一下:排行榜上那些趋势别太当真。我上次看到某个模型因为一个版本更新,排名一天之内蹦了快十位,第二天回落到原来的位置。所以投票的意义不在于排名的瞬间变化,而在于真实用户聚在一起,把好用的模型明显区分出来。你去看看就知道,榜单里既有大众熟面孔,也有不少冷门但口碑极佳的宝藏。
投完票记得回来评论区吱一声,我想看看你们都在用啥。万一你觉得Hermes不好用,也欢迎来骂我——前提是你先用它跑完一次整理再说。咱们评论区见!
常见问题 / FAQ
我的下载文件夹,终于自己会整理了
上周我打开自己的下载文件夹,差点当场崩溃:三百多个文件横七竖八躺在里面,有三个叫"新建文档(3).docx"的,五个"IMG_20231015"的照片,十六个PDF文件跟二十几个乱七八糟的压缩包挤在一起。我一直想整理,但每次打开那个文件夹就脑壳疼。后来我决定把这件事丢给Hermes Agent去做——干脆训练个AI管家来管我的文件。今天就把这套玩法完整的分享给你,纯个人实战,不扯虚的。 先交...
给Agent写个"文件分类"技能,让它学会归类
Hermes里技能(skill)是可以长期复用的能力模块,放在~/.hermes/skills/下。我第一次写的时候就踩了坑:技能本质上就是个普通的Python脚本,却把自己绕晕了,搞出一堆yaml配置。其实不复杂,核心逻辑就是"看一眼扩展名,送给对应文件夹"。 我写了一个organize_by_type.py,里面定义了一个映射表:PDF、doc、docx全扔到Documents;jpg、...
批量重命名照片:让Agent去读EXIF信息
分类只是第一步。真正让我觉得"这玩意儿值了"的,是批量重命名照片。我的手机导出来的照片全是IMG_20240415_183022.jpg这种格式,名字里确实带着时间,但手机间隔拍了三张还会带后缀,时间飘忽不定。我想按照2024-04-15_18-30.jpg这样的统一格式重命名所有照片。 我把需求丢给Hermes,让它调用exif工具读元数据,然后写个技能自动处理。关键在~/.hermes/...
让Agent反复干活:用cron定时整理
技能攒了两三个后,我开始琢磨一件事:与其等家里乱了再收拾,不如让Agent每周主动帮忙扫一遍。Hermes自带定时任务功能,用hermes cron create可以创建计划任务。我建了一个每周日早上10点自动整理下载和桌面的任务: hermes cron create --name weekly-organize --schedule "0 10 * * 0" --task "执行orga...
踩过不少坑,给你提个醒
最后聊点血泪教训。第一个坑就是权限问题。让Agent自动移动文件,意味着它完全掌握着你硬盘的"生杀大权"。我有一次不小心让它在项目目录里跑了一次分类整理,直接把.git文件夹当成杂散文件处理了。幸好那次auto_confirm: false保住了我——我点了拒绝,重新修改了技能脚本,把所有隐藏文件和`.git`排除在外。所以强烈建议你第一周,至少第一周,开着确认模式。 第二个坑是文件重名。你...