2026年9月16日 · 阅读 —

给 AI 编程 Agent 一个真正的桌面工作台:聊聊 PI-Desktop

Agent 与 Skills知识与内容工具

给 AI 编程 Agent 一个真正的桌面工作台:聊聊 PI-Desktop


先说是哪来的

PI-Desktop 是个 GitHub 开源项目,仓库在 vastsa/PI-Desktop。

目前还是 Early Preview,0.14.x 这样的阶段,高频迭代中。

它构建在优秀的 pi-mono 开源生态之上,Agent 运行时用的是它的 pi-ai 和 pi-agent-core。

如果要一句话解释 PI-Desktop 和 Pi 的关系:

Pi 负责让 Agent 跑起来,PI-Desktop 负责让 Agent 变成长期可用的桌面工作台。

技术上用 Electron + React + TypeScript 做桌面壳,Rust 做高权限核心,SQLite 建索引,一套跨 macOS / Windows / Linux 的分发。

协议是 LGPL v3.0。

这些是仓库里写明的事实,不是我的判断。


它也不是又一个 AI 聊天框

现在很多工具擅长一问一答,你说一句它答一句。

但 AI 编程真正麻烦的场景不是这个:

一个任务跑半小时、一小时,甚至跨多次会话之后,它还能不能继续干。

PI-Desktop 从一开始就是为长任务设计的。

你可以同时管多个项目、多个会话,固定、归档、分支对话,搜索历史,Agent 干活的时候还能排队发下一条 Prompt。

用 @ 引用项目文件,用 Slash Commands 快速触发,看代码修改、看命令输出,对流式响应持续做 Checkpoint,应用重启或异常后尽可能恢复现场。

不是聊天,是工作台。


一个工作台,三种做事方式

同一个 Agent,不同大小的权限。

项目把它拆成三个模式,我觉得这个划分挺清楚:

AgentPlanGoal
要你确认什么不额外确认实施方案最终目标与验收条件
Agent 怎么做读代码、改文件、跑命令、测试、迭代先研究仓库,产出冻结的实施计划,再等你批准自己选路径,持续推进到目标完成
适合场景日常快速改代码大型改动、高风险重构只关心结果,不想管过程

平时小改动用 Agent,敞开了让它干。

架构改造、大重构用 Plan,先出方案再动手。

你只想要一个结果的时候用 Goal,把目标和验收条件锁死,过程交给它自己判断。

无论哪种模式,高权限工具都还是会过权限系统——这是底线,不是装饰。


Local-first,但不玩文字游戏

现在「本地优先」这个词被用烂了,很多软件挂着羊头卖狗肉。

PI-Desktop 至少把话说清楚:Local-first 不等于永远不联网。

具体到数据是怎么躺的,它写得很直白:

数据行为
会话本地 JSONL 存储,用 SQLite 建索引
设置保存在你电脑
API 密钥保存在操作系统 Keychain
日志本地
Telemetry无
模型请求直接发到你配置的模型服务或 API Endpoint

不注册账号,没有强制的云端中转层。

如果你用远程模型,那么请求所需的上下文自然会被发到对应 Provider,这一条它也不藏着——取决于 Provider 自己的隐私政策。

这个分寸感,是很多工具没有的。


模型是零件,不是前提

PI-Desktop 不维护「官方指定模型列表」。

OpenAI、Anthropic、OpenAI Compatible API、各类 Hosted Gateway、Ollama、LM Studio、自建模型服务都能接,同一个 Provider 还能接好几个模型。

每个模型能独立配上下文长度、最大输出、Reasoning / Thinking 等级、温度、专属参数。

而且不用重建会话,在输入框里直接切。

今天哪个模型好用,就接哪个。

模型应该是可替换部件,而不是把整个工作流锁死的前提——这是它反复强调的立场,也是很多闭源方案做不到的。


权限层:Agent 能干活,但不是乱来

Agent 可以读文件、改代码、跑命令,但涉及高权限操作,会经过 PI-Desktop 的权限层。

你可以看 Diff、看命令输出、看执行结果,也可以决定这个会话到底放多大权限。

