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 to opcjonalne narzędzie Plugin z krótkimi wbudowanymi wskazówkami systemowymi i towarzyszącą mu umiejętnością, która przekształca treść zmian w artefakt diff tylko do odczytu dla agentów.
Przyjmuje albo:
- tekst
beforeiafter - zunifikowany
patch
- adres URL przeglądarki gateway do prezentacji na canvas
- ścieżkę wyrenderowanego pliku (PNG lub PDF) do dostarczenia w wiadomości
- oba wyniki w jednym wywołaniu
Szybki start
Wyłącz wbudowane wskazówki systemowe
Jeśli chcesz zachować włączone narzędziediffs, ale wyłączyć jego wbudowane wskazówki promptu systemowego, ustaw plugins.entries.diffs.hooks.allowPromptInjection na false:
before_prompt_build pluginu diffs, pozostawiając dostępne Plugin, narzędzie i towarzyszącą umiejętność.
Jeśli chcesz wyłączyć zarówno wskazówki, jak i narzędzie, wyłącz zamiast tego Plugin.
Typowy przepływ pracy agenta
Przykłady danych wejściowych
- Przed i po
- Patch
Referencja danych wejściowych narzędzia
Wszystkie pola są opcjonalne, chyba że zaznaczono inaczej.Tekst oryginalny. Wymagany z
after, gdy pominięto patch.Zaktualizowany tekst. Wymagany z
before, gdy pominięto patch.Tekst zunifikowanego diff. Wzajemnie wyklucza się z
before i after.Wyświetlana nazwa pliku dla trybu przed i po.
Wskazówka nadpisania języka dla trybu przed i po. Nieznane wartości wracają do zwykłego tekstu.
Nadpisanie tytułu przeglądarki.
Tryb wyjścia. Domyślnie używa wartości domyślnej Plugin
defaults.mode. Przestarzały alias: "image" działa jak "file" i nadal jest akceptowany dla zgodności wstecznej.Motyw przeglądarki. Domyślnie używa wartości domyślnej Plugin
defaults.theme.Układ diff. Domyślnie używa wartości domyślnej Plugin
defaults.layout.Rozwiń niezmienione sekcje, gdy dostępny jest pełny kontekst. Tylko opcja dla pojedynczego wywołania (nie jest domyślnym kluczem Plugin).
Format wyrenderowanego pliku. Domyślnie używa wartości domyślnej Plugin
defaults.fileFormat.Preset jakości dla renderowania PNG lub PDF.
Nadpisanie skali urządzenia (
1-4).Maksymalna szerokość renderowania w pikselach CSS (
640-2400).TTL artefaktu w sekundach dla wyników przeglądarki i samodzielnego pliku. Maks. 21600.
Nadpisanie pochodzenia adresu URL przeglądarki. Nadpisuje
viewerBaseUrl Plugin. Musi być http lub https, bez query/hash.Starsze aliasy danych wejściowych
Starsze aliasy danych wejściowych
Nadal akceptowane dla zgodności wstecznej:
format->fileFormatimageFormat->fileFormatimageQuality->fileQualityimageScale->fileScaleimageMaxWidth->fileMaxWidth
Walidacja i limity
Walidacja i limity
beforeiaftermają maks. po 512 KiB.patchmaks. 2 MiB.pathmaks. 2048 bajtów.langmaks. 128 bajtów.titlemaks. 1024 bajty.- Limit złożoności patcha: maks. 128 plików i 120000 łącznych wierszy.
patchrazem zbeforelubafterjest odrzucany.- Limity bezpieczeństwa wyrenderowanego pliku (dotyczą PNG i PDF):
fileQuality: "standard": maks. 8 MP (8 000 000 wyrenderowanych pikseli).fileQuality: "hq": maks. 14 MP (14 000 000 wyrenderowanych pikseli).fileQuality: "print": maks. 24 MP (24 000 000 wyrenderowanych pikseli).- PDF ma także maksimum 50 stron.
Kontrakt szczegółów wyjściowych
Narzędzie zwraca ustrukturyzowane metadane wdetails.
Pola przeglądarki
Pola przeglądarki
Wspólne pola dla trybów, które tworzą przeglądarkę:
artifactIdviewerUrlviewerPathtitleexpiresAtinputKindfileCountmodecontext(agentId,sessionId,messageChannel,agentAccountId, gdy dostępne)
Pola pliku
Pola pliku
Pola pliku, gdy renderowany jest PNG lub PDF:
artifactIdexpiresAtfilePathpath(ta sama wartość cofilePath, dla zgodności z narzędziem wiadomości)fileBytesfileFormatfileQualityfileScalefileMaxWidth
Aliasy zgodności
Aliasy zgodności
Zwracane także dla istniejących wywołujących:
format(ta sama wartość cofileFormat)imagePath(ta sama wartość cofilePath)imageBytes(ta sama wartość cofileBytes)imageQuality(ta sama wartość cofileQuality)imageScale(ta sama wartość cofileScale)imageMaxWidth(ta sama wartość cofileMaxWidth)
| Tryb | Co jest zwracane |
|---|---|
"view" | Tylko pola przeglądarki. |
"file" | Tylko pola pliku, bez artefaktu przeglądarki. |
"both" | Pola przeglądarki plus pola pliku. Jeśli renderowanie pliku się nie powiedzie, przeglądarka nadal zwraca wynik z aliasem fileError i imageError. |
Zwinięte niezmienione sekcje
- Przeglądarka może pokazywać wiersze takie jak
N unmodified lines. - Kontrolki rozwijania w tych wierszach są warunkowe i nie są gwarantowane dla każdego rodzaju danych wejściowych.
- Kontrolki rozwijania pojawiają się, gdy wyrenderowany diff ma dane kontekstu możliwe do rozwinięcia, co jest typowe dla danych wejściowych przed i po.
- Dla wielu zunifikowanych danych wejściowych patcha pominięte treści kontekstu nie są dostępne w sparsowanych hunkach patcha, więc wiersz może pojawić się bez kontrolek rozwijania. To oczekiwane zachowanie.
expandUnchangedma zastosowanie tylko wtedy, gdy istnieje kontekst możliwy do rozwinięcia.
Wartości domyślne Plugin
Ustaw wartości domyślne dla całego Plugin w~/.openclaw/openclaw.json:
fontFamilyfontSizelineSpacinglayoutshowLineNumbersdiffIndicatorswordWrapbackgroundthemefileFormatfileQualityfileScalefileMaxWidthmodettlSeconds
Trwała konfiguracja adresu URL przeglądarki
Rezerwowa wartość należąca do Plugin dla zwracanych linków przeglądarki, gdy wywołanie narzędzia nie przekazuje
baseUrl. Musi być http lub https, bez query/hash.Konfiguracja bezpieczeństwa
false: żądania inne niż loopback do tras przeglądarki są odrzucane. true: zdalne przeglądarki są dozwolone, jeśli tokenizowana ścieżka jest prawidłowa.Cykl życia artefaktu i przechowywanie
- Artefakty są przechowywane w podfolderze tymczasowym:
$TMPDIR/openclaw-diffs. - Metadane artefaktu przeglądarki zawierają:
- losowy identyfikator artefaktu (20 znaków szesnastkowych)
- losowy token (48 znaków szesnastkowych)
createdAtiexpiresAt- zapisaną ścieżkę
viewer.html
- Domyślny TTL artefaktu wynosi 30 minut, gdy nie podano inaczej.
- Maksymalny akceptowany TTL przeglądarki wynosi 6 godzin.
- Czyszczenie uruchamia się oportunistycznie po utworzeniu artefaktu.
- Wygasłe artefakty są usuwane.
- Czyszczenie rezerwowe usuwa nieaktualne foldery starsze niż 24 godziny, gdy brakuje metadanych.
Adres URL przeglądarki i zachowanie sieciowe
Trasa przeglądarki:/plugins/diffs/view/{artifactId}/{token}
/plugins/diffs/assets/viewer.js/plugins/diffs/assets/viewer-runtime.js
baseUrl jest zachowywany także dla obu żądań zasobów.
Zachowanie konstrukcji adresu URL:
- Jeśli podano
baseUrlwywołania narzędzia, jest używane po ścisłej walidacji. - W przeciwnym razie, jeśli skonfigurowano
viewerBaseUrlPlugin, jest używane. - Bez żadnego z tych nadpisań adres URL przeglądarki domyślnie używa loopback
127.0.0.1. - Jeśli tryb bindowania gateway to
customi ustawionogateway.customBindHost, używany jest ten host.
baseUrl:
- Musi być
http://lubhttps://. - Query i hash są odrzucane.
- Dozwolone jest pochodzenie plus opcjonalna ścieżka bazowa.
Model bezpieczeństwa
Wzmocnienie bezpieczeństwa przeglądarki
Wzmocnienie bezpieczeństwa przeglądarki
- Domyślnie tylko loopback.
- Tokenizowane ścieżki przeglądarki ze ścisłą walidacją identyfikatora i tokenu.
- CSP odpowiedzi przeglądarki:
default-src 'none'- skrypty i zasoby tylko z tego samego źródła
- brak wychodzącego
connect-src
- Ograniczanie zdalnych nietrafień, gdy dostęp zdalny jest włączony:
- 40 niepowodzeń na 60 sekund
- 60-sekundowa blokada (
429 Too Many Requests)
Wzmocnienie bezpieczeństwa renderowania plików
Wzmocnienie bezpieczeństwa renderowania plików
- Trasowanie żądań przeglądarki zrzutów ekranu domyślnie odmawia dostępu.
- Dozwolone są tylko lokalne zasoby przeglądarki z
http://127.0.0.1/plugins/diffs/assets/*. - Zewnętrzne żądania sieciowe są blokowane.
Wymagania przeglądarki dla trybu pliku
mode: "file" i mode: "both" wymagają przeglądarki zgodnej z Chromium.
Kolejność rozwiązywania:
Zmienne środowiskowe
OPENCLAW_BROWSER_EXECUTABLE_PATHBROWSER_EXECUTABLE_PATHPLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH
Diff PNG/PDF rendering requires a Chromium-compatible browser...
Rozwiązywanie problemów
Błędy walidacji danych wejściowych
Błędy walidacji danych wejściowych
Provide patch or both before and after text.— podaj zarównobefore, jak iafter, albo podajpatch.Provide either patch or before/after input, not both.— nie mieszaj trybów wejścia.Invalid baseUrl: ...— użyj źródłahttp(s)z opcjonalną ścieżką, bez zapytania/fragmentu.{field} exceeds maximum size (...)— zmniejsz rozmiar ładunku.- Odrzucenie dużej poprawki — zmniejsz liczbę plików poprawki lub łączną liczbę wierszy.
Dostępność przeglądarki
Dostępność przeglądarki
- URL przeglądarki domyślnie rozwiązuje się do
127.0.0.1. - W scenariuszach dostępu zdalnego:
- ustaw
viewerBaseUrlpluginu, albo - przekaż
baseUrldla każdego wywołania narzędzia, albo - użyj
gateway.bind=customigateway.customBindHost
- ustaw
- Jeśli
gateway.trustedProxiesobejmuje loopback dla proxy na tym samym hoście (na przykład Tailscale Serve), surowe żądania przeglądarki przez loopback bez przekazanych nagłówków IP klienta są z założenia zamykane niepowodzeniem. - Dla tej topologii proxy:
- preferuj
mode: "file"albomode: "both", gdy potrzebujesz tylko załącznika, albo - celowo włącz
security.allowRemoteVieweri ustawviewerBaseUrlpluginu albo przekaż proxy/publicznebaseUrl, gdy potrzebujesz udostępnialnego URL-a przeglądarki
- preferuj
- Włącz
security.allowRemoteViewertylko wtedy, gdy zamierzasz udostępnić zewnętrzny dostęp do przeglądarki.
Wiersz niezmodyfikowanych linii nie ma przycisku rozwijania
Wiersz niezmodyfikowanych linii nie ma przycisku rozwijania
Może się to zdarzyć dla wejścia poprawki, gdy poprawka nie zawiera rozwijalnego kontekstu. Jest to oczekiwane i nie oznacza awarii przeglądarki.
Nie znaleziono artefaktu
Nie znaleziono artefaktu
- Artefakt wygasł z powodu TTL.
- Token lub ścieżka się zmieniły.
- Czyszczenie usunęło nieaktualne dane.
Wskazówki operacyjne
- Preferuj
mode: "view"do lokalnych interaktywnych przeglądów w kanwie. - Preferuj
mode: "file"dla wychodzących kanałów czatu, które potrzebują załącznika. - Pozostaw
allowRemoteViewerwyłączone, chyba że Twoje wdrożenie wymaga zdalnych URL-i przeglądarki. - Ustaw jawne krótkie
ttlSecondsdla wrażliwych różnic. - Unikaj wysyłania sekretów w wejściu różnic, gdy nie jest to wymagane.
- Jeśli Twój kanał agresywnie kompresuje obrazy (na przykład Telegram lub WhatsApp), preferuj wyjście PDF (
fileFormat: "pdf").
Silnik renderowania różnic oparty na Diffs.