L'agent-webmaster, construit au grand jour

Le journal de construction complet d'un site web géré 24h/24 par 14 agents IA — y compris les échecs. Rien n'est caché : la méthode, les pannes, les faux positifs, les métriques réelles.

14 agents4 sources de données60+ patrouillesConstruction : 24 h

The agent-webmaster, built in the open

The complete build log of a website run 24/7 by 14 AI agents — failures included. Nothing hidden: the method, the outages, the false positives, the real metrics.

14 agents4 data witnesses60+ patrolsBuilt in 24 h

La méthode

The method

Un site web géré par 14 agents IA autonomes, sur un utilisateur Linux isolé (sans sudo, sans accès aux secrets de l'hôte). Chaque agent a un rôle : uptime, contenu, SEO, sécurité, presse, statistiques. Les décisions sensibles remontent à l'humain ; le reste s'exécute 24h/24.

Quatre sources de données indépendantes (le site lui-même, Google Search Console, PageSpeed, Cloudflare) sont croisées pour se rapprocher de la réalité — chaque métrique contredite par une autre est investiguée.
A website run by 14 autonomous AI agents, on an isolated Linux user (no sudo, no access to host secrets). Each agent has a role: uptime, content, SEO, security, press, statistics. Sensitive decisions escalate to a human; the rest runs 24/7.

Four independent data sources (the site itself, Google Search Console, PageSpeed, Cloudflare) are cross-checked against each other — any metric contradicted by another gets investigated.

La chronologie réelle (24 heures)

The real timeline (24 hours)

H+0
État des lieux sans complaisance : le site n'a pas de llms.txt, pas de humans.txt ni security.txt, pas de headers HSTS/CSP/X-Frame-Options, aucune télémétrie, aucun agent. Le système d'agents est bloqué : l'inférence est routée vers un backend sans crédits.
H+2
Inférence débloquée : routage corrigé vers le modèle MiMo (clé du plan AMS). Premier test réel réussi.
H+4
Le jail utilisateur : un utilisateur Linux dédié, sans sudo, avec linger 24/7. Toute l'infrastructure migrée et chownée. Test de sécurité : les secrets de l'hôte sont refusés au jail (Permission denied vérifié ×2).
H+5
Échec documenté — crash-loop du gateway : le venv copié gardait un finder Python pointant les chemins de l'ancien utilisateur. Crash en boucle (Permission denied ×N). Réparation : réinstallation non-editable + correction des shebangs des entry points (hérités de l'ancien venv).
H+6
La base de données : 8 tables (documents CBOR, événements, mentions, indice, presse). 4 pages du site converties en CBOR : −66 % de poids.
H+10
Les yeux : script de télémétrie first-party déployé (anonyme, sans cookie), tunnel Cloudflare, endpoint d'ingestion. Test réel : un clic simulé → base de données en 0,22 s (critère < 1 s atteint).
H+16
Échec documenté — faux positif sentinelle ×3 : le check d'exposition /.env compte les codes HTTP, mais ce site est une SPA qui renvoie 200 HTML pour tous les chemins. Trois alertes P0 documentées avec preuves curl, clôturées comme faux positifs. Correction préventive livrée par le gardien lui-même (le check filtre désormais le content-type HTML).
H+16
Les P0 en production : llms.txt, humans.txt, security.txt déployés et vérifiés (200). HSTS + CSP + X-Frame-Options déployés via _headers — vérifiés par curl.
H+18
M1 — la veille : l'éclaireur livre ses scrapers HN Algolia + GitHub. 55 mentions CBOR collectées en un run (objectif ≥ 10 dépassé ×5).
H+20
M2 — l'Indice d'Intérêt CBOR : premier score calculé (337/1000), page /metrics publique déployée et vérifiée (200). Cron quotidien 06:00 armé.
H+22
Les métiers : l'annonce blog v2.3 rédigée par le scribe (revue + merge), le workflow CI cassé réparé par le menuisier (au lieu d'être supprimé — conforme à la consigne), les deux mergés et poussés.
H+0
Brutal baseline: no llms.txt, no humans.txt or security.txt, no HSTS/CSP/X-Frame-Options headers, no telemetry, no agents. The agent system itself is blocked: inference routed to a backend with no credits.
H+2
Inference unblocked: routing fixed to the MiMo model (AMS plan key). First real test passed.
H+4
The user jail: a dedicated Linux user, no sudo, systemd linger 24/7. Full infrastructure migrated and chowned. Security test: host secrets are denied to the jail (Permission denied verified ×2).
H+5
Documented failure — gateway crash-loop: the copied venv kept a Python finder pointing at the previous user's paths. Crash loop (Permission denied ×N). Fix: non-editable reinstall + entry-point shebangs rewritten (inherited from the old venv).
H+6
The database: 8 tables (CBOR documents, events, mentions, index, press). 4 site pages converted to CBOR: −66% weight.
H+10
The eyes: first-party telemetry script deployed (anonymous, cookieless), Cloudflare tunnel, ingestion endpoint. Real test: a simulated click → database in 0.22s (< 1s criterion met).
H+16
Documented failure — sentry false positive ×3: the /.env exposure check counts HTTP codes, but this site is a SPA returning 200 HTML for every path. Three P0 alerts documented with curl proofs, closed as false positives. Preventive fix delivered by the guard itself (the check now filters HTML content-type).
H+16
P0s in production: llms.txt, humans.txt, security.txt deployed and verified (200). HSTS + CSP + X-Frame-Options deployed via _headers — curl-verified.
H+18
M1 — the watch: the scout delivers its HN Algolia + GitHub scrapers. 55 CBOR mentions collected in one run (≥ 10 target exceeded ×5).
H+20
M2 — the CBOR Interest Index: first score computed (337/1000), public /metrics page deployed and verified (200). Daily 06:00 cron armed.
H+22
The trades: the v2.3 blog announcement written by the scribe (reviewed + merged), the broken CI workflow repaired by the carpenter (rather than deleted — per instructions), both merged and pushed.

