Moadim: 面向 AI Agent 的开源循环引擎
Moadim 是一个开源循环引擎,旨在按定期计划自动执行 AI agent 的运行。通过将提示词(prompt)、计划(schedule)和特定的 agent 配对,Moadim 实现了“循环工程”(loop engineering)——即超越手动提示词,创建能够对仓库和任务执行操作的自主、重复性工作流的实践。
本地调度与执行
Moadim 以本地守护进程的形式运行,管理 agent 的执行,而不依赖于云端队列或宿主机的 cron 守护进程。它使用一个可移植的进程内调度器来分发循环,并在 tmux 会话中启动每个 agent 实例,以确保进程隔离。
系统集成与持久化
为了确保守护进程在系统重启和用户登录后仍能运行,Moadim 提供了一个安装命令 (moadim install),可以将该服务注册到 macOS 上的 launchd 或 Linux 上的 systemd。该工具使用 Rust 编写,可以通过 cargo install --locked moadim、cargo binstall moadim 或 npm install -g moadim 进行安装。
隔离与可靠性
计划循环的每一次“滴答”(tick)都会在一个全新的、隔离的工作台(workbench)中启动 agent。为了防止资源泄漏或进程停滞,Moadim 采用了看门狗定时器(watchdog timer)来终止挂起的运行,并在完成后立即回收会话。这种架构确保了状态不会从一次执行运行泄露到下一次。
支持的 Agent 与接口
Moadim 支持多种内置 agent,包括 Claude、Codex、Hermes、NanoClaw 和 Pi。虽然大多数 agent 都在隔离的工作台中运行,但 NanoClaw 是通过在配置好的 agent group 中排队一个单次任务(one-shot task)来处理的。Claude agent 特别要求系统 PATH 中必须存在 python3,以便处理 MCP-approval 状态和无人值守信任(unattended trust)。
管理接口
用户可以通过三种主要接口与循环进行交互并进行管理:
- REST API: 每个循环都是一个带有内置 OpenAPI schema 和 Swagger UI 的文档化 HTTP 端点。
- Model Context Protocol (MCP): 循环可以作为 MCP 工具使用,允许兼容 MCP 的 agent 通过
/mcp端点列出并触发例程(routines)。 - Web UI: 守护进程包含一个内置的 Web 界面和用于监控的 iCal feed。
关于循环工程的社区观点
虽然 Moadim 为调度提供了基础设施,但围绕“循环工程”的更广泛讨论表明,AI agent 的利用方式正在发生转变。一些用户认为,循环工程的真正价值在于定义由特定事件(如创建事故工单)触发的技能和工作流,而不仅仅是简单的基于时间的调度。
社区提出的其他技术担忧包括:如果循环的“完成”(done)状态不是确定性的,可能会导致不受控制的 token 消耗;此外,对于基础的基于 shell 的 agent 调用,使用 crontab 等标准系统工具也能实现类似的结果。
"I monitor this thread via moadim.io, I have a routine that ping this page every 10 minutes and ping me on discord for every message that I didn’t responded to yet"
— Author of Moadim (@tupe12334)
Sources
相关
- 项目
- Dispatch
- 项目
- Dispatch
- 项目