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 moadimcargo binstall moadimnpm 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
  • 项目