KKKKhazix/agent-autoloopPublic

让你的命令行 Agent 在后台自己接活、自己跟进到底;平时不烦你,遇到拿不准的事才发卡片找你拍板。

AI summary: 让你的命令行 Agent 在后台自己接活、自己跟进到底;平时不烦你,遇到拿不准的事才发卡片找你拍板。

Stars
4K
Forks
732
Watchers
7
Open issues
1
Open PRs
0
Contributors
~24
Commits
155
Branches
1

TypeScriptMITCreated Nov 3, 2026Last push todayLatest release v1.6.4

Quick answers

What is agent-autoloop?
让你的命令行 Agent 在后台自己接活、自己跟进到底;平时不烦你,遇到拿不准的事才发卡片找你拍板。
What does agent-autoloop do?
KKKKhazix/agent-autoloop is an open-source project written primarily in TypeScript, published under the MIT license. 让你的命令行 Agent 在后台自己接活、自己跟进到底;平时不烦你,遇到拿不准的事才发卡片找你拍板。
How do I get started with agent-autoloop?
Visit the repository README on GitHub for installation and usage instructions.
How popular is agent-autoloop on GitHub?
KKKKhazix/agent-autoloop has 4,046 stars and 732 forks on GitHub.
What license does agent-autoloop use?
KKKKhazix/agent-autoloop is released under the MIT license.

Star history

since Nov 8, 2026

Star history is still being collected for this repository.

Contribution activity

commits per day, last 52 weeks
NovDecJanFebMarAprMayJunJulAugSepOctNovMonWedFri2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits2026-10-04: 0 commits2026-10-05: 0 commits2026-10-06: 0 commits2026-10-07: 0 commits2026-10-08: 0 commits2026-10-09: 0 commits2026-10-10: 0 commits2026-10-11: 0 commits2026-10-12: 0 commits2026-10-13: 0 commits2026-10-14: 0 commits2026-10-15: 0 commits2026-10-16: 0 commits2026-10-17: 0 commits2026-10-18: 0 commits2026-10-19: 0 commits2026-10-20: 0 commits2026-10-21: 0 commits2026-10-22: 0 commits2026-10-23: 0 commits2026-10-24: 0 commits2026-10-25: 0 commits2026-10-26: 0 commits2026-10-27: 0 commits2026-10-28: 0 commits2026-10-29: 0 commits2026-10-30: 0 commits2026-10-31: 0 commits2026-11-01: 0 commits2026-11-02: 0 commits2026-11-03: 15 commits2026-11-04: 47 commits2026-11-05: 41 commits2026-11-06: 30 commits2026-11-07: 19 commits2026-11-08: 2 commits2026-11-09: 0 commits2026-11-10: 0 commits2026-11-11: 0 commits2026-11-12: 0 commits2026-11-13: 0 commits2026-11-14: 0 commits
154 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Breakout launch

    4,046 stars in 5 days

  • Actively maintained

    Pushed within 48 hours

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What agent-autoloop does

KKKKhazix/agent-autoloop is an open-source project written primarily in TypeScript, published under the MIT license. 让你的命令行 Agent 在后台自己接活、自己跟进到底;平时不烦你,遇到拿不准的事才发卡片找你拍板。

Where teams use it

ai agents

Projects involving ai agents.

automation

Projects involving automation.

claude code

Projects involving claude code.

cli

Projects involving cli.

Getting started: Visit the repository README on GitHub for installation and usage instructions.

README

main branch

Agent Autoloop

让你的命令行 Agent 在后台自己接活、自己跟进到底;平时不烦你,遇到拿不准的事才发卡片找你拍板。

中文 | English

上手 · 场景模板 · 插件 · 内核 · 文档

架构图

它解决什么问题?

平时我们用 Claude Code、Codex 这类命令行 Agent,大多是“人守着终端用”:你输一句话,盯着它跑,等它问你下一步;一旦关掉窗口或者人走开,事情就断了。

Agent Autoloop 是一个极轻量的自动化中台。它把任务调度做成一个零外部依赖的内核,把事件来源、Agent、通知通道,甚至代码上线流水线全部拆成可随时插拔的插件。

  • 一台电脑、一条命令就能跑。 装在你的 Windows、Mac 或 Linux 上,不用买云服务器,也不用开放公网端口。
  • 一行配置接新 Agent。 不需要 SDK,也不需要改 Agent 源码,能接收提示词并打印最后一条回复的命令行工具都能接。
  • 没有后台界面。 需要你拍板时把卡片推到飞书、钉钉、企微、Slack、Discord 或桌面通知;想看全局进展,敲一行命令。

