enhancement
major
minor
defect
critical
major
minor
major
#30253
tl-ai-core bindet die Playwright-Browser (Driver-Bundle, 200 MB) in jede Anwendung ein: Die Browser-Tools werden in das optionale Modul tl-ai-browser ausgelagert.
tl-ai-core 8.0.0-alpha12.819, Anwendung E-Home (haumacher/ehome #126).
tl-ai-core ist für seine Browser-Tools (Gruppe „egress“) von com.microsoft.playwright:driver-bundle abhängig. Eine Anwendung, die für den Chat von tl-ai-core abhängt und keine Browser-Tools bereitstellt, enthält dennoch die Browser: Die WAR-Datei von E-Home wuchs von 136 MB auf 367 MB (mit tl-chat und tl-ai-mcp-server; 164 MB ohne das Bundle). Für eine Anwendung, die als Debian-Paket auf kleinen Heimservern verteilt wird, stellt dies den größten Kostenfaktor dar.
Erwartet: Die Browser-Tools sind ein optionales Modul (oder die Abhängigkeit ist optional), sodass eine Anwendung sie hinzufügt, wenn sie sie freigibt.
Workaround in E-Home: ehome/pom.xml schließt das „driver-bundle“ aus „tl-ai-core“ aus; die Browser-Tools würden beim Aufruf fehlschlagen, und niemandem werden sie zugewiesen.
Lösung
- Neues Modul „tl-ai-browser“ (auf „tl-ai-core“, Paket „com.top_logic.tl.ai.browser“) mit den Headless-Browser-Tools „web-browser.*“ (BrowserTool, BrowserToolsService, die Browsersitzungen und deren Pool), die Cookie-Pools (CookiePoolService, Modellmodul „tl.ai.cookiepool“ mit seiner Tabelle), deren Tests sowie den Entwicklerartikel „ai/browser“. Es hängt ausschließlich von Playwright ab.
- tl-ai-core hängt nicht mehr von Playwright ab. Es behält webFetch und webSearch, den Egress-Proxy (FilteringProxy, nun öffentliche API, die mit dem Browser-Modul geteilt wird), die Browsing-Richtlinien, die URL-Herkunftsprüfungen und den Screenshot-Speicher bei.
- Die Funktion TL_webAccess von tl-ai-core deckt nur die Suche und das Abrufen ab. tl-ai-browser fügt die Funktion TL_webBrowser mit den Browser-Tools hinzu und übergibt sie an den Chat-Eingabe-Agenten TL_SingleAgent. Die Tool-Bezeichnungen der Browser-Tools stammen aus dem Bundle tl-ai-browser.app-messages.
- Der Feature-Starter „tl-starter-ai“ und der Archetyp enthalten „tl-ai-browser“ nicht; eine Anwendung, die Browser-Tools bereitstellt, fügt die Abhängigkeit hinzu (Artikel „application-project“). „tl-ai-demo“ hängt davon ab.
Migration
- Eine Anwendung, die die Browser-Tools (web-browser.*) oder Cookie-Pools nutzt, fügt die Abhängigkeit com.top-logic:tl-ai-browser hinzu. Eine vorhandene Datenbank wird beim Start ohne weitere Schritte übernommen.
- Ein eigener Agent, der die Skill TL_webAccess aufruft und benennt, benennt zusätzlich die Skill TL_webBrowser.
- Die in die Pakete com.top_logic.tl.ai.browser (BrowserToolsService, BrowserTool, …) und com.top_logic.tl.ai.browser.cookiepool (CookiePoolService) verschobenen Klassen; Konfigurationen und Code, die über den Klassennamen auf sie verweisen, müssen angepasst werden, z. B. durch ein Override <config service-class="com.top_logic.tl.ai.browser.BrowserToolsService">.
- Eine Anwendung ohne tl-ai-browser, deren Datenbank bereits Cookie-Pools enthält, behält die Tabelle „CookiePool“ ungenutzt bei; der Artikel ai/browser beschreibt die Migration, durch die diese entfernt wird.
- Ein Ausschluss von „driver-bundle“ aus „tl-ai-core“ (Workaround) kann aufgehoben werden.