Moadim: AIエージェントのためのオープンソース・ループエンジン
Moadimは、AIエージェントの実行を定期的なスケジュールに基づいて自動化するために設計されたオープンソースのループエンジンです。プロンプト、スケジュール、および特定のエージェントを組み合わせることで、Moadimは「ループ・エンジニアリング」を可能にします。これは、手動のプロンプト入力から脱却し、リポジトリやタスクに対して自律的かつ反復的に動作するワークフローを作成する手法です。
ローカル・スケジューリングと実行
Moadimは、クラウドのキューやホストのcronデーモンに依存することなく、エージェントの実行を管理するローカルデーモンとして動作します。ポータブルなインプロセス・スケジューラを使用してループをディスパッチし、プロセス分離を確保するために、各エージェントのインスタンスを tmux セッション内で起動します。
システム統合と永続性
デーモンがシステムの再起動やユーザーのログインをまたいで存続するように、Moadimは launchd (macOS) または systemd (Linux) にサービスを登録するインストールコマンド (moadim install) を提供しています。このツールはRustで書かれており、cargo install --locked moadim、cargo binstall moadim、または npm install -g moadim を介してインストール可能です。
分離と信頼性
スケジューリングされたループの各「ティック」は、新しい分離されたワークベンチでエージェントを起動します。リソース漏洩やプロセスの停滞を防ぐため、Moadimはウォッチドッグ・タイマーを採用しており、ハングした実行を強制終了し、完了直後にセッションを回収(reap)します。このアーキテクチャにより、実行回ごとに状態が漏洩しないことが保証されます。
サポートされているエージェントとインターフェース
Moadimは、Claude、Codex、Hermes、NanoClaw、および Pi を含む、いくつかの組み込みエージェントをサポートしています。ほとんどのエージェントは分離されたワークベンチで動作しますが、NanoClawは設定されたエージェント・グループ内でワンショット・タスクをキューイングすることで処理されます。特にClaudeエージェントは、MCP承認状態と無人での信頼(unattended trust)を処理するために、システムのPATHに python3 が存在することを必要とします。
管理インターフェース
ユーザーは、主に以下の3つのインターフェースを通じてループを操作・管理できます:
- REST API: すべてのループは、組み込みのOpenAPIスキーマとSwagger UIを備えた、ドキュメント化されたHTTPエンドポイントです。
- Model Context Protocol (MCP): ループはMCPツールとして利用可能であり、MCP互換のエージェントが
/mcpエンドポイントを介してルーチンをリストアップし、トリガーすることができます。 - Web UI: デーモンには、モニタリング用の組み込みWebインターフェースとiCalフィードが含まれています。
ループ・エンジニアリングに関するコミュニティの視点
Moadimはスケジューリングのためのインフラストラクチャを提供しますが、「ループ・エンジニアリング」を巡るより広範な議論は、AIエージェントの活用方法における転換を示唆しています。一部のユーザーは、ループ・エンジニアリングの真の価値は、単単なる時間ベースのスケジューリングではなく、インシデント・チケットの作成といった特定のイベントによってトリガーされるスキルやワークフローの定義にあると主張しています。
コミュニティから提起されたその他の技術的な懸念事項には、ループの「完了」状態が決定論的でない場合に、制御不能なトークン消費が発生する可能性や、基本的なシェルベースのエージェント呼び出しを行うために 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
- プロジェクト