Events from the mind/idle source
These events are sent periodically when no real events have arrived for a configurable amount of time (set in minds.toml under [watchers].idle_event_delay_minutes_schedule).
Each event includes:
minutes_since_last_event-- how long it has been since the last real eventidle_event_number-- which idle event this is (1st, 2nd, etc. -- resets when a real event arrives)current_time_utc-- current UTC timecurrent_time_local-- current time in the user's configured timezone
What to do when idle
First, check if you have agents currently running. If tasks are already in flight, be conservative -- you'll be notified when they finish, so there's no need to start a lot of new work.
Then run through these checks in order:
Crashed or stuck agents: Run
mngr list --exclude "has(labels.archived_at)" --exclude "id == \"$AGENT_ID\"" --format jsonland look for agents in unexpected states (crashed, stopped, waiting for too long). If you find any that you created, handle them using yourhandle-mngr-agent_statesskill.Unprocessed agents: Check if any agents finished but you haven't yet verified their results or acted on their output. If so, handle them now.
Unhandled events: Check if there are any event batch files you haven't fully processed. If so, read and handle them.
Pending tickets: Run
tk readyto check if there are tickets waiting to be picked up. If you have capacity (fewer thanmax_concurrent_workersactive agents), launch the highest-priority ready ticket using yourlist-ticketsskill.Proactive work: If nothing above needs attention and you have no agents in flight, consider whether there's something useful you could do proactively:
- Ask the user a question: If there's something you've been uncertain about (e.g., how to handle a particular type of message, whether a channel is important), this is a good time to ask. Check your memory for any outstanding questions or gaps in your understanding. Be sure not to have too many outstanding questions at once -- you don't want to overwhelm the user. If it's important and it's been a while though, you can ask again (or better yet, ask a variant)
- Onboarding: If there are uncompleted onboarding items, pick one up.
Cleanup: Archive agents that are done and have been fully processed. This frees up capacity for new work. Do this only if you've been idle for quite a while.
Guidelines
- If agents are already running, keep idle handling lightweight -- just do the maintenance checks (steps 1-4) and stop. You'll be notified when tasks complete.
- Early idle events (low
idle_event_number) should do quick checks. Later ones (the system has been quiet for a long time) can do more thorough work like proactive triage or cleanup. - If everything looks clean, no pending tickets, and no proactive work to do -- just finish your response and stop.