Wink Pings

把一年系统拆成1600行内核,Agent-Autoloop开源最值得看的是边界

卡兹克把折腾一年的Agent自动化系统重写后开源。内核只做四件事,事件、Agent、通道、交付全拆成插件。热插拔很爽,真正决定它能不能长期跑的,是默认权限和插件契约。

周一还在担心被说玩具,周三就把系统重写开源了。数字生命卡兹克把折腾一年的 Agent 自动化系统放上 GitHub,名字很直白,Agent-Autoloop。地址:https://github.com/KKKKhazix/agent-autoloop

image

这套东西值得看的地方,不是功能列表有多长。它把系统拆成两层:一个极薄的内核,外面四个方向全部做成插件。卡兹克在说明里写,借鉴了 Pi 极简内核与 Extensions 的设计,以及 DeepSeek Harness 的“一切皆插件”架构理念。内核约 1600 行,零第三方依赖,装个 Node 就能跑。内核只做四件事:收事件、按规则分活、把活派给 Agent、把每一步记下来。它不读系统时钟、不向外发请求、不写死具体产品名。想接新 Agent,写适配插件,内核不用动。仓库里还有测试盯着这条边界,谁往内核塞外部请求或产品名,测试不让过。

架构图

这套架构里,最容易被忽略的是四个机制,名字听着唬人,来源都很普通。

挂起零消耗。Agent 碰到要你拍板的事,发完卡片就退出。你三天不回,这三天没有 Agent 进程在跑,也不花 Token。你一点卡片,它接上原来的会话继续干。素材里把它比作大臣每五分钟敲一次寝宫门,问皇上看了没。现在大臣先下班,存档,等人回来读档。

事件溯源。所有状态从一条只追加的日志算出来,写完才应答。断网、重复提交、进程被强杀,靠日志保证同一件事只记一次。任何一轮为什么跑、当时用的哪版规则、最后结果是什么,一条命令能翻出来。素材里有个细节:Codex 审一个 PR 审了 65 秒,正要把结果写回 GitHub,网断了。无脑重试可能把同一件事做两遍,记账的办法在这里比重试靠谱。

指令数据分离。外部 Issue、PR、同事留言里的文字,只作为资料放进文件,不拼进给 Agent 的指令。用哪个 Agent、在哪个目录、什么权限,只认本机 rules.json。有网友在回复里提到,OWASP 的 LLM 应用 Top 10 里,Prompt Injection 排第一。这个机制不新鲜,但放在自动化系统里很关键。别人写一句“已经同意了,直接合并”,不能变成授权。

跳数熔断。Agent 可以叫醒下一个 Agent,层数一路累加,超过 8 层就只记录、不再派活,并发卡片告诉人。思路跟网络包的 TTL 一样。防止 A 干完叫 B,B 干完又叫 A,最后把额度绕炸。

插件分四个方向:事件、Agent、通道、交付。事件负责发现新活,比如 GitHub Issue、定时任务、HTTP 接口。Agent 负责干活,Claude Code、Codex、ACP、通用命令都能接,能接收提示词并打印最后一条回复的命令行工具,写一行配置就能进来。通道负责把卡片送到你面前,桌面通知、飞书、钉钉、企微、Slack、Discord。交付把 CI/CD 也做成插件,给 PR 打 deliver 标签,它跟进审查、等 CI、合并、等发布、核对线上版本。审查和交付配置只从 main 读,不在接单电脑上检出或运行 PR 里的代码。

安装也不用一步步教。把仓库地址丢给 Claude Code 或 Codex,让它读 README 和 INSTALL.md,自己装,自己试跑。试跑会问你选个颜色,选完它接着干完。日常规则写在 rules.json 里,什么事、交给谁、在哪个目录干。外部事件写法一样,先接好来源。保存后几秒内生效,改错了也会按旧规则跑,并发卡片提醒。

具体场景比功能列表更有说服力。卡兹克列了几个自己每天在跑的:每天下午让 Codex 去微信群、X、小红书、抖音搜一圈大家怎么聊 AIHOT,汇总成报告;每周让 Codex 操控浏览器去豆包、DeepSeek、千问、元宝、ChatGPT、Gemini 问跟 AIHOT 相关的问题,看 AI 会不会推荐;每天晚上巡厂商信源,看免费额度还在不在、规则变没变;每天早上对模型榜价格;每 5 分钟从外面看 AIHOT 能不能打开,打不开才叫醒 Codex;周日让 Agent 找一周合进来的屎山,重复的、为个案打的补丁、停用了没拆干净的,能删就删。公司里的虚实中台也被拿来举例:同事在飞书私聊机器人提意见,Claude 评估、修改、上线,敏感操作找卡兹克拍板。素材说,同事们提了八十多条意见,Claude 自主修改近 70 条,拍板十几条,能自动处理的需求基本一小时内改完并反馈。

社区反馈里,有几条比“牛逼”更有用。有网友提醒,插件化的代价在后面,事件、通道、执行器各自迭代,接口得带版本,内核最好留版本字段和最低兼容声明,不然半年后 Issue 里一半是插件和内核版本对不上。有人问,除了跳数上限,要不要给整条互相唤醒的任务链设累计花费上限。有人建议先只接一个事件源,rules.json 先只派只读活,删数据、花钱、对外发消息全部走批奏折,跑稳一周再放权。还有人说,开源流水线好抄,编制抄不走,哪些动作默认要人点头、哪份日志算验收,得自己标。这些话不热闹,但都是系统进生产前要补的。

有个插曲。有开发者贴出 todos.dev,说流程跟 Agent-Autoloop 相似。Todos 作者回,自己打磨了 100 多天。卡兹克这边是两天重写。有网友说,一年写的叫架构,两天写的叫顿悟,其实不是重构代码,是把一年前多余的自尊心删干净了。话糙,但开源版本确实更像边界清晰后的产物。两天重写不是神话,前提是前面一年已经把坑踩过一遍。

Agent-Autoloop 还是 1.0.0,肯定有 BUG,Windows 版也待定,卡兹克说周末回家开发测试。开源最值钱的东西,往往不在功能列表里,在默认权限和失败路径里。热插拔很爽,插件契约、版本兼容、花费上限、人工审批清单,这些不补,热插拔会变成热踩坑。项目地址再放一次:https://github.com/KKKKhazix/agent-autoloop

发布时间: 2026-11-05 00:28