
Un agent IA est un programme qui utilise un LLM pour raisonner et executer des actions de facon autonome. Contrairement a un chatbot qui repond passivement, un agent peut envoyer des emails, naviguer sur le web, executer du code et gerer des fichiers. Voici comment en construire un from scratch.
Architecture d un agent
Un agent se compose de 4 elements :
- Le cerveau — un LLM (Llama, Qwen, Mistral) qui raisonne
- Les outils — des fonctions Python que l agent peut appeler (envoyer un email, lire un fichier, faire une recherche web)
- La memoire — l historique des actions et resultats
- La boucle — observer, reflechir, agir, evaluer, repeter
Etape 1 — Le LLM local
Installez llama-cpp-python et telechargez un modele :
pip install llama-cpp-python
# Telecharger Qwen 2.5 3B (leger, bon en francais)
# depuis huggingface.co/Qwen/Qwen2.5-3B-Instruct-GGUF
Etape 2 — Definir les outils
import subprocess, datetime, os
TOOLS = {
"datetime": lambda arg: datetime.datetime.now().strftime("%d/%m/%Y %H:%M"),
"shell": lambda arg: subprocess.run(arg, shell=True, capture_output=True, text=True).stdout[:500],
"file_read": lambda arg: open(arg).read()[:2000],
"file_write": lambda arg: open(arg.split('|')[0],'w').write(arg.split('|',1)[1]),
"web_search": lambda arg: "Resultat de recherche pour: " + arg,
}
TOOL_DESC = """
Tu as acces aux outils suivants :
- datetime : donne la date et l heure
- shell : execute une commande systeme
- file_read : lit un fichier
- file_write | : ecrit dans un fichier
- web_search : recherche sur le web
Pour utiliser un outil, reponds : TOOL: nom_outil argument
"""
Etape 3 — La boucle agent
from llama_cpp import Llama
llm = Llama(model_path="qwen2.5-3b-instruct-q4_k_m.gguf", n_ctx=2048)
def run_agent(task, max_steps=5):
history = []
system = f"Tu es un agent IA autonome. {TOOL_DESC}"
for step in range(max_steps):
prompt = f"[SYSTEM] {system}\n[TASK] {task}\n"
for h in history:
prompt += f"[STEP {h['step']}] {h['action']}\n[RESULT] {h['result']}\n"
prompt += f"[STEP {step+1}] Que fais-tu ?\n"
response = llm(prompt, max_tokens=256, stop=["\n[STEP"])
text = response["choices"][0]["text"].strip()
if text.startswith("TOOL:"):
tool_line = text[5:].strip()
tool_name = tool_line.split()[0]
tool_arg = tool_line[len(tool_name):].strip()
if tool_name in TOOLS:
result = TOOLS[tool_name](tool_arg)
else:
result = f"Outil {tool_name} inconnu"
elif "DONE" in text or "termine" in text.lower():
return text
else:
result = text
history.append({"step": step+1, "action": text, "result": str(result)[:500]})
return "Agent termine apres " + str(max_steps) + " etapes"
# Test
print(run_agent("Quelle heure est-il et cree un fichier rapport.txt avec la date"))
Etape 4 — Ajouter des vrais outils
Gmail, calendrier, Slack, base de donnees — chaque outil est une simple fonction Python. L agent apprend a les utiliser grace aux descriptions dans le prompt systeme. Plus vous ajoutez d outils, plus l agent devient capable.
Notre experience : AgentBMax
Nous avons construit AgentBMax avec exactement cette architecture. Il tourne sur un mini PC a 300 euros avec 8 Go de RAM, sans GPU, et gere nos 5 sites e-commerce au quotidien. Preuve que l IA autonome est accessible a tous.
👉 Mini PC pour votre agent | RAM 32 Go pour plus d outils | SSD rapide pour les donnees
