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
/llms.txt: ce qu’est Dinoer, en quelques lignes./instructions.md: installer, appeler, premiers appels.
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 →