在架构上是刻意解耦的,项目里画得很清楚:

React Renderer  ──>  Electron Main  ──>  Rust Host Core
                        │                  │
                        └──> pi Agent  <──> │
                                    │
                               Model Provider

React Renderer 做界面,不启用 Node integration,等于把最容易出问题的面关掉了。

Rust Host Core 管高权限的 Workspace 操作、权限、文件系统、持久化、密钥。

pi Agent Sidecar 管 Agent 循环、模型交互、流式输出。

Electron 只做桌面生命周期和组件协调。

UI、桌面高权限能力、Agent Loop,三层分开,各干各的,不揉成一团。

其中 Rust 那层管密钥、管权限、管 SQLite,是把「安全底线」从「能跑就行」里拎出来单独立了根柱子。


插件是第二条主线

核心保持克制,能力交给生态扩展。

PI-Desktop 提供多层扩展,从简单的 Agent 指令,到完整的桌面级插件:

  • Plugins:扩展 Agent 工具、Commands、Workspace Panels、MCP Servers、Skills、Subagents、主题,还能做长期运行的后台服务。
  • Skills:把常用 Prompt、工作流程、执行规范做成可复用能力,可全局装,也可只在某项目里启用。
  • MCP:通过 Model Context Protocol 接外部工具和服务,不用把所有功能硬编码进去。
  • pi extensions:为 pi CLI 写的扩展,可以直接跑在 PI-Desktop Agent 里。

官方还有个 pi.session-orchestrator 插件,让 Agent 并行协调多个持久 Worker 会话,适合大任务拆给小 Agent 干。

这里必须补一句边界,仓库自己也标注了:

插件进程有权限控制,也跟 Renderer 隔离,但它仍是用户主动信任的代码,不是完整的操作系统级沙箱。只装你信任的插件。

这句我格外在意,因为它戳中一个常被忽略的事实:AI 是杠杆,不是免责主体。

工具可以帮你干很多活,但任何信任的执行,最后责任都在你自己手上。


大任务交给 Subagents

复杂到塞不进一个上下文窗口的任务,不该硬塞。

PI-Desktop 可以把独立工作委派给后台 Subagents,比如:

  • 探索大型代码库
  • 多文件实现
  • 技术研究和调查
  • 测试分析
  • 对抗式 Review
  • 独立方案验证

每个 Subagent 有自己的上下文,做完再回报给主 Agent。

主 Agent 统筹,Subagent 分头干活。

这个分工模型,是给真正工程用的,不是给聊天用的。


5 步开始干活

上手并不难,README 给了一条很干净的路:

  1. 下载:从 GitHub Releases 拿最新版。
  2. 接入模型:Settings → Model configuration,选 Provider 或 Compatible API,填自己的凭据。
  3. 打开项目:从侧边栏添加任意本地仓库或项目目录。
  4. 选模式:直接开干用 Agent,先看方案用 Plan,只想定义结果用 Goal。
  5. Review:在 Review 面板查改动、看命令输出、预览程序,继续和 Agent 协作。

全程不用离开 PI-Desktop。

以前的会话也不用从零开始——已经在用 Claude Code、Codex、OpenCode、Pi 的,可以直接导入本地历史会话。


坑

它是 Early Preview。 API、扩展接口、部分桌面行为还会持续演进。别当生产环境的一锤子买卖来用,当成一个正经工作台来盯版本。

macOS 默认是未签名构建。 系统可能提示「已损坏或无法打开」,需要跑:

xattr -r -d com.apple.quarantine /Applications/PI-Desktop.app

PI-Desktop 把三件事的基本盘立住了:

本地优先、模型自由、权限可控。

这三条,恰恰是很多 AI 编码工具最容易偷工减料的地方。

它不是又一个聊天框,是想给 Agent 一个真正属于自己的长期桌面工作台。

想试试的,去 GitHub 提 Issue、报 Bug、改代码、写插件都欢迎,规模大的改动建议先开 Issue 对齐边界。

用你喜欢的模型,干你自己的活。

https://github.com/vastsa/PI-Desktop

#AI编程 #Agent #PI-Desktop #Local-first #开源 #编程工作台