重构 AI 编程流:基于 Hermes 记忆中枢与 OpenCode 执行终端的 Harness 工程化实践

安装方式请看之前的文章

介绍

在 AI 辅助编程(AI-Driven Development)日益普及的今天,我们似乎陷入了一个怪圈:AI 写代码很快,但生成的代码往往缺乏架构感,且难以维护。我们像是在“堆砌代码”,而不是在“构建系统”。

为了解决这个问题,我探索出了一套全新的工作流:利用 Hermes 作为“记忆与规划中枢”,指挥 OpenCode 作为“执行终端”,并引入 Harness Engineering 方法论进行约束。

本文将详细拆解这套架构,展示如何让 AI 像资深架构师一样思考,像熟练工一样编码。

为什么我们需要“双 AI”架构?

目前的编程助手大多是无状态的(Stateless),它们记不住你上周的架构决策,也不懂你项目的分层规范。

  • Hermes(大脑):它拥有长期记忆、技能库和规划能力。它负责理解复杂的业务需求,拆解任务,并维护项目的“宪法”(架构规范)。
  • OpenCode(双手):它拥有强大的代码生成和文件操作能力,但缺乏长期规划。它负责在 Hermes 的指挥下,精准地落地每一行代码。

Harness Engineering 则是连接两者的“法律”。它规定了代码必须分层(Layer 0-4),必须经过规划才能执行。

核心架构:Harness 方法论的移植

为了让 OpenCode 能够听懂 Hermes 的指挥,我将原本为 Qwen Code 设计的 Harness 配置进行了“通用化适配”。

1. 分层架构(Layered Architecture)
这是 Harness 的核心。我们强制规定项目结构,防止 AI 写出“面条代码”:

  • Layer 0 (Types):纯数据对象,无依赖。
  • Layer 1-2 (Utils/Config):工具类与配置。
  • Layer 3 (Domain):核心业务逻辑。
  • Layer 4 (Interfaces):控制器与接口。

原则:高层可以依赖低层,低层严禁感知高层。Hermes 会在生成代码前,先检查这个依赖关系。

2. 记忆与状态的“文件化”
由于 OpenCode 无法直接调用 Hermes 的内部工具,我们将“记忆”实体化为 Markdown 文件:

  • harness/tasks.md:任务清单(Hermes 写,OpenCode 读)。
  • docs/ARCHITECTURE.md:架构规范(Hermes 写,OpenCode 守)。
  • harness/trace/:执行日志(OpenCode 写,Hermes 读)。
实战演练:从零构建一个 Java 后台

当我们想要开发一个“SuperBoot 后台管理系统”时,流程不再是简单的“帮我写个登录接口”,而是遵循严谨的工程化步骤:

第一阶段:规划(Hermes 主导)
我告诉 Hermes:“我要一个支持多租户的 Java 后台。”
Hermes 启动 Planner 智能体,分析需求,生成 harness/tasks.md。它会定义:

  1. 初始化 Maven 结构。
  2. 设计 sys_user 表(包含 tenant_id)。
  3. 实现 Layer 3 的登录逻辑。

第二阶段:指挥(Hermes -> OpenCode)
Hermes 读取任务列表,向 OpenCode 发送指令。注意,这里的指令带有强烈的角色属性:

“你现在是 java-developer。请阅读 harness/tasks.md 中的任务 1。请在 src/main/java 下创建符合 Layer 0 规范的实体类。”

第三阶段:执行与验证(OpenCode -> Hermes)
OpenCode 生成代码,并写入文件。
Hermes 随后读取文件,运行“虚拟验证管道”:

  • 检查:User.java 是否导入了 Controller 类?(违规!Layer 0 不能依赖 Layer 4)。
  • 修正:Hermes 指示 OpenCode 重构代码,直到合规。
配置的关键:适配 OpenCode

为了让这套逻辑跑通,关键在于“翻译”配置。我将 Qwen Code 特有的工具调用,转化为 OpenCode 能理解的自然语言指令。

例如,将 save_memory 转化为:

“请将本次设计的数据库字段规范,追加写入到 docs/DATABASE_SCHEMA.md 文件中。”

agent 调用转化为:

“启动 Architect 角色,审查当前目录下的 pom.xml 依赖是否符合 Spring Boot 3 标准。”

总结与展望

通过引入 Harness Engineering,我们不仅仅是获得了一个代码生成器,而是获得了一位**“不知疲倦的架构师”**。

  • Hermes 保证了项目的连贯性和规范性。
  • OpenCode 保证了代码的落地效率。
  • Harness 保证了产出的质量。

使用

在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
5.
在这里插入图片描述
6.
在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