DeepSeek Harness 桌面版:把 AI 智能体装回你的 Mac

DeepSeek Harness 桌面版:把 AI 智能体装回你的 Mac

如果你已经在关注 DeepSeek Harness,应该知道它是 DeepSeek 官方开源的 AI 智能体 / 工具执行框架:把模型能力拆成可组合的工具调用、多轮对话和任务编排。但官方版本目前主要面向命令行和浏览器场景——每次启动都要开终端、配环境、找端口,对日常开发者和普通用户都不够友好。

于是有了 DeepSeek Harness 桌面版:一个独立的 macOS 宿主,基于 Tauri 2 构建,面向 Apple Silicon 和 macOS 14 以上系统。它把 Harness 运行时包进原生应用壳里,同时保留运行时的独立更新能力。开源地址:https://github.com/itsVicOC/deepseek-harness-desktop。

一句话总结:它让 DeepSeek Harness 在 Mac 上拥有原生窗口、Keychain 保存密钥、自动更新、安全代理和一键诊断——而不用改动上游一行代码。

一、为什么要做一个桌面版?

DeepSeek Harness 本身是一个运行时 + Web UI 的组合。对开发者来说,这意味着:

  • 要单独安装 Node.js、pnpm 和 Rust 环境;
  • 启动后需要记 loopback 端口、手动处理 API Key;
  • 浏览器标签一多,Harness 的页面就被淹没;
  • 没有原生的更新机制,升级靠手动 pull + 重建。

这些问题在服务器端可以忍受,但在个人 Mac 上很劝退。桌面版的目标就是把"运行 Harness"这件事变成和普通 macOS App 一样的体验:下载、打开、登录、使用。

二、核心特性

特性 说明
Apple Silicon 原生 基于 Rust + Tauri 2,ARM64 构建,macOS 14+ 专属优化。
原生安全架构 API Key 存入 macOS Keychain;Harness 只绑定随机 127.0.0.1 端口;WebView 通过第二段 loopback 代理访问,内存 token 交换为 HttpOnly Cookie 后才会转发流量。
运行时独立更新 桌面应用和 Harness 运行时可分别升级。运行时更新带 Ed25519 签名、SHA-256 校验和原子回滚。
Sparkle 应用更新 Stable / Beta 双渠道,自动检查、签名下载、增量升级。
Unsigned Beta 没有 Apple 开发者证书也能出公开测试包(DMG/ZIP),降低早期参与门槛。
诊断与脱敏 一键导出诊断包,自动过滤 key、token、authorization、password 等敏感字段。

三、安全设计:把钥匙放进口袋

桌面版不是简单套个 WebView。它在安全边界上做了几件事:

  1. Keychain 隔离:API Key 使用 macOS Keychain 服务 com.itsvic.deepseek-harness-desktop,不会出现在任何文件或日志里。
  2. 双 loopback 代理:Harness 进程监听一个随机 loopback 端口,桌面再启动第二个随机 loopback 代理。WebView 拿到的是代理地址,真实 Harness 端口对外不可见。
  3. 一次性内存 token:WebView 初始 URL 带一个仅存在于内存的 token,代理校验后换成 HttpOnly、SameSite=Strict 的 session cookie,再转发时会把 token 从 URL 中抹掉。
  4. 更新可信校验:运行时 manifest 必须同时通过 HTTPS、Ed25519 签名、版本兼容性、SHA-256 和路径安全五项检查。

设计思路是:把"运行 AI 智能体"当成一个需要沙盒和凭证管理的桌面应用来做,而不是一个网页套壳。

四、技术架构速览

整个应用分成三层:

  • React 前端(src/):导航、设置、更新中心、诊断页,以及嵌入 Harness Web UI 的容器。
  • Tauri / Rust 核心(src-tauri/):进程生命周期、loopback 代理、Keychain 读写、签名更新安装、日志与诊断。
  • 原生桥接(src-tauri/native/):Sparkle 更新框架的 Objective-C 桥接;本地构建无 Sparkle 时会自动降级为 stub。

运行时来源有四级回退:

  1. 开发环境变量 DSH_DESKTOP_DSH_BIN;
  2. 已安装的 ~/Library/Application Support/DeepSeek Harness/runtime/current.json;
  3. 应用包内自带的 runtime/current;
  4. 同级目录的 deepseek-harness 源码 checkout(开发模式)。

这样开发时可以改完桌面代码直接跑,发布时用户又不需要装 Node 或 pnpm。

五、谁适合用?

  • DeepSeek 模型使用者:想把 Harness 当成本地智能体入口,但不想天天碰终端。
  • macOS 原生体验党:希望菜单栏、快捷键、Sparkle 更新、Keychain 一应俱全。
  • 安全敏感团队:需要把 API Key 和运行日志集中管起来,而不是散在浏览器和 shell history 里。
  • 早期尝鲜开发者:愿意用 Unsigned Beta 包测试,反馈 issue 或贡献代码。

六、快速开始

普通用户

关注 GitHub Releases,下载对应 Apple Silicon 的 DMG/ZIP。首次打开若遇到 Gatekeeper 警告,右键打开即可(Unsigned Beta 预期行为)。

开发者

cd deepseek-harness-desktop
pnpm install
pnpm test
pnpm tauri dev

环境要求:

  • Apple Silicon Mac,macOS 14+
  • Node.js 22.19+、pnpm 11.8
  • 稳定版 Rust 和 Xcode Command Line Tools
  • 同级目录放置未修改的 deepseek-harness 源码(开发回退用)

七、当前状态与路线图

项目刚刚开源,当前上游锁定在 0.1.0-rc.5(commit 47f94385)。短期内重点:

  1. 稳定 Unsigned Beta 的打包和发布流程;
  2. 完善诊断导出和回滚体验;
  3. 根据上游 Harness 迭代保持运行时同步更新;
  4. 收集 Apple Silicon 真实使用反馈,优化内存和启动速度。

八、参与进来

这是一个社区驱动的桌面封装项目,核心原则是不修改上游源码,所有桌面能力都通过适配层实现。如果你:

  • 在 Mac 上运行 DeepSeek Harness 遇到体验问题;
  • 对 Tauri、Rust、macOS 安全或自动更新有经验;
  • 想帮忙完善中文文档或测试 Unsigned Beta;

欢迎直接去 GitHub 仓库 提 issue、PR 或 Star。

给项目一个 Star,让更多人看到 DeepSeek Harness 在桌面端的可能性。


GitHub:itsVicOC/deepseek-harness-desktop

上游项目:deepseek-ai/deepseek-harness