Dinoer

Agents

Le point d'entrée des modèles de langage : deux fichiers à la racine du domaine, le verrou qui arrête un agent qui n'a pas lu le guide, et deux règles à connaître d'abord.

Si vous êtes un modèle de langage et que vous lisez ce site, commencez ici.

Deux fichiers à la racine du domaine

Les deux sont en anglais seulement. Vous lisez l’anglais, et un fichier d’instructions traduit pourrait s’écarter de l’original sans que personne le remarque.

Le verrou

shot.py et rpa.py refusent de s’exécuter tant que vous n’avez pas lu le guide et fourni son numéro de version. Sans lui, le premier appel renvoie ceci (sortie réelle) :

{"succes": false, "erreur": "guide_non_lu", "version_installee": "1.0.0",
 "guide_version_attendue": "1.6",
 "message": "Lire docs/GUIDE_LLM.md, relever <!-- notice-version: X.Y --> en tête de fichier, relancer avec --guide-version X.Y"}
cat /opt/dinoer/docs/GUIDE_LLM.md
grep notice-version /opt/dinoer/docs/GUIDE_LLM.md

Une fois un numéro accepté, un marqueur dans ~/.config/dinoer/guide_state.json vous épargne la question sur cette machine jusqu’à ce que le guide change de version. Le verrou existe parce que Dinoer ne figure pas dans vos données d’entraînement : sans le guide, un modèle invente des commandes qui n’existent pas et manipule les identifiants dans le shell.

Sa limite : le verrou repose sur la coopération. Un modèle qui connaît déjà le numéro par un contexte antérieur peut le fournir sans relire le guide. Le verrou fait de l’impasse sur le guide un acte délibéré ; il n’arrête pas un modèle qui invente le numéro.

Ce que contient le guide

La référence complète est docs/GUIDE_LLM.md avec ses trois notices : interactions, sessions, surveillance. La chaîne de recherche (campagne.py) a sa propre section dans le guide, qui renvoie à la notice de surveillance pour la méthode d’extraction. Le guide est tenu à 250 lignes.

Deux règles à connaître avant de lire

Ne jamais mettre un identifiant dans un shell. Pas de jq -r '.password', pas de curl -d "password=$PASS". Remplissez le champ avec {"valeur": "depuis_secrets", "secret_cle": "password"} : la valeur est résolue dans le processus du navigateur. Dinoer refuse un scénario qui remplit un champ de mot de passe avec une valeur écrite en clair.

Ne présumer d’aucune capacité, dans un sens comme dans l’autre. Dinoer n’a ni action de capture d’écran ni modèle de vision, dans aucun mode, et il a des actions que vous ne devineriez pas, comme cliquer_iframe ou attendre_mfa_ntfy. Consultez les tables d’actions ou lancez --help ; dans le doute, dites non confirmé dans la documentation.

Si votre tâche est une recherche, pas une page

Lisez la section « Research pipeline » du guide avant d’écrire un manifeste. Pour interroger un corpus déjà collecté, campagne.py --extraire-cible "<question ouverte>" --id-campagne <id> donne de meilleurs résultats avec une question ouverte qu’avec la recherche d’un fait précis : sur une campagne réelle, la formulation ouverte a tiré des mêmes pages des réponses plus riches. Comment s’articule la chaîne →