Lotti 私人日志与任务助手
在本地记录任务、时间与生活数据,由 AI 提议下一步,所有更改由你批准。
证据显示代理意见与用户事实分库存储,除空任务的初始标题和语言外,任务、清单、状态及日期变更都需用户确认;外发数据被明确限定为用户配置的加密同步和推理请求,并记录目标模型及用量。同步使用端到端加密和设备验证,安全政策也覆盖密钥、证书、载荷及集成泄漏。扣分在于本地数据库尚无应用级静态加密、同步元数据可见、提供商保留与训练政策无法由应用验证,且依赖安全证据仅有只读工作流权限、固定版本和安全报告流程,没有依赖审计或漏洞扫描材料。代理模板可回滚、代理数据库可重建,但用户数据恢复依赖设备复制和普通备份,且不存在服务端恢复。来源和维护者路径清楚但发布者身份未经独立验证。
README中的核心边界、错误条件和隐私限制整体自洽,API测试也覆盖健康检查、无效输入、提供商错误、意外错误和流式响应结构。扣分在于部分真实提供商测试需要GEMINI_API_KEY并会被跳过,材料未展示离线、超时、重试或多提供商故障处理;归档Android工作流还使用陈旧的Java、Node和若干旧版Action,与当前Flutter叙述存在历史遗留噪声。错误响应有明确状态码和安全化消息,但没有证据表明终端用户界面提供恢复指引。
材料清楚覆盖任务、日志、语音、时间追踪、健康数据及多种AI路由场景,并说明支持五类操作系统、本地模型、多个云提供商和自定义OpenAI兼容端点。能力边界说明充分,包括AI可完全关闭、图像生成暂无本地路径、实验功能默认关闭、无服务端恢复及提供商政策不可验证。扣分在于自动唤醒何时触发只作概括,缺少具体触发规则、抑制条件和误触发控制的源码证据。
README按安装、功能、架构、隐私、开发状态、定价和文档组织,提供各平台安装入口、源码构建命令及进一步文档索引;完整GPL-3.0文本存在。限制披露尤其具体,包括本地未加密、元数据泄露、历史同步非自动、移动端取数困难和实验功能粗糙。扣分在于所给材料没有FAQ实例集或端到端操作示例,没有正式版本号和变更日志证据;命名总体稳定但归档工作流中的MeinsApp路径和master分支反映旧结构。安全报告和支持渠道明确,也坦承单维护者模式,但没有正式维护承诺、响应时限或发布治理。
代理输出以报告、摘要和逐项可确认建议呈现,并保留意见来源,与任务系统直接衔接,因而具有较高可操作性。将意图与实际记录分开、持久代理、审阅式演进以及按类别路由,相比普通日志或任务列表展现出明确增量价值。扣分在于效益主要来自项目自述和作者个人使用经验,没有独立结果材料;云推理、自托管Matrix、设备资源及潜在平台内购都会增加成本,影响指标对多数提供商也不完整。
架构、数据流、例外和限制被写成具体可检查的陈述,API测试为部分端点行为和错误映射提供代码级佐证;文档还明确区分本项目能保证的行为、第三方声明、作者日常验证和推测性兼容性,因此事实与推断分离表现突出。扣分在于证据集以README声明为主,未包含实现两数据库写入屏障、加密同步、无遥测或请求日志的核心源码;工作流和API测试只能旁证有限子系统,无法全面交叉验证主要安全与产品主张。
- 本地SQLite数据库目前没有Lotti提供的静态加密;设备或操作系统账户被攻破时,敏感日志可能暴露。
- Matrix服务器仍可观察同步时间和大致流量;端到端加密不隐藏这些元数据。
- 新的配对设备不会自动获得既有设置和历史,必须从已有设备手动发送;同步不能替代一致性备份。
- 发送给AI提供商的数据受该提供商的保留、训练及管辖政策约束,Lotti无法验证其实际履约。
- 所给材料没有展示核心加密、审批写入屏障、无遥测主张或依赖漏洞状态的完整实现证据。
- 归档Android流水线包含陈旧工具链和凭据写盘步骤;虽未见凭据外泄证据,恢复使用前应审查并现代化。
这个 Agent 能做什么,适合哪些场景?
Lotti 是一款以本地数据为核心的日志、任务管理和时间追踪应用,支持 macOS、Linux、Windows、iOS 与 Android。它把计划中的任务与实际发生的时间记录分开,并在 SQLite 数据库中保存笔记、录音、图片、习惯、测量值和健康数据。持久化任务助手会读取相关记录、生成摘要并提出清单、状态或日期变更,但除空任务的初始标题和语言外,更改都必须经过用户确认。用户数据与代理的记忆、推理轨迹和建议分别存入 user database 和 agentic database;后者可清理或重建,不影响个人记录。多设备同步通过 Matrix、Synapse 与 Vodozemac 进行端到端加密,服务端只接触密文;AI 可完全关闭,也可按类别连接本地 Ollama、OpenAI、Anthropic、Mistral、Google、Alibaba、Nebius、OpenRouter、Melious 或其他 OpenAI 兼容端点。
用户在 Flutter 应用中创建任务、清单、计划时段、时间记录、日志、语音笔记、习惯和测量数据;音频可由设备上的 Whisper 或 Voxtral 转写,也可发送给支持音频的云服务。Task agents 读取任务及其上下文,维护独立的记忆、唤醒历史和报告,并输出摘要及建议变更。建议先写入 agentic database,用户确认后才通过受控代码路径进入作为事实来源的 user database;初始空标题和缺失语言是仅有的例外。AI 路由由 provider、model 和 inference profile 三层配置,可按生活类别选择本地或云端模型。Usage & Impact 记录云端请求、模型和 token;当提供方返回相应数据时,还显示费用、能源与 CO₂e。设备间数据使用 vector clocks 解决冲突,并通过 Matrix 加密房间交换;新设备需要扫码、核对校验码并完成 emoji 验证后才能解密。
- 希望把计划与实际工作分开记录的自由职业者,可同时管理任务、计划时段、实际耗时、专注度和相关笔记。
- 经常用语音捕捉想法的移动用户,可用 Whisper 或 Voxtral 离线转写录音,再将散乱口述整理成带清单的任务。
- 不愿把完整日记交给托管服务的个人,可把 SQLite 数据和附件留在自己的设备上,并通过自管或可信方运营的 Synapse 服务器同步密文。
- 需要 AI 协助但不愿让模型直接改写记录的用户,可审阅并逐项确认或驳回任务助手提出的状态、日期和清单变更。
- 希望区分敏感与普通内容计算路径的用户,可让私人类别使用 Ollama 本地模型,同时把开源工作或日常任务路由到云端模型。
- 需要结合时间、习惯、测量值与 Apple Health 等健康数据进行复盘的用户,可在分类维度上查看时间分析。
这个 Agent 有哪些优点和局限?
- 任务意图与实际时间记录是不同事实,避免把计划变化直接覆盖成一份失真的历史。
- user database 与 agentic database 的物理分离限制了助手写入范围,绝大多数代理变更必须由用户明确批准。
- 本地 SQLite、文件系统附件、无遥测及端到端加密同步,让用户掌握数据文件和同步基础设施。
- AI 完全可选,并支持 Ollama、多家云服务及自定义 OpenAI 兼容端点,还能按类别分别路由。
- 跨任务、日志、语音、时间、习惯和健康数据提供统一记录,并支持五类桌面及移动平台。
- Usage & Impact 会记录每次云端请求的模型和 token;服务商提供数据时还能呈现费用、能源和 CO₂e。
- 同步依赖自己或可信方运营的 Synapse homeserver,仓库不提供托管同步,部署和维护会增加采用成本。
- Lotti 当前不对设备上的 SQLite 文件另行加密;设备或操作系统账户被攻破时,本地记录可能暴露。
- 新设备配对后不会自动获得旧设置和完整历史,必须从已有设备手动发送,否则它只是接收后续记录的实时节点。
- Windows 暂无现成安装包,需要从源码构建;iOS/TestFlight 与部分商店渠道仍是限量邀请。
- 设计系统和代理层仍在积极开发,部分界面不够统一;projects、events、dashboards、embedding search 和 Daily OS 默认关闭且可能有粗糙之处。
- 本地图像生成尚不可用;费用、能源与 CO₂e 数据目前只有 Melious 返回,其他服务通常只能显示 token。
- 项目不接受普通代码拉取请求,仅欢迎问题报告和符合条件的翻译 PR,这会限制上游协作方式。
如何安装或部署这个 Agent?
Linux 推荐从 Flathub 安装 com.matthiasn.lotti,也可从 GitHub Releases 下载 tar.gz。macOS 可从 Releases 下载已签名并公证的 DMG;Android 可下载 Releases 中的 APK。iOS、iPadOS、macOS 的 TestFlight 和 Android 的 Play Store 内部测试均为限量邀请;Windows 目前需要源码构建。源码构建需先通过 FVM 安装 Flutter,然后在仓库中依次运行 make deps、make analyze、make test,最后执行 fvm flutter run -d <device>;Linux 还需要开发文档所列的音频编解码和 emoji 字体包。基本本地使用不要求 AI 密钥。启用 AI 时需提供所选服务商的 API key,或配置 Ollama/自定义 OpenAI 兼容 base URL;启用同步则需一个由自己或可信方运营的 Synapse homeserver,并使用仓库内的 tools/matrix_provisioner 创建账户、加密房间和一次性配对包。
如何使用这个 Agent?
首次启动后,可在应用中建立类别并创建任务、日志、录音或时间记录;无需配置 AI 即可使用任务管理、日记和时间追踪。若要启用助手,在设置中分别配置 provider、model 与 inference profile,再按类别指定推理路径;可选择 Ollama、本地语音模型或带有自己 API key 的云端服务。为某个任务启用 Task agent 后,它会读取任务上下文、生成报告并列出建议;在界面中逐项选择确认或驳回,也可使用 Confirm all。多设备使用时,先通过 tools/matrix_provisioner 配置第一台设备;后续设备从已在使用的设备扫码配对,比较双方独立生成的校验码并完成 emoji 验证。配对只保证之后的新数据同步,已有设置和历史还需在旧设备上分别执行 Send settings 与 Send message history。备份桌面端数据时,应在应用运行期间使用 SQLite 的 VACUUM INTO 制作一致副本,并同时复制附件目录。