恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

从 Vite 代理到 Rust IPC:Hermes-CN-Desktop 开发模式与生产模式的区别全解

  • 首页
  • 资讯中心
  • /
  • 从 Vite 代理到 Rust IPC:Hermes-CN-Desktop 开发模式与生产模式的区别全解

相关资讯

AI时代下,GEM优化组织落地工程化:角色路由+KPI埋点+预算分配表 2026/10/11 13:17:49
Qt文件管理器实战:QFileSystemModel与QTreeView工程解析 2026/10/11 13:17:49
运动想象脑电分类实战:CNN局部特征+Transformer全局注意力 2026/10/11 13:17:49

最新资讯

阿里通义千问Qwen3深夜升级:MoE+FP8架构革新与Instruct性能实测
927张痤疮图片如何训练YOLOv8检测模型:数据清洗到边缘部署全实践
“不是 Jira,是 Linear”:我用一段技术口述测试 Typeoff 的自动纠正
OpenClaw(Clawdbot)怎么部署?2026年阿里云AI智能体快速部署超详细步骤流程
【AI测试系统】第3篇:AI生成的测试用例太“水”?14年老兵:规则引擎+AI才是王炸组合|TaoToken统一Key实战
LDA主题模型实战指南:从原理到gensim调参的完整流程

今日推荐

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

从 Vite 代理到 Rust IPC:Hermes-CN-Desktop 开发模式与生产模式的区别全解