上手

支持 Windows、macOS 和 Linux。需要 Node 24 或更新、Git,以及一个已经登录的命令行 Agent;macOS/Linux 还需要 curl,不需要 GitHub 账号。也可以把安装说明交给你的 Agent。

Windows PowerShell:

irm https://raw.githubusercontent.com/KKKKhazix/agent-autoloop/main/install.ps1 | iex

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/KKKKhazix/agent-autoloop/main/install.sh | sh

安装和 agent-autoloop update 都装最新的 Release,那是通过了全部检查的版本。

装好后用你本机的 Agent 真实走一遍“提问 → 退出等回复 → 拍板 → 接着干完”:

agent-autoloop try

下面是在终端里的真实输出:

事件发出去了,Agent 开始干活……

Agent 结束了这一轮,问了你一个问题。它现在不占进程、不花 Token。

【等你决定】#1 试跑:选一个颜色
这是一次试跑,选哪个都行。
  1. 蓝色
  2. 绿色
回答:agent-autoloop answer 1 <序号>
答完运行 agent-autoloop status,能看到它接着把活干完。

交互终端里直接输入数字回车;非交互终端运行 agent-autoloop answer 1 2 选择“绿色”。再跑 agent-autoloop status,就能看到它接上刚才的会话并显示“你选了绿色,试跑通过”,还有今天和最近 7 天的轮数、Token 和费用(统计口径)。

一件事怎么转起来

编号和上面的架构图一一对应:

  1. 新事件进来。 早上 9 点的定时任务、GitHub 上新提的 Issue、业务系统报的错,都变成一条标准事件送进内核。
  2. 按规则派活。 内核照你写的规则,决定交给哪个 Agent、去哪个目录干。同一件事排队时又来的消息,会合并成一轮处理。
  3. 干完一轮就退出。 Agent 把结果写在最后一条回复里,进程直接退出。
  4. 拿不准才问你。 碰到删数据、重启服务、花钱、对外发消息这类事,内核通过飞书或桌面通知发一张卡片给你。等你回复期间,它不占后台进程,也不消耗 Token。
  5. 点一下,接着干。 你选完,它接上原来的对话,把剩下的活干完。

能自己搞定的事走图上方的自动闭环:直接办完,或者约个时间(比如半小时后)再醒来复查,全程不打扰你。

日常怎么配?

写一份规则(rules.json)

不需要写胶水代码。打开 ~/.agent-autoloop/rules.json,在 rules 里写清楚什么事、交给谁、在哪个目录干。to 填 agents 里已有的名字。比如每天早上 9 点写早报:

{
  "name": "早报",
  "when": { "cron": "0 9 * * *" },
  "to": "codex",
  "cwd": "~/notes",
  "prompt": "整理昨天的笔记和提交,写今天的早报。"
}

外部事件写法一样,只是要先接好来源。比如有人提新 Issue 时交给 Codex,先按说明在 sources 里登记 github:

{
  "name": "处理 issue",
  "when": { "source": "github", "types": ["issues.opened"] },
  "to": "codex",
  "cwd": "~/code/app",
  "skill": "handle-issue",
  "parallel": 3
}

agent-autoloop pause <规则>、resume <规则> 暂停和恢复一条规则,暂停期间到点不跑、来事件不接,恢复后不补跑;agent-autoloop run <规则> 立即跑一轮。这些记在中台的日志里,不改 rules.json。

保存后几秒内自动生效,可以运行 agent-autoloop check 检查,agent-autoloop check <文件> 检查一份草稿,不碰正在跑的中台;agent-autoloop rules explain 看生效的规则和下次定时,agent-autoloop emit <类型> --dry-run 预演一条事件会派给谁(不连接中台、不写日志)。就算改错了,或者文件被删、读不到,系统也会继续按旧规则跑,并发卡片提醒你。

Agent 怎么跟中台配合?

中台对 Agent 只有一个约定:在最后一条回复里交代结果。事情办完了,正常输出一句结论就行。需要向你请示时,在回复末尾附一段 agent-autoloop 代码块:

