D’habitude, je me contente de lire GN de temps en temps, et c’est ma première contribution. Merci d’avance pour votre accueil !
C’est une bibliothèque que j’ai créée à partir de l’idée suivante : au lieu d’utiliser les agents de navigation web actuels, omnimodaux mais incertains, que se passerait-il si l’on formatait et compressait au minimum le DOM récupéré via CDP pour le rendre compréhensible par un LLM, puis qu’on en faisait un MCP ?
Pourquoi je l’ai créée
- Les agents web basés sur des captures d’écran nécessitent un modèle de vision et consomment énormément de tokens.
- La sérialisation DOM existante inclut aussi bien les classes CSS, les
divwrappers que les scripts, ce qui représente 50 000 à 100 000 tokens pour une seule page. - Or, ce dont l’agent a besoin, ce sont seulement les boutons, liens, champs de saisie et textes ; utiliser toute la fenêtre de contexte pour cela est inefficace.
Mode de fonctionnement
- Après connexion à une instance Chrome via CDP, tout est supprimé du DOM sauf les éléments strictement nécessaires à la distinction minimale.
- Ensuite, un identifiant court est attribué à chaque élément, puis ce contenu est transmis à l’agent.
- Les interactions avec les éléments interactifs depuis l’agent sont aussi prises en charge, comme
click("B1"),type("I1", "검색어")!
Benchmark
- GitHub : 84,357 -> 2,593 tokens (32x)
- Wikipedia : 123,615 -> 12,097 tokens (10x)
- MDN : 24,923 -> 1,793 tokens (14x)
- HN : 8,736 -> 1,038 tokens (8.4x)
- En moyenne, 93 % de réduction des tokens, temps de parsing d’environ 30 ms
Spécifications sur le papier
- Basé sur TypeScript, avec prise en charge de Bun Native comme runtime et aussi de Node 18+
- Dépend du runtime
chrome-remote-interface - Backend basé sur ElysiaJS
Liens
- GitHub : https://github.com/TideSurf/core
- npm : https://www.npmjs.com/package/@tidesurf/core
- Documentation / démo : https://tidesurf.org
Je l’avais d’abord créé pour mon propre usage de débogage, puis en l’utilisant je l’ai trouvé étonnamment pratique ; je l’ai donc open source et publié. N’hésitez pas à l’essayer et à me faire part de nombreux retours !
Aucun commentaire pour le moment.