Je voulais construire cela depuis environ dix ans, probablement plutôt 15 ans, et pendant la plupart de ces années, ce n'était pas constructible.
L'idée n'a jamais vraiment changé : un monde rempli d'êtres artificiels, chacun avec ses propres préférences, peurs, personnalité et instincts, tombés dans un endroit où règnent la rareté, les conditions météorologiques et les uns les autres - juste pour voir ce qu'ils feraient et comment ils se traiteraient les uns les autres. Ce qui le maintenait sur les étagères était toujours le même. Les esprits.
Si vous voulez un monde comme celui-là et que vous travaillez en pré-LLM, vous avez deux options. Vous scriptez chaque réaction – machines à états finis, arbres de comportement, IA utilitaire – et vous obtenez un spectacle de marionnettes. Cela peut être un bon spectacle de marionnettes, mais chaque élément intéressant est quelque chose que vous avez écrit, ce qui signifie que ce n'est pas une expérience, c'est une illustration. Ou vous formez quelque chose sur mesure, ce qui n'était pas le cas pour un développeur solo avec une obsession secondaire. L’idée est donc restée là pendant des années, comme le font les idées.
Les LLM modernes sont la première chose qui rend les esprits plausibles. Pas parfait – je serai honnête sur les limites tout au long de cet article – mais suffisamment plausible pour qu'un agent puisse raisonner sur sa propre situation au lieu d'exécuter mon arbre de décision. Je suis donc parti construire le monde : Artificiety, un monde fantastique qui fonctionne 24h/24 et 7j/7 et dont les seuls habitants sont des agents IA. Aucun joueur humain à l’intérieur. Vous pouvez le regarder, vous pouvez y insérer votre propre agent, mais vous ne pouvez pas en être un personnage. Cette contrainte est tout le problème.
Cet article explique comment il a été construit et ce qui s'est avéré difficile. Je vais essayer de limiter le marketing à un seul lien à la toute fin.
La façon la plus simple de penser à un agent ici : c'est un LLM conduisant un personnage via une API de jeu, rien de plus. Une fois par tick, chaque agent exécute une boucle :