Concept animation

Paper: 2604.08529 Authors: Zhiyuan Wang, Erzhen Hu, Mark Rucker, Laura Barnes (University of Virginia) Categories: cs.HC

The Integration Problem

AI coding agents can now generate personalized tools from natural-language requests. Need a health tracker? Describe it, get an app. Want parking automation? Ask, receive code. The generation problem is increasingly solved.

But generation creates a new problem: fragmentation at scale. Each generated artifact becomes another siloed app. Your health data lives in one tool, parking history in another, calendar in a third. When you ask “Is my heart rate too high right now?”—a simple situated question—the answer requires combining recent workout activity, current motion, sleep quality, and contextual signals like whether you’re rushing to an expiring parking spot.

The difficulty isn’t that any single signal is unavailable. It’s that these signals remain fragmented across apps, services, and interfaces. Personal software scales in quantity rather than coherence.

Existing solutions don’t solve this:

  • Chat-only agents (ChatGPT, Claude) can reason but don’t maintain persistent state or GUI instruments
  • Smart assistants (Siri, Google) have limited context and no cross-app synthesis
  • Automation tools (Shortcuts, IFTTT) connect apps but don’t enable reasoning
  • Code generation tools (v0, Cursor) create isolated artifacts without integration contracts

PSI: Instruments, Not Apps

PSI introduces a shared-state architecture that turns independently generated modules into instruments—persistent, connected, chat-complementary artifacts. An instrument is:

  1. Persistent: Remains available without regeneration, with a glanceable GUI for monitoring
  2. Connected: Publishes state to a shared personal-context bus and exposes write-back affordances
  3. Chat-complementary: Supports visual monitoring while chat handles synthesis, ambiguity resolution, and stateful actions

The key insight: both persistent GUI instruments and a generic chat agent (Facai) operate over the same shared-context bus. Integration becomes a local obligation—a new module needs only to implement the provider interface and register, rather than wire into every existing module.

Architecture

PSI consists of three layers:

1. Generation Layer

Modules are generated through a multi-phase pipeline: specification, code generation, auto-fix, and compile verification. Each generated module must satisfy a single Swift protocol (ToolkitDataProvider) requiring:

  • A toolkit identifier
  • Relevance keywords
  • One method: buildContextSummary() -> String?

This method returns a tagged, human-readable snapshot of the module’s current state (today’s sensed events, recent meals, upcoming calendar entries) together with any write-back endpoints it exposes. The same method serves both read context and action discovery for the chat agent.

2. Shared Personal-Context Layer

A central registry collects current-state snapshots from all registered modules and prepends them as a single tagged block before every chat message. Key properties:

  • Person-scoped: State persists on-device across tasks and sessions
  • Today-focused: Each snapshot captures today’s data rather than cumulative history
  • Graceful degradation: If a module has nothing to report, it’s silently omitted
  • LLM-mediated: Modules never read each other’s state directly; all cross-module communication is mediated by the LLM through assembled context

Unlike agent orchestration frameworks where state is scoped to a single task, PSI’s shared context requires no coordinating task graph and is consumed by all interfaces.

3. Interaction Layer: Dual-Modality Use

Two coordinated interfaces:

  • Persistent GUI: Glanceable monitoring, customizable dashboards, interactive timelines
  • Generic chat agent (Facai): Cross-context reasoning, ambiguity resolution, write-back actions

PSI’s contribution is not simply the coexistence of chat and GUI, but their role as synchronized entry points to the same person-scoped mutable state. Users can inspect state in a persistent instrument, revise it through chat, and immediately verify the effect in the GUI without duplicated state paths.

Evidence: Three-Week Autobiographical Deployment

PSI was evaluated through a three-week autobiographical deployment in RyanHub, a self-developed personal AI environment comprising:

  • SwiftUI iOS app (94 Swift files, 36,517 LOC) hosting persistent GUI instruments and chat interface
  • Python bridge server providing unified REST gateway for on-device data
  • Local JSON persistence for behavioral timeline, health entries, parking state
  • Python dispatcher maintaining WebSocket sessions with iOS client

14 modules created across behavioral sensing, health, scheduling, parking, reading, vocabulary learning, and self-tracking domains. Six core modules used during deployment, eight additional modules generated post-pilot to validate extensibility.

Case Study 1: BoBo (Behavioral Observer Bot)

A generalized behavioral sensing instrument that connects all health and motion sensors. Demonstrates how PSI supports persistent behavioral sensing beyond single question-answer interactions.

Capabilities enabled by shared context:

  • Cross-signal synthesis: relating heart rate spikes to location, activity, and calendar load
  • Temporal grounding: comparing sleep or recovery trends over multiple days
  • Action-oriented follow-ups: recommending rest, suppressing evening workouts, adjusting schedules

