bamboo-echo/personal-memory-skill

Personal Computer Memory Skill - local LLM RAG for productivity agents

0

stars

13

commits

Python

primary language

Aug 29, 2026

updated

README

Personal Computer Memory Skill(个人电脑信息管理 Skill)

面向生产力级 AI Agent(Qoder、WorkBuddy、TRAE Work 等)的本地 Skill。 让 Agent 在用户授权下访问、理解、检索和关联电脑上的本地文件,数据从不离开本机

核心能力

能力说明
本地文件扫描递归扫描 PDF / TXT / Markdown / Word,过滤隐藏文件
多格式解析pdfplumber / python-docx / 纯文本,统一提取为纯文本
语义切片长文本切成语义连贯的小片段,保留重叠弥补上下文中断
向量索引chromadb 本地持久化 + sentence-transformers 语义模型(离线自动回退关键词向量)
语义检索按相关性返回文件、片段与匹配分数,文件名匹配叠加加权
内容摘要提取式摘要:语义模型挑选全文代表性句子(离线回退词频打分)
文件关联基于全文向量的相似度聚类,发现可能同属一个项目的文件组
本地大模型 RAG 问答ask():检索相关片段 → 本地 Qwen3.5-4B 大模型生成回答(含出处),全程不出机
Client/Server 服务化named-pipe 常驻服务(run.ps1 入口),模型常驻、随时调用

安装

python -m pip install -r requirements.txt
python -m pip install pywin32            # named-pipe 服务(Windows)
python -m pip install modelscope          # 模型下载工具

首次运行自动下载 all-MiniLM-L6-v2 语义模型(约 90MB)。无网络时自动回退为离线关键词向量,功能仍可用。

本地大模型(RAG 问答)准备

  1. 下载 Qwen3.5-4B-Instruct GGUF(魔搭官方量化,约 3GB):
    modelscope download --model unsloth/Qwen3.5-4B-GGUF Qwen3.5-4B-Q4_K_M.gguf --local_dir %USERPROFILE%\models\Qwen3.5-4B-GGUF
    
  2. 安装推理引擎(llama.cpp)。本项目在 RTX 5060 上使用 Vulkan/GPU 预编译 wheel(免 CUDA 运行时,本机已验证):
    pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/vulkan
    # 网络受限时:从 https://github.com/abetlen/llama-cpp-python/releases 取对应 wheel 经加速镜像下载后本地安装
    

快速开始(服务化入口,推荐)

.\run.ps1 start                 # 1) 启动常驻服务(named-pipe,模型常驻)
.\run.ps1 ask "鱼香肉丝怎么做"   # 2) 本地大模型 RAG 问答(含出处)
.\run.ps1 query "机器学习资料"   # 3) 语义检索
.\run.ps1 index "D:\我的文档"     # 4) 建立索引
.\run.ps1 understand "D:\笔记.md" # 5) 单文件理解
.\run.ps1 status / shutdown      # 状态 / 停止

之后每次直接用 run.ps1 ask/query/...,首请求加载模型约 30–60 秒,之后秒级响应。

Python API

from src.server import index_directory, query_index, analyze_directory, ask

# 索引
index_directory(root_dir="D:/我的文档", data_dir="data")

# 检索:返回相关文件 + 命中片段 + 分数
result = query_index(query="怎么用机器学习做预测", data_dir="data", top_k=5)

# 摘要与关联
analysis = analyze_directory(root_dir="D:/我的文档", threshold=0.35)

# 本地大模型 RAG 问答(检索 → 本地 Qwen3.5-4B 生成,返回 answer + evidence)
answer = ask(question="鱼香肉丝怎么做", data_dir="data", top_k=4)

使用 OpenVINO 后端(Intel CPU/GPU/NPU)

把 embedding 推理编译到 OpenVINO,脱离 PyTorch 推理,适合 AI PC 本地部署:

from src.server import index_directory, query_index

# 显式指定 OpenVINO 后端与设备(索引与查询需用同一后端/设备)
index_directory("D:/我的文档", data_dir="data_ov", backend="ov", device="GPU")
result = query_index("机器学习资料", data_dir="data_ov", backend="ov", device="GPU")

需先安装 openvino;设备可用性见 openvino 返回的 available_devicesbackend 取值:auto(默认)/ ov(OpenVINO)/ kw(强制离线关键词向量)。

集成到 Agent(Qoder / WorkBuddy / TRAE Work 等)

Skill 采用本地 named-pipe Client/Server 服务形态,Agent 只需把 run.ps1 作为唯一入口执行命令即可调用:

Agent 意图Skill 调用
"在我的文档里找机器学习资料"run.ps1 query "机器学习资料" → 相关文件+片段+分数
"基于我的资料回答:鱼香肉丝怎么做"run.ps1 ask "鱼香肉丝怎么做" → 本地大模型生成回答+出处
"总结这个文件"run.ps1 understand "D:\报告.docx" → 摘要+片段
"我的哪些文件属于同一项目"run.ps1 analyze "D:\项目"(或 Python API)

