harness 与 hermes-agent 源码结构与架构对比

源码规模和语言分布

从文件类型看,两者都很大,但重心完全不同。

Harness

主要文件类型:

  • .go:约 2686 个
  • .tsx:约 1005 个
  • .sql:约 743 个
  • .ts:约 646 个
  • .scss:约 389 个

这说明 Harness 是一个 Go 后端为主、React 前端为辅、数据库 schema/migration 很重的平台型工程。

Hermes Agent

主要文件类型:

  • .py:约 1902 个
  • .md:约 1379 个
  • .ts:约 328 个
  • .tsx:约 88 个
  • .yaml:约 90 个

这说明 Hermes Agent 是 Python agent runtime 为主,Markdown 技能/文档非常多,前端只是 dashboard/TUI 的辅助层。

Harness 顶层架构

Harness 的核心目录:

目录 作用
cmd/gitness 主可执行入口
cli CLI 子命令
app 应用层,包含 API、服务、认证、路由、Pipeline、Gitspace
git Git 操作封装
registry Artifact Registry 子系统
store / app/store 数据访问和数据库实现
types 领域类型、配置、枚举
web React 前端和 OpenAPI 生成客户端
ssh Git SSH 服务
job 后台任务调度
pubsub / stream / lock / cache 平台基础设施抽象
charts Kubernetes Helm 部署

整体架构是典型的服务端平台:

text 复制代码
CLI / HTTP / SSH
      |
app/router + app/api/controller
      |
app/services
      |
store / git / registry / job / event
      |
SQLite/Postgres + filesystem/blob + Docker + Redis(optional)

Hermes Agent 顶层架构

Hermes Agent 的核心目录:

目录 作用
hermes_cli CLI、配置、模型选择、工具配置、Dashboard、Gateway 控制
run_agent.py Agent 主循环入口和 AIAgent
agent 对话循环、压缩、模型适配、错误分类、工具执行、记忆等核心逻辑
tools Agent 可调用工具集合
toolsets.py 工具集定义和组合
model_tools.py 工具注册、schema 输出、同步/异步桥接
gateway 多平台消息网关
cron 定时任务调度
providers 模型 provider profile 抽象和发现
plugins provider、平台、memory、image/web 等插件
skills / optional-skills 技能库和可选技能
web Web dashboard
ui-tui React/Ink TUI
acp_adapter Agent Client Protocol 集成

整体架构是 agent runtime:

text 复制代码
CLI / TUI / Gateway / ACP / Web Dashboard
      |
hermes_cli + gateway
      |
run_agent.AIAgent
      |
agent/* 对话循环 + model adapters + memory + compression
      |
model_tools + tools.registry + toolsets
      |
外部 LLM provider / 浏览器 / 终端 / 文件 / Web / 消息平台 / MCP

核心代码组织差异

Harness

Harness 更强调领域边界和服务端分层:

  • controller 负责 API
  • services 负责业务逻辑
  • store 负责持久化
  • types 负责领域对象
  • router 负责 HTTP 路由
  • wire 负责依赖注入

它的大量复杂性来自平台业务:权限、资源层级、Git 数据、Pipeline 状态、Registry 兼容性。

Hermes Agent

Hermes Agent 更强调运行时组合和动态能力:

  • agent loop 负责多轮对话和工具调用
  • registry 负责工具自注册
  • provider profile 负责不同模型服务差异
  • skills 是 Markdown 形式的可读/可改能力包
  • gateway 把消息平台抽象成统一 agent 会话
  • config/env/profile 让同一程序能多场景运行

它的大量复杂性来自 LLM provider 差异、工具安全、多平台消息、长期状态和自动化任务。

架构粒度对比

维度 Harness Hermes Agent
主架构风格 分层服务端平台 插件化 agent runtime
核心抽象 资源、服务、控制器、存储 会话、工具、模型、技能、记忆
依赖组织 Go module + Wire DI Python 包 + runtime discovery
前端地位 产品 UI 的核心入口 Dashboard/TUI 辅助入口
数据模型 强领域模型、数据库表多 会话状态、配置、工具元数据多
扩展方式 新 controller/service/store/route 新 tool/provider/plugin/skill
相关推荐
UXbot1 小时前
企业AI开发工具:界面自动生成与前端代码交付能力详解
前端·人工智能·交互·web app·ui设计
AI服务老曹1 小时前
解耦异构算力与多路协议:基于 Docker 部署与源码交付的企业级 GB28181/RTSP 边缘计算 AI 视频管理平台架构深度解析
人工智能·docker·边缘计算
薛定猫AI1 小时前
【深度解析】Mimo V2.5 / V2.5 Pro 降价后,AI Coding Agent 的成本模型与工程落地策略
人工智能
AI医影跨模态组学1 小时前
Sci. Adv.(IF=12.5)首都医科大学宣武医院卢洁等团队:一种用于预测乳腺癌新辅助化疗病理完全缓解的多模态全自动系统
人工智能·深度学习·论文·医学影像·影像组学
weixin_446260851 小时前
[特殊字符] 情感感知代理内存检索指标白皮书:ENPMR-Bench 框架
人工智能
华清远见IT开放实验室1 小时前
华清远见亮相第64届高博会:聚焦具身智能,打造嵌入式/物联网/人工智能/机器人产教融合实践教学新生态
人工智能·物联网·机器人·嵌入式·实验室·具身智能·高校
Maddie_Mo1 小时前
Pi Agent Web 使用教程:把本地 Pi Coding Agent 搬进浏览器
android·java·前端·人工智能·ai
小熊officer1 小时前
AMD架构与ARM架构
arm开发·架构
老虎海子1 小时前
从零手搓一个 AI 编程助手:Mini Claude Code 完全指南
人工智能·git·vscode·python·github