实战!从0到1打造 Hermes Agent 桌面客户端,使用AI协作开发实录

30 阅读10分钟

从 Hermes Desktop Lite 出发,复盘我是怎么和AI一起开发的

首页多语言

chat-full.png

image.png

最近 Hermes 的讨论度很高,我自己也一直在用。它很强,但高频使用时,总觉得少一个更顺手的入口。

终端、浏览器、编辑器来回切换久了,想着还是不如做一个放在 Dock 里、点开就能用的极简桌面客户端,于是就有了我做Hermes Desktop Lite这么个事儿......

这个事情最大的收获,并不是我做出这客户端。而是我做的过程中,摸清了我应该怎么使用AI一起开发。

这篇文章不想聊什么技术栈、前端框架什么的,当然也聊不明白这么深奥的东西。我更想复盘一件事:当AI真正进入开发流程后,我负责什么,AI负责什么,以及我是怎么一步步把这种配合走顺的。


1.本质·我的AI开发练习场

说实话,这个项目,本质上是我的AI开发练习场,一开始并不是冲着“认认真真做一款桌面工具”去的。

我真正想弄明白的是:到底该怎么让AI进入到开发任务中,并且不会把程序搞得一团糟

Hermes Desktop Lite 刚好很适合拿来练这件事。有界面、有状态、有本地文件和工作区,也有真实的交互链路,复杂度够用,但又没有大到完全失控。

所以对我来说,这个应用更像一块试验田。 我一边做这个桌面客户端,一边在里面反复练几件事:

  • 怎么提需求给 AI
  • 怎么把问题切小
  • 怎么控制输出不要跑偏
  • 怎么判断哪些地方适合交给 AI
  • 哪些地方必须自己抓住

做到后面我才发现,这个项目真正有意思的,从来不在于选用了什么技术栈、用了什么框架,而是:真正耐人琢磨的,是把 AI 深度融入实际开发流程的整个摸索过程。

模型配置日志管理
image.png

hermes日志.png


2. 我的工作模式变化

AI进开发流程后,我参与的内容没有变少,只是模式变了

很多人会觉得,使用AI以后,应该能少做很多事。

但我真正做下来后的感受刚好相反:

AI并没有替我省掉“理解项目”这件事,反而要求我更快理解问题。

以前更多是自己想办法实现。现在更多是自己去判断、定位、约束、验收

换句话说,我的工作内容没有消失,只是从写代码,解决bug,变成了更快看清问题、把任务说准、把结果盯住

2.1 还得自己跟踪、定位问题

测试应用的时候,一个功能不对,AI不会天然知道问题在哪。我还是得先判断,这到底是:

  • UI问题
  • 状态问题
  • API问题
  • 桌面程序逻辑问题
  • 还是浏览器模式和桌面模式行为不一致

如果这一层判断错了,AI很容易在错误方向上越修越远。

所以很多时候,第一步不是“让AI改代码”,而是先把问题钉住

2.2 还得自己定位元素,精准告诉AI要改什么

这一点感受特别深。

AI很吃“目标是否明确”。改界面的时候,不能只说“这里改一下”或者“这个不太对”。更有效的说法通常是:

  • 改哪个页面
  • 哪个组件
  • 哪个区域
  • 哪个元素
  • 现在的问题是什么
  • 想改成什么样
  • 哪些地方不要动(!!!约束非常重要,否则AI可能会发散,导致不相关的文件被改乱)

一旦能快速定位到元素,AI的执行质量就会上来很多。如果自己都说不清楚,AI基本就只能猜。

2.3 还得把模糊需求压缩成明确任务

这是我学到的一个很重要的能力。

很多需求一开始在脑子里其实都是模糊的,比如:

  • 这里体验不顺
  • 这个页面有点乱
  • 这个状态不太对
  • 这个交互不够自然

但AI没法直接处理这种模糊感觉。必须先把它翻译成明确任务,比如:

  • 把设置页拆成左右两栏
  • 工作区切换后刷新会话列表和文件区
  • 文件管理页增加创建、删除和预览
  • 聊天流式输出结束后收掉 loading 状态

我发现,AI协作开发很大一部分能力,其实不是“会不会写prompt”,而是:能不能把模糊问题翻译成清楚任务。

2.4 还得自己补上下文

AI最怕的不是复杂问题,而是缺上下文的问题。

很多时候,为了让它输出稳定,我都得主动把上下文补齐:

  • 复现步骤
  • 报错信息
  • 涉及的文件
  • 当前行为
  • 预期行为

上下文一清楚,AI很像一个效率很高的搭档。上下文一模糊,它就特别容易开始脑补。

2.5 最后还是我自己验收

这个边界很清楚:AI可以帮我出成果,但不能替我做最后验收。

尤其是这些地方:

  • 状态是不是干净
  • 交互是不是顺
  • 功能点有没有漏
  • 功能是真的修好了,还是只是“看起来正常了”,这一点在关键链路上尤其明显。