在真实 Agent(如 Qoder)中验证步骤

  1. 本机先执行一次 .\run.ps1 start(或由运行目录自动拉起);
  2. 在 Agent 对话中输入上述意图;
  3. Agent 调用 run.ps1 并把返回 JSON 作为上下文生成最终回答。

已自动验证通过(scripts/verify_agent.py,5/5):status / query / understand / index / ask 均走真实管道链路。

Skill 只返回"知识上下文",最终回答由 Agent 生成,符合 Skill 的定位边界。

隐私

  • 全部处理在本机完成,文件内容与本地大模型都不上传;
  • 语义模型、QA 生成模型全部本地运行;
  • 索引数据保存在本地 data/ 目录(已被 .gitignore 忽略)。

项目结构

personal-memory-skill/
├── SKILL.md               # 官方 local-ai-skill 规范入口/说明
├── info.json / meta.json  # 官方运行时/商店元数据
├── run.ps1                # 固定入口(named-pipe 调用)
├── server.py              # 常驻服务:named-pipe + 模型常驻
├── client.py              # 短命客户端(请求/响应)
├── install-env.ps1        # 环境安装脚本
├── scripts/verify_agent.py# Agent 集成验证(5 组指令)
├── skill.yaml             # Skill 描述(入口、能力、命令契约)
├── requirements.txt
├── src/
│   ├── scanner.py        # 文件扫描
│   ├── parser.py         # 格式解析 → 纯文本
│   ├── chunker.py        # 文本切片
│   ├── indexer.py        # 向量索引(embedding + chromadb)
│   ├── retriever.py      # 语义检索
│   ├── summarize.py      # 内容摘要(AI 理解)
│   ├── link.py           # 文件关联分析(AI 理解)
│   ├── generator.py      # 本地大模型推理(llamacpp Vulkan/CUDA/http/torch)
│   ├── openvino_backend.py # 可选 OpenVINO embedding 后端
│   └── server.py         # Skill Python API(index/query/analyze/ask/...)
├── data/                 # 索引数据(本地,不入库)
└── tests/
    ├── test_core.py / test_e2e.py / test_generator.py
    └── samples/          # 样例文档(md/txt/pdf/docx)

Contributors

bamboo-echo

13 commits

bamboo-echo/personal-memory-skill

Personal Computer Memory Skill - local LLM RAG for productivity agents

0

stars

13

commits

Python

primary language

Aug 29, 2026

updated

README

Personal Computer Memory Skill(个人电脑信息管理 Skill)

面向生产力级 AI Agent(Qoder、WorkBuddy、TRAE Work 等)的本地 Skill。 让 Agent 在用户授权下访问、理解、检索和关联电脑上的本地文件,数据从不离开本机

核心能力

能力说明
本地文件扫描递归扫描 PDF / TXT / Markdown / Word,过滤隐藏文件
多格式解析pdfplumber / python-docx / 纯文本,统一提取为纯文本
语义切片长文本切成语义连贯的小片段,保留重叠弥补上下文中断
向量索引chromadb 本地持久化 + sentence-transformers 语义模型(离线自动回退关键词向量)
语义检索按相关性返回文件、片段与匹配分数,文件名匹配叠加加权
内容摘要提取式摘要:语义模型挑选全文代表性句子(离线回退词频打分)
文件关联基于全文向量的相似度聚类,发现可能同属一个项目的文件组
本地大模型 RAG 问答ask():检索相关片段 → 本地 Qwen3.5-4B 大模型生成回答(含出处),全程不出机
Client/Server 服务化named-pipe 常驻服务(run.ps1 入口),模型常驻、随时调用

安装

python -m pip install -r requirements.txt
python -m pip install pywin32            # named-pipe 服务(Windows)
python -m pip install modelscope          # 模型下载工具

首次运行自动下载 all-MiniLM-L6-v2 语义模型(约 90MB)。无网络时自动回退为离线关键词向量,功能仍可用。

本地大模型(RAG 问答)准备

  1. 下载 Qwen3.5-4B-Instruct GGUF(魔搭官方量化,约 3GB):
    modelscope download --model unsloth/Qwen3.5-4B-GGUF Qwen3.5-4B-Q4_K_M.gguf --local_dir %USERPROFILE%\models\Qwen3.5-4B-GGUF
    
  2. 安装推理引擎(llama.cpp)。本项目在 RTX 5060 上使用 Vulkan/GPU 预编译 wheel(免 CUDA 运行时,本机已验证):
    pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/vulkan
    # 网络受限时:从 https://github.com/abetlen/llama-cpp-python/releases 取对应 wheel 经加速镜像下载后本地安装
    

快速开始(服务化入口,推荐)

