跳到正文
pi-star

切换语言

中文English

主题

pi-star

pi-star

架构

pi-star 的 UI、Rust 服务、数据边界与 Agent 后端。

组成

ui/                     pi-web UI 的 Vite 适配版(React 19 + Tailwind 4)
crates/pi-star-ai/      模型、provider、流式协议与 usage
crates/pi-star-agent/   Agent loop、事件、队列、工具调用
crates/pi-star-tools/   内置工具与 ExecutionEnv
crates/pi-star-harness/ 会话状态机、压缩、system prompt、skills、harness loop
crates/pi-star-core/    会话、配置、模型、文件/Git、终端、UiState
crates/pi-star/         Axum 路由、SSE、静态资源、认证与 CLI
app/                    Tauri 2 桌面壳(独立 workspace)

release 构建会把 UI 内嵌进 pi-star 二进制,由 Axum 同源提供;服务端不需要 Node。debug 构建仍从磁盘读取 UI,方便前端迭代。

数据边界

pi-star 继续使用 ~/.pi/agent 下的 pi 数据:JSONL 会话、settings.json、models.json、auth.json 与 pi-web 侧边栏状态。pi-star 停止后,可以用 pi CLI 或 pi-web 继续同一批会话。

Agent 后端

id 名称 实现
rpc 标准 PI pi --mode rpc 子进程,兼容 TypeScript 扩展
quick 极速 PI(QuickPI) 进程内 AgentHarness

后端选择写在会话文件的 pi-star:agent-backend custom entry 中,随会话文件走;没有该 entry 时按标准 PI 处理。一个会话同一时间只能由一个后端写入。

桌面壳

app/ 是一个独立的 Tauri 2 workspace,只负责:

  • 单实例启动,定位并启动随包分发的 pi-star
  • 通过 stdout 生命周期事件与 /api/health 确认进程归属
  • 监督崩溃并按退避策略重启
  • splash / 错误页、托盘、开机自启、关闭到托盘
  • 退出时清理 pi-star 与 Node/PTY 子进程树

主窗口没有 Tauri IPC 权限;只有内置 splash 可以调用重试、退出和打开日志。

本地优先

pi-star 默认绑定本机地址,认证和访问控制由本地配置决定。它不依赖 QuadHub 才能运行;QuadHub Token 只是可选的模型服务接入方式。