1. 项目概述:专注力管理工具的革新
作为一名长期与注意力分散作斗争的开发者,我深知传统生产力工具的局限性。它们要么像监狱看守一样监控你的每分每秒,要么过于抽象无法提供实质性帮助。FocusFlow的诞生源于一个简单观察:真正的生产力不在于你花了多少时间,而在于你创造了什么实质性的成果。
这个工具的核心创新点在于:
- 基于产出的监测:不追踪你在电脑前坐了多久,而是关注你是否在项目目录中创建了文件、提交了代码或完成了特定修改
- 非侵入式干预:像一位体贴的同事,只在必要时给出提醒,而非不断打断你的流程
- 隐私优先架构:所有数据处理默认在本地完成,只有在用户明确同意时才会使用云服务
提示:FocusFlow特别适合那些需要深度工作但又容易分心的知识工作者,如程序员、研究人员、写作者等。它能在你无意识偏离工作时提供恰到好处的提醒。
2. 系统架构解析
2.1 核心设计哲学
FocusFlow的架构围绕三个基本原则构建:
MCP协议优先:采用Model Context Protocol作为基础通信标准,使工具能无缝集成到现有AI生态系统中。这意味着任何支持MCP的AI助手(如Claude Desktop)都能直接与FocusFlow交互。
实时项目感知:通过文件系统监控(Python Watchdog)结合git集成,建立项目进展的客观评估体系。不同于简单的时间追踪,它能识别你是否真的在推进工作。
隐私分级设计:提供从完全本地(Ollama/vLLM)到云增强(OpenAI/Anthropic)的多级隐私选项,用户可根据敏感程度自由选择。
2.2 技术栈深度剖析
前端实现
选择Gradio 5作为前端框架是经过深思熟虑的:
- 内置的MCP支持简化了与AI助手的集成
- 实时更新能力满足监控需求
- 多标签界面保持简洁的同时提供丰富功能
关键代码结构:
# 监控定时器设置 monitor_timer = gr.Timer( value=30, # 30秒检测间隔 active=True ) monitor_timer.tick( fn=agent_decision_loop, outputs=[status_display, voice_alert] )后端服务
MCP服务器架构是系统的中枢神经:
- 使用Python的mcp SDK暴露内部功能
- 每个核心功能都作为标准化工具提供
- 支持双向同步(如与Linear的任务管理)
典型工具定义示例:
@server.call_tool def get_current_task(arguments: dict) -> str: """获取当前活跃任务""" task = db.tasks.filter(status="active").first() return json.dumps(task.to_dict())3. 专注力监测机制
3.1 多维度信号采集
FocusFlow采用复合算法判断用户状态,避免单一指标的局限性:
| 信号类型 | 监测内容 | 权重系数 |
|---|---|---|
| 文件事件 | 新建/修改项目文件 | 0.5 |
| Git活动 | 提交次数/消息内容 | 0.3 |
| 闲置时长 | 无操作持续时间 | 0.15 |
| 应用上下文 | 当前使用软件类型 | 0.05 |
3.2 干预策略分级
系统采用渐进式提醒策略,避免引起用户反感:
初级提醒(5分钟闲置)
- 后台记录状态变化
- 界面轻微视觉提示(如状态栏变色)
中级干预(15分钟闲置)
- 弹出非模态对话框
- 可选声音提示(轻柔提示音)
- 建议内容:"需要帮当前任务分解吗?"
高级干预(30+分钟闲置)
- ElevenLabs语音提醒
- 具体建议选项:
- 重新规划任务
- 寻求AI协助
- 调整时间预估
注意:所有干预都可一键忽略,系统不会强制中断用户当前活动。这种设计保持了工具的辅助性而非强制性。
4. 隐私保护实现
4.1 数据流控制
FocusFlow提供两种基本运行模式:
完全本地模式
export LAUNCH_MODE=local export AI_PROVIDER=vllm export VLLM_BASE_URL=http://localhost:8000/v1- 文件监控数据仅存于本地SQLite
- 使用本地LLM(如Ollama)处理任务分析
- 语音合成也可禁用或使用本地引擎
云增强模式
export LAUNCH_MODE=demo export AI_PROVIDER=anthropic export ANTHROPIC_API_KEY=your_key- 可选择发送哪些数据到云端
- 支持临时会话(不存储历史)
- 提供数据自动清理选项
4.2 安全措施
- SQLite数据库可加密(SQLCipher)
- Git历史记录从不外传
- 文件内容需显式授权才会分析
- 所有网络通信使用TLS 1.3加密
5. 实际应用场景
5.1 典型工作流示例
任务规划阶段
- 用户描述目标:"开发React数据看板"
- Claude/Gemini自动分解为:
- 创建基础项目结构(1h)
- 设计核心组件框架(2h)
- 实现数据获取逻辑(1.5h)
开发监控阶段
- 检测到src/components/Chart.js创建 → 进度+15%
- 发现30分钟无git提交 → 温和提醒
- 用户回应需要帮助 → 调用MCP获取相关代码示例
任务完成阶段
- 识别到预期文件全部生成 → 标记任务完成
- 更新专注力评分(82/100)
- 建议适当休息
5.2 集成开发环境适配
FocusFlow特别优化了对主流开发工具的支持:
- VS Code:通过MCP插件显示当前任务状态
- JetBrains全家桶:支持工具窗口集成
- 终端环境:提供CLI界面查看简要状态
- 浏览器扩展:检测非工作相关标签页
6. 部署与定制
6.1 本地安装指南
- 获取代码库:
git clone https://github.com/Rebell-Leader/FocusFlow cd FocusFlow- 安装依赖:
pip install -r requirements.txt- 配置环境:
cp .env.example .env # 编辑.env文件设置偏好- 启动服务:
python app.py6.2 高级配置选项
性能调优参数
# 监控灵敏度 FILE_EVENT_DEBOUNCE=0.5 # 防抖阈值(秒) # LLM上下文设置 MAX_CONTEXT_TOKENS=4000 # 控制记忆用量界面自定义
// static/custom.json { "theme": "dark", "voice_preference": "professional", "alert_sound": "chime" }7. 开发经验分享
在构建FocusFlow过程中,我们积累了几个关键认知:
非技术因素的重要性
- 语音语调对接受度的影响比算法精度更大
- 90%用户选择"友好型"而非"专业型"语音预设
性能取舍的艺术
- 文件监控采用轮询+事件混合模式
- 高频检查(1s)但低精度处理
- 关键操作使用二级缓存减少IO
错误处理策略
- 监控进程崩溃自动重启
- LLM超时自动降级到本地模型
- 网络中断时切换为离线模式
实践发现:将最大干预间隔设置为2小时可平衡效用与侵扰。超过这个阈值后用户满意度明显下降。
8. 未来演进方向
基于用户反馈,我们正规划以下增强功能:
团队协作模式
- 共享专注目标
- 异步进度通知
- 群体效率分析
深度IDE集成
- 实时代码建议
- 上下文感知帮助
- 异常模式检测(如频繁撤销)
自适应学习
- 个人工作模式识别
- 定制化干预策略
- 智能时间预估校准
健康管理扩展
- 坐姿提醒
- 用眼休息建议
- 活动间歇提示
这个项目的独特价值在于它重新定义了生产力工具的角色——不是监督者,而是懂你的协作伙伴。通过将先进的AI能力与对开发者体验的深刻理解相结合,FocusFlow为专注力管理提供了全新的解决方案范式。