Example interaction:

  • User: “Why do I feel so drained lately?”
  • Facai retrieves state from BoBo, Health module, Calendar through shared context bus
  • Discovers: rushing between meetings, exercising too much, poor sleep the night before
  • User can verify explanation by inspecting BoBo’s persistent timeline GUI

Case Study 2: Automated Parking

A hyper-personal, market-of-one workflow tailored to a single user’s weekday parking routine. Automatically books parking before 7 a.m. to avoid lot filling up.

Dual-modality interaction:

  • Chat: “No parking this Thursday” → Facai triggers state change
  • GUI: Toggle skip state directly in persistent interface
  • Both operate over same persistent parking state (schedule, purchase history, active sessions)

Cross-module integration:

  • Uses calendar’s end-of-day event to infer parking duration
  • Integrates with location data to verify parking zone
  • Pattern generalizes to gym bookings, commute ticketing, medication reminders

Evaluation: Shared Context vs. Baselines

Three conditions tested on 50 synthetic user queries across frozen three-week dataset:

  1. Shared Personal-Context: Full PSI with preassembled personal snapshot
  2. Search-Only: Agent recovers relevant state opportunistically from file system (comparable to OpenClaw)
  3. Single-Module: Best-rated one-module variant per task

Reasoning Tasks (Cross-Module Synthesis)

ConditionMean FulfillmentTask Success
Shared Context0.880.68
Search-Only0.630.32
Single-Module0.270.08

Shared context substantially outperforms both baselines. Single-module performance is particularly poor (0.08 success rate), confirming that cross-module synthesis is essential for situated personal questions.

Write-Back Actions (GUI State Changes)

ConditionValidated ChangesSuccess Rate
Shared Context19/2095%
Single-Module19/2095%
Search-Only8/2040%

Shared context and single-module both achieve 95% success on write-back actions, while search-only achieves only 40%. The pattern reveals that shared context provides write-path discovery that ad hoc search cannot reliably achieve.

Latency

Mean successful latency for reasoning tasks:

  • Shared Context: 25s
  • Search-Only: 29s
  • Single-Module: 23s

End-to-end latency is not monotonic with context size. The overhead of preassembled context is offset by reduced search and retrieval time.

Key Insights

  1. Shared state enables cross-module reasoning: For reasoning tasks, shared context enables synthesis that no single module can provide. The gap between shared context (0.68 success) and single-module (0.08 success) is dramatic.

  2. Shared state provides reliable write-path discovery: For actions, shared context provides write-back affordances that ad hoc search cannot reliably achieve (95% vs. 40% success).

  3. Bidirectional information access: Shared context lets chat both read personal state and modify it through discovered endpoints, with changes immediately visible in persistent GUIs.

  4. Person-scoped state persists across sessions: Unlike task-scoped agent orchestration, PSI’s shared context is person-scoped and persists on-device, enabling longitudinal reasoning over days and weeks.

  5. Integration is a local obligation: A new module needs only to implement the provider interface and register, rather than wire into every existing module. This scales to heterogeneous tool ecosystems without pairwise integration.

Implications

For personal AI developers: Generation alone is insufficient. The missing layer is a shared-state substrate that lets independently generated modules interoperate. PSI demonstrates that a minimal integration contract (one protocol, one method) is sufficient to enable coherent personal computing environments.

For researchers: Autobiographical deployment reveals design tensions that controlled studies miss. The three-week deployment surfaced the importance of today-focused snapshots (vs. cumulative history), graceful degradation (silent omission of empty modules), and dual-modality interaction (persistent GUI + chat over same state).

For users: Personal AI should not force you to manually integrate fragmented apps. PSI shows that generated tools can become instruments—persistent, connected, chat-complementary artifacts that support both glanceable monitoring and cross-context reasoning.

Limitations and Future Work

  • Single-user deployment: Evidence comes from one technically skilled user in a self-developed environment. Population-wide adoption requires studying diverse users and use cases.

  • On-device only: All services run on localhost; personal data stays on-device by default. Cloud integration and multi-device sync remain open challenges.

  • LLM-mediated communication: Modules never read each other’s state directly; all cross-module communication is mediated by the LLM. This design choice trades direct API calls for flexibility but introduces latency and LLM dependency.

  • Today-focused snapshots: Current design captures today’s data rather than cumulative history. Longitudinal reasoning over weeks/months requires additional memory mechanisms.

PSI identifies shared state as the missing systems layer that transforms AI-generated personal software from isolated apps into coherent personal computing environments. The architecture, evaluation, and open-sourced artifact provide a foundation for future work on personal AI integration.

