文件记忆管家
本 Skill 用于在本地建立“文件记忆索引”,帮助用户在多个文件夹中快速找回曾经写过的报告、笔记、代码片段或分析文件。
它不会归档、移动或重命名用户文件,只会:
- 扫描文件夹
- 提取文件元数据与文本片段
- 生成 Markdown 报告
- 建立 JSON 记忆索引
- 根据自然语言描述进行模糊回忆式搜索
- 对本地数据文件进行自然语言查询与概览
- 对本地日志文件进行异常扫描与归因提示
- 自动检测 Intel AI PC / OpenVINO / GPU / NPU 环境,为轻量 NLP 任务选择最合适后端
适用场景
- “6 月 26 号我写过一份数据分析报告,但我忘了文件名”
- “好像和仿真模拟、PPO 有关,帮我在几个目录里找”
- “最近一周我整理过哪些文档”
- “帮我把项目文件夹做成一份可读的索引报告”
核心能力
1. 文件夹分析报告
扫描指定文件夹,生成 folder_report.md,内容包括:
- 文件夹概览
- 文件类型统计
- 文件用途分类统计
- 数据文件识别与概览
- 最近活跃文件
- 很早但可能仍有价值的“记忆冒泡文件”
- 高价值候选文件
- 每个文本类文件的摘要、标签、用途猜测
2. 记忆索引
为每个文件建立一条“记忆卡片”,内容包括:
- 路径
- 文件类型
- 修改时间
- 文件大小
- 文本摘录
- 自动标签
- 主题推测
- 搜索别名
- 文件年龄
- 数据文件画像(如列名、工作表、样例内容)
3. 模糊回忆式搜索
用户可以输入自然语言,例如:
- “6月26号左右写的一份数据分析报告,跟仿真模拟和 PPO 有关”
- “最近我写过哪些会议纪要”
- “找一个讲强化学习实验结果的 markdown”
Skill 会综合以下信息进行排序:
- 文件名
- 路径
- 时间
- 文件类型
- 文本摘录
- 自动标签
- 可选的本地 LLM 重排
4. 数据分析视角
Skill 会额外分析:
- 文件夹里“都是什么类型的文件”
- 哪些是报告、代码、笔记、表格、数据文件
- 哪些文件很久没看过,但可能值得重新回忆
- 哪些 CSV / XLSX / JSON 更像“数据分析资产”
5. 数据文件自然语言查询
用户可以对已经扫描出的数据文件发出自然语言查询,例如:
- “哪些表格和 PPO 实验奖励有关”
- “帮我找最近修改过的数据文件”
- “这个目录里有哪些像指标表、实验结果表的文件”
Skill 会输出:
- 最相关的数据文件
- 工作表 / 列名 / 字段名
- 样例行
- 推荐后续查看顺序
6. 日志异常归因
用户可以对日志文件发出指令,例如:
- “帮我看看这几个日志里最近有什么异常”
- “找出报错最多的日志文件”
- “分析一下和 timeout、connection reset、oom 相关的问题”
Skill 会输出:
- 命中的日志文件
- 错误/告警/异常行统计
- 高频异常模式
- 可能原因提示
- 建议优先排查的文件
推荐目录结构
local-file-memory/
SKILL.md
README.md
requirements.txt
scripts/
run.ps1
smoke_test.ps1
status.ps1
src/
main.py
file_memory/
extractors.py
indexer.py
search.py
reporter.py
ollama_client.py
依赖要求
- Python 3.10+
- 可读本地文件
- 推荐:Ollama 已启动,默认
http://localhost:11434 - 可选:本地模型已存在,例如
qwen3.6:35b-a3b - 可选:已安装 OpenVINO 运行时,以启用 Intel AI PC 后端自动检测与加速
- 可选:若本地模型不可用,可通过兼容 API 环境变量作为备用模型提供方
工作流程
Step 1: 扫描文件夹
读取一个或多个根目录,递归收集文件。
Step 2: 过滤与提取
默认支持:
mdtxtpdfdocxxlsxjsoncsvpyjststsxjsxyamlyml
Step 3: 建立索引
输出:
memory_index.jsonfolder_report.md
Step 4: 模糊搜索
使用自然语言描述进行搜索,输出最可能的候选文件及命中原因。
Step 5: 数据查询
在已有 memory_index.json 基础上,对数据类文件进行自然语言查询。
Step 6: 日志分析
在已有 memory_index.json 基础上,对日志类文件进行异常关键词扫描、模式统计和归因提示。
运行命令
生成索引与报告
python src/main.py analyze --root "D:\Work" --root "D:\Notes" --output ".\output" --backend auto
启用本地 Ollama 增强摘要
python src/main.py analyze --root "D:\Work" --output ".\output" --use-ollama --model "qwen3.6:35b-a3b" --backend auto
模型调用优先级
Skill 的模型调用优先级如下:
- 优先使用本地
Ollama的qwen3.6:35b-a3b - 若本地模型不可用或调用失败,则回退到兼容 API 提供方
可通过以下环境变量配置备用 API:
$env:FILE_MEMORY_API_BASE_URL="https://your-api-base/v1"
$env:FILE_MEMORY_API_KEY="your-key"
$env:FILE_MEMORY_API_MODEL="your-model"
模糊搜索
python src/main.py search --index ".\output\memory_index.json" --query "6月26号左右写的数据分析报告,涉及仿真模拟和PPO" --backend auto
查看本地 AI PC 环境状态
python src/main.py env-status --backend auto
数据文件查询
python src/main.py query-data --index ".\output\memory_index.json" --query "哪些表格和 PPO 奖励曲线有关"
日志异常分析
python src/main.py log-analyze --index ".\output\memory_index.json" --query "找出 error、timeout、connection reset 较多的日志,并给出可能原因"
OpenCode 命令式调用建议
如果通过 OpenCode 或其他 Agent 在 Windows 上调用,建议直接使用如下指令:
指令 1:环境检查
先执行 scripts/status.ps1,告诉我 Python、Ollama 和 qwen3.6:35b-a3b 是否可用。
指令 2:建立索引
扫描 D:\Work 和 D:\Notes,不要移动任何文件,输出到 .\output。
如果本地 Ollama 可用,就启用 qwen3.6:35b-a3b 做摘要增强。
指令 3:模糊回忆搜索
基于 .\output\memory_index.json 搜索:
“6月26号左右写的一份数据分析报告,涉及仿真模拟和PPO”
并把结果写成 Markdown 报告。
指令 4:数据文件查询
基于 .\output\memory_index.json 查一下:
“哪些数据文件和 PPO、reward、仿真模拟有关”
返回最相关的几个文件,并列出列名或工作表。
指令 5:日志异常归因
基于 .\output\memory_index.json 帮我分析日志文件:
“找出 error、timeout、connection reset 较多的日志,并给出可能原因”
输出 Markdown 报告。
错误处理
- 文件无法读取时跳过并记录原因
- PDF 无法提取时保留元数据
- 未检测到 Ollama 时自动降级到本地规则模式
- 查询过于模糊时,优先返回最近活跃且高相关的候选文件
本 Skill 不做的事
- 不移动文件
- 不删除文件
- 不依赖云端 API
- 不要求视觉模型
- 不要求 GPU、NPU
验证建议
提交前至少验证:
- 扫描多个文件夹成功
- 成功输出
folder_report.md - 成功输出
memory_index.json - 能用自然语言找回至少一个“忘记标题”的文件
- 报告中能看到文件分类分析和“记忆冒泡文件”
- 能对至少一个 CSV / XLSX / JSON 数据文件做自然语言查询
- 能对至少一个日志文件做异常扫描与归因提示
赛事本地验证建议
建议在 Ollama + qwen3.6:35b-a3b 环境下至少跑下面 3 条指令:
python src/main.py analyze --root ".\sample_data" --output ".\contest_output" --use-ollama --model "qwen3.6:35b-a3b"
python src/main.py search --index ".\contest_output\memory_index.json" --query "6月26号左右写的数据分析报告,涉及仿真模拟和PPO" --use-ollama --model "qwen3.6:35b-a3b" --write-markdown
python src/main.py query-data --index ".\contest_output\memory_index.json" --query "哪些数据文件和 PPO reward 有关" --use-ollama --model "qwen3.6:35b-a3b" --write-markdown
python src/main.py log-analyze --index ".\contest_output\memory_index.json" --query "找出 error、timeout、connection reset 较多的日志,并给出可能原因" --use-ollama --model "qwen3.6:35b-a3b" --write-markdown
微信扫一扫