\n\n\n\n Mon projet d'agent IA : Ce que j'apprends maintenant - ClawGo \n

Mon projet d’agent IA : Ce que j’apprends maintenant

📖 11 min read2,042 wordsUpdated Mar 26, 2026

Salut tout le monde, Jake ici de clawgo.net. Nous sommes le 23 mars 2026, et si vous êtes comme moi, votre boîte de réception déborde probablement de titres sur « AI ceci » et « agent cela ». Il est facile de se sentir submergé par cet excès de battage médiatique, surtout lorsque vous essayez juste de trouver comment effectuer du travail réel. Oubliez les promesses utopiques pendant une minute. Aujourd’hui, je veux parler de quelque chose de tangible, quelque chose sur lequel j’ai travaillé ces dernières semaines et qui fait réellement une différence dans ma vie quotidienne : utiliser des agents AI pour gérer ma collection d’actifs numériques qui déborde. Plus précisément, je parle d’OpenClaw, et de la façon dont j’ai mis en place un système pour gérer mon nombre ridicule de captures d’écran, extraits de code et idées de design à moitié développées.

Ma vie numérique est en désordre. Voilà, je l’ai dit. En tant que blogueur tech, je prends constamment des captures d’écran, télécharge des exemples de code, enregistre des articles et prends des notes. Tout cela se retrouve dans une poignée de dossiers, généralement nommés quelque chose comme « Choses », « Nouveau Dossier (2) », ou « Bureau (final) (NE PAS SUPPRIMER) ». Quand j’ai réellement besoin de trouver la capture d’écran parfaite d’une sortie de console OpenClaw d’il y a trois semaines, ou de ce script Python que j’ai bricolé pour analyser du JSON, cela ressemble à une chasse au trésor. J’ai essayé tous les suspects habituels : stockage cloud avec recherche intégrée, outils de recherche sur le bureau, même en étiquetant religieusement tout. Rien n’a jamais fonctionné. Jusqu’à maintenant.

Le Désordre Qui Avait Besoin D’être Dompté : Mon Amoncellement Numérique

Soyons honnêtes. Mon « système » impliquait :

  • Un dossier « Téléchargements » qui était essentiellement un trou noir.
  • Un dossier « Captures d’écran » avec des centaines de PNG nommés comme « Capture d’écran 2026-03-01 à 10.34.12 AM.png ».
  • Différents dossiers de projet, chacun avec son propre mini-dossier de téléchargements et de captures d’écran.
  • Un compte Evernote rempli de notes que je ne relis jamais.
  • Un Google Drive avec des fichiers organisés… par Google.

Le problème n’est pas seulement de trouver des choses ; c’est la charge cognitive de savoir par où commencer. C’est le frottement mental qui m’empêche de réutiliser du bon contenu, ou même de me souvenir que je l’avais en premier lieu.

Pourquoi OpenClaw ? Mon Approche Basée sur des Agents

J’ai essayé quelques cadres d’agents différents, mais OpenClaw a vraiment fonctionné pour moi grâce à son accent sur la modularité et le contrôle local. Je ne voulais pas que toute ma vie numérique soit téléchargée sur un service tiers. Je voulais quelque chose qui fonctionne sur ma machine, puisse accéder à mes fichiers locaux, et soit suffisamment flexible pour s’adapter à mes besoins étranges et spécifiques. La capacité d’OpenClaw à définir des « compétences » personnalisées et à les orchestrer avec de simples configurations YAML semblait exactement ce dont j’avais besoin.

Mon idée principale était simple : un agent qui pourrait surveiller des dossiers spécifiques, identifier de nouveaux fichiers, comprendre ce qu’ils étaient (image, code, document), puis les déplacer vers une structure organisée tout en extrayant des métadonnées et en les rendant recherchables. Pensez-y comme à un majordome numérique super-puissant pour mes fichiers.

Création de l’Agent « Archiviste Numérique »

