去也 QUYE.COM

首页/技术资产/hive

把 Git 仓库当成 Agent 的任务队列

多台机器、多个 Agent 一起干活,最难的不是让它们跑起来,而是让它们不抢同一件事、不互相覆盖、在一台挂掉之后还能继续。hive 用最笨也最稳的基础设施解决这件事:一个 Git 仓库。

想先跑通再读细节?十分钟上手

hive 架构:总控写任务卡到 Git 协作仓,worker 拉取后原子领取,在独立 worktree 执行并推送结果 总控 Chief 拆卡 · 分派 · 验收 可选:LLM 逐轮决策 Git 协作仓 tasks/ · inbox/ claims/ · results/ 原子 push = 领取锁 只读副本 CI · dashboard stats / digest / audit 人只看,不写 worker · FreeBSD 独立 worktree 跑 verify 后提交结果 worker · Windows 只做交叉验收 平台能力 = 任务标签 worker · 任意 clone 即加入 租约到期自动回收
没有共享文件系统,没有入站端口,没有中央数据库

它解决的是「协同」,不是「调用」

让一个 Agent 调用工具很容易,现在任何框架都能做。难的是四件事,hive 就是围着这四件事写的:

  • 任务不会丢:每张卡是仓库里的一个 Markdown 文件,带 frontmatter。人可读、Git 可 diff、聊天记录滚掉了它还在。
  • 不会重复执行:领取靠 git push 的原子性。两个 worker 同时抢一张卡,只有一个 push 成功,另一个自动退让。这个机制用两个进程对撞验证过。
  • 不会互相踩踏:每张卡在自己的 worktree、自己的 task/<tid> 分支里改,多个 Agent 并行不共享 checkout。
  • 不会僵死:领取带租约和 fencing token,机器关机、断网、跑飞之后,租约过期被回收,任务按重试策略重派;重试次数用尽转 blocked,不再无限重派。

分派是能力感知的

dispatch 不是轮询:它看 agent 的能力标签、当前负载、任务依赖、以及 paths 声明的路径冲突。Windows 机器没有 CLI agent,就只接 verify 卡;写代码的卡留给有执行能力的机器。平台差异不是例外处理,是任务属性。

给 Agent 用的接口

自带 MCP server,Agent 可以通过标准协议查任务、领任务、交结果、终止任务;也可以让 LLM 当总控,用同一套工具面逐轮决策。人在终端里看 status,机器在协议里干活。

语言
Python(核心纯标准库)
状态
可用 · 按任务卡迭代
基础设施
只需一个 Git 远程仓
并发模型
拉取式 worker · 每机一 agent
一致性
push 原子性 + 租约 + fencing
观测
status / stats / digest / audit
接入
CLI · MCP · LLM 总控
依赖
无数据库、无消息队列

为什么不用数据库

一人公司的运维预算等于零。多一个数据库,就多一个要备份、要升级、会挂掉、挂了没人修的东西。Git 远程仓本来就在,它已经解决了持久化、版本、权限和冲突——只是没人为这个用途写过调度器。

最小闭环

四行命令,跑通一条流水线

python3 hive/hive.py --dir hive init
python3 hive/hive.py --dir hive task new --title "修复 LLVM 路径分隔符" \
        --repo light --paths src/codegen --verify "pytest -q"
python3 hive/hive.py --dir hive dispatch
python3 hive/hive.py --dir hive work --agent fb88

之后每个人只需 status 看板、doctor 体检、digest 复盘。合并仍然是人的判断——hive 会把 diff、测试结果和交叉验收结论摆到你面前,但不替你按合并键。

边界(写在这儿,省得你踩)

  • 不做自动合并到 main。合并是人的判断,最多做到 integration 分支加 CI 绿灯。
  • 不做实时协同编辑。任务是批处理,不是结对编程。
  • 不追求单机极限并发。先 3–4 张卡并行,跑顺了再加。
  • 它是给「几台自己的机器」设计的,不是多租户 SaaS。别拿它当公网调度平台。

它适合谁

有不止一台闲置机器、并且愿意让 Agent 真正动手改代码的人。三台旧电脑、一台 NAS、一台云主机,就是一个小集群。

如果你只有一台机器,hive 仍然有用——它能把「任务、执行、验收、结果」变成有记录的过程,而不是一堆找不回来的对话。

GitHub 仓库 GitCode 镜像

下一步

一个人 + 三台机器 = 一条业务线

ai.quye.com 把这个组合讲成了具体场景,包括它现在还做不到的部分。