你是否有这样的经历:让AI写篇文章,它思考了三分钟后告诉你"好的我开始写了",然后——就没有然后了。你等了一小时,它已经显示"完成",但文章连个影子都没有。或者更气人的是,它确实写了,写了一半,丢在某个你永远找不到的地方。

这不是你的问题。这是AI agent架构的原生缺陷。

传统AI调度的三大死穴

第一个:串行等待陷阱。 你让Agent去做A,然后等它做完再告诉它做B。但AI的"思考"时间是不可预测的——有时候10秒,有时候10分钟。你要么干等,要么错过最佳干预时机。

第二个:任务丢失综合症。 Agent接了一个复杂任务,开始做,中途遇到问题,默默失败了。你完全不知道它做了多少,也不知道它卡在哪。最后只能重头来过。

第三个:上下文悬崖。 一个任务做了很久,上下文窗口已经堆积了几万token。Agent开始遗忘最初的指令,做出和目标完全无关的东西。你说"继续",它一头雾水。

这三个问题,几乎困扰着每一个试图用AI实现复杂工作流的人。

AI调度的三大死穴

Hermes Kanban是什么

Hermes Kanban是Hermes Agent框架内置的任务调度系统。它的核心理念来自实体世界的看板管理——每一项工作变成一张卡片,有明确的状态、归属和依赖关系。

但它不是给人类用的,是给AI用的。

在Hermes Kanban里,每个任务是一张卡片,包含:

  • 标题和描述:告诉Agent要做什么

  • 状态:todo(待处理)、running(执行中)、done(完成)、blocked(阻塞)

  • 工作空间:隔离的临时目录,用来读写文件

  • 依赖关系:哪些任务必须先完成才能开始

  • Assignee:具体哪个Agent profile来处理这张卡

你作为Orchestrator(编排者),不再是直接命令一个Agent埋头干活然后干等。你创建任务卡片,把它们分发给不同的Agent,监控它们的状态,在关键节点插入人类审批。

核心工作流程

一个典型的Kanban任务生命周期是这样的:

第一步:分解任务。 你接到一个复杂请求——比如"写一篇公众号文章,附三张配图"。在Hermes Kanban里,这不是一个任务,是四个:

  • 写文章内容(researcher profile)

  • 生成封面图(image-prompt-engineer profile)

  • 生成配图A(image-prompt-engineer profile)

  • 生成配图B(image-prompt-engineer profile)

第二步:建立依赖。 封面图和配图必须等文章写完才能开始——你用parent关系把它们链接起来。配图A和配图B是独立的,可以并行执行。

第三步:派发执行。 Hermes的dispatcher自动把ready状态的任务分配给对应的Agent profile。Agent开始工作,你实时看到状态变化。

第四步:人类审批。 文章初稿完成后,系统会停在一个"blocked"状态,等待你确认。你可以回复"通过"让它继续,或者指出需要修改的地方。

第五步:完成汇总。 所有任务都done之后,你得到最终产物——文章、配图、一切就绪。

Hermes Kanban核心工作流程

任务状态详解

Kanban任务状态流转

todo → running → done         ↓      blocked (等待人工审批)
  • todo:任务已创建,等待执行。依赖未完成时自动保持todo。

  • running:Agent正在处理中。

  • done:任务完成,产物已就位。

  • blocked:需要人工介入或审批,不能自动继续。

blocked状态是Hermes Kanban最重要的设计。它让AI在关键决策点停下来等人类确认,而不是按自己的想法一路狂奔到最后才发现跑偏了。

工作空间隔离

每个Kanban任务都有自己独立的工作目录:~/.hermes/kanban/workspaces/<task_id>/

这解决了AI agent的另一个经典问题:不同任务之间的相互污染。Agent A在workspace里写了一堆中间文件,不会影响Agent B的工作环境。任务完成后,workspace可以保留(用于调试)或自动清理(用于一次性任务)。

你也可以指定共享工作空间(--workspace dir:~/shared/),让多个任务读写同一个目录。这在你需要任务之间传递产物时很有用——但要小心同时写入的冲突。

依赖链:让任务按正确顺序执行

Kanban的依赖系统通过parents参数实现。子任务会一直卡在todo状态,直到所有父任务都标记为done。

Step1-素材搜索 (done)Step2-文章撰写 (running)parents=[Step1]Step3-配图生成 (todo)parents=[Step2]Step4-发布 (blocked)parents=[Step3] + 人工审批节点

这个机制确保了数据流的正确性:文章没写完,AI不会开始生成配图;配图没到位,发布任务不会启动。

对于并行的独立任务,不设置parents关系,它们会同时被dispatcher派发出去,节省总执行时间。

监控与恢复

任务执行中如果Agent崩溃了怎么办?Hermes Kanban会自动检测并标记。Dispatcher每60秒检查一次所有running的任务——如果一个任务超过15分钟没有心跳(heartbeat),它会标记为超时。

你可以通过hermes kanban show <task_id>查看某个任务的具体状态和诊断信息。如果Agent写完了产物但忘记调用kanban_complete,你也可以手动标记完成。

对于持续失败的任务,有三个选项:

  • Reclaim:终止当前运行,重置为ready状态重新派发

  • Reassign:把任务转给另一个Agent profile处理

  • 修改配置:如果失败是因为模型能力不足,更换更强模型后重试

与delegate_task的对比

很多人会问:Kanban和delegate_task有什么区别?

delegate_task适合短平快的任务。你让一个Agent做一件独立的事,它做完直接返回结果,你在当前对话里拿到输出。全程在同一个上下文里,没有状态持久化。

Kanban适合复杂、长时、多步骤的工作流。你需要任务分阶段执行、需要人工审批节点、需要并行处理多个独立任务、需要任务状态持久化(不怕对话中断)。

简单判断:如果一个任务你预计要超过3分钟,或者中间需要人类确认,就用Kanban。否则,delegate_task更轻量。

实际配置

~/.hermes/config.yaml里可以配置Kanban行为:

kanban:  threshold_minutes: 3  # 超过3分钟的任务建议用Kanban

每个Agent profile可以有独立的config.yaml~/.hermes/profiles/<name>/config.yaml)。这允许你为不同类型的任务配置不同的模型——比如researcher用GPT-4,code-agent用Claude Sonnet,image-engineer用MiniMax。

什么时候用Hermes Kanban

推荐场景

  • 公众号文章创作(写作→配图→排版→审批)

  • 视频制作流水线(素材搜索→剪辑→配音→合成)

  • 多维度研究(并行搜索不同来源→综合分析→报告撰写)

  • 任何需要多Agent协作、有人类干预点的复杂工作流

不建议场景

  • 单步查询或简单操作(直接问,直接答)

  • 纯文案写作且不需要审批(一气呵成,不需要分阶段)

  • 实时对话式交互(Kanban是异步的,不适合需要即时反馈的场景)

写在最后

Hermes Kanban解决的不是"AI不够聪明"的问题。它解决的是"AI不可靠"的问题。

当你的AI助手可以在关键时刻停下来问你,可以在失败后不丢失进度,可以让多个专业Agent协同完成一个复杂任务——你就拥有了一个真正可用的AI工作流,而不只是一个人工智障。

你用Kanban做过什么复杂任务?有什么坑或经验?欢迎来聊。


「智元记」

Logo

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

更多推荐