Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
diffs is een optionele plugin-tool met korte ingebouwde systeemrichtlijnen en een begeleidende skill die wijzigingsinhoud omzet in een alleen-lezen diff-artefact voor agents.
Het accepteert een van de volgende opties:
before- enafter-tekst- een unified
patch
- een Gateway-viewer-URL voor canvaspresentatie
- een gerenderd bestandspad (PNG of PDF) voor berichtbezorging
- beide uitvoerresultaten in één aanroep
Snel aan de slag
Ingebouwde systeemrichtlijnen uitschakelen
Als je dediffs-tool ingeschakeld wilt houden maar de ingebouwde system-prompt-richtlijnen wilt uitschakelen, stel je plugins.entries.diffs.hooks.allowPromptInjection in op false:
before_prompt_build-hook van de diffs-plugin, terwijl de plugin, tool en begeleidende skill beschikbaar blijven.
Als je zowel de richtlijnen als de tool wilt uitschakelen, schakel dan in plaats daarvan de plugin uit.
Typische agent-workflow
Invoervoorbeelden
- Voor en na
- Patch
Referentie voor toolinvoer
Alle velden zijn optioneel, tenzij anders vermeld.Oorspronkelijke tekst. Vereist met
after wanneer patch is weggelaten.Bijgewerkte tekst. Vereist met
before wanneer patch is weggelaten.Unified diff-tekst. Wederzijds uitsluitend met
before en after.Weergavebestandsnaam voor de voor-en-na-modus.
Hint voor taaloverschrijving voor de voor-en-na-modus. Onbekende waarden vallen terug op platte tekst.
Overschrijving van viewertitel.
Uitvoermodus. Standaardwaarde is de standaardinstelling van de plugin
defaults.mode. Verouderde alias: "image" gedraagt zich als "file" en wordt nog steeds geaccepteerd voor achterwaartse compatibiliteit.Viewerthema. Standaardwaarde is de standaardinstelling van de plugin
defaults.theme.Diff-indeling. Standaardwaarde is de standaardinstelling van de plugin
defaults.layout.Vouw ongewijzigde secties uit wanneer volledige context beschikbaar is. Alleen optie per aanroep (geen standaardinstellingssleutel van de plugin).
Gerenderde bestandsindeling. Standaardwaarde is de standaardinstelling van de plugin
defaults.fileFormat.Kwaliteitspreset voor PNG- of PDF-rendering.
Overschrijving van apparaatschaal (
1-4).Maximale renderbreedte in CSS-pixels (
640-2400).Artefact-TTL in seconden voor viewer- en zelfstandige bestandsuitvoer. Maximaal 21600.
Overschrijving van oorsprong voor viewer-URL. Overschrijft plugin
viewerBaseUrl. Moet http of https zijn, zonder query/hash.Verouderde invoeraliassen
Verouderde invoeraliassen
Nog steeds geaccepteerd voor achterwaartse compatibiliteit:
format->fileFormatimageFormat->fileFormatimageQuality->fileQualityimageScale->fileScaleimageMaxWidth->fileMaxWidth
Validatie en limieten
Validatie en limieten
beforeenafterelk maximaal 512 KiB.patchmaximaal 2 MiB.pathmaximaal 2048 bytes.langmaximaal 128 bytes.titlemaximaal 1024 bytes.- Limiet voor patchcomplexiteit: maximaal 128 bestanden en 120000 regels in totaal.
patchenbeforeofaftersamen worden geweigerd.- Veiligheidslimieten voor gerenderde bestanden (van toepassing op PNG en PDF):
fileQuality: "standard": maximaal 8 MP (8.000.000 gerenderde pixels).fileQuality: "hq": maximaal 14 MP (14.000.000 gerenderde pixels).fileQuality: "print": maximaal 24 MP (24.000.000 gerenderde pixels).- PDF heeft daarnaast een maximum van 50 pagina’s.
Contract voor uitvoerdetails
De tool retourneert gestructureerde metadata onderdetails.
Viewervelden
Viewervelden
Gedeelde velden voor modi die een viewer maken:
artifactIdviewerUrlviewerPathtitleexpiresAtinputKindfileCountmodecontext(agentId,sessionId,messageChannel,agentAccountIdwanneer beschikbaar)
Bestandsvelden
Bestandsvelden
Bestandsvelden wanneer PNG of PDF wordt gerenderd:
artifactIdexpiresAtfilePathpath(dezelfde waarde alsfilePath, voor compatibiliteit met de berichttool)fileBytesfileFormatfileQualityfileScalefileMaxWidth
Compatibiliteitsaliassen
Compatibiliteitsaliassen
Ook geretourneerd voor bestaande aanroepers:
format(dezelfde waarde alsfileFormat)imagePath(dezelfde waarde alsfilePath)imageBytes(dezelfde waarde alsfileBytes)imageQuality(dezelfde waarde alsfileQuality)imageScale(dezelfde waarde alsfileScale)imageMaxWidth(dezelfde waarde alsfileMaxWidth)
| Modus | Wat wordt geretourneerd |
|---|---|
"view" | Alleen viewervelden. |
"file" | Alleen bestandsvelden, geen viewer-artefact. |
"both" | Viewervelden plus bestandsvelden. Als bestandsrendering mislukt, retourneert de viewer nog steeds met de alias fileError en imageError. |
Samengevouwen ongewijzigde secties
- De viewer kan rijen tonen zoals
N unmodified lines. - Uitvouwknoppen op die rijen zijn voorwaardelijk en niet gegarandeerd voor elk invoertype.
- Uitvouwknoppen verschijnen wanneer de gerenderde diff uitbreidbare contextgegevens heeft, wat typisch is voor voor- en na-invoer.
- Voor veel unified-patch-invoer is weggelaten contextinhoud niet beschikbaar in de geparseerde patchhunks, zodat de rij zonder uitvouwknoppen kan verschijnen. Dit is verwacht gedrag.
expandUnchangedis alleen van toepassing wanneer uitbreidbare context bestaat.
Plugin-standaardinstellingen
Stel Pluginbrede standaardinstellingen in~/.openclaw/openclaw.json in:
fontFamilyfontSizelineSpacinglayoutshowLineNumbersdiffIndicatorswordWrapbackgroundthemefileFormatfileQualityfileScalefileMaxWidthmode
Configuratie voor permanente viewer-URL
Fallback in eigendom van de Plugin voor geretourneerde viewerlinks wanneer een toolaanroep geen
baseUrl doorgeeft. Moet http of https zijn, zonder query/hash.Beveiligingsconfiguratie
false: niet-loopback-verzoeken naar viewerroutes worden geweigerd. true: externe viewers zijn toegestaan als het getokeniseerde pad geldig is.Levenscyclus en opslag van artefacten
- Artefacten worden opgeslagen onder de tijdelijke submap:
$TMPDIR/openclaw-diffs. - Metadata van viewer-artefacten bevat:
- willekeurige artefact-ID (20 hextekens)
- willekeurig token (48 hextekens)
createdAtenexpiresAt- opgeslagen pad naar
viewer.html
- De standaard-TTL voor artefacten is 30 minuten wanneer deze niet is opgegeven.
- De maximaal geaccepteerde viewer-TTL is 6 uur.
- Opschoning wordt opportunistisch uitgevoerd na het maken van artefacten.
- Verlopen artefacten worden verwijderd.
- Fallbackopschoning verwijdert verouderde mappen ouder dan 24 uur wanneer metadata ontbreekt.
Viewer-URL en netwerkgedrag
Viewerroute:/plugins/diffs/view/{artifactId}/{token}
/plugins/diffs/assets/viewer.js/plugins/diffs/assets/viewer-runtime.js
baseUrl-padprefix ook voor beide assetverzoeken behouden blijft.
Gedrag voor URL-constructie:
- Als toolaanroep
baseUrlwordt opgegeven, wordt deze gebruikt na strikte validatie. - Anders, als Plugin
viewerBaseUrlis geconfigureerd, wordt deze gebruikt. - Zonder een van beide overschrijvingen gebruikt de viewer-URL standaard loopback
127.0.0.1. - Als Gateway-bindmodus
customis engateway.customBindHostis ingesteld, wordt die host gebruikt.
baseUrl-regels:
- Moet
http://ofhttps://zijn. - Query en hash worden geweigerd.
- Origin plus optioneel basispad is toegestaan.
Beveiligingsmodel
Viewer-hardening
Viewer-hardening
- Standaard alleen loopback.
- Getokeniseerde viewerpaden met strikte validatie van ID en token.
- CSP voor viewerrespons:
default-src 'none'- scripts en assets alleen van self
- geen uitgaande
connect-src
- Throttling van externe misses wanneer externe toegang is ingeschakeld:
- 40 fouten per 60 seconden
- 60 seconden lock-out (
429 Too Many Requests)
Verharding van bestandsrendering
Verharding van bestandsrendering
- Routering van screenshotbrowserverzoeken is standaard geweigerd.
- Alleen lokale viewer-assets van
http://127.0.0.1/plugins/diffs/assets/*zijn toegestaan. - Externe netwerkverzoeken worden geblokkeerd.
Browservereisten voor bestandsmodus
mode: "file" en mode: "both" hebben een Chromium-compatibele browser nodig.
Volgorde voor het bepalen:
Omgevingsvariabelen
OPENCLAW_BROWSER_EXECUTABLE_PATHBROWSER_EXECUTABLE_PATHPLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH
Diff PNG/PDF rendering requires a Chromium-compatible browser...
Probleemoplossing
Invoervalidatiefouten
Invoervalidatiefouten
Provide patch or both before and after text.— neem zowelbeforealsafterop, of geefpatchop.Provide either patch or before/after input, not both.— meng geen invoermodi.Invalid baseUrl: ...— gebruik eenhttp(s)-origin met optioneel pad, zonder query/hash.{field} exceeds maximum size (...)— verklein de payloadgrootte.- Afwijzing van grote patch — verminder het aantal patchbestanden of het totale aantal regels.
Toegankelijkheid van viewer
Toegankelijkheid van viewer
- De viewer-URL wordt standaard omgezet naar
127.0.0.1. - Voor scenario’s met externe toegang:
- stel Plugin
viewerBaseUrlin, of - geef
baseUrlper toolaanroep mee, of - gebruik
gateway.bind=customengateway.customBindHost
- stel Plugin
- Als
gateway.trustedProxiesloopback bevat voor een proxy op dezelfde host (bijvoorbeeld Tailscale Serve), mislukken onbewerkte loopback-viewerverzoeken zonder doorgestuurde client-IP-headers standaard gesloten. - Voor die proxytopologie:
- geef de voorkeur aan
mode: "file"ofmode: "both"wanneer je alleen een bijlage nodig hebt, of - schakel bewust
security.allowRemoteViewerin en stel PluginviewerBaseUrlin of geef een proxy-/publiekebaseUrlmee wanneer je een deelbare viewer-URL nodig hebt
- geef de voorkeur aan
- Schakel
security.allowRemoteVieweralleen in wanneer je externe viewertoegang bedoelt.
Rij met ongewijzigde regels heeft geen uitvouwknop
Rij met ongewijzigde regels heeft geen uitvouwknop
Dit kan gebeuren bij patchinvoer wanneer de patch geen uitbreidbare context bevat. Dit is verwacht en wijst niet op een viewerfout.
Artefact niet gevonden
Artefact niet gevonden
- Artefact verlopen door TTL.
- Token of pad gewijzigd.
- Opschoning heeft verouderde data verwijderd.
Operationele richtlijnen
- Geef de voorkeur aan
mode: "view"voor lokale interactieve reviews in canvas. - Geef de voorkeur aan
mode: "file"voor uitgaande chatkanalen die een bijlage nodig hebben. - Laat
allowRemoteVieweruitgeschakeld tenzij je implementatie externe viewer-URL’s vereist. - Stel expliciete korte
ttlSecondsin voor gevoelige diffs. - Vermijd het verzenden van geheimen in diffinvoer wanneer dat niet nodig is.
- Als je kanaal afbeeldingen agressief comprimeert (bijvoorbeeld Telegram of WhatsApp), geef dan de voorkeur aan PDF-uitvoer (
fileFormat: "pdf").
Diff-renderingengine mogelijk gemaakt door Diffs.