发布时间:2026/10/11 13:17:49
从 Vite 代理到 Rust IPC:Hermes-CN-Desktop 开发模式与生产模式的区别全解 人工智能AI Agent桌面应用【免费下载链接】Hermes-CN-DesktopHermes Agent CN desktop app, Windows-First, built with Tauri, Typescript and Rust. Isolated Hermes Agent core insides.项目地址https://gitcode.com/gh_mirrors/he/Hermes-CN-Desktop点击查看免费下载Hermes-CN-Desktop 是基于 Tauri、React 与 Rust 构建的 AI Agent 桌面客户端内置独立的 Hermes Agent 内核。理解它的开发模式与生产模式关键是看懂一条链路开发时请求走Vite 代理转发到本地 Dashboard打包后同一条链路由Rust IPC 原生代理接管还包含 WebSocket 中继。这篇文章把两种模式的区别一次讲透。先看懂全景桌面端其实由三层组成层位置职责前端 UIweb/React Vite聊天、配置、诊断面板等全部界面Rust 外壳src/Tauri 原生能力进程管理、文件对话框、REST 代理、WS 中继Agent 内核Hermes-CN-Core托管 runtimemanaged runtime负责实际跑 Agent 与 Dashboard两种模式的区别本质就是前端拿到 UI 页面的方式和**/api请求的转发路径**不同。开发模式Vite 代理扛起一切一键启动开发环境在仓库根目录安装依赖后只需一条命令pnpm tauri:devtauri.conf.json 中的beforeDevCommand会先拉起 Vite dev serverdevUrl指向http://localhost:9545Rust 侧则编译出桌面窗口并加载这个地址。启动脚本 scripts/tauri-dev-managed.mjs 还会做一件关键的事把 Hermes-CN-Core 内核安装到隔离的dev-runtime目录通过HERMES_DESKTOP_RUNTIME_ROOT指向保证开发时的内核永远不会覆盖正式安装版的运行时分发状态。请求链路浏览器 → Vite/api代理 → 本地 Dashboard开发模式下前端注入的运行时信息里apiBaseUrl被刻意留空见 runtime.ts 的注释所以所有 API 调用都发往相对路径——也就是http://localhost:9545/api/...。此时真正干活的是 web/vite.config.ts 里配置的 Vite 代理所有/api前缀的请求含 WebSocket 升级被透明转发到http://127.0.0.1:9120本地 Dashboard可用环境变量HERMES_DASHBOARD_ORIGIN指向另一台 Dashboard不干扰你本机 9119 上单独跑着的实例。此外vite.config.ts 还注册了三个仅开发可用的插件中间件插件作用hermes-dev-token从 Dashboard 实时抓取会话 token供前端鉴权hermes-dev-session-log直接读取~/.hermes/sessions/下的会话日志并转成消息hermes-dev-session-archive提供会话归档/取消归档的内存态接口这解释了为什么改一个.tsx文件页面能秒级热更新HMR而无需重新编译 Rust——前后端在开发期是彻底解耦的两个进程。生产模式Rust IPC 全面接管打包流程静态文件 自定义协议执行pnpm tauri:build时beforeBuildCommand先运行 web/package.json 中的build:desktop即vite build --base./把前端编译成纯静态文件到web/disttauri.conf.json 的frontendDist则声明这些文件将被打进安装包。之所以base设为相对路径注释写得很直白打包后的 Tauri 应用通过自定义协议加载web/dist相对资源 URL 才能保证不解析成tauri://localhost/assets/*.json这类坏地址。同时tauri.conf.json 会把static/下的 bundled runtime、dashboard、skills、plugins 一并注入安装包。REST 请求api_request原生代理打包态没有 Vite 代理前端在 transport.ts 的shouldUseNativeIpc判断为 Tauri 平台且后端就绪后所有请求改走window.hermesDesktop.request——一条Tauri IPC调用。另一头是 src/commands/api_proxy.rs 描述的 Rust 代理它做了三件事本地拦截特定路由会话日志、归档、runtime 更新等由 Rust 直接应答对应开发模式里那三个 Vite 插件的职责注入鉴权头会话 token 由 Rust 从 Dashboard 获取并注入前端全程拿不到明文 token其余请求代理到 Dashboard不跟随重定向避免把 401 悄悄变成登录页 HTML。WebSocketRust 中继绕过 WebView 限制这是生产模式最硬核的一处。官方桌面版让渲染进程直连Dashboard 的/api/ws但打包后的 WKWebView 从tauri://源连接ws://127.0.0.1常会被判定为混合内容而拒绝。于是 src/commands/ws_proxy.rs 让没有源限制的 Rust 进程去连官方/api/wsJSON-RPC 套接字再通过 Tauri 事件与命令把帧双向中继给 WebView前端的 gateway-relay-socket.ts 模拟出与原生 WebSocket 逐字节一致的接口会话 token 也始终留在 Rust 侧不外泄。开发 vs 生产一张表看懂全部差异维度开发模式生产模式页面加载Vite dev serverlocalhost:9545HMR 热更新安装包内静态文件经自定义协议加载/api请求浏览器直发 → Vite 代理 →127.0.0.1:9120Tauri IPC → Rustapi_request→ DashboardWebSocketVite 代理透传ws: true可直连Rust 中继Rust 连官方/api/ws再转发帧会话 tokenVite 插件实时抓取分发Rust 获取并注入token 不出 Rust会话日志/归档Vite 开发插件读~/.hermesRust 代理本地拦截对应路由内核位置隔离的dev-runtime目录包内 bundled runtime / 托管 runtime前端改动生效保存即热更新需重新执行pnpm tauri:build常用命令pnpm tauri:devpnpm tauri:build排障善用内置的内核页与日志页两种模式遇到问题时都可以在「高级 → 内核」页查看 Dashboard 子进程 PID、API Origin、Gateway URL 与HERMES_HOME路径一键「重启 Gateway」「高级 → 日志」页则聚合 Agent / Gateway / Error 日志支持筛选与导出是定位连接失败 401这类问题的第一现场。新手常见疑问开发时还要手动启动 Dashboard 吗不需要pnpm tauri:dev默认走托管 runtime 自动拉起脚本也保留了对接你单独启动的 Dashboard 的入口见 scripts/tauri-dev-managed.mjs 的注释。为什么安装包里没有 ViteVite 只是开发工具链web/dist里的静态产物才是最终交付物CSP见 tauri.conf.json在生产态只放行ipc://与回环地址。改了 Rust 代码要重启什么Rust 侧改动需让 Tauri 重新编译而纯前端.tsx/.css改动在开发模式下保存即生效——这正是两层解耦的红利。小结一句话记忆开发模式 Vite 代理 热更新生产模式 Rust IPC WS 中继。前端代码无需感知环境差异transport层会自动切换通道而托管 runtime 的隔离安装、鉴权头的 Rust 侧注入、跨源限制的 WebSocket 中继正是这套架构能一键安装、开箱即用的原因。想深入源码可以从 src/bootstrap.rs 的三形态后端引导managed / local / remote读起。赞分享人工智能AI Agent桌面应用【免费下载链接】Hermes-CN-DesktopHermes Agent CN desktop app, Windows-First, built with Tauri, Typescript and Rust. Isolated Hermes Agent core insides.项目地址https://gitcode.com/gh_mirrors/he/Hermes-CN-Desktop点击查看免费下载相关推荐bokeh-notebooks项目概览终极Python可视化工具入门教程bokeh notebooks项目概览终极Python可视化工具入门教程 bokeh notebooks是一个基于Bokeh的交互式Web绘图项目通过IPy标题 Docker Swarm 模式从开发到生产的一站式解决方案标题 Docker Swarm 模式从开发到生产的一站式解决方案 项目介绍 【Docker Swarm Rocks】是一个已退役的网站但它留下了宝贵告别样式闪烁Vite 6 SSR开发模式下的样式模块处理新方案告别样式闪烁Vite 6 SSR开发模式下的样式模块处理新方案 在现代前端开发中服务端渲染SSR已成为提升首屏加载速度和SEO表现的关键技术。然而样式前端前端构建创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号