Monitors active sub-agents, detects stalls, provides status updates, and steers stuck agents via sessions_send.
Monitors active sub-agents, detects stalls, provides status updates, and steers stuck agents via sessions_send.
This skill provides oversight for your OpenClaw sub-agents. It proactively checks the status of running sub-agents, identifies potential stalls or failures, and can steer stalled sub-agents by sending a continue message via the sessions_send tool.
python3 <skill-dir>/scripts/project_manager.py
--staleness_threshold_minutes <int>: Minutes after which a sub-agent is considered stalled (default from config or 10).--check_all_sessions: Check all sessions, not just subagents of the current main session.--json: Print human summary then a JSON line with stalledSessionKeys, steerMessage, and summary for agent steering.--no_cooldown: Output all stalled keys (ignore 15-minute cooldown).--record-steered KEY [KEY ...]: Record these session keys as just steered (for cooldown). Run after calling sessions_send.python3 /Users/ghost/.openclaw/workspace/skills/project-manager-agent/scripts/project_manager.py --staleness_threshold_minutes 15
python3 /Users/ghost/.openclaw/workspace/skills/project-manager-agent/scripts/project_manager.py --json --staleness_threshold_minutes 10
Then parse the last line (JSON), call sessions_send for each key in stalledSessionKeys, and optionally run --record-steered <keys>.
stalledSessionKeys for steering.--json, parse the output and call sessions_send for each stalled session (see Agent instructions below).When the user or a cron asks you to run the project-manager-agent skill:
--json (and existing args as needed):
python3 /Users/ghost/.openclaw/workspace/skills/project-manager-agent/scripts/project_manager.py --json --staleness_threshold_minutes 10
stalledSessionKeys, steerMessage, and summary. Parse it (e.g. take the last line that starts with { and ends with }).stalledSessionKeys is non-empty:
stalledSessionKeys (cap at 5 per run to avoid spam), call sessions_send(sessionKey, steerMessage from JSON or "Please continue working on your task.", 0) (fire-and-forget; timeoutSeconds=0).python3 /Users/ghost/.openclaw/workspace/skills/project-manager-agent/scripts/project_manager.py --record-steered <key1> <key2> ...
You have access to sessions_list and sessions_send; the script only produces the list of session keys to steer. Steering is done by you in the same turn via the sessions_send tool.
See config.json for: staleness_threshold_minutes, steer_cooldown_minutes, steer_message, max_steer_per_run.
This skill is ideal for a cron job, running periodically (e.g., every 5 minutes). The agent runs the script with --json, steers stalled subagents via sessions_send, and announces the status.
Example Cron Job Payload:
{
"payload": {
"kind": "agentTurn",
"message": "Run project-manager-agent skill and report status of all sub-agents.",
"model": "openrouter/google/gemini-2.5-flash",
"thinking": "low",
"timeoutSeconds": 60
},
"schedule": {
"kind": "every",
"everyMs": 300000
},
"delivery": {
"mode": "announce"
},
"sessionTarget": "isolated",
"name": "Project Manager (Sub-agent Monitor)"
}