ステップ監視 Cog(step_monitor.py)実装記録
概要
Antigravityの24/7自律稼働を実現するため、#実行・指示 チャンネルを監視して完了報告を検知し、次ステップを自動投入するCogを実装。
ファイル
- ローカル:
c:\ai_work\tools\bots\new_bot\vps_deploy\cogs\step_monitor.py
- VPS:
/opt/new_bot/cogs/step_monitor.py
機能一覧
| 機能 | 検知パターン | 動作 |
|---|
| ステップ完了 | ✅ STEP_COMPLETE: {id} | #nana-command に次ステップ投入 |
| エラー検知 | ⚠️ STEP_ERROR: {id} | ソフィアにDM通知 |
| LLM自動判定 | 「完了」等のキーワード | Gemini Flash で判定→完了なら次投入 |
| タイムアウト | 2時間無応答 | ソフィアに通知 |
ハイブリッド検知ロジック
Phase 1: フォーマット検知(正規表現)
✅ STEP_COMPLETE → 即座に次ステップ投入
⚠️ STEP_ERROR → ソフィア通知
📋 STEP_PLAN → リアクションのみ
Phase 2: LLM判定(フォーマットなし)
「完了」「finished」等キーワードあり → Gemini Flash API
→ COMPLETE / IN_PROGRESS / ERROR を判定
連携フロー
Antigravity → #実行・指示 に完了報告
↓ ナナが検知(スレッド自動参加)
↓ 📌 次ステップ指示を投稿
↓ listener.py(Antipigeon)が検知 → Queue
↓ Local Poller → Antigravity IDE 起動
↓ 次のセッション開始
環境変数
| 変数 | 用途 | VPS設定状況 |
|---|
GEMINI_API_KEY | LLM判定用 | ✅ 設定済み |
OPENCLAW_WORKER_URL | OpenClaw API | ✅ 設定済み |
DISCORD_ALLOWED_USER_ID | ソフィアUser ID | ✅ 設定済み |
NANA_WEBHOOK_URL | Webhook投稿(任意) | 未設定 |
STEP_TIMEOUT_SECONDS | タイムアウト秒数 | デフォルト7200 |
デプロイ手順
# ローカル → VPS へコピー
scp "c:\ai_work\tools\bots\new_bot\vps_deploy\cogs\step_monitor.py" root@n8n.siruera.com:/opt/new_bot/cogs/
# Bot 再起動
ssh root@n8n.siruera.com "systemctl restart discord-bot.service"
# 確認
ssh root@n8n.siruera.com "systemctl status discord-bot.service --no-pager"
残タスク
関連