用户需要直接提问,或从对话进入整理桌面、备忘、提醒和文件等明确任务。
PixelPal
面向 Windows 与 macOS 的 AI 桌面伙伴,把对话、轻量工作站与音乐电台融入日常陪伴。
选择一个界面,查看真实产品画面与背后的产品判断。
AI Panel
把 AI Agent 放在桌面产品里,通过对话调用整理、备忘、提醒、文件与下一步建议。
对话与五个命名能力放在同一面板,避免把 Agent 做成一个与产品割裂的聊天框。
未配置模型时保持明确空状态。能力调用经过路由与确认边界,不让模型静默执行产品动作。
Overview
项目是什么,以及我在其中负责什么。
桌面上的 AI、工作管理、音乐和用户状态彼此割裂。PixelPal 探索:AI 是否可以成为桌面中的个人 Agent,而不是另一个独立聊天窗口?
以受控的 Capability Router 与 Context Policy 连接对话和产品上下文;Workstation 只提供窄化的只读信息,Experience Context 再服务于助手、Pal FM 与桌宠状态。
独立负责产品定义、方案与体验设计,并通过 AI-assisted engineering 推进客户端实现、跨平台适配、测试 / QA 与性能迭代。
Product concept
AI 在产品中是一组有边界的协作关系。
Product iteration
从问题开始,用判断、验证和反馈推进,而不是一次生成后结束。
- 定义问题
- 形成假设
- 实现方案
- 验证行为
- 收集反馈
- 进入迭代
从聊天框到有边界的产品大脑
对话可以回答文本,却与产品上下文割裂;直接开放全部能力又会带来不可预测的动作。
拆开 Conversation、Capability Router、Context Policy 与 Experience Context;推断只提出建议,未知状态保持未知。
对话、受控读取、澄清与 Pal FM 上下文建议都有显式路径;写入仍在 AI 边界之外。
共享产品模型,平台拥有实现
透明窗口、点击穿透、显示边界、持久化与退出在 Windows 和 macOS 上行为不同。
共享逻辑契约;由平台适配层分别负责几何、输入、本地状态、资源和生命周期。
契约测试守住核心体验一致性,平台运行时测试验证各自拥有的行为。
让音乐理解情境,但不让 AI 接管播放
一次“播放专注音乐”跨越意图、上下文、排序、DJ、TTS、播放与可视化,难以降级和清理。
分离各阶段;播放由媒体层拥有,PixelWave 只消费音频分析数据,不接收 AI 指令。
私有运行验证完成 20 次切歌,以及播放、FM、PixelWave 各 50 次有界开关循环。
为常驻产品治理空闲成本
早期无界视觉工作与重复启动所有权,让界面看似空闲时仍持续消耗资源。
引入有界帧所有权、dirty draw、隐藏状态释放、analyser 清理与 single-instance lock。
同条件短时 Windows 筛查中,idle CPU p95 从 5.083% 降至 0.250%。
Evidence
只展示能够被当前项目证据支持的结果。
Code & systems
关键代码直接展开,说明产品判断如何进入系统。
把不稳定的自然语言判断收敛为有限、可测试的体验状态。
type ExperienceMode = "focus" | "recovery" | "relax" | "unknown";
function commitContext(input: CandidateContext) {
if (input.source === "explicit") return normalize(input);
if (input.source === "inferred") return { status: "suggest", input };
return { mode: "unknown", status: "idle" };
}让推断只产生建议而不是静默执行;unknown 保持 unknown,避免 AI 猜测用户状态。
根据公开架构重新整理的伪代码,不是私有仓库源码。限制 AI 能读取的 Workstation 数据形状,并把写操作留在边界之外。
const workstationCapability = {
actions: ["reminders.read", "memo.summary", "tempFiles.metadata"],
maxItems: 8,
paths: "redacted",
writes: false,
};让 AI 获得足够有用的工作上下文,同时不静默修改提醒、备忘录或文件。
Public-safe contract sketch;不对应私有文件结构。