Skip to content

03 - 技术选型总结

从 Sice 项目开发总结的 AI 原生应用技术选型经验。


整体技术栈推荐(AI 原生桌面应用)

层级技术选型版本理由
桌面框架Tauriv2.x轻量跨平台,安装包小,资源占用低
前端框架React19.x生态成熟,社区活跃
UI 组件库shadcn/ui4.x基于 Radix UI,样式可定制,无捆绑
AI 聊天组件AI Elements-基于 shadcn/ui,开箱即用
样式方案Tailwind CSS4.x原子化 CSS,开发效率高
状态管理Zustand5.x轻量简洁,学习成本低
AI SDKLangChain SDK-useStream 原生支持流式响应
包管理器pnpm9.x速度快,磁盘占用小,支持工作区
Agent HarnessDeep Agents0.5.x+开箱即用的任务规划、文件系统、子代理
Agent 框架LangGraph-成熟的图执行引擎,状态管理
Web 框架FastAPI0.100+原生异步,类型安全,自动文档
CLI 框架Typer0.9+类型注解驱动,自动生成帮助
Python 包管理器uv-比 pip/poetry 更快,原生支持锁文件
Python 打包Nuitka2.6+编译为单可执行文件,启动快
配置管理pydantic-settings2.x类型安全,环境变量读取

Python 环境选型对比

包管理器

选项速度锁定依赖推荐场景
uv极快 ✅原生支持 ✅推荐,新项目首选
poetry中等原生支持习惯 poetry 可使用
pip + requirements.txt需要手动处理不推荐新项目

结论uv 是目前最佳选择。

打包方案

选项单文件启动速度大小推荐场景
Nuitka是 ✅快 ✅中等 ~50MB推荐,sidecar 场景
PyInstaller较大备选
Docker中等服务器场景

结论:桌面端 sidecar 场景,Nuitka 最佳。


Agent 框架选型对比

Deep Agents vs 自研

维度Deep Agents自研
任务规划内置 ✅需要自己写
文件系统内置 ✅需要自己写
子代理委托内置 ✅需要自己写
长期记忆内置 ✅需要自己写
人机协同内置 ✅需要自己写
开发速度极快 ✅

结论:新项目直接用 Deep Agents,不需要重复造轮子。

LangGraph vs 其他

维度LangGraph其他框架
状态管理原生支持 ✅很多不支持
流式输出原生支持 ✅需要适配
持久化多种后端 ✅需要自己写
社区生态活跃 ✅参差不齐
Deep Agents 集成官方原生 ✅需要适配

结论:Deep Agents 本身基于 LangGraph,直接用就好。


前端选型对比

UI 组件库

选项样式定制性捆绑推荐场景
shadcn/ui未捆绑,自己选 Tailwind完全可定制 ✅无 ✅推荐
Ant Design全套样式一般中后台
MUI全套样式一般习惯用可选

结论:Tailwind 项目,shadcn/ui 最佳。

状态管理

选项大小学习曲线推荐场景
Zustand极小 ✅简单 ✅推荐,大多数场景
Redux陡峭大型团队项目
Context API内置简单简单场景

结论:Zustand 足够用,更简单。


通信方案对比

前端直连 vs Tauri 中转

方案复杂度延迟推荐
前端直连 Python Agent低 ✅低 ✅推荐
Tauri 中转不需要

理由

  • 都是 localhost 通信,不需要 Tauri 中转
  • 前端直接 HTTP + SSE,LangChain useStream 直接支持
  • 减少一层,减少出问题的概率

认证方案对比

动态令牌 vs 固定令牌

方案安全性复杂度推荐
动态令牌(每次重启生成)高 ✅中 ✅推荐
固定令牌(用户配置)开发可用

理由

  • 动态令牌即使文件被盗,重启后就失效
  • 实现不复杂,状态文件权限 0600 保护

权限方案对比

二进制内置 + 用户配置 vs 全用户配置

方案安全性灵活性推荐
双层:二进制内置(高敏感)+ 用户配置(低敏感)高 ✅中 ✅推荐
全用户配置不推荐

理由

  • 高敏感限制(比如禁止任意 shell)必须内置,防止被篡改
  • 低敏感授权(允许访问哪些目录)交给用户配置

总结:技术选型原则

  1. 优先选择官方原生集成:Deep Agents 基于 LangGraph,直接用就好,不需要自己适配
  2. 选轻量方案:桌面应用,启动速度和资源占用很重要
  3. 避免过度设计:能直连就不要加中间层,能简单就简单
  4. 接受渐进:不追求一步到位,先跑起来再优化
  5. 拥抱社区:成熟生态比完美但小众的方案更靠谱

基于 MIT 许可发布