Maltese
会摇尾巴的桌面宠物聊天伙伴
在你桌面上趴一只马尔济斯。没人碰它的时候,它自己踱步、伸懒腰, 蹲久了就蜷起来打盹,眼睛还跟着你的鼠标走。 点它一下就摇尾巴,双击它就去下面那一栏跟你说话 —— 上面那只就是活的,试试。全程离线,模型编在程序里,不联网。
它有两种形态,都不带边框
挂件态是一只直接落在桌面上的小狗 —— 没有窗口、没有标题栏、没有底板。 双击才展开成完整窗口。两种形态里是同一只狗,同一个骨架。
无边框、透明、置顶、不占任务栏。画布上只有三样东西:小狗、它脚下的接触阴影、 可选的一枚挂牌。首启会挂一枚白瓷牌交代怎么用,之后不再出现。

实机截图 · 整块画布只有它自己和它脚下的一小片阴影
顶栏是字标、状态点与设置;左栏是它自己:小狗卡、心情徽章、六枚心情胶囊、 人格与模型。右栏是对话。底栏常驻一句离线 · 只存本地 · v1.0.0。

实机截图 · 模型已就绪,它一进来先跟你打招呼
没人管它的时候,它也在过日子
桌宠的说服力不在「能被拖动」,而在「它自己会生活」。 一只停在原地的贴纸不叫桌宠。
小狗不是一张图,是一副能摆姿势的骨架:身体绒球 + 前爪 + 头 + 尾。 头与尾在各自的局部坐标里画好,再由姿态给出平移与旋转 ——换姿势只是换一组数字,一条路径都不用重画。而姿态由心情决定,所以它不会一边写着「开心」一边趴着不动。

四组姿态,是同一只狗 —— 路径一条都没重画
一个编在程序里的小模型
它的脑子是一份约一千万参数的字符级小模型,用 Polarbear 架构的推理子集, 跑在你自己电脑的 CPU 上。这份模型被直接编进了 exe。
一千万参数的字符级模型说不出完美中文,而且它不是在做问答,是在接着你的话往下写 —— 项目里量过三份检查点、二十五组采样配置,没有一组是对话。 所以装了模型之后,你多半会看到续写而不是回答。这一条写在「它的头脑」里,包括为什么不改 prompt、下一步往哪走。
缎带的色相,就是它的心情
全站只有一处饱和色,就是它头上那枚缎带。马尔济斯犬展上戴蝴蝶结 —— 这是它世界里的真实物件,于是我们让心情收敛成缎带的颜色和一个圆。下面那枚胶囊你按一下,上面那只狗会当场换缎带。
把基线设成
未选中的一律不上色——六枚胶囊各自染自己的色,等于一屏同时出现六个饱和色。 选中项才显色,并且标的是你设的那个,不是它现在漂到的那层。
这两个按钮演示的是另外两层。连摸两下才切「亲昵」(摸一下只是跳一跳)——9 秒后它自己落回; 一直摸就一直续期。徽章显示它现在的样子,胶囊环标的才是你设的那个,中间那行边注写出原因。 一个能自己改变状态的系统,必须始终留一个手动出口:点那枚已经选中的胶囊,立刻清掉漂移与即时反应,回到基线。
先接住话,再保持人格
它的回复不是从一个池子里随机抽一句。三个来源按顺序试,先命中先用 ——顺序是设计过的。下面这一栏可以直接打字。
和 Maltese 说点什么吧
或者点下面那排「试一句」
台词表是模型不加载、或加载失败时的降级路径。温度只决定它挑第几句 (不影响速度);回上面第 04 节换一枚心情胶囊,第三顺位的那句话也会跟着变。 内置模型那条路跑不了——它在你机器的 CPU 上(10,198,949 参数、词表 17,829 字、加载约 958 ms), 所以放的是五句真实录音。
词表、台词、记忆的两条规则、三个来源的先后顺序,都取自项目原型, 不是站上另写的一套玩具。这一栏跑的东西,和 App 里的那条降级路径是同一份。
它不知道怎么联网
这不是一句承诺,而是它被造出来的方式: 程序里不含任何网络功能,也就没有一条可以把数据送出去的通道。
规格
像铭牌上那一行蚀刻小字。上面每一处提到的数字,都在这里对一次账。
- 版本
- v1.0.0
- 平台
- Windows 10 / 11 · 64 位
- 发布形式
- 单文件 exe · 绿色免安装
- 文件大小
- 54,680,024 B (含内置模型 48.4 MB)
- 内置检查点
- 10,198,949 参数 · 字符级 · f32
- 词表
- 17,829 字
- 推理
- CPU 前向 · KV 缓存采样 · 无 GPU
- 网络
- 依赖表里没有任何网络库
- 心情
- 6 种 · 三层来源
- 人格
- 3 套
- 记忆
- 3 条 · 20 分钟有效期
- 音效
- 4 档 · 程序内合成 · 可整套静音
- 存档
- maltese_state.json (含 .bak 回退)
- 作者
- 北极熊 · Mint 薄荷
依赖表:serde · rand · rayon · chrono · flate2 · image · eframe · windows-sys。 没有一项会往外发消息。
想请作者喝一杯的话
Maltese 是免费的:没有广告,没有账号,没有「高级版」, 也没有一个一直等着你点它的升级按钮。做它,是因为想有一只这样的狗。

微信支付 · 这张图是作者本人给的,站点一个像素都没改过
收款码指向真实账户,别扫错。