从 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),仅供参考

相关新闻

AI时代下,GEM优化组织落地工程化:角色路由+KPI埋点+预算分配表

AI时代下,GEM优化组织落地工程化:角色路由+KPI埋点+预算分配表

给开发者一个工程化读法:市场部组织落地,本质是三张配置表——角色路由表(四个位置各归其人)、KPI 埋点表(CPCQ 三层指标)、预算分配表(四块分账)加上一个 90 天迭代周期。结论先说&…

2026/10/11 13:17:54 阅读更多 →
Qt文件管理器实战:QFileSystemModel与QTreeView工程解析

Qt文件管理器实战:QFileSystemModel与QTreeView工程解析

简介:这是一份面向QT初学者与C GUI开发入门者的轻量级文件管理器项目源码,基于QT框架实现,帮助读者理解桌面端文件管理工具的基本架构与交互逻辑。压缩包共33个文件,约80KB,包含8个cpp源文件、7个h头文件、4个ui界面文…

2026/10/11 13:17:54 阅读更多 →
运动想象脑电分类实战:CNN局部特征+Transformer全局注意力

运动想象脑电分类实战:CNN局部特征+Transformer全局注意力

简介:运动想象脑电信号分类项目,基于Transformer框架并结合CNN提取局部时间空间特征,是一份完整的Python毕设源码,面向计算机、人工智能及相关专业的学生与从业者,可用于期末课程设计、大作业或毕业设计等场景。项目由…

2026/10/11 13:17:54 阅读更多 →

最新新闻

Flink 1.13.1 与 CDH 6.3.2 集成实战:YARN 提交与 Hive 接入指南

Flink 1.13.1 与 CDH 6.3.2 集成实战:YARN 提交与 Hive 接入指南

简介:面向需要在 CDH 6.3.2 集群中部署 Flink 1.13.1 的大数据运维与开发人员,这份安装包提供了完整的 Parcel 分发包与 YARN 集成组件,解决实时计算环境搭建、作业提交发布以及版本兼容与资源配置问题。资源共 5 个文件,包含 Fli…

2026/10/11 14:05:18 阅读更多 →
手语识别系统全栈实战:OpenCV+Python+MySQL图像识别链路

手语识别系统全栈实战:OpenCV+Python+MySQL图像识别链路

简介:面向计算机相关专业毕业生与开发者的手语识别系统完整项目,整合Python、OpenCV、JavaScript与MySQL,旨在通过摄像头实时捕获手势并识别输出文字,提升非手语使用者与听障人士的沟通效率。资源包共85个文件,包含42张…

2026/10/11 14:05:18 阅读更多 →
Oracle ODA一体机:预调优数据库交付引擎解析

Oracle ODA一体机:预调优数据库交付引擎解析

简介:本资源是一份面向数据库工程师、系统架构师及Oracle技术学习者的专业课件,聚焦Oracle Database Appliance(ODA)一体机的演进脉络、核心架构与实战价值。内容系统梳理了从ODA X3-2到X8-2系列的迭代升级路径,深入解…

2026/10/11 14:05:18 阅读更多 →
甘蔗病害图像分类数据集:19000张标注样本的预处理与模型训练实战

甘蔗病害图像分类数据集:19000张标注样本的预处理与模型训练实战

简介:本资源为一份面向计算机视觉学习者的甘蔗植物病害图像分类数据集,适用于图像分类模型训练、算法对比与课程实践等场景,尤其适合正在做农业病害识别或深度学习入门项目的人群。数据集共标注约19,000张图像,涵盖红腐病、锈病、…

2026/10/11 14:05:18 阅读更多 →
行人重识别源码实战:从解压到训练评估全流程

行人重识别源码实战:从解压到训练评估全流程

简介:一份面向本科毕业设计场景的行人重识别(Person Re-ID)Python源码项目,基于深度学习实现完整可运行的跨摄像头目标检索系统,流程覆盖数据加载与管理、ResNet特征提取、损失函数计算、距离度量、训练评估等核心环节…

2026/10/11 14:05:18 阅读更多 →
LSTM多变量预测实战:用Python搭建成绩预测模型

LSTM多变量预测实战:用Python搭建成绩预测模型

简介:面向希望掌握LSTM多变量预测的Python开发者,这份资源以成绩预测等场景为主线,系统覆盖时间序列转监督数据、数据预处理、模型定义与训练、评估优化等关键环节;同时按单变量、多变量和多步预测拆分为多个模块,并配…

2026/10/11 14:04:17 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →