Blog / Article #161
PHPClaw et Ollama : quand ton appli PHP devient un assistant IA local, et pas un stagiaire qui envoie tout sur le cloud

star

04 Novembre 2026
Un développeur PHP travaille sur un ordinateur portable dans un homelab chaleureux, entouré d’icônes flottantes en flat design : réseaux de neurones, flux de données, serveurs auto-hébergés avec des libellés comme « Docker » ou « Nginx », et représentations abstraites de concepts d’IA, le tout dans une ambiance technique et moderne.

On rêve tous d'intégrer de l'intelligence artificielle dans nos applications. Faire en sorte qu'elles comprennent le langage naturel, qu'elles automatisent des tâches complexes, qu'elles répondent à des questions... Mais avouons-le, la réalité est souvent moins rose : entre les coûts des API propriétaires, la latence, et surtout, la question cruciale de la confidentialité des données, on se retrouve vite à faire des compromis. Envoyer les données de nos utilisateurs à un service tiers pour une simple analyse, ça me hérisse le poil. Et si on pouvait avoir le beurre et l'argent du beurre ? Une IA puissante, intelligente, capable d'agir, mais qui reste bien au chaud chez nous, dans notre homelab, à côté de notre application PHP préférée ?

C'est exactement la promesse de PHPClaw, un projet qui a récemment fait parler de lui et qui m'a tout de suite intrigué. Imaginez : transformer votre application PHP en une plateforme intelligente, capable d'héberger ses propres agents IA conversationnels, qui utilisent des outils, gèrent la mémoire, et tout ça, sans jamais quitter votre serveur. Le tout en PHP, avec nos frameworks préférés. Magique ? Non, juste pratique. Et surtout, c'est du local-first, une philosophie qui me parle énormément.

Qu'est-ce que PHPClaw ? Le cerveau IA pour votre PHP

Pour faire simple, PHPClaw est un moteur d'agent IA open-source pour PHP. C'est un peu le chef d'orchestre qui permet à votre application PHP de dialoguer avec des modèles de langage (LLM) et de les transformer en de véritables agents autonomes. Il ne s'agit pas juste d'envoyer un prompt et de recevoir une réponse statique. PHPClaw va plus loin :

  • Il implémente une boucle d'agent de style ReAct (Reasoning and Acting), ce qui signifie que l'agent peut raisonner sur une tâche, décider des outils à utiliser, les exécuter, observer les résultats, et répéter le processus jusqu'à atteindre son objectif.
  • Il gère l'intégration d'outils, permettant à l'agent d'interagir avec le monde extérieur (appels API, base de données, système de fichiers...).
  • Il offre une gestion de la mémoire pour que les conversations aient un contexte persistant.
  • Et cerise sur le gâteau, il intègre des gardes de sécurité pour éviter que votre agent ne fasse n'importe quoi.

L'objectif ? Rendre la création d'agents IA accessible aux développeurs PHP, avec une intégration transparente dans les applications existantes, y compris les frameworks comme Laravel ou Symfony, et même des CMS populaires. Le tout, en restant auto-hébergé.

Installation et premier agent : Mettre les mains dans le code

Pour commencer, PHPClaw a besoin d'un modèle de langage pour fonctionner. Et pour rester dans notre philosophie locale, quoi de mieux qu'Ollama ? Si vous ne l'avez pas déjà, installez Ollama sur votre machine ou votre serveur.

curl -fsSL https://ollama.com/install.sh | sh

Une fois Ollama installé, tirez un modèle. Par exemple, le très populaire Llama 3 :

ollama pull llama3

Maintenant, passons à PHPClaw. Comme tout bon projet PHP moderne, ça se passe avec Composer :

composer require phpclaw/phpclaw

PHPClaw se connecte par défaut à votre instance Ollama locale sur http://localhost:11434. Pratique !

Voici comment créer un premier agent simple et lui faire dire bonjour :

<?php
  require 'vendor/autoload.php'; 
  use PhpClaw\Claw; 
  $agent = Claw::builder()->build(); 
  $response = $agent->send('Bonjour, peux-tu te présenter ?'); 
  echo $response;
 // Devrait répondre quelque chose comme "Bonjour ! Je suis un agent IA..." 
?>

Pour ceux qui préfèrent tester un agent complet et autonome rapidement, PHPClaw propose un setup "shell agent" très pratique :

git clone https://github.com/sergiozlobin/phpclaw.git 
cd phpclaw/agent
composer install php spark agent:setup php spark agent:chat

C'est une excellente façon de voir un agent en action, capable d'utiliser des outils et de tenir une conversation, directement depuis votre terminal. C'est du CodeIgniter sous le capot pour cette démo, mais le cœur de PHPClaw reste le même.

Équipez votre agent : Ajouter des "outils" pour des actions concrètes

Un agent IA, c'est bien. Un agent IA qui peut *faire* des choses, c'est mieux ! PHPClaw permet d'équiper vos agents avec des "outils" pour interagir avec l'environnement. Ces outils peuvent être n'importe quoi : une requête à votre base de données, un appel à une API externe, la lecture d'un fichier...

Par défaut, certains outils comme file_read, dir_list, file_exists sont activés si vous utilisez les adaptateurs de framework. Mais vous pouvez en ajouter des plus spécifiques. Par exemple, pour permettre à votre agent d'interroger une base de données (en lecture seule, bien sûr, sécurité avant tout !) :

