资讯动态

本地AI记忆助手:隐私优先的电脑活动追踪与智能回顾工具

发布时间:2026/8/21 5:17:10 来源:尧图企业网站定制
1. 项目概述一个完全本地的AI记忆助手你有没有过这样的时刻想不起来上周三下午自己到底在电脑上捣鼓了些什么或者上周看过的那个特别有用的技术视频教程关键词死活想不起来。我们每天在电脑前产生海量的数字足迹——浏览的网页、使用的软件、观看的视频——这些信息转瞬即逝大脑根本记不住。Nex Life Logger 就是为了解决这个问题而生的。它是一个隐私至上、完全本地运行的电脑活动追踪器就像一个24小时在线的私人数字记忆官。简单来说它是个在后台默默运行的小程序每隔30秒就“看一眼”你在做什么你打开了哪个浏览器标签、正在使用哪个软件、在YouTube上看了什么视频。所有这些数据一丝一毫都不会离开你的电脑全部加密存储在你本地硬盘的一个SQLite数据库里。然后你可以通过自然语言像问一个朋友一样向它提问“我昨天下午在研究什么”“我这个月在Docker上花了多少时间”它会利用本地AI模型或你配置的API从你的历史数据中找出答案并生成智能摘要。这不仅仅是另一个数据收集工具。它的核心设计哲学是“Local-First”和“Privacy by Design”。没有云同步没有用户账号没有遥测数据。你的数字生活日志只属于你一个人。对于开发者、研究者、知识工作者或者任何希望量化、回顾自己数字生活的人来说它是一个强大的元认知工具。2. 核心功能与隐私设计解析2.1 它具体追踪什么Nex Life Logger 的追踪是精细且克制的并非无差别记录所有窗口这体现了其“增强生产力”而非“监控”的设计初衷。浏览器历史支持主流的 Chromium 内核浏览器Chrome, Edge, Brave和 Firefox。它会记录你访问的URL、页面标题和访问时间戳。活动窗口焦点记录你当前正在前台使用的应用程序窗口标题。例如“Visual Studio Code - life-logger/viewer.py” 或 “Chrome - GitHub Dashboard”。YouTube视频与字幕这是它的一个亮点功能。当检测到你在观看YouTube时它不仅记录视频链接和标题还会利用 YouTube Transcript API 抓取视频的完整字幕文本。这意味着你日后可以通过视频里的任意一句台词来搜索这个视频。搜索引擎查询自动从主流搜索引擎Google, Bing, DuckDuckGo等的URL中提取你的搜索关键词。比如从https://www.google.com/search?qpythonsqlitefts5中提取出 “python sqlite fts5”。2.2 它坚决不追踪什么——隐私过滤机制隐私保护不是口号而是通过多层过滤机制实现的。这是我最欣赏的设计它主动帮你规避了隐私风险。通讯应用全局排除系统内置了一个“聊天应用黑名单”包括 WhatsApp, Discord, Slack, Telegram, Signal, Microsoft Teams 等。只要窗口标题或URL匹配到这些应用该条活动根本不会被写入数据库。你和朋友的私聊内容、工作群的讨论都不会被记录。敏感窗口智能跳过通过关键词匹配系统会自动跳过如密码管理器Bitwarden, 1Password、银行网站、医疗健康等敏感窗口。这些信息永远不会进入日志。内容分类过滤器项目内置了一个基于规则和关键词的内容分类器。它会将活动分为“生产性”如编程、设计、学习和“非生产性”如娱乐、新闻、政治。在默认配置或摘要生成时可以选择性地过滤掉非生产性内容让你的回顾聚焦在真正有价值的事情上。这个分类器是规则驱动的你可以查看和修改content_filter.py中的规则来适应自己的需求。2.3 数据存储与安全所有数据都存放在~/.life-logger/Linux/macOS或C:\Users\[用户名]\.life-logger\Windows目录下。核心是一个activity.db的 SQLite 数据库文件。SQLite的考量选择SQLite而非更复杂的数据库是“Local-First”理念的完美体现。它轻量、单文件、无需服务、跨平台并且通过 FTS5 扩展提供了强大的全文搜索能力。你的所有历史记录就是一个可以随身携带的.db文件。API密钥安全项目使用secure_key.py模块来处理AI服务的API密钥。在Windows上它利用Windows Credential Manager在macOS上使用Keychain在Linux上则使用Secret Service API (libsecret)。这意味着你的API密钥以系统级的安全方式加密存储而不是明文写在配置文件里安全性大大提升。注意虽然数据在本地但请务必做好常规的电脑安全防护如全盘加密、强密码。.life-logger目录包含了你的详细活动历史应被视为敏感数据。3. 两种使用模式与详细配置指南Nex Life Logger 提供了两种形态适应不同场景的用户。3.1 桌面应用程序模式推荐大多数用户这是功能最全的模式包含系统托盘图标、原生视图窗口、图表分析等功能。安装与运行环境准备确保你的系统已安装 Python 3.11 或更高版本。获取代码从GitHub仓库克隆项目。git clone https://github.com/NexaiGuy/nex-life-logger.git cd nex-life-logger安装依赖项目依赖项在requirements.txt中。建议使用虚拟环境。# 创建虚拟环境可选但推荐 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # Linux/macOS: source venv/bin/activate # 安装依赖 pip install -r requirements.txt这里会安装核心依赖如pystray(托盘图标)、pywebview(桌面窗口)、youtube-transcript-api等。首次运行与配置python tray.py首次运行程序会创建数据库和配置文件。你需要右键点击系统托盘图标通常是一个大脑或日志形状的图标选择“设置”或“配置AI”。核心配置步骤设置AI提供商这是启用智能搜索和摘要的关键。以使用 OpenAI 为例你需要在配置中填入API Base URL:https://api.openai.com/v1API Key: 你的OpenAI API密钥会安全存储。Model: 例如gpt-4o-mini性价比高或gpt-4o。 程序也支持本地运行的 Ollama将API Base URL设为http://localhost:11434/v1模型设为如llama3.2API Key留空即可。调整追踪间隔默认30秒采集一次。在config.py中你可以修改POLL_INTERVAL_SECONDS。不建议低于15秒以免过度消耗资源。自定义过滤规则如果你有特定不想追踪的网站或应用可以编辑user_filters.py文件在相应的BLACKLIST_URL_PATTERNS或BLACKLIST_WINDOW_TITLES列表中添加正则表达式规则。桌面应用功能一览系统托盘控制暂停/恢复追踪、手动触发摘要生成、快速打开AI聊天窗口。原生视图器(viewer.py)提供三种UI主题赛博朋克、行政日志、霓虹脉冲以时间线方式浏览活动内置图表展示时间分配。AI聊天界面(ai_chat.py)一个集成了数据库上下文的聊天窗口。你可以直接问“我上周关于Kubernetes都看了些什么”AI会在回答前自动在本地历史中检索相关信息。自动启动Windows用户可以通过Setup Auto-start选项将程序添加到开机启动项实现无感追踪。3.2 AI Agent技能模式为效率极客打造这是该项目最酷的部分之一。它被打包成了一个ClawHub/OpenClaw Skill。OpenClaw 是一个开源的AI Agent框架而 ClawHub 是其技能市场。这意味着你可以将你的“数字记忆”能力赋予任何一个通过OpenClaw连接的AI Agent比如一个Telegram机器人、Discord机器人或WhatsApp助手。安装与集成前提你需要一个已经搭建好的OpenClaw AI Agent。假设你的Agent已在运行并连接了Telegram。安装技能在你的Agent服务器上执行npx clawhub install nex-life-logger bash setup.sh这个命令会从ClawHub拉取技能包并运行安装脚本将nex-life-loggerCLI工具链接到你的Agent环境。使用安装后你就可以直接在Telegram里和你的AI助手对话了你 “嘿我昨天下午2点到4点都在干嘛” AI助手 *在后台自动执行 nex-life-logger activities --last 1d --from 14:00 --to 16:00 * AI助手 “昨天下午2点到4点你主要在进行前端开发。你访问了React官方文档在VS Code中修改了‘user-profile’组件并在Stack Overflow上搜索了‘useEffect cleanup function’的问题。”这种模式的强大之处在于你无需打开任何额外软件在日常的聊天环境中就能随时查询自己的数字记忆实现了真正的“无感回顾”和“自然交互”。这对于远程工作、深度专注时不想切换窗口的场景尤其有用。4. 数据库结构与CLI工具深度使用理解其数据存储方式能让你更自如地查询和利用这些信息。4.1 数据库表结构详解本地SQLite数据库 (activity.db) 包含四张核心表设计得非常清晰activities (活动表)核心表存储每一条原始记录。id: 主键timestamp: 活动发生的时间UTCkind: 类型 (url,app_focus,youtube,search)source: 来源 (chrome,vscode,youtube等)title: 窗口或页面标题url: 访问的URL如果是浏览器活动domain: 从URL提取的域名content: 附加内容如搜索关键词、视频IDcategory: 内容分类器打上的标签 (tool,learning,entertainment等)summaries (摘要表)存储AI生成的各级摘要。period_start: 摘要周期的开始时间period_type: 周期类型 (daily,weekly,monthly,yearly)content: AI生成的摘要文本model_used: 生成摘要所用的AI模型keywords (关键词表)自动从活动标题和内容中提取的关键词、主题、工具名、编程语言等。keyword: 关键词本身category: 分类 (tool,language,project,topic)frequency: 出现频率first_seen,last_seen: 首次和最近出现时间transcripts (字幕表)存储YouTube视频的完整字幕。video_id: YouTube视频IDtranscript_text: 完整的字幕文本video_title: 视频标题accessed_at: 观看时间4.2 CLI命令实战指南无论你是否使用桌面版或Agent版nex-life-logger命令行工具都是进行高级查询和数据管理的利器。以下是一些高频和进阶用法基础查询# 查看过去2小时的所有活动 nex-life-logger activities --last 2h # 只看过去一天内观看的YouTube活动 nex-life-logger activities --last 1d --kind youtube # 查看上周所有的搜索记录 nex-life-logger activities --last 7d --kind search全文搜索最强大的功能数据库使用SQLite FTS5扩展建立全文搜索索引支持相关性排序。# 在所有历史中搜索“Docker”相关内容 nex-life-logger search docker containers # 搜索三月份以来关于“机器学习”的浏览器历史限制来源为Chrome最多50条 nex-life-logger search machine learning --since 2024-03-01 --kind url --source chrome --limit 50 # 搜索应用焦点中与“Python”相关的记录比如VS Code编辑Python文件 nex-life-logger search python --kind app_focus # 以JSON格式输出结果便于用其他工具如jq处理 nex-life-logger search kubernetes --output json | jq .摘要与统计# 查看AI生成的昨日、本周、本月摘要 nex-life-logger summary daily nex-life-logger summary weekly nex-life-logger summary monthly # 手动触发生成一份本周至今的摘要比如周五想回顾一下 nex-life-logger generate weekly # 查看总体统计活动总数、最活跃的日期、最常用的应用等 nex-life-logger stats # 查看提取出的Top 20工具关键词 nex-life-logger keywords --top 20 --category tool数据导出与备份定期导出数据是个好习惯。# 导出所有活动为JSON用于备份或自定义分析 nex-life-logger export json --output backup_$(date %Y%m%d).json # 导出为CSV用Excel或Numbers打开分析 nex-life-logger export csv --output report.csv # 导出一个漂亮的HTML报告包含图表可以直接在浏览器打开分享不包含敏感详情 nex-life-logger export html --output weekly_report.html服务管理Linux/macOS如果你在服务器上以服务形式运行无头模式。nex-life-logger service status nex-life-logger service start nex-life-logger service stop5. 高级技巧与个性化定制5.1 优化AI摘要提示词摘要的质量很大程度上取决于发送给AI模型的提示词Prompt。项目的提示词模板在summarizer.py中。你可以根据你的偏好进行微调让生成的摘要更符合你的阅读习惯。例如默认的每日摘要提示词可能类似于“请根据以下用户某一天的电脑活动列表生成一段连贯的、总结性的段落描述用户当天的主要工作、学习和研究焦点。避免罗列清单侧重趋势和主题。”你可以修改为“请以第一人称‘我’的口吻写一段日记风格的总结回顾我一天在电脑上的主要活动。突出我花费时间最多的三个任务并提及我遇到或搜索过的任何有趣的技术概念。语气保持专业但略带随意。”5.2 集成到个人工作流与笔记软件联动你可以写一个简单的脚本每天定时运行nex-life-logger summary daily将输出结果追加到你的日记软件如Obsidian, Logseq或笔记中自动生成“数字日记”。周报自动化结合nex-life-logger summary weekly --output json和 Python 脚本将数据解析后填充到你的周报模板里节省大量回忆和整理时间。项目时间追踪虽然它不是精确的时间追踪工具但通过搜索项目相关关键词如项目代号、主要技术栈可以大致估算你在不同项目上的时间投入分布。5.3 处理误判与调整过滤器有时分类器可能会误判。比如你把一个编程教学视频网站标记为了“娱乐”或者某个工作用的内部聊天工具没有被屏蔽。检查与修正分类你可以通过CLI搜索特定域名的活动查看其被分配的category。nex-life-logger search example.com --output json修改过滤规则直接编辑content_filter.py和chat_filter.py文件。例如在CONTENT_CATEGORIES的learning规则中添加你的教学网站域名或在CHAT_APP_KEYWORDS中添加你内部聊天工具的名称。重建全文搜索索引在修改了重要配置或进行了大量数据清理后建议重建FTS索引以确保搜索准确性。nex-life-logger config rebuild-fts5.4 性能与资源考量数据库增长长期使用后activity.db文件可能会增长到几百MB。SQLite在处理几十万条记录时依然表现良好。如果担心性能可以考虑定期将旧数据如一年前导出为JSON归档然后从数据库中删除。内存与CPU后台收集进程非常轻量。主要的资源消耗发生在生成AI摘要时因为需要调用大语言模型API。如果你使用本地模型如通过Ollama则会对本地CPU/GPU有一定压力。建议将摘要生成安排在电脑空闲时如默认的晚上11点。6. 常见问题与故障排除在实际部署和使用中你可能会遇到以下问题。这里是我的踩坑记录和解决方案。Q1: 程序启动失败提示缺少pystray或pywebview模块。A1:这通常发生在没有完整安装桌面版依赖时。请确保你运行的是pip install -r requirements.txt它包含了所有可选依赖。如果你只需要无头CLI模式可以尝试一个精简安装但可能需要手动安装部分核心模块。Q2: 追踪不到Chrome/Edge浏览器的历史。A2:这可能是最常见的权限问题。Windows/macOS确保你以当前登录的同一用户运行程序。浏览器历史文件是用户级别的。Linux情况更复杂一些。Chrome/Chromium的历史文件通常位于~/.config/google-chrome/Default/History路径可能因发行版和浏览器而异。你需要确保Python进程有权限读取该文件。有时浏览器会以“锁定”状态打开该文件导致读取失败。Nex Life Logger 的采集器有重试机制但如果持续失败可以尝试检查文件路径是否正确在collector.py中配置。Q3: AI摘要功能报错 “API Error” 或 “Authentication Error”。A3:逐步检查密钥存储运行nex-life-logger config set-api-key重新设置密钥确保它被正确存入系统密钥库。网络与代理如果你身处需要网络代理的环境需要确保Python能正确使用代理访问API。可以设置环境变量HTTP_PROXY和HTTPS_PROXY。模型可用性确认你配置的模型名称在你的API账户中是可用的。例如gpt-4o和gpt-4o-mini是不同的模型。本地Ollama如果使用Ollama确保ollama serve服务正在运行并且模型如llama3.2已经通过ollama pull拉取到本地。Q4: 全文搜索 (search命令) 返回的结果不相关或为空。A4:确认索引存在运行nex-life-logger config rebuild-fts重建全文搜索索引。首次安装或数据库结构变更后需要此操作。搜索语法FTS5支持简单的短语搜索和前缀搜索。尝试用引号搜索完整短语docker compose或使用通配符python*来匹配“python”、“python3”等。数据存在性先用activities命令确认你想要搜索的数据确实已被记录。Q5: 系统托盘图标不显示Linux桌面环境常见。A5:Linux上系统托盘支持依赖于桌面环境和特定的DBus服务。确保你安装了libappindicator3或libayatana-appindicator3库。例如在Ubuntu/Debian上sudo apt-get install libappindicator3-1如果仍不显示可以尝试以纯CLI无头模式运行python main.py然后通过CLI命令或配置文件来控制。Q6: 如何彻底卸载或暂停追踪A6:暂停右键点击系统托盘图标选择 “Pause Tracking”。或者通过CLInex-life-logger config set-paused true。彻底停止退出应用程序即可。后台进程会终止。卸载删除项目文件夹即可。你的数据文件在独立的~/.life-logger/目录如需完全清理手动删除该目录。这个项目本质上是一个高度可定制化的数字生活记录仪。它的价值随着使用时间线性增长。刚开始的几周你可能觉得它只是记录了一堆杂乱的数据。但几个月后当你能够轻松回溯“去年那个关于微服务的灵感是在哪篇文章里看到的”或者量化自己“在开源项目上的投入时间趋势”时你会意识到它正在帮你构建一份独一无二的、可查询的、私有的数字记忆档案。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价