← Retour au QG

Le QG de STA Inc : nos 53 agents IA dans un open space 3D, en direct

Comment on a refait, chez nous et à notre façon, le « QG d'agents » vu sur le web : en vraie 3D, avec de vraies données, sur notre propre serveur, sans rien laisser fuiter.

Lecture 8 minConstruit en une session avec Claude CodeNovembre 2026
Le QG en 3D : la Direction au centre, les équipes autour, reliées par des passerelles
Le QG. Sur cette capture, trois agents ont été forcés « au travail » pour l'illustration ; sur le site, tout est réel.

D'où vient l'idée

Un guide montrait un « QG » d'agents IA en pixel art : une page web où chaque agent est un petit personnage à son bureau, avec une activité simulée dans le navigateur, hébergée sur Vercel. L'idée nous a plu, mais nous voulions trois choses différentes :

Ce qui est réel, ce qui ne l'est pas

Réel (régénéré toutes les 15 min)Décoratif
L'état de chaque agent : au travail, à son poste, en pause (souvent : son budget du jour est atteint), absentLes allers-retours au café des agents « à leur poste »
Ses tours de travail et ses livraisons sur 24 hLes bulles qui défilent (leur texte, lui, est réel)
Le projet sur lequel il travaille, en libellé publicLes mouvements des personnages, les écrans qui « codent »
Les outils qui s'allument : ceux des agents en plein tour

Le badge en haut du QG dit l'âge des données. S'il passe à l'orange, puis au rouge, c'est que le générateur s'est arrêté : nous préférons l'afficher que montrer un plateau figé comme s'il était vivant.

Les demandes, dans l'ordre

Voici les vraies demandes envoyées à Claude Code pendant la session, à peine nettoyées. On a beaucoup appris de leurs allers-retours.

1 · Le cadrageAnalyse ce guide pour faire la même chose ici chez nous, en local : pas de publication sur Vercel mais sur notre domaine, genre qg.savethemall.eu, en lecture sur le web, afin de pouvoir partager l'expérience avec d'autres.

Claude lit la page, inventorie nos agents et notre façon de publier un site, puis pose quatre questions fermées : quoi publier, pour qui, quelles données dans une fiche, simulé ou réel.

2 · Le choix qui change toutIl faut du réel, même avec 15 minutes de retard, ce n'est pas grave, mais du réel.

Le QG devient un instantané régénéré toutes les 15 minutes à partir de l'historique de travail des agents. C'est aussi là qu'apparaît le vrai problème : comment publier du réel sans publier nos secrets (voir plus bas).

3 · Le retour sur la maquetteOK, le concept est bien, mais c'est en 2D… je veux de la 3D.

La première version était un plateau en pixel art vu de dessus. Bonne leçon : montrer une maquette tôt a coûté une heure, pas une semaine.

4 · Une image vaut mieux qu'un motC'est quoi ce rendu ? (avec une capture)

« 3D » voulait dire deux choses : de l'isométrique dessiné en 2D (façon Habbo), ou une vraie scène 3D. La capture a permis de trancher sans se tromper.

5 · La référenceRegarde ce qu'il a fait : Agents Office.

Claude lit le projet : une vraie scène Three.js, caméra isométrique, plateformes flottantes. Et il lit la licence : usage non commercial, interdiction de le renommer ou de le brancher sur un autre système d'agents. Donc l'idée seulement, tout le code est à nous.

6 · Le feu vertOui, go, en 3D Three.js.

Réécriture complète de la scène : la Direction au centre, les directions autour, leurs équipes sur un anneau extérieur, reliées par des passerelles qui suivent notre organigramme.

Comment c'est construit

L'organigramme : équipes, agents, titres, missions (un fichier, la seule source)
L'historique de travail des agents, déjà collecté pour nos tableaux de bord, et le projet de leur tâche en cours
Un générateur (Python, toutes les 15 min) qui en tire deux fichiers : agents.json et activite.json
Un filtre qui repasse sur chaque chaîne publiée et fait échouer la publication au moindre doute
Une page statique (Three.js regroupé avec esbuild, 150 Ko compressé) servie par notre reverse proxy, sans aucune base ni API

Le navigateur du visiteur ne parle jamais à nos services : il lit deux fichiers JSON. Si le générateur s'arrête, la page reste en ligne, avec un badge qui dit que les données vieillissent.

Public, mais sans fuite

Le piège d'un tableau « en direct » publié sur Internet, c'est qu'il publie aussi ce qu'on ne voulait pas dire. Nous avons d'abord écrit un filtre de titres de tâches à refus par défaut (adresses, noms de machines, numéros de tickets, chemins, formes de secrets, liste noire de noms…), puis nous l'avons testé sur 150 vrais titres.

