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
- Créez un bot via @BotFather et copiez le token.
- Ajoutez le token et votre ID utilisateur à
config.json:
"channels": {
"telegram": { "enabled": true, "token": "YOUR_BOT_TOKEN", "allowFrom": ["YOUR_USER_ID"] }
}
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
"providers": {
"vllm": { "apiKey": "dummy", "apiBase": "http://localhost:8000/v1" }
},
"agents": { "defaults": { "model": "meta-llama/Llama-3.1-8B-Instruct" } }
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 * * *"
nanobot cron list
nanobot cron remove <job_id>
Étendre nanobot
- Créez un nouveau répertoire dans
skills/. - Ajoutez un
tool.pyimplémentantclass Tool:avecname,description, etrun(). - Enregistrez la compétence dans le scanner
skills/__init__.py. - 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 !