前段时间我一直在想一件事:桌面宠物这类东西,大家其实都不陌生。它们可爱、轻量,挂在屏幕角落里会让桌面没那么冷冰冰。但问题也很明显,很多桌宠的新鲜感来得快,去得也快。看几天觉得挺有意思,再过一阵子,它就只是一个会动的摆件了。
另一边,AI 助手这几年越来越强,能聊天、能回答问题、也能帮忙处理一些操作。但很多 AI 产品给人的感觉还是太“工具”了,你用它的时候才会打开,不用的时候它就消失了,缺少一种持续陪伴的感觉。
所以我想做的,不是单纯把一个会动的小动物放到桌面上,也不是再做一个普通的聊天窗口,而是把这两件事揉在一起:做一个既有陪伴感,又真的能帮上忙的 AI 桌面宠物助手。
这个项目现在是基于Tauri 2 + Vue 3 + TypeScript + Rust做的。前端负责宠物形象、聊天窗口和设置页,Rust 这一侧主要处理桌面能力、语音、系统调用这些更贴近操作系统的事情。最后呈现出来的形态,就是一个透明置顶、无边框、常驻桌面的宠物。平时它安静待在屏幕角落里,你可以拖动它、点它、喂它,也可以随时和它说话。
它平时就待在桌面右下角,不抢视线,但一直有存在感。
我觉得这个项目真正有意思的地方,不在于“它会动”,而在于它是有状态的。它不是一上来就是一个全能助手,而是带了一点养成的设定。项目里现在有比较明确的生命阶段,比如Baby、Adult、Elder,甚至还有Dead。幼体阶段的它,更像是一只需要你陪着聊天、喂食、互动的小家伙。这个时候你让它去执行一些命令,它还不会,甚至还会很嘴硬地回你一句“我还太小了”。但等它长大以后,它才会慢慢从“宠物”过渡到“助手”。
幼体阶段我故意把“能力”收住了一点,让它先像个会闹脾气、会回应你的宠物,而不是一上来就进入工具模式。
这个变化其实就是我最想表达的那部分体验。很多 AI 应用一开始就把“效率”摆在最前面,但我更想试试看,能不能让一个助手先变得有点性格、有点存在感,再慢慢具备能力。这样你面对它的时候,感受不会只是“我在调用一个工具”,而更像是在和一个熟悉的小家伙打交道。
从现在的完成度来看,它已经不只是个概念了。项目里有独立的聊天窗口,也有单独的设置页。聊天支持文本输入,也接了语音识别能力,能直接按住说话。模型配置这块做成了兼容 OpenAI 风格的方式,所以无论是 API Key、模型名,还是 Base URL,都可以自己配。这样它不会被绑死在某一家服务上,折腾空间会更大一点。
除了聊天,我还给它接了一些系统工具能力。说白了,就是让它不只是“会回话”,而是真的能做一点事情。当前仓库里已经有时间、截图、命令执行、打开应用、宠物控制这类模块。演示视频里其实已经能看到比较直观的效果,比如让它帮忙打开微信,这种场景会让我觉得它开始像个真正的桌面助手,而不是一个只会卖萌的 UI 外壳。
到了成年阶段,它就不只是陪你聊天了,已经可以接住一些很实际的小任务。
当然,我也不想把它做成那种特别冰冷的执行器,所以宠物这一层我保留得比较重。它会随着状态切换动作,也有喂食、成长、互动这些部分。视频里能看到它从小体型慢慢过渡到成年状态,也能看到喂食之后的变化。这些设计未必能直接提升效率,但它能让整个项目的感觉完全不一样。你会更愿意把它一直放在桌面上,而不是只在“有任务要做”的时候才想起它。
我自己很看重这种“先建立关系,再提供能力”的感觉,这也是我想把养成系统留在项目里的原因。
技术上看,这个项目其实也挺适合做一些跨端桌面 AI 的实验。Tauri让整个应用比传统桌面壳子轻不少,前端这边用 Vue 做状态和界面比较顺手,Rust 则很适合承接语音、系统能力和工具调用。现在仓库里已经拆出了比较清晰的模块,包括宠物状态、成长系统、语音助手、窗口管理,以及后端的 LLM tools。对我来说,这种结构最大的好处就是后面还可以继续往里加东西,而不是越做越乱。
目前这个项目当然还在继续完善,很多地方也还有继续打磨的空间。比如宠物互动还能更丰富,技能系统还能再扩,桌面助手的可执行能力也还能做得更自然。但至少到现在,我觉得它已经不是“一个想法”,而是一个方向很明确的产品雏形了:它既可以是一只桌面上的小宠物,也可以在合适的时候,变成一个真的能帮你处理事情的 AI 助手。
如果你也对这种“陪伴感 + 助手能力”结合在一起的桌面产品感兴趣,可以看看这个项目。目前仓库已经开源,演示视频也已经放出来了。后面我还会继续把它往更完整的方向做下去,包括更多宠物形态、更多互动方式,以及更实用的技能能力。
开源地址和演示视频都在项目仓库里,欢迎来看看,也欢迎交流想法。
仓库地址:https://gitee.com/itsaysay/desktp-pet