一个智能的用户行为记录和分析系统,专为 macOS 设计。
YourAiMemoryLog(简称 YAML)是一个全面的用户活动监控和记录系统,能够实时捕获用户在 macOS 上的各种操作行为,并通过 AI 技术进行智能分析和总结。
- 实时记录用户键盘输入内容
- 捕获文本输入的时间戳和应用上下文
- 支持多语言输入识别
- 监控用户访问的网页 URL
- 记录网页停留时间
- 追踪浏览器标签页切换行为
- 实时监控应用启动和关闭
- 记录应用使用时长
- 追踪应用间切换频率
- 捕获鼠标点击事件
- 记录用户界面交互
- 监控窗口焦点变化
- 定时自动截取屏幕截图
- AI 驱动的截图内容分析
- 智能总结用户活动状态
- 基于 Gemini AI 的数据分析
- 活动模式智能识别
- 个性化使用建议
- 工作效率评估报告
- 隐私保护的数据处理
- 语言: Go
- 框架: Gin (Web API)
- 数据库: SQLite
- AI 集成: Gemini 2.5 Flash (Google)
- API 服务: AiHubMix 代理服务
- 原生应用: Swift + SwiftUI (macOS)
- Web界面: HTML5 + CSS3 + JavaScript
- 服务器: Python HTTP Server
- UI设计: 响应式布局 + 现代化界面
- 权限: Accessibility API (原生应用)
使用 macOS Accessibility API 和 CGEvent 监听全局键盘事件
实现实时输入捕获和文本重构
通过 NSWorkspace 监听应用生命周期
使用 AppleScript 获取浏览器活动信息
实现跨应用的活动追踪
定时截图机制(可配置间隔)
AI 图像分析和内容识别
增量式活动总结更新
维护轻量级的活动摘要文档
实现增量更新机制,避免上下文溢出
智能压缩历史记录,保持文档精简
用户操作 → 系统监听器 → 数据预处理 → 本地存储
↓
定时截图 → AI 分析 → 活动总结 → 文档更新
↓
历史数据 → 智能压缩 → 长期存储
- 🔒 所有数据本地存储,不上传云端
- 🛡️ 用户完全控制数据访问权限
- 🔐 敏感信息自动过滤和加密
- ⚙️ 可配置的监控级别和排除规则
- macOS 12.0 或更高版本
- 至少 4GB RAM
- 2GB 可用存储空间
- 网络连接(用于 AI 分析,可选本地模式)
cd backend
go run cmd/server/main.go# 启动Web服务器
python3 frontend/web/server.py
# 在浏览器中访问
open http://localhost:3000- 打开浏览器访问 http://localhost:3000
- 点击 "🚀 启动监控" 开始数据收集
- 点击 "📊 生成活动总结" 或 "⌨️ 生成输入总结"
- 查看右侧实时活动记录
# 启动监控
curl -X POST http://localhost:8080/api/v1/monitor/start
# 生成活动总结
curl -X POST "http://localhost:8080/api/v1/ai/summary/activity?limit=10"
# 生成键盘输入总结
curl -X POST "http://localhost:8080/api/v1/ai/summary/keyboard?limit=5"
# 查看总结历史
curl "http://localhost:8080/api/v1/ai/summaries"- 系统偏好设置 → 安全性与隐私 → 辅助功能
- 添加 YourAiMemoryLog 到允许列表
- 授予屏幕录制权限
- 下载并安装应用
- 完成权限配置
- 设置监控偏好
- 开始记录
- 截图间隔时间(默认:30秒)
- 监控应用白名单/黑名单
- AI 分析频率
- 数据保留期限
- 敏感词过滤规则
- 项目基础目录结构(backend/frontend分离)
- Go后端基础框架和API结构
- SQLite数据库和基础数据模型
- Swift前端基础界面和权限请求
- 前后端通信和基础数据展示
- 模拟监控功能(键盘输入、应用切换)
当前状态: MVP版本已完成,服务器可正常运行在 http://localhost:8080
- 实现真实的键盘输入监控(macOS CGEvent API)
- 实现真实的应用活动追踪(NSWorkspace监听)
- 网页浏览监控(浏览器集成)
- 鼠标点击事件捕获
- 权限管理优化
- 🤖 Gemini AI 集成
- 活动数据智能总结
- 键盘输入模式分析
- AI 总结历史管理
- 隐私保护的数据分析
- AiHubMix API 集成和修复
- 🌐 响应式 Web 界面
- 实时数据展示
- AI 总结功能集成
- 自动刷新和状态监控
- 现代化 UI 设计
- 🔧 修复 Gemini API 响应解析问题
- 📊 优化 Token 使用策略
- ⚡ 提升 AI 总结响应速度
- 🛠️ 增强错误处理和诊断
- 📈 调整 MaxOutputTokens 至 6717
- 定时截图功能实现
- AI 图像分析集成(OpenAI Vision API)
- 智能活动总结生成
- 本地文档维护和压缩
- 上下文管理优化
- 数据可视化图表
- 活动时间线展示
- 统计报告生成
- 配置管理界面
- 主题和个性化设置
- 数据导出和备份
- 云同步支持
- 多设备协同
- 插件系统
- 性能优化和内存管理
- ✅ RESTful API 服务器(Gin框架)
- ✅ SQLite 数据库集成
- ✅ SwiftUI 原生应用界面
- ✅ 🌐 响应式 Web 前端界面
- ✅ 跨平台通信架构
- ✅ 基础权限管理
- ✅ 模拟数据生成和展示
- ✅ 🤖 AI 智能总结功能(Gemini集成)
- ✅ 活动数据智能分析
- ✅ 键盘输入模式分析
- ✅ 总结历史记录管理
- ✅ 实时数据展示和自动刷新
- ✅ 现代化 UI 设计和交互
GET /api/v1/health- 健康检查GET /api/v1/activities- 获取活动记录POST /api/v1/keyboard- 键盘输入记录
POST /api/v1/monitor/start- 启动监控POST /api/v1/monitor/stop- 停止监控GET /api/v1/monitor/status- 监控状态
POST /api/v1/ai/summary/activity- 生成活动总结POST /api/v1/ai/summary/keyboard- 生成键盘输入总结GET /api/v1/ai/summaries- 获取历史总结
- 地址: http://localhost:3000
- 功能: 实时数据展示、AI总结生成、监控控制
- 特性: 响应式设计、自动刷新、现代化UI
- 地址: http://localhost:8080
- 健康检查: http://localhost:8080/api/v1/health
- API文档: 详见上方API端点列表
-
问题 #1: 点击生成活动总结按钮后显示为空
- 状态:已识别,需进一步调试
- 影响:用户无法获取活动分析结果
- 优先级:🔴 最高
-
问题 #2: 键盘输入监控使用测试数据
- 现象:AI分析显示精确的23字符输入和10秒间隔
- 原因:当前使用模拟数据而非真实键盘监控
- 影响:无法提供真实的使用分析
- 优先级:🔴 最高
- 🚨 紧急修复: 解决活动总结显示空白问题
- 🚨 紧急修复: 实现真实键盘输入监控(替换测试数据)
- 🎯 实现真实的系统监控功能(替换模拟数据)
- 🎯 完善权限管理流程
- 🎯 添加数据可视化图表
- 🎯 优化 AI 总结算法
- 🎯 增强 Web 界面功能
- 🎯 添加定时自动总结功能
- 🎯 支持数据导出和备份
欢迎提交 Issue 和 Pull Request!
MIT License
-
API 响应解析修复
- 修复了 Gemini API 响应结构不匹配问题
- 新增
GeminiAPIResponse结构体处理实际 API 格式 - 解决了 "no content generated" 错误
-
Token 使用优化
- MaxOutputTokens: 1000 → 2048 → 6717
- 减少输入数据量:20条记录 → 10条记录
- 简化提示词和数据格式,提升响应效率
-
错误处理增强
- 针对不同
finishReason提供具体错误信息 - 添加分步骤响应结构检查
- 改进调试和诊断能力
- 针对不同
- ⚡ AI 总结响应时间优化
- 🛡️ 更稳定的 API 调用机制
- 📊 更准确的数据分析结果
如有问题或建议,请通过 GitHub Issues 联系我们。
注意: 本项目严格遵守用户隐私保护原则,所有数据处理均在本地进行,用户拥有完全的数据控制权。