nanobot : Assistant IA Python de 4 000 lignes créé en quelques minutes

Qu'est‑ce que nanobot?

nanobot est un assistant IA personnel ultra‑léger inspiré de Clawdbot, mais avec une fraction de la base de code – ≈4 000 lignes par rapport à 430 k+ de Clawdbot. Alimenté par des outils open‑source et Python, il vous offre un chatbot prêt à l’emploi qui fonctionne sur votre ordinateur portable ou une VM cloud en quelques minutes.

Pourquoi nanobot?

Avantage Détails
Compact 4 000 lignes de code propre et lisible – 99 % plus petites que les autres agents.
Fast Empreinte minimale signifie une utilisation réduite de RAM/CPU et un démarrage rapide.
Research‑ready Architecture modulaire (compétences, outils, canaux) facilite l'extension ou la modification.
Flexible deployment Fonctionne dès l'installation avec OpenRouter, ou tout LLM local via vLLM, grâce à un fichier de configuration simple.
Multi‑channel Discussion via Telegram ou WhatsApp, même transcription vocale via Groq.
Scheduling Les tâches de style Cron vous permettent d'exécuter des tâches récurrentes – parfait pour les rappels ou la collecte de données.

Architecture Overview

nanobot/
├─ agent/          # Boucle principale, mémoire, compétences
├─ skills/         # Capacités intégrées (github, météo, tmux…)
├─ channels/       # Intégration Telegram/WhatsApp
├─ cron/           # Planificateur pour tâches récurrentes
├─ bus/            # Routage des messages
├─ providers/      # OpenAI, OpenRouter, Groq, vLLM
├─ config/         # Aides CLI
└─ cli/            # Points d’entrée en ligne de commande

Une compétence est un module autonome pouvant être invoqué par une invite. La boucle de l'agent envoie la requête utilisateur à l'LLM, reçoit un jeton d'invocation d'outil, et le transmet à la compétence appropriée. La mémoire est persiste entre les sessions dans une simple base SQLite.

Installation de nanobot

1. Depuis PyPI (stable, rapide)

pip install nanobot-ai

2. Depuis la source (fonctionnalités récentes)

git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip install -e .         # editable for development

3. Avec UV (installation rapide)

uv tool install nanobot-ai

Guide de démarrage rapide

Préparez un fichier de configuration minimal à ~/.nanobot/config.json :

{
  "providers": {
    "openrouter": { "apiKey": "sk-or-xxxx" }
  },
  "agents": {
    "defaults": { "model": "anthropic/claude-opus-4-5" }
  }
}

Lancer le chatbot :

nanobot onboard          # initialise config & workspace
nanobot agent -m "What is 2+2?"

Mode interactif :

nanobot agent            # lance un REPL

Discussion sur Telegram

  1. Créez un bot via @BotFather et copiez le token.
  2. Ajoutez le token et votre ID utilisateur à config.json :

"channels": {
  "telegram": { "enabled": true, "token": "YOUR_BOT_TOKEN", "allowFrom": ["YOUR_USER_ID"] }
}
3. Lancer :

nanobot gateway

Maintenant, chaque message que vous envoyez au bot apparaît dans le CLI et inversement.

Déploiement d'un LLM local avec vLLM

# Démarrer un modèle local Llama‑3
vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
Modifiez la configuration :

"providers": {
  "vllm": { "apiKey": "dummy", "apiBase": "http://localhost:8000/v1" }
},
"agents": { "defaults": { "model": "meta-llama/Llama-3.1-8B-Instruct" } }
Exécutez l'agent comme d'habitude.

Configuration compatible Docker

# Construire l'image
docker build -t nanobot .
# Onboarding unique
docker run -v ~/.nanobot:/root/.nanobot --rm nanobot onboard
# Lancer la passerelle
docker run -v ~/.nanobot:/root/.nanobot -p 18790:18790 nanobot gateway

Conserver ~/.nanobot garantit que vos clés API et l'espace de travail survivent aux redémarrages du conteneur.

Tâches planifiées (Cron)

Ajouter un message de salutation quotidien :

nanobot cron add --name "daily" --message "Good morning!" --cron "0 9 * * *"
Lister les tâches :

nanobot cron list
Supprimer une tâche :

nanobot cron remove <job_id>

Étendre nanobot

  1. Créez un nouveau répertoire dans skills/.
  2. Ajoutez un tool.py implémentant class Tool: avec name, description, et run().
  3. Enregistrez la compétence dans le scanner skills/__init__.py.
  4. Redémarrez nanobot gateway – la nouvelle compétence est maintenant disponible.

Toutes les compétences sont pur Python, ce qui rend les expérimentations triviales.

Contributing

L'objectif est un code minimal et compréhensible. N'hésitez pas à :

  • Ajoutez de nouvelles compétences (météo, actualités, recherche GitHub, etc.)
  • Implémentez la transcription vocale via Groq Whisper
  • Étendez le support multimodal (images, voix)
  • Améliorez le raisonnement et les capacités de planification
  • Ajoutez davantage d'intégrations de canaux (Discord, Slack, e‑mail)

Les pull requests sont les bienvenues – suivez simplement le style existant et ajoutez des tests.


En résumé

  • nanobot fournit un assistant IA personnel pleinement fonctionnel dans un dépôt Python de 4 000 lignes.
  • Il fonctionne localement ou en Docker, s'interfère avec tout LLM compatible OpenAI, et se connecte à Telegram/WhatsApp.
  • Le design modulaire vous permet d'ajouter des compétences personnalisées, de programmer des tâches et même de passer à des modèles locaux.
  • Que vous soyez chercheur souhaitant un agent prêt pour la recherche, développeur désireux de prototyper rapidement, ou amateur curieux de créer un assistant IA, nanobot vous offre tout ce qu'il faut avec une friction minimale.

Bonne création !

Original Article: Voir l’original

Partager cet article