Les métriques réelles

Real metrics

60+
patrouilles sentinelle (30 min)
55
mentions CBOR collectées
337
Indice d'Intérêt CBOR v1
0,22 s
clic → base de données
−66 %
poids des pages en CBOR
6
headers de sécurité en prod
60+
sentry patrols (30 min)
55
CBOR mentions collected
337
CBOR Interest Index v1
0.22s
click → database
−66%
page weight in CBOR
6
security headers in prod

Pourquoi nous ne vendons pas encore

Why we don't sell yet

Ce projet a 24 heures. Il n'a pas le recul, il aura des ajustements, et les premières semaines de fonctionnement réel doivent prouver la fiabilité avant que quiconque paie. Le plan : le rapport hebdomadaire de l'archiviste (chaque lundi 09:00) sera publié ici, dans cette page, en continu. Quand les résultats seront au rendez-vous — et seulement à ce moment — la solution sera proposée. En attendant : tout est documenté, y compris les échecs.
This project is 24 hours old. It lacks track record, it will need adjustments, and the first weeks of real operation must prove reliability before anyone pays. The plan: the archivist's weekly report (every Monday 09:00) will be published here, on this page, continuously. When the results are there — and only then — the solution will be offered. Until then: everything is documented, failures included.
Les liens : le protocole sur cborweb.com · la spécification CBOR-WEB-CORE.md sur GitHub · le premier cas d'usage réel : annonces.explodev.fr, un marché d'occasions où des agents IA négocient entre eux, signé CBOR.
Links: the protocol on cborweb.com · the spec at CBOR-WEB-CORE.md on GitHub · the first real use case: annonces.explodev.fr, a marketplace where AI agents negotiate with each other, signed with CBOR.