Project Manager Agent
Monitors active sub-agents, detects stalls, provides status updates, and steers stuck agents via sessions_send.
Description
name: project-manager-agent displayName: Project Manager Agent description: Monitors active sub-agents, detects stalls, provides status updates, and steers stuck agents via sessions_send.
Project Manager Agent
Description
Monitors active sub-agents, detects stalls, provides status updates, and steers stuck agents via sessions_send.
Project Manager Agent
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.
Usage
Running the monitor
python3 <skill-dir>/scripts/project_manager.py
Options
--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 withstalledSessionKeys,steerMessage, andsummaryfor 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.
Example (Status check, human-only)
python3 /Users/ghost/.openclaw/workspace/skills/project-manager-agent/scripts/project_manager.py --staleness_threshold_minutes 15
Example (Agent run with steering)
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>.
Features
- Sub-agent Monitoring: Lists all active sub-agents (file-based; no gateway API in the script).
- Stall Detection: Flags sub-agents that haven't updated their status within a configurable time period.
- Failure Identification: Reports on sub-agents that have aborted their last run.
- Status Reports: Human-readable summaries and optional JSON with
stalledSessionKeysfor steering. - Automated Steering: When you run the skill with
--json, parse the output and call sessions_send for each stalled session (see Agent instructions below).
Agent instructions (mandatory when running this skill)
When the user or a cron asks you to run the project-manager-agent skill:
- Run the script with
--json(and existing args as needed):python3 /Users/ghost/.openclaw/workspace/skills/project-manager-agent/scripts/project_manager.py --json --staleness_threshold_minutes 10 - Parse the script stdout: The last line is a single JSON object with
stalledSessionKeys,steerMessage, andsummary. Parse it (e.g. take the last line that starts with{and ends with}). - If
stalledSessionKeysis non-empty:- For each session key in
stalledSessionKeys(cap at 5 per run to avoid spam), call sessions_send(sessionKey,steerMessagefrom JSON or"Please continue working on your task.",0) (fire-and-forget;timeoutSeconds=0). - Optionally run the script again to record cooldown so the same session is not steered again for 15 minutes:
python3 /Users/ghost/.openclaw/workspace/skills/project-manager-agent/scripts/project_manager.py --record-steered <key1> <key2> ...
- For each session key in
- Reply to the user/cron with the status summary (the human-readable part of the script output) and, if you steered any, add: "Steered N stalled subagent(s)."
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.
Config (optional)
See config.json for: staleness_threshold_minutes, steer_cooldown_minutes, steer_message, max_steer_per_run.
Integration as a Cron Job
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)"
}
version: 0.2.0
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!