Moadim: AI Agent 的開源迴圈引擎
Moadim 是一個開源的迴圈引擎,旨在自動化 AI agent 在定期排程下的執行。透過將提示詞 (prompt)、排程與特定的 agent 搭配使用,Moadim 實現了「迴圈工程」(loop engineering)——這是一種超越手動提示,轉而建立能對儲存庫 (repositories) 與任務進行操作的自主、重複性工作流的實踐。
本地排程與執行
Moadim 作為一個本地守護程序 (daemon) 運作,管理 agent 的執行,而不依賴雲端隊列或主機的 cron daemon。它使用一個可攜式的程序內排程器 (in-process scheduler) 來派遣迴圈,並在 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 中排隊一個一次性任務來處理。Claude agent 特別需要系統 PATH 中存在 python3,以處理 MCP-approval 狀態與 unattended trust。
管理介面
使用者可以透過三個主要介面與其迴圈進行互動與管理:
- REST API: 每個迴圈都是一個有文件說明的 HTTP 端點,並內建了 OpenAPI schema 與 Swagger UI。
- Model Context Protocol (MCP): 迴圈可以作為 MCP 工具使用,允許與 MCP 相容的 agent 列出並透過
/mcp端點觸發常規程序 (routines)。 - Web UI: 守護程序包含一個內建的網頁介面與 iCal 饋送 (feed) 用於監控。
社群對迴圈工程的看法
雖然 Moadim 為排程提供了基礎設施,但關於「迴圈工程」的更廣泛討論顯示了 AI agent 利用方式的轉變。一些使用者認為,迴圈工程的真正價值在於定義由特定事件(例如建立事故工單)觸發的技能與工作流,而非單純基於時間的排程。
社群提出的其他技術疑慮也包括:如果迴圈的「完成」狀態不是確定性的,可能會導致無法控制的 token 消耗;此外,使用標準系統工具如 crontab 進行基本的 shell-based agent 調用,也能達到類似的結果。
"我透過 moadim.io 監控這個討論串,我有一個常規程序會每 10 分鐘 ping 這個頁面,並且針對我尚未回覆的每條訊息在 discord 上 ping 我"
— Author of Moadim (@tupe12334)
Sources
相關
- 專案
- Dispatch
- 專案
- Dispatch
- 專案