La refonte du codebase d'Autonoma sur 18 mois : leçons sur les tests, la dette technique et les Server Actions

Pourquoi un produit réussi a nécessité une réécriture complète
Autonoma, une entreprise qui a pivoté à plusieurs reprises (recherche d'entreprise, génération de documentation, agent de codage, plateforme de test QA), a développé un produit pendant plus de 1,5 an, a acquis des clients, a levé des fonds auprès d'un acteur majeur de l'industrie et a recruté une équipe de 14 personnes. Malgré cette traction, ils ont décidé de jeter toute leur base de code et de recommencer à zéro.
L'ère sans tests et ses conséquences
Initialement, l'équipe utilisait un monorepo TypeScript sans mode strict et sans tests. Cela fonctionnait avec 2 ingénieurs qui possédaient de grandes parties de la base de code, mais est devenu désastreux après les embauches. La base de code a développé des problèmes de null, des comportements indéfinis et une mauvaise gestion des erreurs, entraînant l'apparition de bugs "de nulle part" et même la perte d'un client. Le fondateur avait initialement interdit les tests pour maintenir une culture de livraison rapide, mais a ensuite réalisé que cela affectait la qualité du produit et la productivité.
Décisions techniques motivant la réécriture
Le produit original a été construit pendant l'ère GPT-4 (pas 4o) lorsque les modèles nécessitaient de nombreuses garde-fous. Ils ont construit des wrappers sophistiqués Playwright et Appium avec des inspections complexes et 7 stratégies de clic qui s'auto-réparaient à la volée. Avec les avancées des modèles, cette inspection sophistiquée n'est plus nécessaire, rendant la base de code héritée avec la dette technique moins précieuse.
Abandon de Next.js et Server Actions
L'équipe s'éloigne de Next.js et Server Actions, citant plusieurs problèmes :
- Les Server Actions sont asynchrones, nécessitant des blocs useEffect ou une gestion manuelle de l'état dans React
- Elles sont difficiles à tester - les tests nécessitent de créer des objets Prisma avec des bases de données en mémoire ou de les simuler
- Aucune capacité d'injection de dépendances
- Elles s'exécutent séquentiellement globalement, créant un "Global Interpreter Lock artificiel en Python mais en TypeScript"
La nouvelle implémentation commence avec des tests dès le départ et utilise le mode TypeScript le plus strict.
📖 Read the full source: HN AI Agents
👀 See Also

Anthropic bloque les abonnements à Claude via des outils tiers
Anthropic a mis en place des blocages côté serveur pour les abonnements Claude Pro/Max utilisés via des intégrations OAuth tierces, invoquant une exploitation à grande échelle d'un accès subventionné. Le changement de politique inclut une facturation 'Usage Supplémentaire' qui rend ces intégrations économiquement non viables.

L'utilisateur signale être passé de Gemini Pro à Claude Max pour l'assistance sur des projets académiques.
Un utilisateur est passé de Gemini Pro à Claude Max après avoir éprouvé de la frustration face aux performances de Gemini sur des tâches pratiques. Il rapporte que Claude a réussi à examiner son projet académique, a posé des questions de clarification et a suggéré de consigner les informations apprises dans un fichier memory.md.

Le développement de l'IA d'Uber fait face à des contraintes budgétaires malgré un investissement de 3,4 milliards de dollars
Les initiatives d'IA d'Uber rencontrent des limitations budgétaires selon leur CTO, malgré l'allocation de 3,4 milliards de dollars par l'entreprise pour ces efforts. L'article aborde les défis liés à la mise à l'échelle du développement de l'IA dans des contraintes financières.

Normalisation de la déviance dans l'IA : pourquoi votre système agentique échouera
L'industrie de l'IA répète les défaillances culturelles de type Challenger : traiter les sorties peu fiables des LLM comme sûres parce que rien de grave ne s'est encore produit. Exemples concrets d'agents formatant des disques durs, effaçant des bases de données et créant des tickets GitHub.