Résultat : 44 titres passaient le filtre, et certains en disaient encore trop (le prénom d’une personne extérieure, le nom d'une appli tierce qu'on étudie, des détails d'architecture). Aucune liste de mots ne peut deviner ce qui est sensible dans une phrase libre.

Nous avons donc changé d'approche : on ne publie jamais le titre d'une tâche. On publie le projet auquel elle appartient, à travers une table écrite à la main (« App iPhone », « Veille », « Entretien du parc »). Un projet absent de la table s'affiche « en mission ». Zéro fuite possible, et c'est toujours du réel. Le filtre reste en place comme dernier garde-fou.

Deux autres règles : le seul humain de l'étage n'a aucune activité publiée (afficher quand une personne travaille, c'est la suivre à la trace), et les outils de sécurité ne figurent pas dans la barre d'outils (dire au public ce qui nous surveille aide surtout un attaquant).

Ce qu'on a appris

Le faire chez vous, sans Vercel

  1. Une source unique de vos agents (un YAML suffit) et une trace de leur activité, même grossière (horodatage du dernier travail).
  2. Un script planifié qui écrit deux JSON dans un dossier, et un filtre qui fait échouer l'écriture au moindre doute.
  3. Une page statique : Three.js, une caméra orthographique inclinée, une plateforme par équipe. Les étiquettes en HTML (CSS2DRenderer) restent nettes à tout zoom.
  4. N'importe quel serveur web : chez nous, une ligne file_server dans Caddy, un certificat, un enregistrement DNS.

Coût : aucun abonnement. La session de conception a pris quelques heures, dont une à refaire la 2D en 3D.

Crédits et licences

L'idée vient de deux créateurs, que nous remercions : Zeyneb Madi (son archipel d'agents) et AJ Sahni (Agents Office, publié sous licence PolyForm Noncommercial avec des conditions Sahni.ai). Nous avons repris des idées, jamais une ligne de leur code. Le guide qui nous a mis sur la piste est celui d'Anthony, « Le QG de mes agents IA ».

Three.js est sous licence MIT. Les logos d'outils appartiennent à leurs propriétaires et viennent de collections d'icônes libres.

STA Inc's HQ: our 53 AI agents in a live 3D open space

How we rebuilt the "agents HQ" seen on the web, our own way: real 3D, real data, on our own server, with nothing leaking.

8 min readBuilt in one session with Claude CodeNovember 2026
The 3D HQ: leadership in the centre, teams around it, linked by walkways
The HQ. On this screenshot three agents were forced to "working" for illustration; on the site, everything is real.

Where the idea comes from

A guide showed a pixel-art "HQ" of AI agents with simulated activity, hosted on Vercel. We wanted three things instead: our real agents (STA Inc's 53 agents and one human, from our org chart), their real activity (at most 15 minutes old) and our own hosting, readable by anyone.

What is real, what is not

Real, refreshed every 15 minutes: each agent's state (working, at desk, on a break — often because the daily budget is spent — or away), their turns and deliveries over 24 h, the project they work on (as a public label), and the tools that light up. Decorative: the coffee trips, the walking, the "coding" screens. The badge at the top shows how old the data is, and turns orange, then red, if the generator stops.

The requests, in order

1Analyse this guide so we can do the same here, at home: not on Vercel but on our own domain, readable on the web, to share the experience.
2It has to be real — 15 minutes late is fine, but real.
3The concept is good, but it's 2D… I want 3D.
4What is this rendering? (with a screenshot)
5Look at what he built: Agents Office.
6Yes, go, 3D with Three.js.

The 2D mock-up was turned down in one sentence, which is exactly what mock-ups are for. The screenshot settled what "3D" meant. Reading Agents Office's licence settled that we would take the idea only.

Public, without leaks

We first wrote a deny-by-default filter for task titles and ran it on 150 real titles: 44 passed, and some still said too much. No word list can tell what is sensitive in free text. So we never publish a task title: we publish its project, through a hand-written table of public labels; anything not in the table shows as "on a mission". The only human on the floor has no published activity at all, and security tools stay out of the tool bar.

How it is built

Org chart and work history → a Python generator every 15 minutes → two JSON files, checked by a filter that aborts on any doubt → a static page (Three.js bundled with esbuild, 150 KB gzipped) served by our reverse proxy. The visitor's browser never talks to our services.

Credits and licences

The idea comes from Zeyneb Madi (her agent archipelago) and AJ Sahni (Agents Office, PolyForm Noncommercial plus Sahni.ai terms). We took ideas, never a line of their code. Three.js is MIT-licensed; tool logos belong to their owners.