订单已经核对完毕,库存充足。

```agent-autoloop
{
  "ask": [{
    "title": "怎么发货?",
    "text": "两种方式今天都能发出。",
    "options": ["快递", "自提"],
    "key": "shipping"
  }]
}
```

除了提问(ask),还能发通知(notice)、关闭已解决的卡片(resolve)、预约复查(later)和触发新事件(events)。通告不需要回答,但结案时可以顺手写一句处理说明,这句话会留在卡片上;只是告诉一声的通告标成 fyi,不带按钮。万一 JSON 写错了,中台只让它在原会话里重写最后这段回复,不会把已经干完的业务重做一遍;重写也失败时,保留原结论并通知你回执没有生效(通用命令没有会话,直接走这一步)。接着旧会话跑也一样:会话接不上才开新的;接上了、干到一半断了,就算没跑成,过几分钟回到原会话重试,不开新会话重做。同一事项的新事件默认开新会话;规则写 "resume": true 就接着上一轮的会话。

拿来即用的场景模板

每套模板都带规则、任务 Skill 和启用说明。

想做什么 已经封装好的流程
每日早报 默认每天 8 点整理本地笔记和 Git 提交,写入 briefs/YYYY-MM-DD.md
跟进 GitHub Issue 每 5 分钟查新 Issue,在本地改代码并通知你查看;不提交、不推送、不回复 Issue
线上告警排查 接收报错、对照代码查原因,需要重启时发卡片询问,回答后继续
用户反馈处理 重读反馈当前状态、修复、交付核实、准备回复;需要决定时飞书问你,回答后继续
网站巡检 每 5 分钟检查状态和关键内容,首次异常交给 Agent,持续异常不重复通知,恢复后更新原卡片
飞书周报与业务摘要 周日 18 点按你的权限读汇报和指定表格,生成本地摘要;飞书只发简短摘要,完整稿留在本机
收件箱分诊 默认每天 8 点读过去 24 小时的未读邮件,写成清单和回复草稿;不发送、不改邮箱状态
PR 自动交付 打上 deliver 标签后,审查、等 CI、合并、等发布并核对线上版本

启用: 打开对应说明,把任务 Skill 放进所用 Agent 的 skills 目录,把示例规则合入 ~/.agent-autoloop/rules.json,替换电脑名和路径,再运行 agent-autoloop check。

反馈处理、网站巡检、飞书摘要和收件箱分诊默认使用北京时间,只发给本人的飞书私聊。样例数据都是虚构的;脚本和回执只用本地 HTTP 与假飞书 CLI 验证过,没有在真实账号上跑过完整业务。

更多模板:Claude 委托 Codex 处理网页、每周代码清理、交付 PR。

插件体系:四个方向都能自由替换

内置插件随程序安装,填好配置即可启用;第三方插件用 agent-autoloop add <git 地址> 安装。

方向 内置 配置
事件:怎么发现新活 GitHub Webhook、GitLab Webhook、HTTP 接口、定时规则、Issue 轮询脚本 说明
Agent:谁来干活 Claude Code、Codex、ACP、DeepSeek Harness、通用命令 说明
通道:去哪找你拍板 桌面通知(默认开启)、飞书、钉钉 / 企微 / Slack / Discord 说明
交付:把 CI/CD 也做成插件 delivery 说明

实测情况: Claude Code、Codex 和 ACP(官方 Codex ACP 适配器)跑通了多轮问答和跨进程会话续接;飞书跑通了发送、按钮回调和卡片更新;四种 Webhook 模板只在本地模拟服务上验证过,GitLab Webhook 按官方文档的格式测试,没连过真实 GitLab。这些文字通道靠回答链接拍板,要把 hub.publicUrl 配成手机或电脑能打开的地址。

内置 Agent 走第三方网关。 Claude Code、Codex 要接第三方模型服务,或者启动前要先设好环境变量,写一个设好变量再启动它的小脚本,在 Agent 里写 "program": "脚本路径",会话续接和用量统计照旧,见说明。

其他命令行 Agent 一行接入。 设置 use: "command" 并传入命令数组,{prompt} 作为独立参数传递,不会被当成 shell 代码执行。下面的命令整理自各家官方文档,我们还没有逐个跑过:

