AI Product · Desktop Application2026 - OngoingPrivate product / public case

PixelPal

面向 Windows 与 macOS 的 AI 桌面伙伴,把对话、轻量工作站与音乐电台融入日常陪伴。

StatusOngoing personal project
公开安全的产品架构Concept only. Not a product screenshot.
INPUTUser intent
CONVERSATIONAI + streaming states
BOUNDED INTELLIGENCERouter + Context Policy
read-only contextWorkstation
EXPERIENCE CONTEXT
focusrecoveryrelaxunknown
AssistantPal FM / DJPet presence
Audio playbackPixelWaveAudio driven. Never AI-controlled.

Overview

项目是什么,以及我在其中负责什么。

The problem

桌面上的 AI、工作管理、音乐和用户状态彼此割裂。PixelPal 探索:AI 是否可以成为桌面中的个人 Agent,而不是另一个独立聊天窗口?

The response

以受控的 Capability Router 与 Context Policy 连接对话和产品上下文;Workstation 只提供窄化的只读信息,Experience Context 再服务于助手、Pal FM 与桌宠状态。

My role

独立负责产品定义、方案与体验设计,并通过 AI-assisted engineering 推进客户端实现、跨平台适配、测试 / QA 与性能迭代。

Product concept

AI 在产品中是一组有边界的协作关系。

Capability Router
Context Policy
Experience Context
Streaming States
Confirmation Gates
Read-only Workstation
Tools & systems
ElectronJavaScriptSSEWeb Audio APIThree.jsPlaywrightnode:testWindows / macOS

Product iteration

从问题开始,用判断、验证和反馈推进,而不是一次生成后结束。

  1. 定义问题
  2. 形成假设
  3. 实现方案
  4. 验证行为
  5. 收集反馈
  6. 进入迭代
Agent boundary

从聊天框到有边界的产品大脑

Before / Problem

对话可以回答文本,却与产品上下文割裂;直接开放全部能力又会带来不可预测的动作。

Decision

拆开 Conversation、Capability Router、Context Policy 与 Experience Context;推断只提出建议,未知状态保持未知。

After / Evidence

对话、受控读取、澄清与 Pal FM 上下文建议都有显式路径;写入仍在 AI 边界之外。

Cross-platform

共享产品模型,平台拥有实现

Before / Problem

透明窗口、点击穿透、显示边界、持久化与退出在 Windows 和 macOS 上行为不同。

Decision

共享逻辑契约;由平台适配层分别负责几何、输入、本地状态、资源和生命周期。

After / Evidence

契约测试守住核心体验一致性,平台运行时测试验证各自拥有的行为。

Pal FM

让音乐理解情境,但不让 AI 接管播放

Before / Problem

一次“播放专注音乐”跨越意图、上下文、排序、DJ、TTS、播放与可视化,难以降级和清理。

Decision

分离各阶段;播放由媒体层拥有,PixelWave 只消费音频分析数据,不接收 AI 指令。

After / Evidence

私有运行验证完成 20 次切歌,以及播放、FM、PixelWave 各 50 次有界开关循环。

仅报告经审计的有界验证,不主张生产规模稳定性。
Performance

为常驻产品治理空闲成本

Before / Problem

早期无界视觉工作与重复启动所有权,让界面看似空闲时仍持续消耗资源。

Decision

引入有界帧所有权、dirty draw、隐藏状态释放、analyser 清理与 single-instance lock。

After / Evidence

同条件短时 Windows 筛查中,idle CPU p95 从 5.083% 降至 0.250%。

主机与测试条件特定;不是通用基准,长期 soak 仍是后续验证项。

Evidence

只展示能够被当前项目证据支持的结果。

5.083% → 0.250%Windows idle CPU p95同主机、同方法的短时筛查;非普适基准。
50 × 3有界交互循环Play / Pause、Pal FM 与 PixelWave 开关各 50 次。
18.0 msmacOS frame-time p95两次确定性低基线 smoke;特定主机结果。

Code & systems

关键代码直接展开,说明产品判断如何进入系统。

Sanitized pseudocodeExperience Context Contract CODE VISIBLE
Purpose

把不稳定的自然语言判断收敛为有限、可测试的体验状态。

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" };
}
What it solves

让推断只产生建议而不是静默执行;unknown 保持 unknown,避免 AI 猜测用户状态。

根据公开架构重新整理的伪代码,不是私有仓库源码。
Sanitized pseudocodeRead Boundary CODE VISIBLE
Purpose

限制 AI 能读取的 Workstation 数据形状,并把写操作留在边界之外。

const workstationCapability = {
  actions: ["reminders.read", "memo.summary", "tempFiles.metadata"],
  maxItems: 8,
  paths: "redacted",
  writes: false,
};
What it solves

让 AI 获得足够有用的工作上下文,同时不静默修改提醒、备忘录或文件。

Public-safe contract sketch;不对应私有文件结构。