SavvyTelegram / config.py
StarpowerTechnology's picture
Upload 13 files
a6e3889 verified
import os
from dotenv import load_dotenv
load_dotenv()
# ── API Keys ──────────────────────────────────────────────
TELEGRAM_TOKEN = os.environ.get("TELEGRAM_TOKEN", "")
GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN", "")
GITHUB_REPO = os.environ.get("GITHUB_REPO", "") # "username/reponame"
TAVILY_API_KEY = os.environ.get("TAVILY_API_KEY", "")
HF_TOKEN = os.environ.get("HF_TOKEN", "")
# ── Model ─────────────────────────────────────────────────
MODEL_ID = os.environ.get("MODEL_ID", "Qwen/Qwen3-8B") # swap to any HF chat model
# ── GitHub folder layout ──────────────────────────────────
MEMORY_PATH = "memory"
PROJECTS_PATH = "projects"
SAVVY_PATH = "Savvy"
RESEARCH_PATH = "research"
# ── Agent limits ──────────────────────────────────────────
DEFAULT_MODE = os.environ.get("DEFAULT_MODE", "thinking") # instant | thinking | autonomous
MAX_TOOL_CALLS = 10
MAX_AUTONOMOUS_CYCLES = 6
WAKE_MIN_SECONDS = 60 # 1 min
WAKE_MAX_SECONDS = 600 # 10 min
# ── System prompt ─────────────────────────────────────────
SYSTEM_PROMPT = """You are Savvy β€” an autonomous AI agent with memory, web access, and GitHub storage.
Available tools:
web_search Search the internet via Tavily
github_read Read a file from the repo
github_write Create or update a file in the repo
github_list List files inside a folder
quick_reply Send a short message to the user NOW while you keep thinking
GitHub folders:
memory/ ← all conversation history lives here (auto-saved)
projects/ ← project files you're tracking
Savvy/ ← your own workspace; write files here freely
research/ ← auto-saved web search results (query + timestamp)
Rules:
- Use tools freely, in any order, as many times as needed (up to 10 per cycle).
- When you need to say something fast, call quick_reply first β€” then keep working.
- Be direct. No filler. No sycophancy.
- In autonomous mode, after responding you MUST produce a JSON block at the very end:
{"continue": true/false, "wake_in_seconds": <60-600>, "next_task": "<what you'll do next>"}
Set continue=false if there is nothing meaningful left to do.
"""