Plugins
Mogelijkheden toevoegen (bijdragersgids)
Gebruik dit wanneer OpenClaw een nieuw gedeeld domein nodig heeft, zoals beeldgeneratie, videogeneratie of een toekomstig functiegebied dat door een leverancier wordt ondersteund.
De regel:
- plugin = eigendomsgrens
- capability = gedeeld corecontract
Begin niet door een leverancier rechtstreeks aan een kanaal of tool te koppelen. Begin met het definiëren van de capability.
Wanneer je een capability maakt
Maak een nieuwe capability wanneer alle volgende punten waar zijn:
- Meer dan één leverancier zou deze aannemelijk kunnen implementeren.
- Kanalen, tools of functie-Plugins moeten deze kunnen gebruiken zonder zich om de leverancier te bekommeren.
- Core moet fallback-, beleids-, configuratie- of leveringsgedrag bezitten.
Als het werk alleen voor één leverancier is en er nog geen gedeeld contract bestaat, stop dan en definieer eerst het contract.
De standaardvolgorde
- Definieer het getypeerde corecontract.
- Voeg Plugin-registratie toe voor dat contract.
- Voeg een gedeelde runtimehelper toe.
- Koppel één echte leveranciers-Plugin als bewijs.
- Verplaats feature-/kanaalgebruikers naar de runtimehelper.
- Voeg contracttests toe.
- Documenteer de operatorgerichte configuratie en het eigendomsmodel.
Wat waar hoort
Core:
- Request-/responstypen.
- Providerregister + resolutie.
- Fallbackgedrag.
- Configuratieschema met doorgegeven
title/description-docsmetadata op geneste object-, wildcard-, array-item- en compositieknooppunten. - Runtimehelper-oppervlak.
Leveranciers-Plugin:
- Leveranciers-API-aanroepen.
- Afhandeling van leveranciersauthenticatie.
- Leveranciersspecifieke requestnormalisatie.
- Registratie van de capability-implementatie.
Feature-/kanaal-Plugin:
- Roept
api.runtime.*of de bijpassendeplugin-sdk/*-runtime-helper aan. - Roept nooit rechtstreeks een leveranciersimplementatie aan.
Provider- en harnassenaden
Gebruik provider hooks wanneer het gedrag bij het modelprovidercontract hoort in plaats van bij de generieke agentlus. Voorbeelden zijn providerspecifieke requestparams na transportselectie, auth-profielvoorkeur, promptoverlays en fallbackroutering voor vervolgacties na model-/profielfailover.
Gebruik agent harness hooks wanneer het gedrag hoort bij de runtime die een beurt uitvoert. Harnassen kunnen succesvolle maar onbruikbare pogingresultaten classificeren, zoals lege, alleen-redenerende of alleen-plannende responses, zodat het buitenste modelfallbackbeleid de retrybeslissing kan nemen.
Houd beide naden smal:
- Core bezit het retry-/fallbackbeleid.
- Provider-Plugins bezitten providerspecifieke request-/auth-/routeringhints.
- Harness-Plugins bezitten runtimespecifieke pogingclassificatie.
- Plugins van derden retourneren hints, geen directe mutaties van corestatus.
Bestandschecklist
Voor een nieuwe capability kun je verwachten deze gebieden aan te raken:
src/<capability>/types.tssrc/<capability>/...registry/runtime.tssrc/plugins/types.tssrc/plugins/registry.tssrc/plugins/captured-registration.tssrc/plugins/contracts/registry.tssrc/plugins/runtime/types-core.tssrc/plugins/runtime/index.tssrc/plugin-sdk/<capability>.tssrc/plugin-sdk/<capability>-runtime.ts- Een of meer gebundelde Plugin-pakketten.
- Configuratie, documentatie, tests.
Uitgewerkt voorbeeld: beeldgeneratie
Beeldgeneratie volgt de standaardvorm:
- Core definieert
ImageGenerationProvider. - Core stelt
registerImageGenerationProvider(...)beschikbaar. - Core stelt
runtime.imageGeneration.generate(...)beschikbaar. - De Plugins
openai,google,falenminimaxregistreren leveranciersimplementaties. - Toekomstige leveranciers registreren hetzelfde contract zonder kanalen/tools te wijzigen.
De configuratiesleutel is bewust gescheiden van routering voor visieanalyse:
agents.defaults.imageModelanalyseert afbeeldingen.agents.defaults.imageGenerationModelgenereert afbeeldingen.
Houd die gescheiden zodat fallback en beleid expliciet blijven.
Reviewchecklist
Controleer voordat je een nieuwe capability levert:
- Geen kanaal/tool importeert leverancierscode rechtstreeks.
- De runtimehelper is het gedeelde pad.
- Ten minste één contracttest bevestigt gebundeld eigenaarschap.
- Configuratiedocumentatie noemt de nieuwe model-/configuratiesleutel.
- Plugin-documentatie legt de eigendomsgrens uit.
Als een PR de capabilitylaag overslaat en leveranciersgedrag hardcodeert in een kanaal/tool, stuur deze dan terug en definieer eerst het contract.
Gerelateerd
- Plugin-internals — capabilitymodel, eigenaarschap, laadpipeline, runtimehelpers.
- Plugins bouwen — tutorial voor je eerste Plugin.
- SDK-overzicht — importmap en API-referentie voor registratie.
- Skills maken — begeleidend bijdragersoppervlak.