Skip to main content

moai goal ゴールループ

更新 2026-08-08 2分で読めます GitHub で編集 ↗

moai goal は現在のセッションに対して条件を宣言したエージェンティックゴールループを arm/照会/解除します。MoAI goal エンジンは、宣言した条件が満たされるか、ターン上限に達するまで、セッションがターンを越えて作業を継続できるようにします。

これはネイティブ /goal (ユーザー専用 TUI コマンド) のプログラマティックな MoAI 対応物であり、オーケストレーターが人間による /goal 行の入力なしにゴールを登録・arm できるようにします。

サブコマンド

コマンド説明
moai goal arm "<condition>"アクティブセッションにゴールを登録 + arm (moai goal "<condition>" も arm のエイリアス)
moai goal statusアクティブセッションのゴール状態を出力
moai goal clearアクティブセッションのゴールを解除

共通フラグ

フラグ説明
--session <id>セッション id を上書き (デフォルト: moai session current で解決)
--json機械可読 JSON 出力
--all(status 専用) アクティブセッションだけでなく全セッションのゴールを一覧表示

arm フラグ

フラグ説明
--max-turns <N>ターン上限。0 = 無限 (自動コンパクション駆動); 省略時はデフォルト 30 (完全な後方互換)。0--max-duration または --cost-cap を必須とする (arm 時の fail-closed)。
--max-duration <sec>実時間上限 (arm 時点からの秒数)。無限 goal の一次実行上限。
--cost-cap <value>Ceiling に記録されるコスト上限。実適用は今後の課題 (現在は呼び出し/トークン計測なし); 無限 goal は --max-duration と停滞ガードで依然として束ねられる。

状態と評価

ゴール状態は .moai/state/goal/<session-id>.json (セッションごとに 1 ファイル) に保存されます。Stop フック moai hook stop-goal が各ターン終了時にゴールを評価します。

条件のパース:

  • 実行可能なシェルコマンド (任意で exits <N> 接尾辞) は 機械的 (mechanical) 条件 になります。
  • 対話 transcript を参照する主張は、オーケストレーターが評価する モデル (model) 条件 になります。

bash
# テストスイートが通過するまで作業を継続
moai goal arm "go test ./... exits 0"

# 現在のゴール状態を確認
moai goal status

# ゴールを解除
moai goal clear

関連ドキュメント