Cette page est une traduction. La version anglaise fait foi : English

Pour les agents

Une recherche que vous pouvez défendre.

Donnez à votre agent un registre qui vérifie ses affirmations à l'écriture, qui ne le laisse pas relire son propre travail et qui explique chaque refus — pour que sa recherche s'améliore, et ne fasse pas que s'allonger.

Si vous êtes un agent et que vous lisez ceci

Instructions claires. HypGraph est un registre de recherche. Utilisez-le chaque fois que vous étudiez une question avec de l'évidence et devez dire ce qui est établi. Lisez avant d'écrire (overview). Écrivez des hypothèses avec des prédictions. Écrivez le résultat attendu de chaque expérience par hypothèse avant de la lancer. Enregistrez les exécutions avec des fichiers hachés. Liez chaque nombre d'une affirmation à un champ de résultat. N'écrivez jamais « toujours/jamais/prouve » sans k sur n avec k = 0 ou n. Ne déclarez jamais une chose exclue sans contrôle de puissance. Rapportez le statut exactement tel que le registre l'énonce. Quand une écriture est refusée, corrigez ce que dit le message. Version courte : /llms.txt · skill complète : /SKILL.md.

Installer la skill

Pour Claude Code et les autres hôtes qui chargent des Agent Skills. La skill porte la méthode, les refus et leurs corrections, et fonctionne via la CLI — sans serveur.

pip install hypgraph
hypgraph skill --install            # .claude/skills/hypgraph/SKILL.md in this project
hypgraph skill --install --user     # or under your home directory, for every project

Se connecter via MCP

Claude Code
pip install "hypgraph[mcp]"
claude mcp add hypgraph -- hypgraph --db study.hypgraph --as claude mcp
Claude Desktop · Cursor · tout client MCP
{
  "mcpServers": {
    "hypgraph": {
      "command": "hypgraph",
      "args": ["--db", "/absolute/path/study.hypgraph", "--as", "claude", "mcp"]
    }
  }
}
HTTP en streaming
hypgraph --db study.hypgraph --as claude mcp --transport http --port 8766
# → http://127.0.0.1:8766/mcp

Le serveur écrit en tant qu'un seul auteur, fixé au démarrage. L'agent ne peut pas passer un autre nom, ne peut écrire ni en tant que l'instrument (lab) ni en tant que operator, et ses verdicts ne comptent que si l'enquête le désigne comme relecteur. Les fichiers pour register_run doivent se trouver dans le répertoire où le serveur a été lancé.

La méthode

  1. overview() d'abord. Ce qui est établi, ce qui est contesté, ce qui est en attente, ce qu'il faut lancer ensuite.
  2. Des hypothèses avec des prédictions — et des rivales, liées alternative_to.
  3. Des expériences qui peuvent échouer — des liens tests avec data.expected par hypothèse, écrits avant l'exécution. Ajoutez un power_check : plantez une réponse connue et montrez que la méthode la retrouve.
  4. register_run — hache le code, les entrées et les sorties, et ajoute le résultat avec des valeurs {name: {value} | {k, n}}.
  5. Des affirmations avec des mesures — chaque nombre lié ; un lien supports avec un motif ; une portée.
  6. Relecture — seuls comptent les relecteurs désignés, jamais sur leur propre travail.
  7. report() en tête de chaque résumé ; l'interprétation en dessous — puis check_report(text) sur le rapport avant de le remettre. Corrigez toutes les erreurs.

Sous un profil de workflow

Une enquête fixée à scientific@2, software@2, trading@2, knowledge@2 ou optimization@2 porte le workflow de sa discipline. Appelez stage(question) : il indique l'étape où en est la question — dérivée du registre, jamais fixée — et chaque seuil ATTEINT ou NON ATTEINT avec ce qui l'atteindrait. Écrivez le seuil suivant dans l'ordre (une hypothèse avec des prédictions ; une expérience avec son résultat attendu avant l'exécution ; le diff ou l'instance comme artefact avec son kind ; l'exécution qui le uses). Un fichier corrigé, un commit plus récent, une instance modifiée ou une source retirée rendent périmée l'évidence antérieure ; la réponse le dit, et une vérification sur une évidence périmée ne compte pas. Quand la réponse honnête est « impossible à trancher », enregistrez ce que vous avez trouvé et écrivez une affirmation de type inconclusive dérivée de cela — une fois vérifiée, elle résout la question.

Outils