Agent 接入命令
DeepSeek Harness 旧版(内置插件要 0.2.2 或更新) dsh --profile headless {prompt}
pi pi --print {prompt}
OpenClaw openclaw agent exec {prompt}
Hermes hermes chat -Q -q {prompt}
Cursor agent -p --trust {prompt}
WorkBuddy / CodeBuddy codebuddy -p {prompt}

会说 ACP 的 Agent 用 use: "acp" 接,还能接着原来的会话做:Gemini CLI 写 "command": ["gemini", "--acp"],OpenCode 写 "command": ["opencode", "acp"]。这两条同样整理自官方文档,还没跑过。

交付流水线。 给 GitHub PR 打上 deliver 标签后,它会自己跟进到上线:审代码 → 等 CI → 合并 PR → 等部署 → 核对线上版本。审查和交付配置只从 main 读取,绝不在接单电脑上检出或运行 PR 里的代码;排队、并发和重试直接复用内核。

写自己的插件。 从 Agent、通道、事件 三个可运行的最小模板开始,见插件开发说明。要让 Agent 操作网页,先看浏览器接入。命令行和 MCP 也能查看和回答卡片。

内核的四个机制

内核约 1850 行代码、零运行时依赖。它不读系统时钟、不用随机数、不向外发请求,插件主动连进来,账号凭据留在各自的插件里;同样的输入永远得出同样的结果。它把四个计算机领域的成熟做法用到了命令行 Agent 上:

  • 挂起零消耗:等你拍板时进程直接退出,等待状态存在数据库里,Agent 不用一直挂着。你三天没回,这三天就没有 Agent 进程在跑、不花 Token,只有很轻的中台在后台等着;你一回答,它接着原来的对话继续干。
  • 事件溯源:所有状态都从一条只追加的日志算出来,日志和索引在同一个事务里写进磁盘,写完才应答。进程被强杀,已经确认的事不丢(整机断电没有单独测过);任何一轮为什么跑、结果是什么,一条命令就能查清;数据格式变了就从日志重建,不用写迁移脚本。
  • 指令数据分离:思路和 SQL 参数化一样。Issue 的标题和正文等外部文字只作为资料放进文件,不拼进提示词,提示词里只有校验过字符的类型、编号和链接;用哪个 Agent、在哪个目录、什么权限,只由你本机的规则决定,事件里带 cwd、agent、access 字段会被直接拒收。
  • 跳数熔断:思路和网络包的 TTL 一样。Agent 交回的事件会再派给 Agent,层数一路累加,经过人工提问和定时复查也不清零,Agent 自己改不了;超过 8 层就只记录、不再派活,并发一张卡片告诉你。

自己跑一遍

Windows 用 npm run test:windows 和 node scripts/install-smoke-windows.ts,运行共用行为测试与原生进程、安装检查;Unix shell 测试仍在 Linux/macOS 上跑。

在程序目录 ~/.agent-autoloop/app 下运行:

验证什么 命令
任何一轮的来龙去脉 agent-autoloop why 1
20 万步模拟断网、丢包、崩溃和重复提交,一个种子就能复现 node sim/random.ts 24301 200000
强杀进程 1000 次,已确认的记录一条不丢 node sim/crash.ts 1000 12648430
下面的性能数字 npm run benchmark
第 1 轮 · 演示
11-03 20:47:25  规则版本 #1
11-03 20:47:25  触发事件:来源 local · 类型 demo.start · 对象 example
11-03 20:47:25  local 领取(演示程序)
11-03 20:47:25  结束:演示完成

实测性能

Apple M5 Pro、24 GB、Node 24.21.0。写入逐条提交,事务落盘后才应答。

指标 实测
冷启动 88.78 ms
空闲内存 59.94 MB RSS
1000 个同时等待的长轮询 170.49 MB RSS
持久化写入 2394 条/秒
派活 p99 1.82 ms
排队 5000 时被挡下的心跳 p99 1.66 ms
110 万条事实时的启动 99.8 ms
内核行数(含空行和注释) 约 1850
运行时依赖 0

历史变大后,状态汇总会变慢,日志和索引也继续占磁盘;格式变化后的首次启动要从日志全量重建,110 万条用时 43.1 秒。完整数据和测法。

用量与合规说明

中台直接调用你本机已经安装并登录好的命令行工具,不会读取或转存你的账号凭据。模型调用消耗算在你自己的账号名下,额度和使用范围遵循各家模型厂商的服务条款。

