Gepubliceerd: 18 juni 2026
Om een moderne webapplicatie effectief te debuggen, heeft een AI-agent meer nodig dan alleen de broncode; hij moet begrijpen hoe de applicatie zich tijdens de uitvoering gedraagt.
We zijn verheugd om tools van derden voor Chrome DevTools voor agents te introduceren. Nu kunnen uw apps en frameworks AI-agents direct inzicht geven in hun interne status. Dit helpt agents om de verbanden te leggen tussen wat er op het scherm gebeurt en de logica die achter de schermen draait.
Het doel: Voorbij statische analyse
Moderne webontwikkeling is gebouwd op abstracties: frameworks zoals Angular, React of Vue; CMS-platforms zoals WordPress of Shopify; en libraries voor CSS, 3D-graphics of animaties. Hoewel DevTools directe toegang biedt tot de uiteindelijke DOM, bevindt de "waarheid" van een applicatie zich vaak in de interne state van het framework: componenthiërarchieën, JavaScript-signalen of de backend-state.
Ons doel met tools voor externe ontwikkelaars is om elke bibliotheek de mogelijkheid te bieden deze rijke, bruikbare context te delen met AI-agenten. Hierdoor kunnen agenten problemen opsporen die voorheen "onzichtbaar" voor hen waren, bijvoorbeeld:
- Componenthiërarchieën: Koppel een DOM-element op de pagina rechtstreeks aan het bijbehorende frameworkcomponent en de interne status ervan.
- Interne statusinspectie: Krijg rechtstreeks toegang tot de serverstatus of database-inhoud binnen de debugsessie.
Hoe het werkt: De Discovery API
Ontwikkelaarstools van derden gebruiken een op gebeurtenissen gebaseerde JavaScript API. De Chrome DevTools MCP-server detecteert deze tools door een devtoolstooldiscovery gebeurtenis te verzenden naar het globale window object. De devtoolstooldiscovery gebeurtenis wordt automatisch verzonden bij elke paginanavigatie of wanneer de geselecteerde pagina wordt gewijzigd, en kan expliciet worden verzonden met behulp van de list_3p_developer_tools MCP-tool.
Gebruik je eigen tools
Om tools uit uw bibliotheek of applicatie beschikbaar te maken, moet u luisteren naar deze ontdekkingsgebeurtenis en reageren met een ToolGroup .
window.addEventListener('devtoolstooldiscovery', (event) => {
event.respondWith({
name: "My Library Tools",
description: "Tools for inspecting internal library state",
tools: [
{
name: "getInternalState",
description: "Returns the current internal state of the framework.",
inputSchema: {
type: "object",
properties: {
componentId: { type: "string" }
}
},
execute: async (input) => {
// Access your framework's internal registry
return myFramework.getState(input.componentId);
}
}
]
});
});
De implementatie verloopt als volgt:
- Definieer het schema: Gebruik JSON Schema om de invoer te definiëren die uw tool verwacht.
- Verwerk de logica: implementeer een
executedie in de context van de pagina draait en serialiseerbare gegevens retourneert. - DOM-elementen: Niet-serialiseerbare objecten kunnen niet tussen de pagina en DevTools for agents worden verzonden. DOM-elementen vormen hierop een uitzondering. Wanneer uw tools DOM-elementen retourneren, koppelt DevTools for agents deze automatisch aan dezelfde UID's die door de
take_snapshottool worden gebruikt. Hierdoor kan uw agent op dezelfde manier met alle pagina-elementen communiceren (ongeacht of ze afkomstig zijn van een framework of van een paginasnapshot).
Interacteer met tools via MCP
Zodra u uw tools registreert, kan uw codeeragent ermee communiceren via DevTools voor agents. De MCP-tool list_3p_developer_tools geeft beschrijvingen weer van de tools van derden die op de pagina beschikbaar zijn. Bovendien voegt DevTools een lijst met beschikbare tools toe aan het antwoord van de MCP-tool wanneer de geselecteerde pagina verandert (bijvoorbeeld na navigatie).
Om deze tools te gebruiken, roept uw agent de functie execute_3p_developer_tool aan. DevTools valideert automatisch de invoerparameters om ervoor te zorgen dat ze overeenkomen met de definitie van de tool.
Je kunt ook tools aanroepen met de MCP-tool evaluate_script . Je agent levert een JavaScript-fragment dat DevTools op de pagina uitvoert. Dit fragment kan tools van derden aanroepen en de uitvoer ervan direct gebruiken voor verdere berekeningen.
Het gebruik van evaluate_script is effectief voor complexe foutopsporing omdat het agents de volgende mogelijkheden biedt:
- Compositiebewerkingen : Combineer meerdere stappen tot één enkele uitvoering.
- Niet-serialiseerbare waarden verwerken : frameworkspecifieke objecten of signalen rechtstreeks in de paginacontext verwerken.
- Optimaliseer de prestaties : minimaliseer de overhead van serialisatie en vermijd meerdere communicaties tussen de agent en de browser.
Vroeg succes: Angular-integratie
We hebben samengewerkt met het Angular-team, dat twee tools van derden voor ontwikkelaars heeft geïmplementeerd:
- Signal Graph-tool: Hiermee kunnen agents de relaties tussen de status en de weergave visualiseren, waardoor ze afhankelijkheden kunnen identificeren die oneindige lussen of mislukte updates veroorzaken.
- Dependency Injection (DI) Graph-tool: Hiermee worden de elementinjectoren zichtbaar, waardoor agents precies kunnen zien waar een service wordt aangeboden of waar deze ontbreekt. Omdat de DI-grafiek van Angular een constructie is die alleen tijdens runtime wordt uitgevoerd, kan statische analyse alleen niet volstaan om providerfouten op te sporen.
Het React-team is ook begonnen met experimenteren met ontwikkelaarstools van derden.
Bouw samen met ons aan de toekomst van agentische debugging.
Deze experimentele functie is beschikbaar in Chrome DevTools voor agents vanaf versie 0.25.0. Om deze in te schakelen, gebruikt u de opdrachtregeloptie --categoryExperimentalThirdParty .
Als u een framework, bibliotheek of tool onderhoudt en de debugervaring voor codeeragenten wilt verbeteren, werken we graag met u samen:
- Bekijk de documentatie: Technische handleiding op GitHub .
- Neem contact op: We zoeken partners om deze API's verder te ontwikkelen en de toekomst van AI-gestuurde webdebugging vorm te geven. Je kunt een issue aanmaken in de GitHub-repository om contact op te nemen.
Bouw samen met ons aan de toekomst van agentgebaseerde webontwikkeling!