Skip to main content

Overview

OrcBot’s autonomy system enables the agent to work proactively in the background, performing scheduled tasks, following up on conversations, and optimizing its own behavior based on productivity metrics.

How Autonomy Works

Basic Configuration

Enable Autonomy

Start with Autonomy

Smart Heartbeat System

The smart heartbeat is context-aware and productivity-driven:

Exponential Backoff

When unproductive, heartbeat intervals automatically increase:

Productivity Tracking

The system measures actual work vs. idle cycles:
Productivity criteria:
  • Created new task
  • Sent message to user
  • Updated memory or journal
  • Executed skill with meaningful result
  • Made progress on existing task

Context-Aware Actions

The agent analyzes recent activity to determine relevant actions:

Action Types

The autonomous system supports different action types:

Follow-Up Actions

Continue conversations that need closure:
Triggers:
  • Unanswered question from user
  • Task marked “pending user input”
  • Conversation ended without resolution

Outreach Actions

Proactively check in with contacts:
Triggers:
  • Regular check-in schedule
  • Milestone approaching
  • Previous conversation flagged for follow-up

Research Actions

Learn about topics from recent discussions:
Triggers:
  • Topic mentioned multiple times
  • User asked for information
  • Knowledge base needs updating

Maintenance Actions

Journal updates, memory consolidation:
Triggers:
  • Memory threshold exceeded
  • Daily summary needed
  • Learning entries to process

Delegate Actions

Spawn worker agents for parallel tasks:
Triggers:
  • Complex multi-step task
  • Independent subtasks identified
  • Main agent busy with other work

Channel Policy

Control where the agent can send proactive messages:

Direct Responses

Always allowed on any channel where user messages the bot:

Proactive Updates

Only allowed on channels in autonomyAllowedChannels:
Example:

Default Behavior

Result: Silent in background mode
  • No proactive messages sent
  • Still processes incoming messages
  • Still executes scheduled tasks (logs only)

Scheduling System

One-Time Tasks

Use schedule_task skill:
Supported formats:
  • Relative: "in 30 minutes", "in 2 hours", "in 3 days"
  • Absolute: "2024-03-15 14:00", "March 15 at 2pm"
  • Natural: "tomorrow at 9am", "next Monday"

Recurring Tasks

Use heartbeat_schedule skill with cron syntax:
Cron format: minute hour day month weekday

View Scheduled Tasks

Backlog Management

Backlog Limit

Prevent queue overflow:
When queue size ≥ limit:
  • Autonomy pauses (no new autonomous tasks)
  • Still processes incoming user messages
  • Resumes when queue drops below limit
Logs:

Pause/Resume Autonomy

Or via skill:

Completion Audit System

Prevents premature task completion:

Audit Codes

When OrcBot blocks completion, logs include an audit code:

Example Audit Flow

View Audit Logs

Multi-Agent Orchestration

Spawn worker agents for parallel tasks:

Spawn Worker Agent

Delegate Task

Worker Process Management

Workers appear in TUI:
Features:
  • Real Node.js child processes via fork()
  • IPC communication with main agent
  • Shared configuration
  • Isolated execution
  • Automatic cleanup on completion

Productivity Metrics

Track Productivity

View productivity stats:

Interpret Metrics

Indicators:
  • Creating useful tasks regularly
  • Following up on conversations
  • Maintaining knowledge base
Action: Maintain current settings

Advanced Configuration

Fine-Tune Intervals

Context Limits

Action Selection

Best Practices

Start Conservative

Begin with longer intervals and fewer allowed channels:
Gradually tune based on productivity metrics.

Monitor Backlog

Keep backlog limit reasonable:
If frequently hitting limit, either:
  • Increase limit
  • Increase interval
  • Reduce autonomous task creation

Use Channel Policy

Don’t spam users with proactive messages:

Review Audit Logs

Periodically check for completion blocks:
Frequent blocks indicate agent is trying to complete tasks prematurely.

Troubleshooting

Autonomy Not Running

1

Check Config

2

Check Daemon

3

Check Logs

Should see heartbeat ticks every interval
4

Check Backlog

If backlog ≥ limit, autonomy is paused

Too Many Autonomous Tasks

Symptoms:
  • Queue constantly full
  • Hitting backlog limit frequently
  • Agent seems “spammy”
Solutions:
  1. Increase interval:
  2. Reduce allowed channels:
  3. Increase backlog limit temporarily:

Low Productivity

Symptoms:
  • Productivity rate < 40%
  • Interval backed off to maximum
  • Few actions created
Possible causes:
  1. No pending work:
    • Agent has nothing to do
    • This is normal during quiet periods
  2. Empty allowed channels:
    Add at least one channel.
  3. Waiting for user input:
    • Agent is blocked on clarification
    • Check for pending questions

Heartbeat Not Firing

If no ticks:
  • Scheduler may not be initialized
  • Check for errors in startup logs
  • Restart OrcBot

Example Workflows

Daily Briefing

Result:

Background Research

Conversation Follow-Up