Voici comment j’ai décomposé cela :

  1. La Compétence de Surveillance : Le travail de cette compétence est juste de remarquer quand de nouveaux fichiers apparaissent dans mes dossiers « entrants » (Téléchargements, Bureau, Captures d’écran).
  2. La Compétence de Classification : Une fois qu’un nouveau fichier est détecté, cette compétence utilise un LLM local (j’exécute une version quantifiée de Llama 3 sur mon bureau) pour déterminer le type et le contenu du fichier. Pour les images, elle essaie de décrire ce qu’il y a dans l’image. Pour le code, elle identifie le langage et essaie de déterminer son but. Pour les documents, elle extrait des mots-clés.
  3. La Compétence de Déplacement : En fonction de la classification, cette compétence déplace le fichier vers un dossier structuré approprié (par exemple, ~/Archive/Screenshots/2026/March/ ou ~/Archive/Code/Python/).
  4. La Compétence d’Indexation : C’est la partie cruciale. Elle prend toutes les métadonnées extraites (description, mots-clés, chemin de fichier, date) et les insère dans une base de données SQLite locale, les rendant ainsi recherchables.

Ça a l’air complexe, mais avec OpenClaw, définir ces compétences comme des modules séparés et réutilisables, puis les orchestrer a été étonnamment simple. Voici une version simplifiée de mon agent_config.yaml :


agent_name: ArchivisteNumérique
description: Un agent pour organiser et indexer automatiquement des actifs numériques.

skills:
 - name: FileWatcher
 module: local_skills.file_management
 function: watch_directory
 config:
 directories: ["/Users/jake/Downloads", "/Users/jake/Desktop/temp_incoming"]
 interval_seconds: 60

 - name: FileClassifier
 module: local_skills.classification
 function: classify_and_extract
 dependencies: [FileWatcher]
 config:
 llm_model_path: "/Users/jake/llm_models/llama3-8b-quant.gguf"
 image_processor_endpoint: "http://localhost:8000/image_describe" # Un API local pour la légende d'image

 - name: FileMover
 module: local_skills.file_management
 function: move_file_to_archive
 dependencies: [FileClassifier]
 config:
 archive_root: "/Users/jake/Archive"

 - name: MetadataIndexer
 module: local_skills.indexing
 function: index_metadata
 dependencies: [FileMover]
 config:
 db_path: "/Users/jake/Archive/metadata.db"

tasks:
 - name: ProcessNewFiles
 steps:
 - skill: FileWatcher
 output_key: new_files
 - skill: FileClassifier
 input_key: new_files
 output_key: classified_data
 - skill: FileMover
 input_key: classified_data
 output_key: moved_files
 - skill: MetadataIndexer
 input_key: classified_data

Et voici un aperçu d’une version simplifiée de la fonction classify_and_extract dans local_skills/classification.py. C’est là que le LLM local entre en jeu pour les fichiers basés sur du texte :


import os
from llama_cpp import Llama
import mimetypes

def classify_and_extract(file_path, llm_model_path, image_processor_endpoint=None):
 llm = Llama(model_path=llm_model_path, n_ctx=2048, n_batch=512)
 mime_type, _ = mimetypes.guess_type(file_path)
 file_extension = os.path.splitext(file_path)[1].lower()

 if mime_type and mime_type.startswith('image'):
 # Dans un vrai scénario, cela appellerait l'image_processor_endpoint
 # Pour simplifier, nous allons juste simuler une description ici
 description = f"Fichier image : {os.path.basename(file_path)}. Probablement une capture d'écran."
 keywords = ["image", "screenshot", "visual"]
 file_type = "image"
 elif file_extension in ['.py', '.js', '.html', '.css', '.md', '.txt']:
 with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:
 content = f.read(2000) # Lire les 2 premiers Ko pour la classification
 
 prompt = f"Analysez le contenu textuel suivant et déterminez son type (par exemple, code Python, JavaScript, Markdown, texte brut). Ensuite, extrayez 3 à 5 mots-clés et fournissez un bref résumé de son but probable. Formatez en JSON.\n\nContenu :\n{content}\n\nJSON:"
 
 output = llm(prompt, max_tokens=200, stop=["\n\n"], echo=False)
 try:
 parsed_output = json.loads(output['choices'][0]['text'])
 description = parsed_output.get('summary', 'Aucun résumé fourni.')
 keywords = parsed_output.get('keywords', [])
 file_type = parsed_output.get('type', 'document')
 except json.JSONDecodeError:
 description = "Impossible d'analyser la sortie du LLM. Document générique."
 keywords = ["document", "non classifié"]
 file_type = "document"
 else:
 description = f"Fichier générique : {os.path.basename(file_path)}"
 keywords = ["générique", "non classifié"]
 file_type = "autre"

 return {
 "file_path": file_path,
 "description": description,
 "keywords": keywords,
 "file_type": file_type,
 "timestamp": os.path.getmtime(file_path)
 }