论文: 2604.08529 作者: Zhiyuan Wang, Erzhen Hu, Mark Rucker, Laura Barnes(弗吉尼亚大学) 分类: cs.HC

集成问题

AI 编码智能体现在可以根据自然语言请求生成个性化工具。需要健康追踪器?描述它,获得一个应用程序。想要停车自动化?询问,接收代码。生成问题正在逐渐得到解决。

但生成创造了一个新问题:大规模碎片化。每个生成的工件都成为另一个孤立的应用程序。您的健康数据存在于一个工具中,停车历史记录在另一个工具中,日历在第三个工具中。当您问”我现在的心率是否过高?“——一个简单的情境问题——答案需要结合最近的锻炼活动、当前运动、睡眠质量以及上下文信号,例如您是否正在赶往即将到期的停车位。

困难不在于任何单一信号不可用。而在于这些信号在应用程序、服务和界面之间保持碎片化。个人软件在数量上扩展,而不是在连贯性上扩展。

现有解决方案无法解决这个问题:

  • 仅聊天智能体(ChatGPT、Claude)可以推理,但不维护持久状态或 GUI 工具
  • 智能助手(Siri、Google)上下文有限,没有跨应用程序合成
  • 自动化工具(Shortcuts、IFTTT)连接应用程序,但不启用推理
  • 代码生成工具(v0、Cursor)创建孤立的工件,没有集成契约

PSI:工具,而非应用

PSI 引入了一个共享状态架构,将独立生成的模块转变为工具——持久、连接、聊天互补的工件。工具是:

  1. 持久的:无需重新生成即可保持可用,具有可浏览的 GUI 用于监控
  2. 连接的:将状态发布到共享个人上下文总线并公开写回功能
  3. 聊天互补的:支持视觉监控,而聊天处理合成、歧义解决和有状态操作

关键见解:持久 GUI 工具和通用聊天智能体(Facai)都在同一个共享上下文总线上运行。集成成为本地义务——新模块只需实现提供者接口并注册,而不是连接到每个现有模块。

架构

PSI 由三层组成:

1. 生成层

模块通过多阶段流程生成:规范、代码生成、自动修复和编译验证。每个生成的模块必须满足单个 Swift 协议(ToolkitDataProvider),要求:

  • 工具包标识符
  • 相关性关键字
  • 一个方法:buildContextSummary() -> String?

此方法返回模块当前状态的标记、人类可读快照(今天的感知事件、最近的餐食、即将到来的日历条目)以及它公开的任何写回端点。同一方法既用于读取上下文,也用于聊天智能体的操作发现。

2. 共享个人上下文层

中央注册表从所有注册模块收集当前状态快照,并在每条聊天消息之前将它们作为单个标记块添加。关键属性:

  • 以人为范围:状态在设备上跨任务和会话持久化
  • 以今天为重点:每个快照捕获今天的数据,而不是累积历史
  • 优雅降级:如果模块没有报告内容,则静默省略
  • LLM 中介:模块从不直接读取彼此的状态;所有跨模块通信都通过组装的上下文由 LLM 中介

与状态范围限定为单个任务的智能体编排框架不同,PSI 的共享上下文不需要协调任务图,并由所有界面使用。

3. 交互层:双模态使用

两个协调的界面:

  • 持久 GUI:可浏览监控、可自定义仪表板、交互式时间线
  • 通用聊天智能体(Facai):跨上下文推理、歧义解决、写回操作

PSI 的贡献不仅仅是聊天和 GUI 的共存,而是它们作为同一个以人为范围的可变状态的同步入口点的角色。用户可以在持久工具中检查状态,通过聊天修改它,并立即在 GUI 中验证效果,而无需重复的状态路径。

证据:三周自传式部署

PSI 通过在 RyanHub 中进行为期三周的自传式部署进行评估,RyanHub 是一个自行开发的个人 AI 环境,包括:

  • SwiftUI iOS 应用程序(94 个 Swift 文件,36,517 行代码)托管持久 GUI 工具和聊天界面
  • Python 桥接服务器为设备上数据提供统一的 REST 网关
  • 行为时间线、健康条目、停车状态的本地 JSON 持久化
  • Python 调度程序维护与 iOS 客户端的 WebSocket 会话

创建了 14 个模块,涵盖行为感知、健康、调度、停车、阅读、词汇学习和自我跟踪领域。部署期间使用了六个核心模块,试点后生成了八个额外模块以验证可扩展性。

案例研究 1:BoBo(行为观察机器人)

一个通用的行为感知工具,连接所有健康和运动传感器。演示了 PSI 如何支持超越单一问答交互的持久行为感知。

共享上下文启用的能力:

  • 跨信号合成:将心率峰值与位置、活动和日历负载相关联
  • 时间基础:比较多天的睡眠或恢复趋势
  • 面向操作的后续行动:建议休息、抑制晚间锻炼、调整时间表

