Proactivity
Proactive agents in Snippbot act on their own initiative — surfacing timely insights, delivering digests, and taking autonomous actions without waiting for an explicit user prompt. Proactivity bridges scheduled automation and reactive chat-based interaction.
How proactivity works
Section titled “How proactivity works”Proactivity is implemented through two complementary systems:
-
Scheduler — Jobs defined with cron, interval, or natural language schedules. When they fire, the agent executes its goal autonomously and delivers results to a channel.
-
Channel proactivity — The channel adapter system can be configured to allow agents to send messages to platforms (Slack, Telegram, Discord, etc.) without the user first sending a message.
Smart scheduling
Section titled “Smart scheduling”The SmartScheduler learns from your activity patterns to suggest optimal times for proactive jobs:
User typically active: 09:00–12:00, 14:00–17:00 (Mon–Fri)Suggested time for "daily digest": 08:55 (5 min before typical start)The scheduler builds a UserActivityPattern from session timing data and uses it to propose schedules when you create a new job without specifying a time:
"Send me a morning briefing every weekday"→ Suggested: weekdays at 08:55 (your typical start minus 5 min)Quiet hours
Section titled “Quiet hours”Proactive messages respect quiet hours to avoid notifications outside work hours. Quiet hours are optional and configurable:
| Setting | Default |
|---|---|
| Quiet hours start | 22:00 (configurable) |
| Quiet hours end | 08:00 (configurable) |
Proactive jobs that fire during quiet hours are deferred — their result is queued and delivered when quiet hours end, not dropped.
Proactivity levels
Section titled “Proactivity levels”Each agent can be set to a proactivity level that controls how many insights it delivers per day:
| Level | Max insights per day | Min delay between | Can interrupt |
|---|---|---|---|
| Silent | 0 | N/A | No |
| Cautious | 1 | 4 hours | No |
| Balanced | 3 | 1 hour | No |
| Eager | 5 | 15 minutes | Yes (high priority) |
| Aggressive | Unlimited | None | Yes |
Configure quiet hours and proactivity level in Settings → Channels → Proactivity in the Snippbot UI.
Enabling proactive delivery
Section titled “Enabling proactive delivery”Channel proactivity is disabled by default. Enable it per-platform in Settings → Channels in the Snippbot UI:
- Open Settings → Channels and select the platform
- Toggle Proactive Enabled to on
- Set a Public URL (required for platforms that deliver webhooks) under channel settings
Common proactive patterns
Section titled “Common proactive patterns”Morning briefing
Section titled “Morning briefing”Goal: Summarize overnight GitHub activity, new issues, and PRs for my reposSchedule: weekdays at 08:00Delivery: Slack #engineeringPrice or metric alert
Section titled “Price or metric alert”Goal: Check if BTC price has changed by more than 5% since yesterdaySchedule: every 1hCondition: only run if change > 5%Delivery: Telegram @meDaily digest
Section titled “Daily digest”Goal: Compile a summary of completed tasks, pending items, and calendar eventsSchedule: weekdays at 17:30Delivery: Email summaryAnomaly detection
Section titled “Anomaly detection”Goal: Check error rate from the last hour in Datadog; alert if > 1%Schedule: every 15mCondition: only if error_rate > 0.01Delivery: PagerDuty webhookProactivity vs. reactive chat
Section titled “Proactivity vs. reactive chat”| Reactive | Proactive | |
|---|---|---|
| Triggered by | User message | Schedule or event |
| Approval required | Only for elevated actions | Per permission tier |
| Delivery | Chat interface | Channel or webhook |
| History | In chat | In scheduler run history |
Delivery limits
Section titled “Delivery limits”Proactive message delivery is governed by the agent’s proactivity level (see table above). For example, a Balanced agent delivers at most 3 insights per day with at least 1 hour between each. An Eager agent delivers up to 5 per day with a minimum 15-minute gap.
Messages that exceed the daily limit are queued, not dropped.
Disabling proactivity for an agent
Section titled “Disabling proactivity for an agent”Each agent can have proactivity disabled independently in its settings. Useful during development or testing:
- From the agent detail page → Settings → Proactivity: toggle Off