<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr_FR"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://tit4nium.fr/blog/rss.xml" rel="self" type="application/atom+xml" /><link href="https://tit4nium.fr/" rel="alternate" type="text/html" hreflang="fr_FR" /><updated>2026-07-17T16:54:32+02:00</updated><id>https://tit4nium.fr/blog/rss.xml</id><title type="html">tit4nium</title><subtitle>Retours d&apos;experience sur les agents IA/LLM, Linux/FreeBSD, logiciels open source et securite informatique. Carnet de bord d&apos;un ingenieur qui bidouille, casse, repare et apprend.
</subtitle><author><name>tit4nium</name></author><entry><title type="html">J’ai voulu faire tourner un LLM local sur un mini PC. Ça n’a pas marché.</title><link href="https://tit4nium.fr/blog/llm-local-minipc-crash-test/" rel="alternate" type="text/html" title="J’ai voulu faire tourner un LLM local sur un mini PC. Ça n’a pas marché." /><published>2026-06-02T00:00:00+02:00</published><updated>2026-06-02T00:00:00+02:00</updated><id>https://tit4nium.fr/blog/llm-local-minipc-crash-test</id><content type="html" xml:base="https://tit4nium.fr/blog/llm-local-minipc-crash-test/"><![CDATA[<p>Je me suis offert un <strong>GEEKOM A5 Mini PC</strong> avec un objectif ambitieux : faire tourner un modèle local pour mon agent Hermes, pour des raisons de sécurité et de confidentialité.</p>

<p>La config était prometteuse : Ryzen 5 7430U, 64 Go de RAM, Debian 13.
L’objectif : charger un Qwen 2.5 72B en Q4_K_M (~40 Go).</p>

<p>Spoiler : ça n’a pas marché comme prévu. Voici pourquoi.</p>

<hr />

<h3 id="première-tentative--ollama">Première tentative : Ollama</h3>

<p>J’ai commencé par installer <a href="https://ollama.com">Ollama</a>, comme tout le monde.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ollama pull qwen2.5:14b
</code></pre></div></div>

<p>Rapidement, quatre obstacles se sont dressés :</p>

<p><strong>1. Contexte insuffisant.</strong> Hermes Agent exige 64 000 tokens de contexte minimum. Ollama bride le contexte selon la RAM détectée. Avec 16 Go au départ, je n’avais que 4 096 tokens. Même après l’upgrade à 64 Go, il a fallu forcer <code class="language-plaintext highlighter-rouge">OLLAMA_CONTEXT_LENGTH=65536</code> dans le service systemd.</p>

<p><strong>2. Les modèles Qwen2.5 sont bridés en usine.</strong> Les GGUF packagés par Ollama pour les Qwen2.5 (7b, 14b, 32b) ont un contexte câblé en dur à 32 768 tokens. Impossible à contourner, même avec un Modelfile.</p>

<p><strong>3. Le bug stream + outils.</strong> Ollama plante quand on combine <code class="language-plaintext highlighter-rouge">stream=true</code> avec des définitions d’outils et Hermes envoie ~25 outils avec <code class="language-plaintext highlighter-rouge">stream=True</code>. Résultat : l’API devenait inerte, seul un redémarrage du service la débloquait.</p>

<p><strong>4. La détection de routes Hermes.</strong> Même avec <code class="language-plaintext highlighter-rouge">api_mode: chat_completions</code>, Hermes sonde des routes spécifiques à Ollama avant d’envoyer la requête. Si elles manquent (proxy LiteLLM), Hermes abandonne sans même tenter l’appel.</p>

<table>
  <thead>
    <tr>
      <th>Modèle</th>
      <th>RAM</th>
      <th>Résultat</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>qwen2.5:7b</td>
      <td>16 Go</td>
      <td>Contexte 32K bloqué</td>
    </tr>
    <tr>
      <td>qwen2.5:14b</td>
      <td>16 Go</td>
      <td>Contexte 32K bloqué</td>
    </tr>
    <tr>
      <td>mistral-small:22b</td>
      <td>64 Go</td>
      <td>Contexte 128K OK mais lent</td>
    </tr>
    <tr>
      <td>llama3.3:70b</td>
      <td>64 Go</td>
      <td>Trop lent pour usage temps réel</td>
    </tr>
  </tbody>
</table>