.\run.ps1 start                 # 1) 启动常驻服务(named-pipe,模型常驻)
.\run.ps1 ask "鱼香肉丝怎么做"   # 2) 本地大模型 RAG 问答(含出处)
.\run.ps1 query "机器学习资料"   # 3) 语义检索
.\run.ps1 index "D:\我的文档"     # 4) 建立索引
.\run.ps1 understand "D:\笔记.md" # 5) 单文件理解
.\run.ps1 status / shutdown      # 状态 / 停止

之后每次直接用 run.ps1 ask/query/...,首请求加载模型约 30–60 秒,之后秒级响应。

Python API

from src.server import index_directory, query_index, analyze_directory, ask

# 索引
index_directory(root_dir="D:/我的文档", data_dir="data")

# 检索:返回相关文件 + 命中片段 + 分数
result = query_index(query="怎么用机器学习做预测", data_dir="data", top_k=5)

# 摘要与关联
analysis = analyze_directory(root_dir="D:/我的文档", threshold=0.35)

# 本地大模型 RAG 问答(检索 → 本地 Qwen3.5-4B 生成,返回 answer + evidence)
answer = ask(question="鱼香肉丝怎么做", data_dir="data", top_k=4)

使用 OpenVINO 后端(Intel CPU/GPU/NPU)

把 embedding 推理编译到 OpenVINO,脱离 PyTorch 推理,适合 AI PC 本地部署:

from src.server import index_directory, query_index

# 显式指定 OpenVINO 后端与设备(索引与查询需用同一后端/设备)
index_directory("D:/我的文档", data_dir="data_ov", backend="ov", device="GPU")
result = query_index("机器学习资料", data_dir="data_ov", backend="ov", device="GPU")

需先安装 openvino;设备可用性见 openvino 返回的 available_devicesbackend 取值:auto(默认)/ ov(OpenVINO)/ kw(强制离线关键词向量)。

集成到 Agent(Qoder / WorkBuddy / TRAE Work 等)

Skill 采用本地 named-pipe Client/Server 服务形态,Agent 只需把 run.ps1 作为唯一入口执行命令即可调用:

Agent 意图Skill 调用
"在我的文档里找机器学习资料"run.ps1 query "机器学习资料" → 相关文件+片段+分数
"基于我的资料回答:鱼香肉丝怎么做"run.ps1 ask "鱼香肉丝怎么做" → 本地大模型生成回答+出处
"总结这个文件"run.ps1 understand "D:\报告.docx" → 摘要+片段
"我的哪些文件属于同一项目"run.ps1 analyze "D:\项目"(或 Python API)

在真实 Agent(如 Qoder)中验证步骤

  1. 本机先执行一次 .\run.ps1 start(或由运行目录自动拉起);
  2. 在 Agent 对话中输入上述意图;
  3. Agent 调用 run.ps1 并把返回 JSON 作为上下文生成最终回答。

已自动验证通过(scripts/verify_agent.py,5/5):status / query / understand / index / ask 均走真实管道链路。

Skill 只返回"知识上下文",最终回答由 Agent 生成,符合 Skill 的定位边界。

隐私

  • 全部处理在本机完成,文件内容与本地大模型都不上传;
  • 语义模型、QA 生成模型全部本地运行;
  • 索引数据保存在本地 data/ 目录(已被 .gitignore 忽略)。

项目结构

personal-memory-skill/
├── SKILL.md               # 官方 local-ai-skill 规范入口/说明
├── info.json / meta.json  # 官方运行时/商店元数据
├── run.ps1                # 固定入口(named-pipe 调用)
├── server.py              # 常驻服务:named-pipe + 模型常驻
├── client.py              # 短命客户端(请求/响应)
├── install-env.ps1        # 环境安装脚本
├── scripts/verify_agent.py# Agent 集成验证(5 组指令)
├── skill.yaml             # Skill 描述(入口、能力、命令契约)
├── requirements.txt
├── src/
│   ├── scanner.py        # 文件扫描
│   ├── parser.py         # 格式解析 → 纯文本
│   ├── chunker.py        # 文本切片
│   ├── indexer.py        # 向量索引(embedding + chromadb)
│   ├── retriever.py      # 语义检索
│   ├── summarize.py      # 内容摘要(AI 理解)
│   ├── link.py           # 文件关联分析(AI 理解)
│   ├── generator.py      # 本地大模型推理(llamacpp Vulkan/CUDA/http/torch)
│   ├── openvino_backend.py # 可选 OpenVINO embedding 后端
│   └── server.py         # Skill Python API(index/query/analyze/ask/...)
├── data/                 # 索引数据(本地,不入库)
└── tests/
    ├── test_core.py / test_e2e.py / test_generator.py
    └── samples/          # 样例文档(md/txt/pdf/docx)

Contributors

bamboo-echo

13 commits

Languages

Python

89.9%

PowerShell

10.1%