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 只是可选的模型服务接入方式。