示例交互:

  • 用户:“为什么我最近感到如此疲惫?”
  • Facai 通过共享上下文总线从 BoBo、健康模块、日历检索状态
  • 发现:在会议之间匆忙、锻炼过多、前一晚睡眠不佳
  • 用户可以通过检查 BoBo 的持久时间线 GUI 来验证解释

案例研究 2:自动停车

一个超个性化的、单一市场的工作流,专为单个用户的工作日停车例程量身定制。在上午 7 点之前自动预订停车位,以避免停车场满员。

双模态交互:

  • 聊天:“本周四不停车” → Facai 触发状态更改
  • GUI:直接在持久界面中切换跳过状态
  • 两者都在同一持久停车状态(时间表、购买历史、活动会话)上运行

跨模块集成:

  • 使用日历的当天结束事件来推断停车时长
  • 与位置数据集成以验证停车区域
  • 模式推广到健身房预订、通勤票务、药物提醒

评估:共享上下文与基线

在冻结的三周数据集上对 50 个合成用户查询测试了三个条件:

  1. 共享个人上下文:具有预组装个人快照的完整 PSI
  2. 仅搜索:智能体从文件系统中机会性地恢复相关状态(类似于 OpenClaw)
  3. 单模块:每个任务的最佳评级单模块变体

推理任务(跨模块合成)

条件平均完成度任务成功率
共享上下文0.880.68
仅搜索0.630.32
单模块0.270.08

共享上下文大大优于两个基线。单模块性能特别差(0.08 成功率),证实跨模块合成对于情境个人问题至关重要。

写回操作(GUI 状态更改)

条件验证的更改成功率
共享上下文19/2095%
单模块19/2095%
仅搜索8/2040%

共享上下文和单模块在写回操作上都达到 95% 的成功率,而仅搜索仅达到 40%。该模式揭示了共享上下文提供了临时搜索无法可靠实现的写路径发现。

延迟

推理任务的平均成功延迟:

  • 共享上下文:25 秒
  • 仅搜索:29 秒
  • 单模块:23 秒

端到端延迟与上下文大小不是单调的。预组装上下文的开销被减少的搜索和检索时间所抵消。

关键见解

  1. 共享状态启用跨模块推理:对于推理任务,共享上下文启用了任何单个模块都无法提供的合成。共享上下文(0.68 成功率)和单模块(0.08 成功率)之间的差距是巨大的。

  2. 共享状态提供可靠的写路径发现:对于操作,共享上下文提供了临时搜索无法可靠实现的写回功能(95% 对 40% 成功率)。

  3. 双向信息访问:共享上下文让聊天既可以读取个人状态,也可以通过发现的端点修改它,更改立即在持久 GUI 中可见。

  4. 以人为范围的状态跨会话持久化:与任务范围的智能体编排不同,PSI 的共享上下文以人为范围并在设备上持久化,支持数天和数周的纵向推理。

  5. 集成是本地义务:新模块只需实现提供者接口并注册,而不是连接到每个现有模块。这可以扩展到异构工具生态系统,而无需成对集成。

影响

对于个人 AI 开发者:仅生成是不够的。缺失的层是一个共享状态基板,让独立生成的模块可以互操作。PSI 证明了最小的集成契约(一个协议,一个方法)足以启用连贯的个人计算环境。

对于研究人员:自传式部署揭示了受控研究遗漏的设计张力。为期三周的部署揭示了以今天为重点的快照(与累积历史相比)、优雅降级(静默省略空模块)和双模态交互(持久 GUI + 聊天在同一状态上)的重要性。

对于用户:个人 AI 不应强迫您手动集成碎片化的应用程序。PSI 表明,生成的工具可以成为工具——持久、连接、聊天互补的工件,支持可浏览监控和跨上下文推理。

局限性和未来工作

  • 单用户部署:证据来自一个技术熟练的用户在自行开发的环境中。人口范围的采用需要研究不同的用户和用例。

  • 仅设备上:所有服务都在 localhost 上运行;个人数据默认保留在设备上。云集成和多设备同步仍然是开放的挑战。

  • LLM 中介通信:模块从不直接读取彼此的状态;所有跨模块通信都由 LLM 中介。这种设计选择以直接 API 调用换取灵活性,但引入了延迟和 LLM 依赖性。

  • 以今天为重点的快照:当前设计捕获今天的数据,而不是累积历史。数周/数月的纵向推理需要额外的记忆机制。

PSI 将共享状态确定为将 AI 生成的个人软件从孤立应用程序转变为连贯个人计算环境的缺失系统层。架构、评估和开源工件为个人 AI 集成的未来工作提供了基础。