Autonomous Agents — 自己看板,自己认领

"自己看板,自己认领" — 空闲时轮询,有活就干。

Github 原文:shareAI-lab/learn-claude-code

现在这个 Agents 团队有了规范的办公模式,但是“习惯”可不太好——大家虽然听话,但是都是“摆烂打工人”,干完了之后就开摆,只要不找我我就没事干摸鱼,这可不行!

问题

Agent 的队友能通信、能握手关机。但每个队友等 Lead 分配任务——如果任务看板上有 10 个未认领任务,Lead 得手动认命 10 次,这不能扩展。我们希望的是队友 Agent应该 有“主人翁”意识,自己看任务看板,发现没人做的任务就认领,做完再找下一个。

解决方案

Autonomous Agents — 自己看板,自己认领

在上一章的基础上,我们这次又加入了一个叫做 idle_poll 的东西,还增加了认领任务和自动认领等内容,具体如下:

  • idle_poll:队友Agent 处于空闲状态时每五秒轮询一次 inbox;

  • scan_unclained_tasks:扫描上方的 work 看板上的可以认领的任务;

  • 自动认领:如果有可以认领的任务且空闲,就 claim,说这个活归我了。

这样,一个队友 Agent 就不是只会做东西,发东西这两件事情了,而是会做三件事:

行为行为退出条件
WORKinbox → LLM → 工具循环stop_reason != tool_use
IDLE每 5s 轮询 inbox + 任务板60s 超时
SHUTDOWN发 summary,退出

工作原理

空闲轮询

就是刚才说的那个每 5s 轮询一次的 idle_poll,之前队友 Agent 干完活就跑了,现在不是,他会每 5s 就去看一下有没有新的工作,不过,这里是Inbox 优先(可能包含 shutdown_request 等协议消息),任务板其次,也就是说,如果IDLE 阶段收到 shutdown_request 会直接回复并退出,不等到再去找新工作。

扫描任务看板

任务看板怎么找呢?如何判断什么任务是可以接管的?

AI 有三个条件,只要三个全部符合,那就是可以认领的:

  • 任务状态必须是 pending;

  • 任务 owner 字段为空;

  • 任务的所有 blockedby依赖都已经完成。

这时候,我相信我们都已经有了一个思维模式:万一这些 Agent 同时认领同一个任务怎么办?这个是不是要上锁?

答对了!CC 在实际的使用中,就是要上锁,防止多个队友同时认领同一个任务。