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

使用

相关推荐
tq10867 小时前
认知连续性与组织墙的崩塌:AI原生时代的架构重构
人工智能·架构
Phodal7 小时前
AI 解决繁杂任务:从 /goal 到长时间异步 Agent 运行
人工智能
tedcloud1237 小时前
ppt-master部署教程:快速搭建智能演示文稿系统
服务器·人工智能·系统架构·游戏引擎·powerpoint
闵孚龙7 小时前
Claude Code 工具提示词全拆解:AI Agent、Prompt Engineering、工具调用、上下文工程、自动化编程的底层逻辑
人工智能·自动化·prompt
白鲸开源8 小时前
杀疯了!SeaTunnel AI CLI 解锁数据集成新玩法
大数据·人工智能·github
阿旭超级学得完8 小时前
C++11包装器(function和bind)
java·开发语言·c++·算法·哈希算法·散列表
王_teacher8 小时前
GRU (Gated Recurrent Unit,门控循环单元) 原理详解 并且手写GRU模型
人工智能·gru·llm·nlp
AI医影跨模态组学8 小时前
Cancer Letters(IF=10.1)中山大学附属第六医院等团队:基于治疗前MRI影像的RCMIX模型预测MRI定义的cT4期直肠癌T分期下降
人工智能·机器学习·论文·医学·医学影像·影像组学
技术落地手记8 小时前
把AI塞进测试环节,我踩出了一条能用的路
人工智能·测试
端平入洛8 小时前
tool_calls 需要回传给大模型吗?
人工智能