Le image_processor_endpoint est un petit service FastAPI séparé que j’exécute localement et qui utilise un modèle CLIP affiné pour la légende d’image. C’est un peu au-delà du cadre de cet article, mais c’est un excellent exemple de la façon dont vous pouvez intégrer des modèles locaux spécialisés avec des agents OpenClaw.

Les Résultats : Moins de Désordre, Plus de Concentration

Après avoir laissé cet agent fonctionner pendant quelques semaines, la différence est frappante. Mon dossier Téléchargements n’est plus un cimetière. Chaque nouveau fichier que je dépose sur mon bureau ou que je sauvegarde depuis un navigateur est traité en quelques minutes. J’ai maintenant un répertoire ~/Archive magnifiquement organisé, avec des sous-dossiers par année, mois et type de contenu. Mais ce n’est pas seulement une question d’organisation.

La vraie magie est la base de données recherchable. J’ai construit une petite interface web (une autre petite application FastAPI) qui interroge la base de données SQLite. Maintenant, si j’ai besoin de cette capture d’écran de « sortie de console OpenClaw », je tape juste « sortie de console OpenClaw » dans ma barre de recherche, et boom, la voici, avec le chemin du fichier et un lien pour l’ouvrir. Si je cherche « script Python pour analyser JSON », j’obtiens une liste de tous les scripts pertinents, accompagnés de résumés générés par le LLM. C’est comme avoir un bibliothécaire personnel pour mon désordre numérique.

Un Petit Revers, Une Solution Rapide

Un défi auquel j’ai été confronté dès le départ concernait des fichiers très volumineux. Le LLM avait parfois du mal à traiter des fichiers texte massifs. Ma solution a été d’ajouter un contrôle de taille de fichier dans le FileClassifier et, pour tout ce qui dépasse un certain seuil (disons, 5 Mo), d’extraire uniquement des métadonnées de base comme le nom de fichier, le type et la date de création, plutôt que d’essayer une analyse de contenu complète. C’est un compromis pragmatique : mieux vaut avoir quelques métadonnées que pas de métadonnées du tout parce que l’agent a planté.

Points à Retenir

Si vous êtes submergé par le désordre numérique comme je l’étais, voici comment vous pouvez commencer à construire votre propre archiviste numérique :

  1. Identifiez vos points de douleur : Quels types de fichiers avez-vous du mal à organiser ? Où finissent-ils généralement ? Pour moi, c’étaient des captures d’écran et des extraits de code.
  2. Commencez petit avec OpenClaw : Ne tentez pas de construire l’agent ultime d’un seul coup. Commencez par une compétence unique, comme simplement surveiller un dossier. Faites fonctionner cela.
  3. utilisez des LLMs locaux (ou des API) : Pour la classification et la résumation, un LLM local peut être incroyablement puissant et offre de la confidentialité. Si local n’est pas une option, envisagez un point de terminaison API privé pour des tâches spécifiques.
  4. Définissez des compétences claires : Décomposez votre flux de travail souhaité en compétences discrètes et gérables. Cela rend votre agent plus facile à déboguer et à étendre.
  5. Construisez une couche de recherche : L’organisation est géniale, mais la véritable utilité vient de la capacité à retrouver des choses. Une simple base de données SQLite et une interface de recherche basique peuvent faire toute la différence.
  6. Itérez et affinez : Mon agent n’est pas parfait, et je suis constamment en train d’ajuster les invites de classification et d’ajouter de nouvelles compétences (comme la suppression automatique des fichiers temporaires après traitement). Les agents IA sont des systèmes vivants ; ils s’améliorent avec l’utilisation et le perfectionnement.

Il ne s’agit pas de scénarios magiques où « l’IA prend le contrôle de ma vie ». Il s’agit d’utiliser des outils intelligents pour résoudre des problèmes réels et quotidiens. Mon agent OpenClaw ne se contente pas d’organiser des fichiers ; il libère de l’énergie mentale, réduit la frustration et, en fin de compte, me rend plus efficace. Et cela, à mes yeux, est une énorme victoire.

Articles Connexes

🕒 Published:

🤖
Written by Jake Chen

AI automation specialist with 5+ years building AI agents. Previously at a Y Combinator startup. Runs OpenClaw deployments for 200+ users.

Learn more →
Browse Topics: Advanced Topics | AI Agent Tools | AI Agents | Automation | Comparisons
Scroll to Top