Skip to content

Configuration Reference

ravenbot is highly configurable via environment variables and a config.json file. This document describes all available settings.


🌍 Environment Variables (.env)

These are used for core system settings and credentials. See .env.example for the canonical reference.

AI Backend Settings

Variable Description Default
AI_BACKEND gemini or ollama. gemini
GEMINI_API_KEY Required for Gemini. Get it from Google AI Studio.
GEMINI_FLASH_MODEL / FLASH_MODEL Flash model for classification and simple tasks. gemini-2.5-flash
GEMINI_PRO_MODEL / PRO_MODEL Pro model for reasoning and complex research. gemini-2.5-pro
OLLAMA_BASE_URL API URL for your Ollama instance. http://localhost:11434/v1
OLLAMA_MODEL Default Ollama model for both tiers.
OLLAMA_FLASH_MODEL Override Flash model for Ollama.
OLLAMA_PRO_MODEL Override Pro model for Ollama.
OLLAMA_THINKING Enable extended reasoning (if supported by model). false
OLLAMA_DISABLE_CLASSIFY Always use Flash model tier. false

Integration Settings

Variable Description
TELEGRAM_BOT_TOKEN Your Telegram Bot API token.
TELEGRAM_CHAT_ID Your specific Chat ID.
DISCORD_BOT_TOKEN Your Discord Bot token.
DISCORD_CHANNEL_ID Your specific Channel ID.
JULES_API_KEY API Key for Jules Agent delegation.
GITHUB_PERSONAL_ACCESS_TOKEN Required for GitHub MCP server features.
BRAVE_API_KEY Required for web search via Brave Search MCP.
VAULT_PATH Path to your personal Markdown knowledge base.

Web Server Settings

Variable Description Default
WEB_PORT Port for the web UI. :8080

Security Settings

Variable Description Default
ALLOW_LOCAL_URLS Set to true to allow access to local/private IPs. false

⚙️ config.json

The config.json file controls the internal logic, prompts, and scheduled jobs of the bot.

Bot Config ("bot")

Field Description
systemPrompt Core persona. Routes to sub-agents and handles general conversation.
researchSystemPrompt Specialized prompt for the ResearchAssistant sub-agent.
systemManagerPrompt Specialized prompt for the SystemManager sub-agent.
julesPrompt Specialized prompt for the Jules sub-agent.
routingPrompt Prompt used to classify messages as Simple (Flash) or Complex (Pro).
summaryPrompt Prompt used to compress conversation history into session summaries.
flashTokenLimit Max tokens for the Flash model context window.
proTokenLimit Max tokens for the Pro model context window.
compressionThreshold Token percentage (0.0–1.0) to trigger async context summarization. Validated on load; defaults to 0.8 if out of range.

MCP Servers ("mcpServers")

Defines the tools available to sub-agents. Each server is assigned to specific agents:

Server Assigned To Purpose
brave-search ResearchAssistant Web search
weather ResearchAssistant Weather lookups
memory ResearchAssistant Long-term memory
filesystem ResearchAssistant Server file access
sequential-thinking ResearchAssistant Step-by-step reasoning
sysmetrics SystemManager System metrics
github Jules GitHub API

Scheduled Jobs ("jobs")

Defines automated research missions:

"jobs": [
  {
    "name": "Daily Briefing",
    "schedule": "0 0 7 * * *",
    "type": "research",
    "params": { "prompt": "Research the latest trends..." }
  }
]


🗄 Database

SQLite database stored at data/ravenbot.db (configurable via dbPath). Auto-migrated on startup. Key tables:

  • sessions — ADK session state
  • session_summaries — Compressed conversation summaries
  • reminders — Timed reminders with delivery tracking
  • watchers — Periodic monitoring tasks
  • daily_reports — Research report storage
  • vault_metadata — File checksum tracking
  • briefings — Daily briefing history
  • missions — Workflow mission tracking (pipeline, prompt, status, result, timestamps)