-
-
Notifications
You must be signed in to change notification settings - Fork 40.2k
Description
Problem
Agents (like Claude running in OpenClaw) have no reliable mechanism to communicate their current state to users. This creates a frustrating UX where users are left wondering:
- Is the agent working on my request?
- Did it spawn a sub-agent? Is that still running?
- Is it stuck or waiting on something?
- Did it crash or error out?
- Will I ever get a response?
Currently, an agent can promise to update the user, but there is no enforcement — agents forget, get distracted, or sub-agents complete without notifying the parent session. Users end up second-guessing whether anything is happening.
Proposed Solution
1. Gateway-level message state tracking
The gateway should automatically track message lifecycle:
received→processing→responded(orerror/timeout)
This state could be exposed via:
- Automatic emoji reactions on supported platforms (Discord, Slack, etc.)
- ⏳ when processing
- ✅ when responded
⚠️ on error/timeout
- Webhook/event hooks for custom integrations
- Status API endpoint to query current state
2. Sub-agent lifecycle visibility
When sessions_spawn creates a sub-agent:
- Track its state (running/completed/failed)
- Optionally notify the originating channel when it completes
- Expose running sub-agents via status query
3. Activity feed / channel
Allow configuring a dedicated channel (Discord/Slack/etc.) where the gateway posts:
- Task started
- Sub-agent spawned (with task description)
- Sub-agent completed (with summary)
- Errors or timeouts
- Scheduled job executions (cron)
4. Timeout detection
If a message has been "processing" for longer than a configurable threshold without a response, automatically:
- Post a warning to the activity channel
- React with a warning emoji
- Optionally notify the user
Why This Matters
Agent reliability perception is directly tied to visibility. When users can see that work is happening, they trust the system. When they are left in the dark, they assume it is broken — even if it is working fine in the background.
This is especially important for:
- Long-running tasks
- Sub-agent workflows
- Async/background operations
- Cron-triggered jobs
Implementation Notes
This should be handled at the gateway level, not by relying on agents to self-report (they will forget). The platform should enforce visibility automatically.