Skip to content

技术栈

选型服务于本地个人 Agent 桌面产品,不是训练平台或企业 Serving。

总览

技术说明
桌面壳Tauri 2 + Rust轻量、系统 WebView
UIReact 19 + TS + Vite@aurevoy/web-ui 库模式
引擎Node ≥ 22.19 + Fastify 5独立进程
Agent 循环@earendil-works/pi-agent-core主任务与子代理
工具Effect 3 + 自研 framework + MCP SDKSchema 工具、MCP 扩展
存储better-sqlite3 + sqlite-vec任务/轨迹/记忆/KB 一文件
通信HTTP + SSE本机回环
Monoreponpm workspaces零额外编排工具

为何这样选

决策理由取舍
Tauri 非 Electron包体与内存更小,权限可控WebView 差异;壳层 Rust
TS 全栈与 shared 契约同构,分发无需塞 PythonAI 生态偏 Python → 用 Pi + MCP 补
Fastify性能与 TS 友好,SSE 用原生流
better-sqlite3同步 API、本地单用户原生模块需按 Node/平台 rebuild
sqlite-vec同库向量,零额外服务需 embedding;失败降级关键词
SSE 非 WS任务输出单向流式双向场景仍用 HTTP 追问/审批
Pi 非自研 ReAct统一主循环与工具执行策略控制面(审批/沙箱/轨迹)仍在 Aurevoy
Effect 工具Schema I/O、作用域注册、可测学习曲线;旧路径逐步收敛

不选:LangChain 重量级编排、Vercel AI SDK 私有流协议、Prisma 对本地同步路径过重。

记忆与 KB

  • 记忆:结构化字段 + 向量混合评分(α·关键词 + (1-α)·向量);无 embedding 时纯关键词。
  • KB:目录索引、分块、KNN recall;KNN 用 MATCH ? AND k = N,避免全表距离排序。
  • Embedding:OpenAI 兼容 /v1/embeddings(Ollama / OpenAI / 兼容网关)。

纪律

  • 加依赖前问:标准库能否搞定?维护是否活跃?
  • 锁可控版本;密钥只走 env / 设置库。
  • 已落地的不在「待定」重复:Pi、MCP、Effect 工具、sqlite-vec、任务轨迹、命令沙箱边界。

仍可评估

方向触发条件
图工作流框架当前 harness 无法维护复杂阶段/恢复
OTel 等外部观测需要跨任务/跨机面板
pnpm/turbo包数与构建时间明显上升
Playwright E2E发布门槛需要 UI 级回归
更强沙箱(进程/容器)开放高风险 shell/代码执行时

MIT License