Autonomy Quickstart
KinBot Kins aren’t just chatbots — they can work autonomously on schedules, react to external events, and delegate work to sub-agents. This guide takes you from zero to a working autonomous Kin.
What “autonomy” means in KinBot
Section titled “What “autonomy” means in KinBot”Three mechanisms make Kins autonomous:
| Mechanism | What it does | Example |
|---|---|---|
| Cron jobs | Run a task on a schedule | ”Every morning at 8 AM, check my GitHub issues” |
| Webhooks | React to external events in real-time | ”When a new issue is opened, triage it” |
| Sub-tasks | Delegate work to focused sub-agents | ”Spawn a sub-Kin to research this topic” |
These can be combined. A cron job can spawn sub-tasks. A webhook can trigger a chain of sub-agents. The Kin orchestrates everything.
Prerequisites
Section titled “Prerequisites”Before starting, make sure you have:
- A working KinBot installation (Installation guide)
- At least one LLM provider configured (Anthropic recommended — see Model Selection)
- At least one embedding provider configured (for memory)
- A Kin created (Your First Kin)
Step 1: Create an autonomy-ready Kin
Section titled “Step 1: Create an autonomy-ready Kin”Create a new Kin (or update an existing one) with a system prompt designed for autonomous work. The key is being explicit about actions:
Character field
Section titled “Character field”You are a disciplined automation agent. You execute tasks precisely and report results clearly.When given a task, you ACT — you never describe what you would do, you DO it.You always use tools to accomplish tasks. You never simulate or roleplay tool usage.Expertise field
Section titled “Expertise field”You are an expert at task automation, data processing, and systematic workflows.You know how to use all KinBot tools: web search, file operations, memory, HTTP requests.When a task is complete, you summarize what was done and what the results were.Step 2: Set up your first cron job
Section titled “Step 2: Set up your first cron job”Cron jobs are the simplest path to autonomy. Let’s create one that runs daily.
Option A: Ask the Kin to create it
Section titled “Option A: Ask the Kin to create it”Simply tell your Kin:
Create a cron job that runs every day at 8:00 AM UTC. The task should: search the web for the latest news about “artificial intelligence”, summarize the top 3 stories, and save the summary to memory.
The Kin will call create_cron with the appropriate configuration. You’ll see a pending approval notification — cron jobs created by Kins always require human approval before they run.
Option B: Understand the cron structure
Section titled “Option B: Understand the cron structure”When a Kin creates a cron, it specifies:
| Parameter | Description | Example |
|---|---|---|
title | Short name for the job | "Daily AI News Digest" |
schedule | Cron expression (standard 5-field) | "0 8 * * *" (8 AM daily) |
task_description | Full prompt for the sub-Kin that runs | The detailed instructions |
Common cron schedules:
0 8 * * * → Every day at 8:00 AM0 */6 * * * → Every 6 hours*/30 * * * * → Every 30 minutes0 9 * * 1-5 → Weekdays at 9:00 AM0 0 1 * * → First day of each monthWhat happens when a cron fires
Section titled “What happens when a cron fires”- KinBot spawns a sub-Kin (a temporary copy of your Kin)
- The sub-Kin receives the
task_descriptionas its mission - The sub-Kin executes using all available tools
- Results are saved — the sub-Kin must call
update_task_status("completed", result)when done - The result appears in your Kin’s conversation as an informational message
- On the next run, the sub-Kin receives the previous run’s result for continuity
Step 3: Verify it’s working
Section titled “Step 3: Verify it’s working”Check the cron is registered
Section titled “Check the cron is registered”Ask your Kin:
List all my cron jobs and their status.
The Kin will call list_crons and show you the registered jobs, including their schedule, status (active/pending), and last run time.
Check execution history
Section titled “Check execution history”After the first run:
Show me the execution history for my daily news cron.
The Kin will call get_cron_journal to show past executions with timestamps, status (success/failure), and results.
Manual trigger for testing
Section titled “Manual trigger for testing”Don’t wait for the schedule — trigger it now:
Trigger my daily news cron immediately.
This runs the cron right now without affecting the regular schedule.
What to look for in the UI
Section titled “What to look for in the UI”- Task indicators: When a cron fires, you’ll see a sub-task appear in the Kin’s conversation
- Tool call markers: Successful autonomous execution shows tool calls (web search, memory writes, etc.) — not just text responses
- Status: The task should end with
completedstatus and a result summary
Step 4: Add webhook reactions (optional)
Section titled “Step 4: Add webhook reactions (optional)”Webhooks let your Kin react to external events in real-time. Each webhook gets a unique URL you can point external services at.
Creating a webhook
Section titled “Creating a webhook”Ask your Kin:
Create a webhook called “GitHub Events” that listens for GitHub webhook payloads. Filter to only accept payloads where the “action” field is “opened” or “labeled”. Use task dispatch mode so each event spawns a sub-task.
The Kin will create a webhook with:
- Payload filtering — drops irrelevant events before they cost LLM tokens
- Task dispatch mode — each matching payload spawns an isolated sub-task
Webhook dispatch modes
Section titled “Webhook dispatch modes”| Mode | Behavior | Best for |
|---|---|---|
conversation | Payload injected into the Kin’s main chat | Low-volume events you want to discuss |
task | Each payload spawns an autonomous sub-task | High-volume events that need processing |
Task mode supports concurrency control — you can limit how many webhook-spawned tasks run in parallel to avoid overwhelming your LLM provider.
Connecting to external services
Section titled “Connecting to external services”After creating the webhook, the Kin returns a URL like:
https://your-kinbot-instance/api/webhooks/incoming/<token>Point your external service (GitHub, GitLab, Linear, etc.) to this URL. KinBot accepts any JSON payload via POST.
Step 5: Design self-contained tasks
Section titled “Step 5: Design self-contained tasks”The secret to reliable autonomy is self-contained task descriptions. The sub-Kin that executes a cron or webhook task has no memory of previous conversations — it only knows what’s in the task description.
Good task description
Section titled “Good task description”You are processing a GitHub issue webhook payload.
Your mission:1. Parse the payload to extract the issue title, body, labels, and author2. Search the web for any relevant context about the topic3. Write a triage comment on the issue using the GitHub MCP tools4. Memorize a summary of your analysis for future reference5. Call update_task_status("completed", "Triaged issue #<number>: <title>")
The payload:{{__payload__}}Bad task description
Section titled “Bad task description”Handle this GitHub issue.Common pitfalls
Section titled “Common pitfalls”1. Wrong model
Section titled “1. Wrong model”Symptom: Cron tasks produce text responses instead of tool calls. Fix: Use Claude Sonnet 4 or Claude Sonnet 3.5. See Model Selection.
2. Missing update_task_status
Section titled “2. Missing update_task_status”Symptom: Tasks stay “in progress” forever.
Fix: Always include an explicit instruction to call update_task_status("completed", result) in your task description.
3. Vague task descriptions
Section titled “3. Vague task descriptions”Symptom: Sub-Kins do random or incomplete work. Fix: Be specific. List exact steps. Include the data they need.
4. No payload filtering on webhooks
Section titled “4. No payload filtering on webhooks”Symptom: Your Kin processes every webhook event, burning through LLM tokens.
Fix: Use filter_mode: "simple" with filter_field and filter_allowed_values to only process relevant events.
5. Cron stuck in “pending approval”
Section titled “5. Cron stuck in “pending approval””Symptom: The cron was created but never runs. Fix: Kin-created crons require admin approval. Check the pending approvals in the UI and approve it.
Next steps
Section titled “Next steps”- GitHub Issue Processor — A complete, production-tested blueprint
- Daily Digest — Automated tech watch and reporting
- Model Selection — Deep dive into model choice and troubleshooting