Skip to content

IA : agents & moteur ​

Melis embarque un moteur IA qui permet de construire des agents — des workflows IA scriptés en plusieurs étapes — et de les exposer partout dans le backoffice ou dans vos propres modules. Différents providers (Anthropic Claude, Google Gemini) se branchent derrière un moteur unique.

Les modules concernés : melis-ai (UI backoffice), melis-ai-engine (le moteur), melis-ai-engine-claude / melis-ai-engine-gemini (providers), et melis-ai-community-extensions (agents d'exemple prêts à l'emploi).

Concepts clés ​

ConceptCe que c'estTable
Company / providerLe fournisseur IA (Anthropic, Google…).melis_ai_companies
ModelUn modèle concret d'une company (un modèle Claude ou Gemini).melis_ai_models (mam_generative_model)
Platform keyLa clé d'API utilisée pour appeler un provider.melis_ai_platform_keys
AgentUn workflow = une liste ordonnée d'étapes de scénario.melis_ai_agents, melis_ai_scenario_steps
InstanceUne poignée nommée et réutilisable pour lancer un agent (sert d'id de session de chat).melis_ai_instances (mai_instance_id)
Daily usageComptage des tokens/usage par modèle/agent/instance.melis_ai_daily_usage

Un agent est un scénario : une séquence d'étapes comme USER INPUT, AI CONTEXT, CODE AI CALL, AI CHAT, CODE PHP, ENTRY PARAMS / EXIT PARAMS. Le moteur parcourt les étapes, appelle le modèle au besoin, et produit une réponse finale — qu'il peut réinjecter dans la page qui l'a lancé (via les exit parameters).

Providers ​

Le moteur choisit un provider d'après le nom de la company du modèle (MelisAIEngine\Service\MelisAIEngineService::getActiveModelClass()) :

  • company contenant « Anthropic » → MelisAIEngineModelClaudeService (module melis-ai-engine-claude)
  • company contenant « Google » → MelisAIEngineModelGeminiService (module melis-ai-engine-gemini)

Les deux étendent le MelisAIEngineModelService de melis-ai-engine et implémentent le même contrat (setClient(), formatage des payloads/messages, appels d'outils). Ajouter un nouveau provider revient à ajouter un module avec son propre model service — sans toucher au moteur.

Le configurer (backoffice) ​

Dans le backoffice, ouvrez Melis AI → Admin :

  • Platform AI — déclarez les companies & modèles, et stockez les clés d'API (melis_ai_platform_keys).
  • Instances — gérez les instances nommées qui servent à lancer les agents.
  • Usage — consommation de tokens par modèle/agent.
  • Chat Dev Tool — une console de chat développeur pour tester le moteur.

Sous Melis AI → Agents, vous construisez le scénario d'un agent (ses étapes), vous le testez avec Run Scenario, et vous lui assignez des outils.

Utiliser un agent depuis votre code ​

L'intégration la plus simple est le view helper AIChatViewHelper (melis-ai-engine/src/View/Helper/MelisAIChatViewHelper.php). Déposez-le dans une vue .phtml pour rendre un chat prêt à l'emploi lié à une instance :

php
<?= $this->AIChatViewHelper(
    $maiInstanceId,        // id d'instance depuis melis_ai_instances.mai_instance_id
    $agentId = null,       // id d'agent explicite (optionnel)
    $extraEntryParams = [],// custom_text / custom_files / custom_data
    $debugMode = false,
    $exitParamArr = []     // où réécrire le résultat (champs, callbacks js/route)
) ?>

Un pattern courant consiste à scoper la session par objet en suffixant l'id d'instance avec un id, p. ex. "newscontentcreator|".$newsId — pour que chaque actualité garde sa propre conversation.

Exemple réel

melis-ai-community-extensions fournit des agents fonctionnels — p. ex. un news content creator qui prend un prompt + des images et réécrit le texte généré dans le formulaire d'actualité via un exit callback. Lisez vendor/melisplatform/melis-ai-community-extensions/src/Controller/NewsController.php pour voir le helper utilisé de bout en bout.

Par programmation, le moteur se pilote via MelisAIEngine\Service\MelisAIEngineAgentService (runAgent(), validateAnswer(), continueConversation(), restartAgent(), getFinalAnswer()), construit par agent + instance, avec l'état de conversation persisté dans un store en base (MelisAIEngineConversationStore) plutôt que dans les sessions PHP.

Les outils ​

Les agents peuvent appeler des outils (fonctions) pendant une exécution — y compris des outils MCP pour les opérations fichiers et base de données. Voir la page dédiée MCP.

Fichiers clés ​

SujetChemin
Service moteurvendor/melisplatform/melis-ai-engine/src/Service/MelisAIEngineService.php
Exécution d'agentvendor/melisplatform/melis-ai-engine/src/Service/MelisAIEngineAgentService.php
View helper chatvendor/melisplatform/melis-ai-engine/src/View/Helper/MelisAIChatViewHelper.php
Provider Claudevendor/melisplatform/melis-ai-engine-claude/src/Service/MelisAIEngineModelClaudeService.php
Provider Geminivendor/melisplatform/melis-ai-engine-gemini/src/Service/MelisAIEngineModelGeminiService.php
Admin backofficevendor/melisplatform/melis-ai/src/Controller/AdminController.php
Agents d'exemplevendor/melisplatform/melis-ai-community-extensions/

La suite IA évolue activement — épinglez les releases ^5.3 (voir Référence des modules) et lisez le code des modules pour l'API exacte et à jour.