<?php 
  use PhpClaw\Claw; 
  use PhpClaw\Tools\DatabaseQueryTool; 
  // Supposons que $pdo est votre instance PDO connectée 
  $agent = Claw::builder()->tools([ new DatabaseQueryTool($pdo) ])->build(); 
  $response = $agent->send('Quel est le nombre d\'utilisateurs enregistrés dans la DB ?'); 
  echo $response; 
?>

PHPClaw propose aussi des outils opt-in comme shell_exec (à utiliser avec une extrême prudence et une liste blanche stricte !), http_request, file_write, file_edit, ou encore zip_package. L'agent décide lui-même quel outil utiliser en fonction de la tâche à accomplir, c'est la magie de la boucle ReAct.

La mémoire de l'agent : Gérer le contexte conversationnel sur le long terme

Un agent qui oublie tout d'une interaction à l'autre, c'est un peu frustrant. Heureusement, PHPClaw intègre un système de gestion de la mémoire pour que vos agents puissent se souvenir des conversations précédentes et maintenir un contexte. C'est essentiel pour des interactions naturelles et utiles.

Par défaut, vous pouvez utiliser la FileMemory qui, comme son nom l'indique, stocke la mémoire dans des fichiers (par défaut dans storage/phpclaw/memory, ce qui est parfait pour un environnement local).

<?php
 use PhpClaw\Claw;
 use PhpClaw\Memory\FileMemory;
 $agent = Claw::builder()->memory(new FileMemory)->build();
 // Première interaction 
 $turn1 = $agent->sendInConversation($agent->conversation(), 'Mon nom est Alice.');
 // Deuxième interaction, l\'agent se souvient de 'Alice' 
 $turn2 = $agent->sendInConversation($agent->conversation(), 'Quel est mon nom ?');
 echo $turn2; // Devrait dire quelque chose comme "Votre nom est Alice." 
?>

La gestion de la mémoire est un pilier pour construire des agents vraiment utiles et non des répondeurs à usage unique. Elle permet à l'agent de construire une compréhension progressive de l'utilisateur et de ses besoins.

Sécurité et garde-fous : Assurer un comportement prévisible

L'idée de donner à une IA l'accès à mon système de fichiers ou à ma base de données peut faire frissonner. Mais PHPClaw a pensé à la sécurité. Le projet intègre plusieurs gardes-fous :

  • Une liste blanche pour l'exécution de commandes shell : pas de rm -rf / par accident !
  • Un sandbox de fichiers : l'agent ne peut accéder qu'à des répertoires spécifiés.
  • Des protections HTTP sécurisées contre les SSRF (Server-Side Request Forgery).
  • Des outils SQL configurables pour être en lecture seule.

Ces mécanismes sont essentiels pour déployer des agents en production sereinement. Il est de notre responsabilité de développeur de bien configurer ces gardes de sécurité et de ne donner à l'agent que les permissions dont il a strictement besoin. Par exemple, l'API REST de PHPClaw peut être activée ou désactivée via writable/agent/config/api.json, offrant un contrôle granulaire.

PHPClaw dans votre écosystème : Intégration et déploiement local

L'un des points forts de PHPClaw est sa capacité à s'intégrer facilement. Si vous travaillez avec un framework PHP populaire, il y a de fortes chances qu'un adaptateur existe :

composer require phpclaw/phpclaw-laravel 
# ou phpclaw/phpclaw-symfony, phpclaw/phpclaw-drupal, etc.

Ces adaptateurs simplifient l'intégration en fournissant des services et des configurations pré-packagés, vous permettant de bootstraper vos agents directement dans votre application existante.

Pour le déploiement local, c'est l'idéal. Vous pouvez faire tourner Ollama dans un conteneur Docker à côté de votre application PHP, ou directement sur votre serveur. PHPClaw se connecte à Ollama via HTTP, donc tant que le service est accessible, ça fonctionne. C'est une architecture qui s'intègre parfaitement dans un homelab ou un environnement de développement local, offrant une souveraineté totale sur vos données et votre IA.

Attention, il faut une version de PHP 8.2+ (ou 8.1+ pour le cœur) et quelques extensions classiques (curl, json, mbstring). Les extensions readline et pcntl sont recommandées pour une meilleure expérience CLI.

Conclusion : Le futur de PHP avec les agents IA auto-hébergés

PHPClaw est une bouffée d'air frais pour l'intégration de l'IA dans nos applications PHP, surtout pour ceux qui, comme moi, privilégient le local et le contrôle des données. C'est un outil qui nous permet de construire des agents intelligents, capables d'interagir avec notre code et nos données, sans dépendre de services cloud coûteux ou intrusifs.

Bien sûr, le projet est jeune (mentionné fin 2026), et comme tout outil puissant, il demande une bonne compréhension et une configuration attentive, surtout sur les aspects de sécurité. Mais la promesse d'une IA locale, agile et intégrée à notre écosystème PHP est trop belle pour ne pas y jeter un œil. Si vous avez un besoin d'automatisation intelligente, de support client avancé, ou simplement l'envie d'expérimenter les agents IA dans votre homelab, PHPClaw, combiné à Ollama, est une piste sérieuse à explorer. C'est le moment de rendre vos applications PHP vraiment... pensantes !

Publié le 04/11/2026 · 8 min de lecture Partager X LinkedIn

← Précédent Refactoring php legacy avec des llm : la galère transformée en partie de plaisir (ou presque)