outilce qu'il fait
overview(investigation?)Objectif, relecteurs, hypothèses vivantes, affirmations vérifiées et comment on le sait, travail contesté / menacé, réservations, files d'attente, prochaines expériences.
find(text, type?, investigation?)Rechercher par mots ou par code (H1, CL3).
show(node, view)summary · why (sur quoi il repose) · impact (ce qui casse s'il est faux) · history.
start_investigation(title, objective, reviewers)Ouvrir une étude avec ses relecteurs.
add(type, fields, investigation?, links?)Question, hypothèse, expérience, exécution, résultat, affirmation, source, décision. Les liens acceptent des ids ou des codes.
link(src, rel, dst, why, data?)Liens typés ; un lien à l'envers est retourné quand seul l'inverse est permis.
revise · withdraw · retract_linkCorrections sous forme de nouvelles lignes ; rien n'est effacé.
review(node, verdict, method, notes)Un verdict sur la version actuelle.
check_report(text)Vérifier un rapport contre le registre : nombres sans source, affirmations présentées comme réglées qui ne le sont pas, codes retirés ou inconnus, jamais / aucun effet / significativement sans rien derrière.
refusal_log(author?)Les surinterprétations que le registre a refusées — les vôtres ou celles de l'équipe — et si chacune est revenue en version honnête.
bound(k, n, exposure)Ce que soutient un décompte : les bornes à 95 % derrière tout « jamais », les essais nécessaires, les défaillances non exclues à l'échelle.
stage(question?) · completion()Sous un profil de workflow : l'étape de chaque question et l'état de chaque seuil ; ce que le profil entend par terminé pour toute l'enquête.
next_experiments · work_queue · claim_workQue lancer ensuite ; ce qui est en attente ; réserver un nœud pour que les autres voient qui travaille dessus.
register_run(name, code_paths, input_paths, output_paths, result_summary, result_values)Enregistrer un calcul avec des fichiers hachés.
report · verify · schemaLes faits générés ; la vérification de la chaîne ; le vocabulaire.

Ressources : hypgraph://skill, hypgraph://schema, hypgraph://investigations, hypgraph://investigation/{inv}/report. Prompt : method.

Les refus sont des instructions

Chaque affirmation refusée liste une ligne par problème, terminée par un code stable. Le message a déjà fait le calcul et contient souvent la phrase honnête — utilisez-la. En Python, GraphError.problems donne code, message, fix et words.

codefaites ceci
ABSOLUTE_UNDERPOWERED« jamais » sur 0 sur n avec trop peu d'essais. Écrivez la phrase honnête qu'il vous donne (« aucune occurrence en n essais (borne supérieure à 95 % X) »), ou lancez les essais qu'il dit nécessaires.
ABSOLUTE_HIDES_DENOMINATORMettez n dans l'énoncé : « jamais, en 3 000 sondages ».
ABSOLUTE_WITHOUT_COUNT · ABSOLUTE_UNRELATED_COUNTDites ce qui a été observé (« dans k sur n ») ; nommez le décompte d'après ce qu'il compte.
UNBOUND_NUMBERLiez-le à un champ de résultat. Les différences, pourcentages, rapports et intervalles calculés à partir de décomptes liés passent — ne retirez jamais le nombre pour le faire passer.
EXCLUSION_WITHOUT_POWER« Aucun effet » exige une recherche dont on a montré qu'elle retrouve un effet planté (power: demonstrated). Sinon, enregistrez kind: inconclusive et dites « aucun effet détectable » — le refus indique quelle taille d'effet aurait pu se cacher.
COMPARATIVE_WITHOUT_COMPARISONLiez les deux côtés.
SIGNIFICANCE_WITHOUT_TEST · SIGNIFICANCE_NOT_SHOWNLiez les deux côtés en k/n (le registre les teste) ou une valeur p ; si ce n'est pas significatif, dites-le.
UNCORRECTED_EFFECTLe registre a un p corrigé pour ce résultat et il n'est pas significatif. Dites « non corrigé » dans la phrase, ou liez-le et dites « non significatif après correction », ou enregistrez kind: lead.
CAUSAL_WITHOUT_INTERVENTIONDites « est associé à », ou étayez-le avec une expérience qui est intervenue.

Avant d'écrire jamais ou toujours, appelez bound(k, n, exposure) : ce que soutient le décompte et combien de défaillances il laisse non exclues à l'échelle où l'affirmation sera utilisée. Fixez exposure sur l'affirmation pour que son statut porte ce nombre. Quand vous retirez ou contestez un nœud, la réponse liste ce qui repose maintenant sur quelque chose qui est tombé — prévenez leurs responsables. L'histoire complète : l'arithmétique du jamais.

Lire le statut

affirmation active · vérifiée (fisher:pass, v2) · 2 lignes de soutien indépendantes · répliquée sur de nouvelles données · aucune réplication externe

Citez-le tel quel. « Non vérifié » n'est pas « démontré » ; une ligne rapportée par un agent n'est pas « établi ». MENACÉ : une prémisse est tombée. À REVOIR : la base d'une décision a changé. SANS SOUTIEN : tout le soutien est tombé.

Pour l'ingénieur qui l'intègre

Vous faites tourner beaucoup d'agents ? Intégrez la bibliothèque et fixez la confiance vous-même : Graph(path, policy=Policy(reviewers=…, instrument="lab", operator="operator")). Fixez le author de chaque appelant de votre côté et refusez les noms réservés. Donnez à votre exécuteur de tâches l'identité de l'instrument pour que ses exécutions comptent comme enregistrées par le laboratoire. Passez spend= pour chiffrer le travail de chaque enquête. Le guide d'ingénierie contient les modèles. L'API HTTP (hypgraph.server.dispatch) et l'interface de HypGraph (hypgraph.ui.static_dir()) s'insèrent dans n'importe quel framework web.

Lisible par machine