3. 这个项目里,AI最能帮到我的三个场景

不是所有事情都适合交给AI。但在Hermes Desktop Lite的开发过程里,有三类场景我觉得特别好用。

场景一:我先定结构,AI帮我铺第一版

这个项目里,我很早就决定前端要支持两种运行方式:

  • 浏览器模式:专门调试UI,尤其是跟踪API调用状态和返回错误信息的时候
  • Tauri 模式:接真实桌面能力

选择这个架构是因为我知道,如果每次改界面都要重新拉起桌面环境或者debug,开发节奏会很慢。

等边界定下来以后,AI 在这里就特别顺手。它很适合帮我快速补这些东西:

  • API壳子
  • 浏览器分支和桌面分支
  • mock数据
  • 一些重复的状态读写逻辑

这种时候最明显的感受是:AI不是替我做架构,而是在替我把明确方案快速铺成代码。

工作区切换工作区

workspace-manager.png

image.png

场景二:规则我来定,页面和CRUD让AI来做

这个项目里像工作区管理、设置页、文件管理、会话列表、终端模拟这种页面,其实都很适合 AI 参与。

因为这些页面真正重要的是规则,而不是代码本身。

比如工作区管理,我会先自己想清楚:

  • 工作区最少需要什么字段
  • 切换以后哪些区域要联动
  • 删除当前工作区时要限制什么
  • 当前工作区和历史数据是什么关系

这些规则一旦明确,AI 就能很快帮我完成:

  • 弹窗结构
  • 表单状态
  • 列表渲染
  • 基础校验
  • toast提示
  • 空状态和报错状态

这类工作自己写当然也行,但让AI来做,效率会高很多。

场景三:关键链路让AI起跑,但我自己一定要坚守最后一关

最典型的例子就是聊天流式输出。

表面上看,这只是“把流接起来”。但真正做起来以后,问题全在边界上:

  • 结束事件会不会重复触发
  • 历史对话与当前会话session会不会冲突
  • 旧会话续写时上下文会不会断
  • 工具事件顺序是不是稳定

AI在这里当然也有帮助。它可以很快帮我把第一版骨架搭起来,比如:

  • 流式处理结构
  • 前后端事件桥接
  • 监听逻辑
  • 基础状态流转

但这类代码最容易出现一种错觉:它看起来像是完成了,其实还远没有。

因为关键链路的问题,很多只有自己跑起来才知道。

所以我后来给自己定了一条很明确的原则:AI负责干粗活,我负责验收。

对话工具调用信息终端

chat-detail.png

image.png

4. 哪些事情我现在依然不会交给AI去做

做到后面,我对边界越来越清楚。有三类事情,我现在基本不会交给AI来决定:

4.1 方向

这个应用到底是聊天壳子,还是日常使用的桌面工作台,这件事只能我自己定。

因为它决定后面所有东西的优先级。

4.2 核心交互

像工作区是不是核心概念,切换工作区要不要联动运行状态,这种事情也不会交给AI拍板。

它可以给建议,但不能替我做落地判断。

4.3 技术取舍

哪些能力自己做,哪些能力直接复用Hermes Agent已有接口,这也是我自己决定的。

因为这背后不是代码问题,而是时间成本、维护成本和学习目标的问题。

而且这个项目本来就是我在学习AI开发时的一块真实练习场。


5. 这次我真正学到的,不是某个框架,而是一种节奏

如果现在回头总结,这次最大的收获,真的不是我做出了Hermes Desktop Lite。

而是我终于知道,怎么和AI一起开发,才不会失控。

我现在更稳定的一套做法是:

  1. 先把问题切小
  2. 先把边界讲清楚
  3. 先由我定义规则
  4. 再让AI去完成明确局部
  5. 最后由我自己整合和验收

一旦这么合作,AI就不再是一个“给我写代码的工具”,而更像一个真正能提速的搭档。

它不能替我做判断。但它可以极大缩短我拿到第一版的时间。

而开发里最珍贵的,很多时候不是“少敲了多少代码”,而是:更快拿到一个可以继续判断、继续修正、继续推进的版本。

文件管理快捷指令
files.pngcommands.png

写在最后

Hermes Desktop Lite只是一个结果。

真正更重要的,是我终于通过这个项目,把“怎么和AI一起开发”这件事,练成了一套自己能复用的方法。

我现在越来越相信一件事:AI最适合的角色,不是自动生成整个项目,而是成为一个高响应速度的实现搭档。

前提是你自己得足够清楚:

  1. 你到底要做什么。
  2. 哪些地方必须自己判断
  3. 哪些地方适合交给AI提速
  4. 哪些地方最后必须自己验收
  • 如果这些问题你自己心里有数,AI确实能把开发效率往前推很多。
  • 但如果这些问题你自己都没想清楚,那AI往往只会把项目越带越散。
  • 希望这些踩坑经验和协作节奏,能给你带来一些参考。
  • 我们都在探索怎么更好地和AI一起工作,路上共勉。