<h3 id="le-détour-par-llamacpp">Le détour par llama.cpp</h3>

<p>J’ai fini par installer <a href="https://github.com/ggml-org/llama.cpp">llama.cpp server</a> directement sur le GEEKOM pour contourner le bug Ollama. Compilation CPU-only (pas de GPU). J’ai téléchargé un Carnice 9B en Q4_K_M (~5,6 Go).</p>

<p><strong>Ça répondait. Mais pas dans des délais raisonnables.</strong> Sans GPU, l’inférence se traînait à 1-3 tokens par seconde. Une requête avec outils prenait plusieurs minutes. Trop lent pour un usage interactif, mais ça prouvait que le concept tenait.</p>

<h3 id="la-conclusion">La conclusion</h3>

<p>Le GEEKOM A5 a été recyclé en station de travail. Pour faire tourner Hermes Agent avec un modèle cloud, il est parfait. Pour de l’inférence locale, il a buté sur la même limite que mon premier setup : <strong>pas de GPU dédié.</strong></p>

<p>La leçon est simple : la RAM ne suffit pas. Un LLM local pour un agent autonome, ça a besoin d’un GPU. Le CPU-only, c’est faisable pour du traitement par lots, pas pour du temps réel.</p>

<p>Mais l’exploration valait le coup. Je sais maintenant où se trouve la vraie limite, et je peux viser juste pour la prochaine config.</p>]]></content><author><name>tit4nium</name></author><category term="hermes-agent" /><category term="debian" /><category term="llm-local" /><summary type="html"><![CDATA[Je me suis offert un GEEKOM A5 Mini PC avec un objectif ambitieux : faire tourner un modèle local pour mon agent Hermes, pour des raisons de sécurité et de confidentialité.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tit4nium.fr/assets/images/og-default.png" /><media:content medium="image" url="https://tit4nium.fr/assets/images/og-default.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">J’ai transformé un vieux laptop en agent IA autonome avec Hermes</title><link href="https://tit4nium.fr/blog/vieux-laptop-agent-ia-autonome/" rel="alternate" type="text/html" title="J’ai transformé un vieux laptop en agent IA autonome avec Hermes" /><published>2026-05-06T00:00:00+02:00</published><updated>2026-05-06T00:00:00+02:00</updated><id>https://tit4nium.fr/blog/vieux-laptop-agent-ia-autonome</id><content type="html" xml:base="https://tit4nium.fr/blog/vieux-laptop-agent-ia-autonome/"><![CDATA[<p>J’avais un vieil HP EliteBook 820 G1 qui prenait la poussière. Core i5 de 2014, 8 Go de RAM, SSD 240 Go. Rien d’excitant.</p>

<p>Je me suis demandé si cette brique pouvait servir à quelque chose d’utile. La réponse : un agent IA autonome, tournant 24/7 avec des modèles dans le cloud.</p>

<p>Spoiler : ça a marché. Voici comment.</p>

<hr />

<h3 id="pourquoi-un-vieux-laptop-">Pourquoi un vieux laptop ?</h3>

<p>J’aurais pu prendre un VPS. Mais j’avais envie de quelque chose que je contrôle physiquement, chez moi, sans abonnement mensuel. Le HP traînait, il était déjà payé, et vu le prix des agents cloud, un vieux processeur qui ronronne est vite rentabilisé.</p>

<p>Première étape : le sécuriser et le rendre fiable. J’ai désactivé au BIOS tout ce qui était inutile (WiFi, Bluetooth, lecteur de cartes, haut-parleurs, micro, caméra) et activé le redémarrage automatique après coupure de courant.</p>

<h3 id="debian-épurée">Debian, épurée</h3>

<p>Rien de fancy. Debian 13, swap de 4 Go, partition racine pour le reste. Pas de mot de passe root, tout passe par sudo. J’ai désactivé la mise en veille sur fermeture de l’écran : sur un vieux portable qui sert de serveur, le couvercle reste fermé, et il ne faut pas que le système se mette en veille en le fermant.</p>

<h3 id="installation-de-lagent">Installation de l’agent</h3>

<p>L’installation elle-même a été étonnamment simple :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-fsSL</span> https://hermes-agent.nousresearch.com/install.sh | bash
</code></pre></div></div>

<p>J’ai choisi un modèle cloud via Nous Portal. J’ai commencé par un modèle gratuit dont j’ai oublié le nom, avant de passer au MiniMax M2.7 qui offrait un bien meilleur rapport qualité/prix.</p>

<p>Puis la gateway pour la messagerie : j’ai branché Telegram. Le laptop de 2014 venait de devenir un agent IA que je pouvais joindre depuis mon téléphone et mon PC.</p>

<h3 id="donner-une-personnalité-à-son-agent">Donner une personnalité à son agent</h3>

<p>J’ai écrit un fichier <code class="language-plaintext highlighter-rouge">SOUL.md</code> pour lui donner du caractère :</p>

<blockquote>
  <p><em>Tu es Hermès alias 4ether, un agent IA autonome. Tu travailles toujours en français. Tu es patient et bienveillant. En cas de doute, tu demandes des précisions. tit4nium est ton administrateur. tit4nium et Maggie sont tes amis.</em></p>
</blockquote>

<p>Ça peut sembler anecdotique, mais c’est ce qui transforme un outil technique en assistant avec lequel on a envie d’interagir.</p>

<h3 id="ce-que-ce-vieux-laptop-ma-permis-de-faire">Ce que ce vieux laptop m’a permis de faire</h3>

<p>Avec cette configuration minimale :</p>

<ul>
  <li>Créer et automatiser la gestion de sites Jekyll</li>
  <li>Mettre en place une veille quotidienne automatisée sur l’IA et les cryptos</li>
  <li>Avoir un assistant disponible 24/7, chez moi, sans abonnement VPS</li>
</ul>

<p>Pour un coût matériel de zéro euro (le laptop était déjà là) et juste le prix des appels API.</p>

<h3 id="ce-que-jai-retenu">Ce que j’ai retenu</h3>

<p>Un vieux laptop avec 8 Go de RAM et un processeur de 2014, c’est suffisant pour faire tourner un agent IA avec des modèles cloud. Pas besoin de GPU, pas besoin d’un serveur à 20 €/mois.</p>

<p>La clé : choisir le bon usage. L’inférence dans le cloud, l’automatisation sur la machine locale. Chaque chose à sa place.</p>

<p>Ce premier setup m’a donné confiance pour aller plus loin. Le GEEKOM A5 est venu après, avec des ambitions plus grandes et des leçons plus douloureuses, mais c’est une autre histoire.</p>

<hr />

<h3 id="appendix-commandes-et-configs-clés">Appendix, commandes et configs clés</h3>

<p>Pour mémoire :</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Désactiver la mise en veille à la fermeture de l'écran</span>
<span class="nb">mkdir</span> <span class="nt">-p</span> /etc/systemd/logind.conf.d
<span class="nb">cat</span> <span class="o">&gt;</span> /etc/systemd/logind.conf.d/custom.conf <span class="o">&lt;&lt;</span> <span class="no">EOF</span><span class="sh">
[Login]
HandleLidSwitch=ignore
</span><span class="no">EOF
</span>systemctl restart systemd-logind

<span class="c"># Optimisations système</span>
<span class="c"># /etc/fstab : ajouter noatime</span>
<span class="c"># UUID=&lt;UUID&gt; / ext4 errors=remount-ro,noatime 0 1</span>

<span class="c"># /etc/sysctl.d/custom.conf</span>
vm.swappiness<span class="o">=</span>10

<span class="c"># Installation Hermes Agent</span>
curl <span class="nt">-fsSL</span> https://hermes-agent.nousresearch.com/install.sh | bash

<span class="c"># Installation et configuration de la gateway</span>
<span class="nb">sudo env </span><span class="nv">PATH</span><span class="o">=</span><span class="nv">$PATH</span> hermes gateway <span class="nb">install</span> <span class="nt">--system</span>
hermes gateway setup
</code></pre></div></div>]]></content><author><name>tit4nium</name></author><category term="hermes-agent" /><category term="debian" /><category term="auto-hebergement" /><summary type="html"><![CDATA[J’avais un vieil HP EliteBook 820 G1 qui prenait la poussière. Core i5 de 2014, 8 Go de RAM, SSD 240 Go. Rien d’excitant.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://tit4nium.fr/assets/images/og-default.png" /><media:content medium="image" url="https://tit4nium.fr/assets/images/og-default.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>