Skip to content
asilettoPublic

About

Simple Agentic Telegram Bot with Qwen3.5 9B. Claude Coded. Just an expleriment. Do not use in production.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

DumbBot

Quality Gate Status Coverage Reliability Rating Security Rating Technical Debt Maintainability Rating Vulnerabilities

Bot Telegram agentico che gira in locale con Qwen 3.5 9B via Ollama. Supporta tool calling nativo: ricerca web, lettura pagine, file system sandboxato, note persistenti e calcolatrice.

Funziona in chat private e nei gruppi (rispondendo solo quando menzionato o in reply).

Requisiti

  • Python 3.12+
  • uv
  • Ollama con il modello qwen3.5-9b
  • Un bot Telegram (crealo con @BotFather)
  • Una API key Tavily per la ricerca web

Setup

git clone https://github.com/asiletto/dumbbot.git
cd dumbbot
uv sync

Scarica il modello:

ollama pull qwen3.5-9b

Avvio

export TELEGRAM_BOT_TOKEN="il-tuo-token"
export TAVILY_API_KEY="la-tua-chiave"
uv run main.py

Variabili d'ambiente

Variabile Obbligatoria Descrizione
TELEGRAM_BOT_TOKEN si Token del bot da BotFather
TAVILY_API_KEY si API key per la ricerca web
DUMBBOT_SANDBOX no Path della sandbox (default: ./sandbox)

Tool disponibili

Tool Descrizione
calculate Calcola espressioni matematiche
web_search Cerca sul web via Tavily
url_fetch Scarica e legge pagine web
fs_read Legge file nella sandbox
fs_write Scrive file nella sandbox
fs_list Elenca file nella sandbox
fs_delete Elimina file nella sandbox
note_save Salva nota con chiave
note_get Recupera nota
note_list Elenca tutte le note
note_delete Elimina nota

Comandi Telegram

  • /start — messaggio di benvenuto e reset history
  • /reset — cancella la history della conversazione

Uso nei gruppi

  1. Disabilita la privacy mode in BotFather: /setprivacy > Disable
  2. Aggiungi il bot al gruppo
  3. Menzionalo con @nome_del_bot messaggio oppure rispondi a un suo messaggio

Struttura

src/dumbbot/
  main.py     — entry point, bot Telegram (polling)
  agent.py    — loop agentico: OpenAI SDK -> Ollama -> Qwen 3.5
  tools.py    — definizioni + esecuzione dei tool
tests/        — test suite (100% coverage)
sandbox/      — directory sandboxata per i file (gitignored)

Modelfile custom per Ollama

Se preferisci caricare il modello da un file GGUF locale invece di usare ollama pull, puoi usare il Modelfile incluso nella directory qwen3.5-9b/:

cd qwen3.5-9b/
ollama create qwen3.5-9b -f Modelfile

Il Modelfile configura:

  • Modello base: Qwen3.5-9B-Q4_K_M.gguf (quantizzazione Q4_K_M, ~5.7 GB)
  • Template: supporto nativo per tool calling via tag <tool_call> e thinking mode via <think>
  • Parametri ottimizzati per CPU: temperature 0.6, top_k 20, top_p 0.95, num_ctx 8192

Per usare un context window diverso, modifica PARAMETER num_ctx nel Modelfile (max 262144, ma su CPU valori alti rallentano molto).

About

Simple Agentic Telegram Bot with Qwen3.5 9B. Claude Coded. Just an expleriment. Do not use in production.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages