今天我们在 LiPet 的工作台上完成了一座关键里程碑:技能与插件系统的整体地基顺利完工。从立项之初,我们就希望 LiPet 不仅仅是一只行为固定的屏幕小猫,但我们同样坚决拒绝为了扩展性而引入不可控的执行脚本,绝不在系统稳定性、能耗与用户隐私上做任何妥协。
一、传统桌面助手插件方案的两难困境
以往桌面挂件与助手类软件在设计扩展机制时,往往容易陷入两个极端:
- 硬编码死板闭环: 每增加一个功能(天气、番茄钟、Token 余额查询),都必须重写原生代码、打包全新 DMG 镜像,强迫用户全量升级 App。
- 不可控脚本沙盒: 允许第三方插件在用户的 Mac 上随意执行 JavaScript、Python 或嵌入庞大的 WebView。这几乎必然带来内存泄漏、电池飞速消耗以及不可控的安全隐患。
LiPet 选择开辟第三条道路:声明式数据包 + 原生加固执行管线。
二、技能即数据包:声明式管线与云端无感下发
在 LiPet 的架构中,“技能(Skill)”不是一段可执行二进制代码,而是一份经过严格格式校验的声明式数据包。一个标准技能包包含:
- 清单与元数据(Manifest): 稳定唯一的标识符、可读显示名称、图标徽章以及分类属性。
- 查询与命令规范(Commands): 声明式的外部接口契约(例如如何抓取实时天气、如何读取 API 余额)。
- 呈现模式(Presentation Schemas): 结构化的 UI 模板,用于规范气泡提示、时间线卡片与仪表圆环的渲染。
- 权限边界(Permissions): 明确声明所需访问的网络域名、刷新频次与通知方式。
正因为技能是纯粹的结构化数据,官方云端仓库可以秒级将新技能和规则直接下发到你的 Mac 上。当官方推出新的模型厂商支持或更新天气解析逻辑时,你无需等待 App Store 审核或下载新版本安装包,小猫瞬间即可学会新技能。
三、AI 额度 Gauge 仪表盘与可视化
在首批随系统提供的官方技能中,最重要的类别之一是 AI 订阅额度与 API 用量监控。许多开发者和创作者每天都在频繁使用 OpenAI、Anthropic Claude、Google Gemini 或本地 Ollama 模型。
无需每次都打开浏览器后台反复刷新查看用量,LiPet 内置了高颜值的 Gauge 圆环仪表卡片,让你轻点小猫爪子即可随时一览剩余额度与重置周期。
四、严苛的权限模型与特权白名单
安全性是 LiPet 的底线原则。在技能中心安装任何技能时:
- 安装时透明确认: 清楚展示该技能将要访问的网络域名以及后台刷新节奏。
- 特权操作白名单与沙盒隔离: 技能严禁派生 Shell 进程,严禁越界访问用户文件系统,密钥信息只保存在本地钥匙串。
- 本地优先,零冗余追踪: 你的 API 密钥与使用账本全在本地流转,绝不上传 Safafish 分析服务器。
五、让技能活起来:身体触控映射与外部事件联动
技能与桌面小猫的实体交互深度融合,赋予了它独特的生命感:
- 身体触控映射: 在宠物中心里,你可以把小猫的身体切分为不同区域(例如:单击头部查天气,双击肚皮看 AI 额度,长按后背看 CPU 负载)。
- 外部现实事件响应: 当天气插件获取到本地室外开始下雨时,会向小猫的行为引擎发送外部触发信号——小猫在屏幕上停下脚步,做出抖落身上雨水的甩毛动作;寒流来袭时它会主动蜷缩成团打颤。
六、接下来我们要做什么
随着插件系统地基与触控映射的落成,我们接下来的攻坚重心将集中在:
- 调优精灵帧动画播放节奏与多档播放速度切换,提升动作表现的生动性。
- 校准 250ms 手势仲裁在各类触控板与高回报率鼠标下的判定容差。
- 筹备首批预发布开发者构建的分发测试。
感谢大家的支持,我们下期开发日志见!