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

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

  • [重构 AI 编程流:基于 Hermes 记忆中枢与 OpenCode 执行终端的 Harness 工程化实践](#重构 AI 编程流:基于 Hermes 记忆中枢与 OpenCode 执行终端的 Harness 工程化实践)
        • 介绍
        • [为什么我们需要"双 AI"架构?](#为什么我们需要“双 AI”架构?)
        • [核心架构:Harness 方法论的移植](#核心架构:Harness 方法论的移植)
        • [实战演练:从零构建一个 Java 后台](#实战演练:从零构建一个 Java 后台)
        • [配置的关键:适配 OpenCode](#配置的关键:适配 OpenCode)
        • 总结与展望
    • 使用

重构 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 保证了产出的质量。

使用

相关推荐
京师20万禁军教头1 小时前
33面向对象(中级)-object类详解
java
smallyoung1 小时前
RAG Chunking 全攻略:5 种策略 + LangChain4j 实战代码
人工智能·后端
Cosolar1 小时前
🚀本地大模型部署指南:16G/32G/64GB内存配置全解析(附最新模型速查表)
人工智能·后端·llm
Lyyaoo.1 小时前
【JAVA网络面经】应用层协议
java·开发语言·网络
北京盟通科技官方账号1 小时前
拒绝返工,应对挑战:fe.screen-sim 虚拟调试技术深度问答
人工智能·机器人·具身智能·虚拟调试·agv安全·工业产线·现场工程师
無限進步D1 小时前
Java 面向对象高级 继承
java·开发语言
云烟成雨TD1 小时前
Spring AI Alibaba 1.x 系列【37】ReactAgent 构建、执行流程分析
java·人工智能·spring
龙侠九重天1 小时前
Token是什么?深入理解计费与上下文窗口
人工智能·ai·大模型·llm·token
xiaotao1311 小时前
04-进阶方向: 01-计算机视觉(CV)——语义分割:FCN与U-Net
人工智能·计算机视觉·u-net·fcn