在高频自动化场景下,各家厂商通常更建议使用 API Key(个人订阅额度主要是为日常人工交互设计的,详见 Anthropic 与 OpenAI 的官方说明)。如果你用它对外提供服务,请使用 API Key。本项目为独立开源项目,与上述厂商无隶属或背书关系。

更多文档

仓库目录
位置 放什么
kernel/ 内核:决策、事实日志、状态投影、到期任务、规则匹配、接口行为与卡片表单
host/ 运行外壳:Node HTTP、文件与 SQLite 连接、时钟、配置、状态汇总、后台服务和插件加载
protocol/ 通信格式、JSON Schema、输入校验、HTTP 客户端和一致性检查
worker/ 接单程序:领活、运行 Agent、心跳与停止、读取和提交回执
cli/、bin/ 用户命令及启动入口,包括状态、回答、why、MCP、更新与卸载
plugins/ 内置 Agent、事件、通道和交付插件
examples/recipes/ 完整场景:规则、任务 Skill 和启用说明
examples/plugins/、examples/skills/、examples/*.sh 最小插件模板、独立任务手册和 Shell 示例
skills/agent-autoloop/ 中台的正式配置与操作手册,安装时也提供给 Agent 使用
docs/ 通信协议、插件开发说明与中英文架构图
tests/、sim/ 日常行为测试,以及模拟、穷举、强杀和变异检查
scripts/、.github/workflows/ 性能与真机验证、安装冒烟脚本,以及 Windows / Linux / macOS CI
根目录文档与 install.sh 中英文 README、安装说明、安全边界、开发约定、许可证与安装脚本

读代码可以从 bin/agent-autoloop.ts → cli/main.ts 开始,再按功能进入 host/、worker/ 或 plugins/;内核设计先看协议。同名文件分属不同层:host/http.ts 转换 Node 请求,kernel/http.ts 定义接口行为;protocol/rules.ts 校验输入,kernel/rules.ts 定义规则类型和匹配。

MIT License

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

13 total
  1. Agent Autoloop 1.6.4v1.6.4Nov 8, 2026

    来源能查到自己发出的事件后来怎么样了;`status` 在终端里彩色分区显示;修好 Windows 自带 Administrator 账号、保留端口和短路径目录上的几处问题。旧规则、旧插件不用改。 - **来源查事件结果。** 来源发完事件,用同一把密钥 `GET /v1/events/<应答里的 event>` 就能查到它被哪些规则接了、每一轮现在什么状态(在跑、没跑成、等重试、被停、不再重试)和最后的结论。只查得到这个来源自己从门口发进来的事件,中台代它记的(回执发出的、手动运行、卡片回答、到期复查)和别的来源的都返回 404。 - **`status` 更好读。** 在终端里按颜色和分区排:总数、在线、等你、正在做、最近几轮、最近的卡片、定时、没有规则接的事件。新加“正在做”,写清已跑多久、因为什么开始。接管道、被 Agent 调用、设了 `NO_COLOR` 时仍是纯文本,`--json` 不变。 - **Windows:自带的 Administrator 账号不再以管理员权限常驻。** 开着 UAC 的自带 Administrator 账号,登录任务照样会拿到完整权限。现在 `service install` 发现这种情况会撤掉任务,并打印一行命令,改由「启动」文件夹以普通权限拉起;建不了任务时也打印这一行。 - **Windows:数据目录在 8.3 短名路径下不再崩。** Node 24.16 起,中台监视规则文件时,短名目录里一有改动就会退出;现在监视前先展开成完整路径。 - **Windows:端口落在系统保留范围时说清楚。** 报 `listen EACCES` 时提示怎么用 `netsh` 查、`config.json` 改哪几处;`service install` 等不到中台应答时打出 `up.log` 的最后几行。 感谢 Jecvay、youngzs 的报告。 --- Sources can look up what became of the events they sent; `status` is colored and sectioned in a terminal; fixes for Windows' built-in Administrator account, reserved ports and 8.3 short paths. Existing rules and plugins work unchanged. - **Sources can check an event's outcome.** With the same key, `GET /v1/events/<event from the response>` shows which rules took the event, the stat

  2. Agent Autoloop 1.6.3v1.6.3Nov 7, 2026

    修好 Windows 上两处(非系统盘装不上、有活在跑时中台间歇不响应)和 Claude Code 被后台任务叫回时丢回执;新增一个邮件整理的场景模板。旧规则、旧插件不用改。 - **Windows:数据目录放在非系统盘也能装上。** 新建的数据分区根目录默认只给登录用户「修改」权限,把 `AGENT_AUTOLOOP_HOME` 设到那里,安装会在收紧目录权限这一步报“尝试执行未经授权的操作”。现在目录所有者已经是本人时不再重设所有者,普通用户也能装上,目录照样只留本人和 SYSTEM。 - **Windows:有活在跑时中台不再间歇卡住。** 接单程序每轮查一次进程,以前同步启动 PowerShell(每次可能要一秒多),这段时间里状态、事件流和卡片回答都没人应答。现在改成异步查,中台不受影响。 - **Claude Code 答完后被后台任务的通知叫回来,前一次写的回执不再丢掉。** 以前最后那一轮只说“已经发过卡了”、没再附回执,前一轮要发的卡片、通知就没了,这一轮看上去像什么都没做。现在最后一轮自己没写回执时,带上同一次运行里前一轮的那份;最后一轮写了回执但写错了(标成 json、代码块没收尾),照旧让它重写。 - **新增场景模板:每天整理收件箱。** `examples/recipes/inbox-triage/` 读未读邮件写成本地快照,交给 Agent 整理出今天要回的、知道就行的、看着可疑的,并给要回的写回复草稿。只读:不发信、不在邮箱里建草稿、不改已读和标签。 - 说明里写清:每个 Agent 进程(包括内置插件配的 `program` 启动脚本)都能读到 `AGENT_AUTOLOOP_RUN` 和 `AGENT_AUTOLOOP_CONTEXT`;同一轮重试、重写回执时编号不变,回答和到期复查是新的一轮。 - 测试:Node 25.1 上删 Skill 链接的测试不再报错。 感谢 Tongyawa、Jecvay、argszero、TongHao-AI 的报告和改动。 --- Fixes two Windows problems (installs failing on a data drive, the hub stalling while runs are going) and a lost receipt when Claude Code is called back by a background task; adds an inbox triage recipe. Existing rules and plugins work unchanged. - **Windows: the data folder can live on another drive.** A new data drive's root gi

  3. Agent Autoloop 1.6.2v1.6.2Nov 7, 2026

    修好回执被截断、续接时照旧手册做两处问题;内置 Agent 可以换启动程序;装好服务后等中台能应答再返回;状态和卡片多带几项给自己做看板的人用。旧规则、旧插件不用改。 - **回执里的字符串带代码块时,整段回执不再读不懂。** 以前 Issue 正文或 Agent 写的 about 里带 ```,会被当成回执的结尾,这一轮的事件全丢,GitHub Issue 模板碰到带代码块的 Issue 每轮都失败。现在回执只在单独一行的 ``` 处结束;结尾的 ``` 没单独占一行的,会让 Agent 按格式重写,不会悄悄丢掉。 - **接着原会话做的一轮会重新加载 Skill。** 点卡片回答、到期复查、重试这些续接的轮次,Agent 以前会以为 Skill 已经读过,照旧版手册做;现在会重新读一遍现在的版本。 - **内置 Agent 可以换启动程序。** rules.json 里 Agent 新增可选的 `program`:Claude Code、Codex、DeepSeek Harness 会启动你填的程序,参数、续接和用量统计照旧。走第三方模型网关、代理,或者要先设环境变量的,写个脚本填进去就行,不用再改成 `use: "command"`。`doctor` 也用它检查登录。 - **装好或更新服务后,等中台能应答再返回。** `service install`、`init`、`update` 最多等 20 秒,紧跟着的 `emit`、`status` 不会再碰上中台还没起来;等不到就说去哪看日志。连不上中台时,命令行会说出地址、原因和启动命令,不再只打一句 fetch failed。 - **状态带上日志序号,卡片带上事项和 about。** `/v1/state` 顶层多一个 `seq`,自己做看板的取完状态从 `/v1/stream?after=<seq>` 接着读即可;本人看到的 `cards`、`recentCards` 多带 `lane` 和 `about`。通道和卡片页拿不到这两项。 - 说明补上了几处:对话怎么不排在长任务后面、Telegram 这类平台怎么接、Gemini CLI 和 OpenCode 用 ACP 接、`askFirst` 只是提示词里的要求、GitHub Issue 模板的日期要带时区。 感谢 wasabihu、wutonga1990、zivyuan、xiaojian94xiaojian 报告的问题和建议。 --- Fixes a receipt that got cut off and resumed turns that followed an old Skill; built-in agents can use a different launcher; installing the service now w

  4. Agent Autoloop 1.6.1v1.6.1Nov 6, 2026

    修好 Windows 上三个装上就会碰到的问题,并改正一句安全说明。macOS、Linux 的行为没有变化。 - **Windows 用户名或程序目录带中文时装不上、Agent 起不来。** 系统自带的 `where.exe` 按控制台代码页输出,中文路径读回来是乱码:安装器报“安装没有完成”,npm 装的 Codex、Claude 每一轮都失败。现在直接在 PATH 里按扩展名找程序,也不再先找当前目录。 - **登录后桌面上常驻一个 node.exe 终端窗口,中台停了也不会重启。** 现在登录任务通过 wscript 在后台运行中台,不开窗口;中台退出 10 秒后自动重启,和 macOS、Linux 一样。删除服务时会一并停掉中台。 - **安全说明。** 以前写的是 Codex 的 Windows 沙箱账号只多了 `context.json` 的读权限,这不对:Codex 的沙箱会给用户目录下的文件夹加上它的账号的读权限,数据目录也在内,要等中台下次启动才收回。 **从 v1.6.0 升级的 Windows 用户:** `agent-autoloop update` 之后再运行一次 `agent-autoloop service install`,或者重新运行安装命令,登录任务才会换成新的写法。 在 PATH 里按扩展名找程序的做法来自 lj100886 的 #27。 --- Fixes three Windows problems that show up right after installing, and corrects one security statement. Nothing changes on macOS or Linux. - **Installing fails and agents can't start when the Windows user name or a program's folder is Chinese.** `where.exe` prints in the console code page, so a Chinese path came back garbled: the installer said it didn't finish, and Codex or Claude installed with npm failed every turn. Programs are now looked up on PATH by extension directly, and the current folder is no longer searched first. - **A node.exe terminal window stays on the desktop after lo

  5. 这版新增原生 Windows 支持,原有 macOS、Linux、规则、插件和 `/v1` 接口保持兼容。 - Windows 可直接用 PowerShell 安装、更新和卸载;登录后的后台运行由任务计划程序管理,支持桌面通知。 - Windows 接单程序支持 npm CLI、中文和多行参数,重启后接续原轮次,停止时清理子进程树;规则目录支持盘符、UNC 和家目录路径。 - Windows 数据与备份使用本人和 SYSTEM 的 ACL;Codex 专用沙箱账号只额外读取每轮任务资料,主密钥与轮次 token 保持隔离。安装说明写明通过 SSH 管理时使用登录任务运行 Codex 的方式。 - 本人可以暂停、恢复或立即运行一条规则;已有队列、回答与到期复查会保留,暂停期间跳过的新触发不会补跑。 - 卡片表单支持回车提交默认选项;企微通知的链接和已处理状态更清楚。 - `check` 只读配置,也能校验任意草稿;修复进程结束判定、Node 升级后的插件启动路径和示例插件续接状态。 Windows 11 / Node 24.15 真机通过 455 项测试,真实 Codex 完成提问、回答和同会话续接(2 轮)。安装冒烟覆盖安装、提问、回答、续接、更新和卸载。发布提交的三平台 Node 24 与最新 Node、20 万步模拟、有界穷举、强杀和变异检查全部通过,整批改动已经独立审查。 感谢社区报告与贡献:#17、#145、#146、#147、#148、#149、#150、#151、#152、#156。

Code frequency

additions and deletions
+41.8K-41.8KWeek of 2026-11-01: +41,845 linesWeek of 2026-11-01: -9,600 linesWeek of 2026-11-08: +14 linesWeek of 2026-11-08: -2 linesNov 1, 2026Nov 8, 2026
+41.9K lines added, -9.6K removed over the last year.

Commits per week

last 52 weeks
1520Week of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 0 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 0 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 0 commitsWeek of 2026-09-27: 0 commitsWeek of 2026-10-04: 0 commitsWeek of 2026-10-11: 0 commitsWeek of 2026-10-18: 0 commitsWeek of 2026-10-25: 0 commitsWeek of 2026-11-01: 152 commitsWeek of 2026-11-08: 2 commitsNov 16, 2025Nov 8, 2026
154 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 1 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 1 commitsSun 16:00 — 0 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 0 commitsSun 22:00 — 0 commitsSun 23:00 — 0 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 0 commitsMon 10:00 — 0 commitsMon 11:00 — 0 commitsMon 12:00 — 0 commitsMon 13:00 — 0 commitsMon 14:00 — 0 commitsMon 15:00 — 0 commitsMon 16:00 — 0 commitsMon 17:00 — 0 commitsMon 18:00 — 0 commitsMon 19:00 — 0 commitsMon 20:00 — 0 commitsMon 21:00 — 0 commitsMon 22:00 — 0 commitsMon 23:00 — 0 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 0 commitsTue 11:00 — 0 commitsTue 12:00 — 0 commitsTue 13:00 — 0 commitsTue 14:00 — 0 commitsTue 15:00 — 0 commitsTue 16:00 — 1 commitsTue 17:00 — 0 commitsTue 18:00 — 1 commitsTue 19:00 — 0 commitsTue 20:00 — 0 commitsTue 21:00 — 9 commitsTue 22:00 — 1 commitsTue 23:00 — 3 commitsWed 0:00 — 1 commitsWed 1:00 — 3 commitsWed 2:00 — 1 commitsWed 3:00 — 2 commitsWed 4:00 — 3 commitsWed 5:00 — 4 commitsWed 6:00 — 1 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 0 commitsWed 11:00 — 0 commitsWed 12:00 — 0 commitsWed 13:00 — 1 commitsWed 14:00 — 5 commitsWed 15:00 — 1 commitsWed 16:00 — 2 commitsWed 17:00 — 3 commitsWed 18:00 — 3 commitsWed 19:00 — 5 commitsWed 20:00 — 5 commitsWed 21:00 — 4 commitsWed 22:00 — 4 commitsWed 23:00 — 0 commitsThu 0:00 — 0 commitsThu 1:00 — 1 commitsThu 2:00 — 0 commitsThu 3:00 — 1 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 1 commitsThu 7:00 — 6 commitsThu 8:00 — 6 commitsThu 9:00 — 1 commitsThu 10:00 — 0 commitsThu 11:00 — 0 commitsThu 12:00 — 1 commitsThu 13:00 — 7 commitsThu 14:00 — 1 commitsThu 15:00 — 0 commitsThu 16:00 — 2 commitsThu 17:00 — 4 commitsThu 18:00 — 1 commitsThu 19:00 — 4 commitsThu 20:00 — 2 commitsThu 21:00 — 1 commitsThu 22:00 — 1 commitsThu 23:00 — 1 commitsFri 0:00 — 6 commitsFri 1:00 — 3 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 5 commitsFri 10:00 — 1 commitsFri 11:00 — 1 commitsFri 12:00 — 0 commitsFri 13:00 — 0 commitsFri 14:00 — 0 commitsFri 15:00 — 7 commitsFri 16:00 — 1 commitsFri 17:00 — 0 commitsFri 18:00 — 0 commitsFri 19:00 — 1 commitsFri 20:00 — 1 commitsFri 21:00 — 3 commitsFri 22:00 — 0 commitsFri 23:00 — 1 commitsSat 0:00 — 2 commitsSat 1:00 — 5 commitsSat 2:00 — 0 commitsSat 3:00 — 1 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 1 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 0 commitsSat 14:00 — 0 commitsSat 15:00 — 6 commitsSat 16:00 — 1 commitsSat 17:00 — 0 commitsSat 18:00 — 0 commitsSat 19:00 — 0 commitsSat 20:00 — 0 commitsSat 21:00 — 3 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits110 (72%)
Community commits43 (28%)

153 commits in total over the last year.

DateListRankStars gained
Nov 8, 2026daily#1n/a
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    458.7K stars · TypeScript

  • morluto/rea

    Reverse engineer anything with agents, from app behavior down to native binaries.

    442.3K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    394.2K stars · TypeScript

  • awesome-selfhosted/awesome-selfhosted

    A list of Free Software network services and web applications which can be hosted on your own servers

    335K stars

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    299.4K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    261.6K stars · Python