Agent Monitor - Agent Work Status Monitoring
Overview
This skill provides subagent work status monitoring and automatic activation capabilities:
- Status Monitoring - Real-time monitoring of agent runtime status
- Stall Detection - Detecting "stalled" states where an agent has been unresponsive for over 5 minutes
- Automatic Activation - Automatically sending activation messages to resume agent operation
Core Capabilities
1. Monitor Agent Status
Use the subagents tool to obtain a list of currently running agents:
# List recently running agents
subagents(action="list", recentMinutes=30)
2. Detect Stalled Status
Detection logic:
- Obtain the agent's last activity time
- Calculate the difference from the current time
- If over 5 minutes (300 seconds) with no activity → Determine as "stalled"
3. Automatically Activate Agents
Use the steer action of the subagents tool to send an activation message:
# Send an activation message to a specified agent
subagents(action="steer", target="<agent-id>", message="Continue working")
Workflow
┌─────────────────────┐
│ Get Agent List │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ Check Each Agent's │
│ Last Activity Time │
└──────────┬──────────┘
▼
┌────────┐
│ >5min? ├──No──┐
└────┬───┘ │
Yes│ │
▼ │
┌─────────────────────┐│
│ Determine as ││
│ Stalled Status ││
└──────────┬──────────┘│
▼ │
┌─────────────────────┐│
│ Send Activation ││
│ Message to Resume ││
└─────────────────────┘│
│ │
└───────────┘
▼
┌─────────────────┐
│ Continue Monitoring│
└─────────────────┘
Usage Examples
Example 1: Monitor All Agents
# 1. Get agent list
result = subagents(action="list", recentMinutes=30)
# 2. Check each agent's status
for agent in result.agents:
idle_time = calculate_idle_time(agent.lastActivity)
if idle_time > 300: # Over 5 minutes
# 3. Automatically activate
subagents(action="steer", target=agent.id, message="Please continue executing the task")
Example 2: Monitor a Specific Agent
# Monitor an agent with a specified ID
agent_id = "builder-agent-001"
result = subagents(action="list", recentMinutes=10)
# Find the target agent
for agent in result.agents:
if agent.id == agent_id:
if is_stalled(agent, threshold=300):
activate_agent(agent_id)
Script Tool
monitor_agents.py
Located at scripts/monitor_agents.py, provides complete monitoring functionality:
# Monitor and automatically activate stalled agents
python scripts/monitor_agents.py --threshold 300 --auto-activate
# Detect only, without automatic activation
python scripts/monitor_agents.py --threshold 300 --dry-run
# Monitor a specific agent
python scripts/monitor_agents.py --target agent-id-001
Parameter descriptions:
--threshold: Stall determination threshold (seconds), default 300 (5 minutes)--auto-activate: Automatically activate stalled agents--dry-run: Detect only, do not execute activation--target: Specify a specific agent ID to monitor
Integration into Scheduled Tasks
The monitoring script can be integrated into cron scheduled tasks for continuous monitoring:
# Check every 2 minutes
*/2 * * * * python /path/to/monitor_agents.py --auto-activate
Notes
- Threshold Setting: Adjust the stall determination threshold based on the task type; complex tasks may require longer thresholds
- Activation Message: Activation messages sent should be concise and clear, prompting the agent to continue working
- Avoid False Activation: Ensure the agent is genuinely stalled before activating to avoid interfering with normal thought processes
- Logging: It is recommended to log each detection and activation operation for subsequent analysis