目 录CONTENT

文章目录

Harness / Loop / Agent / Kanban / Gateway

PySuper
2026-08-07 / 0 评论 / 0 点赞 / 2 阅读 / 0 字
温馨提示:
所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

Agent Loop、 Loop Router、Kanban 多 Agent 队列、各类 Agent Profile、Harness 分层、Cron/Gateway/Skills/MCP 等外围系统如何串起来

1. 一句话结论

当前 Hermes 已经不是单纯的“聊天机器人”,而是一个 以 AIAgent 为核心执行引擎,以 Loop Router 做任务分流,以 Kanban 做持久化多 Agent 协作,以 Gateway/Cron 做长期运行入口,以 Skills/Memory/Tools/MCP 做能力扩展 的本地 Agent OS。

可以把整体理解成四层:

层级

作用

当前实现/入口

交互入口层

用户从 Desktop / CLI / Gateway / Cron 发起任务

Hermes Desktop、hermes chat、WeChat/iLink gateway、cronjob

调度治理层

判断任务类型、风险、需要哪些 Agent 和门禁

hermes-loop route~/.hermes/loops/*.yaml、Kanban

执行 Agent 层

真正调用模型、工具、文件、终端、浏览器、MCP

run_agent.py::AIAgent、Profile workers、delegate_task

Harness 保障层

让流程可控、可追踪、可验收、可恢复

Workflow/Task/Tool/Trace/Eval/Replay/Governance Harness


2. 总流程图

flowchart TD
    U[用户请求<br/>Desktop / CLI / WeChat / Cron] --> S[会话入口<br/>加载 profile/config/memory/skills/AGENTS.md]
    S --> R{Loop Router<br/>hermes-loop route}

    R -->|quick-task-loop| Q[当前会话快速闭环<br/>执行 → 验证 → 回复]
    R -->|复杂/生产/多角色| K[创建 Kanban triage card<br/>assignee=pmagent]

    K --> PM[pmagent 编排<br/>拆任务/定验收/分派 Agent]
    PM --> KB[(~/.hermes/kanban.db<br/>任务/评论/事件/依赖/Run 历史)]
    KB --> D[Gateway 内置 Dispatcher<br/>每 60s 扫描 ready 任务]
    D --> W[启动目标 Profile Worker<br/>HERMES_KANBAN_TASK + workspace]

    W --> A[AIAgent 核心 Loop<br/>LLM ↔ Tool Calls ↔ History]
    A --> T[工具层<br/>file/terminal/web/browser/MCP/github/...]
    A --> M[Memory / Session / Skills / Compression]
    A --> C{完成还是阻塞?}

    C -->|kanban_complete| Done[写入 run summary/metadata<br/>触发下游依赖/通知]
    C -->|kanban_block| Block[进入 blocked/triage<br/>等待人类或其他任务]
    C -->|失败/超时| Retry[Dispatcher 重试/回收/熔断]
    Retry --> KB

3. 核心 AIAgent Loop:每个 Agent 真正怎么“思考+行动”

核心执行引擎是 Hermes 源码里的:

  • run_agent.pyAIAgent 主循环

  • agent/prompt_builder.py:系统提示词组装

  • model_tools.py:工具 schema 收集与工具调用分发

  • tools/registry.py:工具注册中心

  • hermes_state.py:SQLite 会话存储

单个 Agent 回合生命周期

run_conversation()
  1. 生成 task_id
  2. 把用户消息加入 conversation_history
  3. 构建/复用 system prompt
     - persona / profile
     - AGENTS.md / CLAUDE.md / .cursorrules
     - memory / user profile
     - skills
     - tool schemas
     - environment hints
  4. 判断是否需要 preflight compression
  5. 按 provider API mode 转换消息格式
     - chat_completions
     - codex_responses
     - anthropic_messages
  6. 调用模型
  7. 解析响应
     - 有 tool_calls:执行工具,把 tool result 追加回历史,继续循环
     - 有最终文本:持久化 session/memory,返回给入口

工具调用流程

模型产生 tool_call
  → run_agent.py / model_tools.py 找到 handler
  → pre_tool_call plugin hook
  → 危险动作检查 / approval gate
  → 执行工具
  → post_tool_call plugin hook
  → tool result 写回 conversation history
  → 再次调用模型判断下一步

关键约束:

约束

说明

消息角色交替

必须保持 user → assistant → tool → assistant 等合法序列,不能连续两个 assistant/user。

多工具并发

单个响应中多个非交互工具可并行执行,结果按原 tool_call 顺序写回。

Prompt Cache 稳定

长会话不能随意改变系统提示词、工具 schema、上下文结构,避免缓存失效和成本暴涨。

自动压缩

上下文接近阈值时先 flush memory,再压缩中间历史,保留最后 N 条消息和工具对。

特殊 Agent 工具

todomemorysession_searchdelegate_task 由 Agent 层直接处理,不完全走普通 registry。


4. Loop Router:新增的“需求分流器”

你当前加了一套本地 Loop 编排配置,目录在:

~/.hermes/loops/
  loop-router.yaml
  base-production-loop.yaml
  quick-task-loop.yaml
  project-bootstrap-loop.yaml
  feature-delivery-loop.yaml
  bugfix-loop.yaml
  tool-install-loop.yaml
  prod-hardening-loop.yaml
  research-decision-loop.yaml
  security-audit-loop.yaml
  release-loop.yaml
  overlays/
    frontend-overlay.yaml
    backend-api-overlay.yaml
    data-migration-overlay.yaml
    security-strict-overlay.yaml
    tool-install-overlay.yaml
    docs-overlay.yaml

当前入口规则是:

hermes-loop route "<用户请求>"

Router 会输出:

字段

含义

Loop

选择哪个流程,例如 quick-task-loopfeature-delivery-loop

Risk

风险级别:low / medium / high / critical。

Entry

入口 Agent,当前默认 pmagent

Overlays

额外门禁/参与 Agent,例如 docs/security/frontend/backend。

Agents

推荐参与的 Agent 列表。

Max iterations

最大迭代轮数。

Loop file

实际命中的 YAML 文件。

当前请求的路由结果

本次请求实际执行结果:

Loop: quick-task-loop
Risk: low
Entry: pmagent
Overlays: docs-overlay
Agents: pmagent, docsagent
Max iterations: 2
Loop file: /Users/zheng/.hermes/loops/quick-task-loop.yaml

所以这篇文档属于:低风险、文档类、当前会话直接完成,不需要新建 Kanban 任务。


5. 当前 Loop 矩阵

Loop

用途

最大迭代

主要 Agent

典型场景

quick-task-loop

简单低风险任务快速闭环

2

pmagent,可选 docsagent/utilityagent

小文档、小查询、小修改

project-bootstrap-loop

从基座/模板初始化项目

3

pmagentarchitectagentdevopsagentdocsagent

新项目脚手架、模板复制、初始化工程

feature-delivery-loop

生产级新功能/新项目交付

5

pmagentproductagentarchitectagentcodexdevcodereviewqaagent

新功能、后台、API、前端页面

bugfix-loop

复现、定位、修复、验证 Bug

4

pmagentqaagentcodexdevcodereview

报错、失败测试、回归

tool-install-loop

安装/配置工具、MCP、CLI、插件、技能

3

pmagentresearchagentsecurityagentdevopsagentutilityagent

MCP、GitHub 工具、集成安装

prod-hardening-loop

生产环境加固和运维准备

5

pmagentdevopsagentsecurityagentqaagentdocsagent

部署、网关、launchd、监控、备份、回滚

research-decision-loop

调研、对比、决策

2

pmagentresearchagentdecisionagent

生态调研、架构选型、工具对比

security-audit-loop

安全审计与修复

3

pmagentsecurityagent

密钥、权限、认证、MCP 风险、依赖漏洞

release-loop

发布准备、变更日志、Go/No-Go

2

pmagentreleaseagentqaagentcodereviewsecurityagentdevopsagentdocsagent

release、deploy、changelog、merge/push

Base Production Loop 的标准阶段

复杂任务默认从 base-production-loop 继承这些阶段:

intake → product → research → decision → architecture → data
→ planning → implementation → code_review → qa → security
→ devops → docs → release

不是每个任务都跑满全链路;Loop 和 Overlay 会决定哪些阶段启用。

风险升级规则

Router 里的关键升级逻辑:

关键词/风险

自动加入的审查

密钥、token、password、auth、登录、权限、网络、webhook、MCP、API key、证书、TLS

securityagent

部署、服务、gateway、launchd、systemd、Docker、端口、监控、备份、回滚、上线

devopsagent

数据库、数据、migration、schema、SQL、索引、迁移

dataagent

文档、README、runbook、changelog、release notes

docsagent

删除、生产库、push、merge、release、支付、账号权限、credential rotation

人类确认门禁


6. Kanban:持久化多 Agent 工作队列

Kanban 是你当前多 Agent 协作的核心“任务总线”。它不是普通 todo list,而是一个 SQLite-backed durable work queue

当前默认看板状态采样:

当前值

默认 Board

default

DB

~/.hermes/kanban.db

当前任务数

todo=79blocked=38done=95

Dispatcher

默认跑在 Gateway 内部

调度间隔

60s

连续失败熔断

failure_limit=2

Orchestrator profile

pmagent

Default assignee

pmagent

Auto decompose

true

Auto decompose per tick

3

Kanban 和 delegate_task 的区别

对比项

delegate_task

Kanban

本质

父 Agent 调子 Agent 的 RPC

持久化任务队列/状态机

生命周期

进程内,父进程挂了就丢

SQLite 持久化,重启后仍在

Worker 身份

临时匿名 subagent

具名 profile,例如 docsagentqaagent

人类介入

不适合

可 comment / unblock / reassign

审计

主要在当前上下文里

task_events、task_runs、comments、worker logs

适用

短平快并行分析

多角色、长任务、生产交付、跨会话协作

Kanban Worker 生命周期

用户/pmagent 创建任务
  → 写入 ~/.hermes/kanban.db
  → dispatcher 每 60s 扫描 ready 任务
  → claim 任务并生成 task_run
  → 启动 assignee profile 作为独立 worker 进程
  → worker 获得 HERMES_KANBAN_TASK / HERMES_KANBAN_BOARD / workspace
  → worker 首先调用 kanban_show()
  → 执行任务:读写文件、终端、测试、浏览器、MCP 等
  → 长任务用 kanban_heartbeat()
  → 完成调用 kanban_complete(summary, metadata, artifacts)
    或阻塞调用 kanban_block(reason)

Worker 不会 shell 出去跑 hermes kanban complete;它通过专门的 kanban_* toolset 直接读写 DB。这一点很重要:即使 terminal backend 是 Docker/SSH/远程环境,Agent 进程仍然能正确操作本机 Kanban DB。

Kanban 关键工具

工具

用途

kanban_show

读取当前任务、父任务交接、历史尝试、评论线程、worker_context

kanban_complete

完成任务,写入 summary / metadata / artifacts

kanban_block

阻塞任务,记录原因,可等待人类或依赖

kanban_heartbeat

长任务心跳,避免被回收

kanban_comment

添加任务评论,作为人/Agent 协议

kanban_create

编排者创建子任务

kanban_link

建立父子依赖

kanban_unblock

解除阻塞并进入 ready/todo


7. Agent Profile 矩阵

当前本机已有这些具名 profile:

Agent/Profile

当前模型

Gateway 状态

角色定位

default

gpt-5.5

running

当前聊天主 profile;也承载 WeChat gateway。

pmagent

gpt-5.5

stopped

项目经理/编排入口;负责 route、拆解、验收标准、Kanban 分派。

productagent

gpt-5.5

stopped

产品价值、用户故事、MVP、验收口径。

architectagent

gpt-5.5

stopped

架构设计、模块边界、集成点、迁移风险。

codexdev

gpt-5.4-mini

stopped

主要实现者;适合清晰范围的代码改动。

claudecli

gpt-5.4-mini

stopped

备用实现者;适合复杂重构或架构重的改动。

codereview

gpt-5.4-mini

stopped

代码审查、阻塞问题、安全/质量检查。

qaagent

gpt-5.5

stopped

测试矩阵、复现、验证、用户可见行为检查。

securityagent

gpt-5.5

stopped

密钥、权限、认证、依赖、MCP/工具风险审计。

devopsagent

gpt-5.5

stopped

deployment、gateway、launchd、Docker、监控、备份、回滚。

docsagent

gpt-5.5

stopped

README、runbook、操作手册、交付文档。

researchagent

gpt-5.5

stopped

资料收集、生态调研、证据整理。

decisionagent

gpt-5.4-mini

stopped

多方案权衡、推荐、fallback。

dataagent

gpt-5.5

stopped

数据库/schema/migration/SQL/索引/一致性。

releaseagent

gpt-5.5

stopped

发版准备、changelog、Go/No-Go。

utilityagent

gpt-5.4-mini

stopped

辅助执行、机械任务、临时处理。

weixin2

gpt-5.4-mini

stopped

第二 WeChat/消息入口 profile。

注意:profile 的 gateway 状态 stopped 不代表不能工作。Kanban dispatcher 可以按需启动 profile worker;长期监听消息入口才需要 gateway running。


8. Harness 分层:把 Agent 从“能做”变成“可控交付”

这里的 Harness 不是单个命令,而是一套工程外壳。当前 Hermes 的各组件正好可以映射成 7 类 Harness:

Harness

目标

当前 Hermes 对应物

Workflow Harness

把任务流程版本化、结构化

~/.hermes/loops/*.yaml、Loop Router、Overlay、phase/gate/iteration 定义

Task Harness

标准化任务输入、输出、状态和失败策略

Kanban task、body、assignee、status、workspace、priority、parent links

Tool Harness

工具 schema、权限、风险、审计

tools/registry.py、toolsets、MCP deferred tools、dangerous approval、plugin hooks

Trace Harness

记录执行证据、调试路径、成本和事件

session SQLite、Kanban task_events/task_runs、worker logs、tool results

Eval Harness

判断是否真的完成

Loop gates、QA pass、code review pass、security/devops/docs/release gates

Replay Harness

能复盘、重试、从失败点继续

session_search、Kanban runs/history、blocked/unblock/retry、context compression lineage

Governance Harness

人类门禁、风险控制、数据/路径隔离

risk escalation、human approval、board isolation、tenant/workspace、profile toolsets

当前“完成定义”

复杂任务默认不能只靠模型说“完成”,至少要满足:

  • 验收标准明确;

  • 实现或产物真实落地;

  • 有测试/验证/命令输出证据;

  • 代码改动经过 review;

  • 涉及安全/部署/数据时,对应 Agent 通过;

  • 文档或 runbook 补齐;

  • release/deploy 场景有 Go/No-Go 和回滚策略。


9. Gateway / Cron / Delegation / Skills 等外围系统

9.1 Gateway

当前状态采样:

当前值

Gateway service

running

Service manager

launchd

Messaging platform

Weixin configured

Telegram/Discord/Slack 等

当前未配置

Kanban dispatcher

默认嵌入 gateway 内运行

Gateway 负责:

  • 接收外部消息平台消息;

  • 运行对应 profile 的 Agent 会话;

  • 承载 Cron scheduler tick;

  • 承载 Kanban dispatcher;

  • 投递 Cron/Kanban 结果通知。

9.2 Cron

Cron 是持久化定时任务系统,存储在:

~/.hermes/cron/jobs.json
~/.hermes/cron/executions.db
~/.hermes/cron/output/<job_id>/<timestamp>.md

当前状态:4 active, 4 total

Cron 每次触发都会启动一个新的 Agent session,不继承当前聊天上下文。重要能力:

能力

说明

one-shot / recurring

支持 30mevery 2h、cron 表达式、ISO 时间。

skills

每个 job 可挂载一个或多个 skill。

workdir

可指定项目目录,并加载该目录 AGENTS.md/CLAUDE.md。

script precheck

可先跑脚本收集上下文。

no-agent mode

纯脚本 watchdog,不调用 LLM,stdout 直接投递。

context_from

下游 job 注入上游 job 最近输出。

delivery

origin/local/WeChat/Telegram/Discord/all 等。

9.3 delegate_task

delegate_task 是进程内短期 subagent:

  • 适合并行分析、短任务、父 Agent 需要结果后继续;

  • 子 Agent 有独立上下文和 terminal session;

  • 不持久,进程退出会丢;

  • leaf 默认不能再 delegate;orchestrator 受配置限制;

  • 不适合长周期、人类介入、重启后继续的任务,这些用 Kanban。

9.4 Skills / Memory / Curator

系统

作用

Skills

程序化经验:特定任务的操作流程、命令、坑点、验证方式。

Memory

跨会话事实:用户偏好、环境事实、稳定配置。

Curator

后台维护 agent-created skills,统计使用、归档 stale skills、备份。

Session Search

从 SQLite 会话库查历史对话,用于恢复上下文。

9.5 MCP / Deferred Tools / Plugins

当前 default profile 有 MCP:GitHub、GitLab、Chrome DevTools、codebase-memory-mcp 等。Hermes 采用“窄核心 + 边缘扩展”原则:

  • 常用能力通过 core tools/toolsets 暴露;

  • 大量能力作为 deferred tools,需要时再加载 schema;

  • 第三方能力优先做 MCP、plugin 或 skill,而不是塞进核心工具列表;

  • toolsets 控制不同平台/任务暴露哪些工具,避免每次 LLM 请求都携带过多 schema。


10. 三条典型执行路径

路径 A:当前这种小型文档任务

用户请求文档
  → 必须先 hermes-loop route
  → 命中 quick-task-loop + docs-overlay
  → 当前 default Agent 直接收集资料
  → 写入 markdown 文档
  → 验证文件落地
  → 回复路径

路径 B:新功能/项目交付

用户要开发功能/项目
  → hermes-loop route 命中 feature-delivery-loop
  → 创建 Kanban triage card 给 pmagent
  → pmagent 明确 scope/验收标准
  → product/architect/codexdev/qa/codereview 等按需协作
  → 每个 worker 通过 kanban_complete 写证据
  → QA/review/security/devops/docs gates 通过
  → pmagent 汇总交付

路径 C:部署/Gateway/launchd 问题

用户反馈 gateway/launchd/部署/端口/网络问题
  → route 风险升级
  → 必须包含 devopsagent
  → 如涉及 token/auth/证书/MCP 安装,再包含 securityagent
  → 真实检查服务状态、日志、端口、配置
  → 修复后验证 browser/CLI/gateway 两侧行为
  → 写 runbook/回滚说明

11. 关键本地文件与命令速查

目的

路径/命令

Hermes 源码

/Users/zheng/.hermes/hermes-agent

主配置

~/.hermes/config.yaml

API keys / secrets

~/.hermes/.env

Loop 配置

~/.hermes/loops/*.yaml

Loop 路由

hermes-loop route "<request>"

Kanban DB

~/.hermes/kanban.db

Kanban 列表

hermes kanban list

Kanban 状态

hermes kanban stats

Kanban Agent 列表

hermes kanban assignees

Profile 列表

hermes profile list

Gateway 状态

hermes status / hermes gateway status

Cron 列表

hermes cron list

Agent Loop 文档

website/docs/developer-guide/agent-loop.md

Kanban 文档

website/docs/user-guide/features/kanban.md

Cron 文档

website/docs/user-guide/features/cron.md


12. 当前系统的设计判断

  1. AIAgent 是执行内核,不是项目管理者。
    它负责模型-工具循环、上下文、压缩、fallback、工具调用;复杂交付不应该全塞进一个聊天回合。

  2. Loop Router 是任务入口治理。
    它把“这个需求该直接做,还是该进入生产级多 Agent 流程”变成显式规则。

  3. Kanban 是长期多 Agent 协作的主干。
    它解决 delegate_task 不持久、不可人工介入、不可审计的问题。

  4. Profile 是 Agent 身份。
    pmagent/docsagent/securityagent/devopsagent/... 不是简单标签,而是拥有独立配置、记忆、技能和运行入口的 worker 身份。

  5. Harness 是质量体系。
    Loop、Kanban、toolsets、events、gates、approval、session history 共同组成“能交付、能复盘、能重试”的外壳。

  6. Gateway 是常驻大脑干线。
    现在 default profile 的 gateway running,承载 WeChat 入口、Cron tick、Kanban dispatcher,是这套系统能持续运行的关键。


13. 建议后续补强

优先级

建议

原因

P0

给每个 profile 补 description

Kanban auto-decompose 依赖 profile 描述,当前多数为空,会影响自动分派准确度

P0

明确“非 quick-task-loop 必建 Kanban 卡”的执行规范

避免复杂项目仍在单会话里无限展开。

P1

给 Loop Router 输出加 JSON 模式

方便脚本稳定解析,自动创建 Kanban 卡。

P1

给 Kanban completion metadata 定标准模板

方便下游 Agent、dashboard、复盘工具读取。

P1

为常见场景建 swarm 模板

例如:调研→决策→实现→QA→文档,减少每次手工拆解。

P2

打通 Trace/Eval Dashboard

把 task_runs、session、工具调用、测试证据统一可视化。

P2

为 gateway/cron/kanban 建健康检查 cron

定期检查 launchd、dispatcher、blocked 激增、cron 失败。


14. 最小操作守则

以后处理请求时,可以按这个规则执行:

1. 复杂/项目/生产/agent/loop/kanban/工作流相关请求:先 hermes-loop route。
2. quick-task-loop:当前会话直接完成,并给真实验证证据。
3. 非 quick-task-loop:创建 Kanban triage card 给 pmagent,写清验收标准。
4. 涉及 gateway/launchd/deploy/network/proxy/messaging:必须纳入 devopsagent。
5. 涉及 auth/secret/permission/dependency/MCP 安全/外部安装:中高风险时纳入 securityagent。
6. Worker 必须通过 kanban_complete/kanban_block 收尾,不能只口头说完成。
7. 任何构建/运行/验证类任务,都以真实工具输出为交付依据。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区