Entwicklung & Code
npm als Sicherheitsrisiko: Warum Angriffe zunehmen und wie man vorbeugen kann
Wer mit npm arbeitet, kennt das Risiko: Beim Installieren einer neuen Bibliothek oder beim Aktualisieren bestehender Pakete wird Code aus fremden Quellen in die eigene Umgebung übernommen. Dieser Code ist weder geprüft noch stammt er notwendigerweise von der Person, die offiziell als Maintainer geführt wird. Angreiferinnen und Angreifer kapern Accounts, schleusen Schadsoftware ein und gefährden dadurch Projekte und Infrastruktur. Die jüngste Malware „Shai-Hulud“ hat dies erneut in großem Stil demonstriert.
Golo Roden ist Gründer und CTO von the native web GmbH. Er beschäftigt sich mit der Konzeption und Entwicklung von Web- und Cloud-Anwendungen sowie -APIs, mit einem Schwerpunkt auf Event-getriebenen und Service-basierten verteilten Architekturen. Sein Leitsatz lautet, dass Softwareentwicklung kein Selbstzweck ist, sondern immer einer zugrundeliegenden Fachlichkeit folgen muss.
Die Schadsoftware verbreitete sich selbstständig über npm-Pakete. Hunderte Module waren betroffen, darunter zahlreiche mit zehntausenden bis hunderttausenden Downloads. Die Malware griff Daten ab, manipulierte GitHub-Workflows und infizierte auf diesem Weg weitere Pakete. Wer diese Pakete installierte, konnte unbemerkt Zugangsdaten verlieren, darunter Token für private Repositories. Im schlimmsten Fall erlangten Unbefugte so Kontrolle über Quellcode und Build-Pipelines.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.
Risikofaktor npm // deutsch
Diese Vorfälle reihen sich ein in eine Serie von Supply-Chain-Angriffen im JavaScript-Ökosystem. 2018 wurde etwa das Paket event-stream kompromittiert, nachdem der ursprüngliche Maintainer es an eine fremde Person übergeben hatte. 2021 war ua-parser-js betroffen und schleuste Krypto-Miner ein. Das Muster ist stets ähnlich: Ein populäres Paket mit vielen Downloads wird übernommen, eine neue Version mit Schadcode erscheint und fließt sofort in unzählige Projekte.
Warum gerade JavaScript?
Warum gerade das JavaScript-Ökosystem so anfällig ist, wird bei näherer Betrachtung deutlich. JavaScript verfügt über keine besonders umfangreiche Standardbibliothek. Daraus hat sich in den vergangenen 20 Jahren eine Kultur entwickelt, selbst kleinste Funktionen als eigenständige Pakete zu veröffentlichen: für das Trimmen von Strings, das Formatieren von Datumswerten oder das tiefe Klonen von Objekten. Aus wenigen Zeilen Code entstehen so Module mit Millionen Downloads. Selbst wer nur einige Dutzend direkte Abhängigkeiten pflegt, zieht in der Regel Hunderte oder Tausende transitive Pakete mit.
(Bild: Alexander Supertramp/Shutterstock.com)
Neun von zehn Webanwendungen haben Sicherheitslücken – höchste Zeit für Web Developer, zu handeln. Auf dem ersten enterJS Web Security Day am 9. Oktober 2025 geht es um automatisierte Sicherheitsprüfungen, den Einsatz von Passkeys und den Schutz vor KI-basierten Angriffen.
Hinzu kommt die äußerst niedrige Einstiegshürde beim Veröffentlichen von Paketen. Eine Überprüfung des Quellcodes, Code-Signing oder eine Identitätsprüfung sind bislang nicht verpflichtend. Ein einfaches npm publish
genügt. Das hat die Community über Jahre hinweg enorm beflügelt und Innovationen ermöglicht, öffnet jedoch zugleich Tür und Tor für Angriffe. Jeder kann Pakete bereitstellen, und solange kein Verdacht aufkommt, bleiben sie verfügbar.
Besonders kritisch ist, dass npm beim Installieren sofort Skripte ausführt, die theoretisch nahezu unbegrenzte Möglichkeiten haben: Dateien lesen, Daten abgreifen, Systemkommandos ausführen. Da es keine Sandbox gibt, geschieht dies direkt in der Build-Umgebung, oft mit denselben Berechtigungen wie die CI/CD-Pipeline. Wer mit Node.js arbeitet, moderne Frontends mit React oder Vue entwickelt oder Build-Tools wie Webpack, Vite oder ESLint verwendet, ist praktisch immer Teil dieses Systems. Sich dem komplett zu entziehen, ist kaum möglich.
npm, GitHub und Microsoft haben das Problem ignoriert
Über viele Jahre war bekannt, dass diese Strukturen ein erhebliches Sicherheitsrisiko darstellen, dennoch blieb der Handlungsdruck gering. GitHub, das npm vor Jahren übernommen hat, und Microsoft als Mutterkonzern haben lange Zeit nur minimale Schutzmechanismen etabliert. Zwar existiert mit npm audit
eine Funktion, die bekannte Schwachstellen meldet. Doch diese beschränkt sich im Wesentlichen auf eine Abfrage gegen bekannte Sicherheitsdatenbanken (CVEs). Neue, noch nicht erfasste Schadsoftware bleibt unerkannt. Warnungen beim Installieren gibt es, sie lassen sich jedoch leicht übersehen.
Verpflichtende Sicherheitsmechanismen fehlten lange: keine Zwei-Faktor-Authentifizierung für Paketveröffentlichende, keine konsequente Prüfung der Herkunft von Releases, keine automatische Quarantäne für verdächtige Pakete. Das machte npm über Jahre hinweg zu einem idealen Spielfeld für Supply-Chain-Angriffe. Viele Organisationen verließen sich darauf, dass jemand in der Community schon rechtzeitig Alarm schlagen würde. Häufig geschah das tatsächlich, jedoch oft zu spät.
GitHub als Eigentümer hätte deutlich früher reagieren können – spätestens nach den ersten großen Vorfällen. Anstatt grundlegende Sicherheitsmechanismen einzuführen, beließ man es lange bei punktuellen Warnungen und dem Hinweis auf npm audit
. Erst nach dem Shai-Hulud-Wurm scheint nun Bewegung in das Thema zu kommen. Erstmals werden verpflichtende Maßnahmen angekündigt: Künftig müssen alle, die Pakete veröffentlichen, Zwei-Faktor-Authentifizierung aktivieren. Token werden zeitlich befristet und fein granular, alte unbefristete Zugänge verschwinden. Damit soll es Angreiferinnen und Angreifern erschwert werden, einmal gestohlene Zugangsdaten langfristig auszunutzen.
Trusted Publishing und andere Ansätze
Parallel treibt GitHub „Trusted Publishing“ voran. Damit sollen Releases kryptografisch signiert und aus einer sauberen Continuous-Integration-Pipeline stammen. Ziel ist es, die Herkunft von Veröffentlichungen nachweisbar zu machen und Manipulationen zu verhindern. Diese Richtung ist grundsätzlich sinnvoll, kommt jedoch spät. In anderen Bereichen, etwa App-Stores oder Linux-Distributionen, sind signierte Pakete und Build-Prüfungen seit Jahren Standard. npm hat diese Entwicklung lange verschlafen und muss nun aufholen.
Neben GitHub versuchen auch andere Werkzeuge, die Situation zu verbessern. Ein Beispiel ist pnpm, das mit Version 10.16 die Option minimumReleaseAge eingeführt hat. Damit lässt sich festlegen, dass neue Pakete oder Updates nicht sofort installiert werden, sondern erst, nachdem sie eine bestimmte Zeit verfügbar waren. So können Entwicklerinnen und Entwickler beispielsweise angeben, dass eine Version mindestens 24 Stunden alt sein muss, bevor sie in Projekten genutzt wird. Die Idee dahinter: Wenn Schadcode eingeschleust wird, soll die Community Zeit gewinnen, diesen zu entdecken und zu melden, bevor er sich weiterverbreitet.
Auf den ersten Blick wirkt dieser Ansatz pragmatisch. Er reduziert das Risiko, dass frisch kompromittierte Versionen sofort in Builds gelangen. Allerdings hat er auch klare Grenzen. Das Modell verlagert die Verantwortung vollständig auf die Nutzerinnen und Nutzer von Paketen. Es löst nicht das grundlegende Problem, dass prinzipiell jede Person beliebig Pakete veröffentlichen kann. Wer Updates verzögert, erhält zwar eine zusätzliche Beobachtungsphase, sitzt aber zugleich länger auf möglicherweise verwundbaren Versionen. Gerade bei Sicherheitsupdates ist das problematisch: Eigentlich möchte man diese so schnell wie möglich einspielen.
Wer übernimmt die Verantwortung?
Auch die neuen Sicherheitsmaßnahmen von GitHub und Funktionen wie minimumReleaseAge
bei pnpm sind damit eher Pflaster auf einer offenen Wunde. Sie zeigen zwar, dass endlich reagiert wird, doch die strukturellen Risiken bleiben. Das Fundament – ein offenes, schwer kontrollierbares Registry-System mit Millionen von Modulen – verändert sich nicht. Wer sich allein auf diese Änderungen verlässt, wird langfristig enttäuscht werden.
Damit bleibt die Verantwortung bei denjenigen, die npm aktiv nutzen. Organisationen und Einzelpersonen müssen selbst Schritte unternehmen, um Projekte abzusichern. Zahlreiche Risiken lassen sich mit vergleichsweise überschaubarem Aufwand verringern, wenn bewusst auf Abhängigkeiten geachtet, die Build-Pipeline gehärtet und laufend kontrolliert wird, welche Pakete tatsächlich ins System gelangen.
Abhängigkeiten reduzieren, Versionen pinnen & Co.
Der erste, einfache, aber wirkungsvolle Schritt besteht darin, Abhängigkeiten zu reduzieren. Prüfen Sie regelmäßig, welche Pakete wirklich notwendig sind. Jedes zusätzliche Modul ist ein potenzielles Einfallstor. Gerade im JavaScript-Umfeld besteht die Gewohnheit, selbst für triviale Aufgaben externe Pakete einzubinden. Häufig reicht es aus, kleine Hilfsfunktionen selbst zu schreiben oder native Funktionen der Sprache zu verwenden. Ein flacher Abhängigkeitsbaum senkt die Angriffsfläche erheblich.
Ebenso wichtig ist es, Versionen gezielt zu steuern. Anstatt flexible Versionsbereiche zu definieren, sollten exakte Versionsnummern eingesetzt werden. Lockfiles gehören ins Repository und sollten Teil des Build-Prozesses sein. CI/CD-Pipelines sollten nur freigegebene Versionen installieren, beispielsweise durch den Einsatz von npm ci
oder pnpm install --frozen-lockfile
. So wird verhindert, dass unbemerkt neue, potenziell kompromittierte Versionen eingebunden werden.
Auch beim Umgang mit Skripten ist Vorsicht geboten. Viele Angriffe verstecken sich in Pre- oder Post-Install-Hooks. Falls diese nicht benötigt werden, empfiehlt es sich, ihre Ausführung global zu deaktivieren, zum Beispiel über npm install --ignore-scripts
. Wenn Skripte unvermeidbar sind, sollten sie gezielt geprüft und ihre Herkunft hinterfragt werden.
Vertrauen schaffen
Ein weiterer wichtiger Bereich betrifft Vertrauen und Kontrolle. Aktivieren Sie konsequent Zwei-Faktor-Authentifizierung für alle Accounts, die Pakete veröffentlichen oder Token erzeugen. Verwenden Sie moderne Token-Formate, die zeitlich befristet und minimal berechtigt sind. Bewahren Sie geheime Zugangsdaten strikt getrennt vom Quellcode auf. Konfigurationsdateien mit Klartext-Passwörtern dürfen nicht ins Repository gelangen, Token gehören weder in Logs noch in ungeschützte Umgebungsvariablen. Fremder Code könnte ansonsten auf diese Informationen zugreifen.
Wer selbst Pakete veröffentlicht, sollte sich mit dem bereits erwähnten Konzept des Trusted Publishing vertraut machen. Dadurch lassen sich Releases kryptografisch signieren und ihre Herkunft aus einer definierten CI/CD-Pipeline nachweisen. Das erschwert es Angreiferinnen und Angreifern erheblich, sich in den Veröffentlichungsprozess einzuklinken, und stärkt gleichzeitig das Vertrauen der Nutzenden in die Integrität des Pakets.
Vor der Installation neuer Pakete ist eine manuelle Überprüfung empfehlenswert. Ein kurzer Blick in das zugehörige Repository hilft, die Vertrauenswürdigkeit einzuschätzen:
- Gibt es aktuelle Commits?
- Reagieren Maintainer auf Meldungen?
- Sind plötzliche Eigentümerwechsel oder verdächtige Änderungen erkennbar?
Solche Prüfungen dauern nur wenige Minuten, können aber langfristig große Sicherheitsprobleme vermeiden.
Monitoring und Auditing
Darüber hinaus ist laufendes Monitoring zentral. npm audit
bietet eine schnelle Grundprüfung bekannter Schwachstellen. Tools wie Dependabot oder Renovate schlagen automatisch Sicherheitsupdates vor. Dienste wie Socket oder Snyk gehen sogar noch einen Schritt weiter, indem sie nicht nur bekannte Lücken erkennen, sondern auch auffällige Veränderungen beobachten – etwa neu eingeführte Installationsskripte. Entscheidend ist, Warnungen ernst zu nehmen und regelmäßig Zeit für deren Bearbeitung einzuplanen. Wer besonders vorsichtig agieren möchte, kann neue Versionen zunächst in einer internen Testumgebung beobachten, bevor sie produktiv genutzt werden. So bleibt Flexibilität erhalten, um sicherheitskritische Updates trotzdem sofort einzuspielen.
Ein unterschätzter Faktor ist die Sicherheit von Build- und Deployment-Pipelines. Wenn es Angreiferinnen oder Angreifern gelingt, diese zu kompromittieren, werden alle folgenden Releases unsicher – unabhängig davon, wie sorgfältig einzelne Pakete geprüft wurden. Die Build-Umgebung sollte nur wohldefinierte Registries verwenden und strikt von der Deployment-Umgebung getrennt sein. So lässt sich verhindern, dass ein kompromittierter Build-Prozess direkt auch das Ausrollen von Schadcode ermöglicht.
Der Umgang mit Geheimnissen ist in CI/CD-Umgebungen besonders heikel. API-Keys, Token und Passwörter dürfen weder in Logs erscheinen noch ungeschützt in Variablen stehen, die von Drittpaketen eingesehen werden könnten. Prinzipien wie Least Privilege sind hier entscheidend: Token sollten ausschließlich die minimal notwendigen Rechte besitzen. Ein reines Lese-Token ist in vielen Szenarien ausreichend und reduziert die Angriffsfläche erheblich.
Hilfreich ist zudem, automatisiert Metadaten zu erzeugen. Am Ende eines Builds kann ein Dependency-Tree erstellt und archiviert werden. Dadurch lässt sich bei Sicherheitsvorfällen nachvollziehen, welche Paketversionen im Einsatz waren. Tools wie npm ls
oder pnpm list
unterstützen dabei. Der Aufwand ist gering, der Nutzen im Ernstfall sehr groß.
Sicherheit ist (auch) eine kulturelle Frage
Letztlich ist Sicherheit kein Einzelthema, sondern Teil der Teamkultur. Neue Abhängigkeiten sollten genauso sorgfältig geprüft werden wie eigener Code. Pull Requests, die neue Pakete einführen oder bestehende aktualisieren, verdienen besondere Aufmerksamkeit:
- Braucht das Projekt dieses Paket wirklich?
- Wird es aktiv gepflegt?
- Gibt es ungewöhnliche Veränderungen?
Verbindliche Richtlinien sind hier hilfreich. Dokumentieren Sie beispielsweise, welche Registries akzeptiert werden, wie Lockfiles zu verwenden sind, ob Parameter wie --ignore-scripts
standardmäßig gesetzt werden und welche Prüfwerkzeuge in der Pipeline laufen müssen. So entstehen feste Standards, die Sicherheit im Alltag erleichtern.
Auch organisatorisch sollte Zeit und Budget für Sicherheitsaufgaben eingeplant werden. Viele Probleme entstehen nicht aus Gleichgültigkeit, sondern aus Termindruck. Regelmäßige Updates, Audits, Schulungen und Verbesserungen der Build-Prozesse brauchen feste Kapazitäten. Ebenso wichtig ist es, informiert zu bleiben: Sicherheitsvorfälle wie Shai-Hulud werden häufig zuerst in Entwickler-Communities oder auf Plattformen wie GitHub bekannt. Wer entsprechende Feeds oder Benachrichtigungen abonniert, kann schneller reagieren.
Was das konkret bedeutet
Die Sicherheit im JavaScript-Ökosystem bleibt somit leider eine Daueraufgabe. GitHub und pnpm haben erste sinnvolle Schritte unternommen, aber sie kommen spät und lösen die grundlegenden Probleme nicht. Das offene, kaum kontrollierbare Netzwerk aus Millionen Paketen macht npm weiterhin anfällig. Wirklich geschützt ist nur, wer selbst Verantwortung übernimmt: Abhängigkeiten reduzieren, Versionen exakt pinnen, Lockfiles einsetzen, Accounts absichern, Monitoring und Auditing etablieren, CI/CD härten und Sicherheit als festen Bestandteil der Entwicklungskultur verankern.
Wer diese Maßnahmen konsequent umsetzt, kann die Risiken deutlich verringern. Angriffe wie Shai-Hulud verschwinden dadurch nicht, treffen jedoch Projekte seltener und weniger hart. So lässt sich schneller reagieren und im besten Fall verhindern, dass Schadcode überhaupt produktiv eingesetzt wird.
(rme)
Entwicklung & Code
OpenAI Dev Days: Ein Ökosystem rund um ChatGPT
Unternehmen können künftig Apps für ChatGPT entwickeln und bereitstellen. Es ist der nächste Versuch von OpenAI, ein Ökosystem zu schaffen, das Menschen für ihr digitales Leben nicht mehr verlassen müssen. Als erste Partner sind unter anderem Spotify, Canva, Booking.com, OpenTable, Uber und Zillow auf den OpenAI Dev Days benannt worden. Letztgenannter Dienst ist eine Immobilienplattform, die als Erstes bereits in ChatGPT verfügbar ist, andere folgen bald. Grundsätzlich ist zunächst ein Start in den USA geplant, bis die Integration von Apps in der EU möglich ist, wird es noch ein bisschen dauern.
Entwickler, die das ChatGPT-SDK nutzen, können in ihren Apps Tags setzen, um eine Aufgabe zu erledigen. Nutzer kommunizieren die Aufgabe im ChatGPT-Interface. Dort können sie auch Kontext hinzufügen oder Ratschläge einholen, die ebenfalls umgesetzt werden. Beispielsweise kann ChatGPT auf Wunsch eine Playlist für eine bestimmte Laune oder einen Anlass zusammenstellen und diese direkt von Spotify abspielen lassen. In einer Demo hat ein OpenAI-Mitarbeiter gezeigt, wie man in ChatGPT ein Poster beschreiben kann, das von Canva umgesetzt wird.
OpenAI hatte bereits mit Erweiterungen und GPTs ähnliche Vorhaben an den Start gebracht. Auch da sollten andere Dienste via ChatGPT bedient werden. Mit Verbesserungen des Chatbots und agentischen Fähigkeiten erweitert sich nun deutlich der Umfang dessen, was möglich ist. Es sind allerdings auch immer nahezu dieselben Verdächtigen, die gleich zu Beginn an Bord sind. OpenTable hat noch jede Möglichkeit genutzt, den Dienst zum Reservieren eines Tisches im Restaurant auf anderen Wegen als der eigenen Webseite und App anzubieten. Neben OpenAI etwa auch via Googles KI-Assistenten als der noch Bard hieß.
Suchen, Shoppen, Kaufen via ChatGPT
Das Bestreben OpenAIs, Menschen vollumfänglich digital zu versorgen, zeigt sich auch in der erst kürzlich vorgestellten Funktion, zum Bezahlen direkt via ChatGPT. Auch zum Shoppen muss dann der Chatbot nicht mehr verlassen werden. Man fragt ihn nach dem besten Produkt einer bestimmten Kategorie und schlägt direkt zu. Online-Händler haben dann zwar im Zweifel einen Vorteil durch die schnelle Verfügbarkeit, niemand muss umständlich einen neuen Account anlegen – all das kann (zumindest in der Theorie) ChatGPT für einen erledigen. Allerdings fehlt auch der Besuch einer Webseite und damit einhergehende Werbemöglichkeiten für weitere Produkte. In den USA ist Etsy bereits dabei. Weitere Shops sollen folgen.
Mit dem Update des Videogenerators Sora auf Version 2 ist zudem das damit einhergehende Soziale Netzwerk erweitert worden. Sora kam bereits mit einem Feed daher, in dem KI-generierte Videos gezeigt wurden. Man konnte diese teilen und als Inspiration nehmen. Nun gibt es eine iOS-App namens Sora, die es erlaubt, Videos anderer Nutzer zu remixen, sich auszutauschen und freilich Videos zu erstellen und zu teilen. Mit Cameos kann man sich selbst in Aufnahmen integrieren. Auch die Sora-App ist zunächst nur in den USA und Kanada über eine Warteliste verfügbar.
Meta hat erst kürzlich Vibes eingeführt, einen Feed für KI-generierte Videos. Sie lassen sich in der Meta AI App entdecken und sind daher auch für alle Menschen bereits verfügbar.
OpenAI hat auf den Dev Days auch ein neues AgentKit vorgestellt sowie eine API für Sora 2. Codex bekommt eine Slack-Integration und ebenfalls ein SDK. Neu ist zudem ein kleineres Voice-Model, das 70 Prozent günstiger sein soll als das bisherige große gpt-realtime, sowie ein ebenfalls kleineres gpt-image-1-mini, das sogar 80 Prozent im Vergleich zum Vorgänger einsparen soll.
(emw)
Entwicklung & Code
iLLM-A*: KI beschleunigt Pfadplanung um Faktor 1000
Die auf arXiv veröffentlichte Arbeit „A 1000× Faster LLM-enhanced Algorithm For Path Planning in Large-scale Grid Maps“ von Forschenden der National University of Defense Technology in China stellt einen neuen Algorithmus vor, der die Effizienz der Pfadplanung auf großen Gitterkarten erheblich steigern soll. Der Ansatz iLLM-A* kombiniert ein Sprachmodell mit einem optimierten A*-Algorithmus und soll die Suchzeit im Vergleich zu bestehenden Methoden um mehr als den Faktor 1000 reduzieren. Davon könnten potenzielle Anwendungsfelder wie autonome Robotik, Logistikplanung und die KI-Steuerung in komplexen Simulationen oder Videospielen profitieren.
Die Pfadplanung in großen, gitterbasierten Umgebungen stellt für traditionelle Wegfindungsalgorithmen wie A* und Dijkstra eine erhebliche rechnerische Herausforderung dar. Mit zunehmender Kartengröße steigen Zeit- und Speicherkomplexität überproportional an, was Echtzeitanwendungen in Bereichen wie Robotik oder der Simulation komplexer Systeme erschwert. Forscher stellen nun mit iLLM-A* einen hybriden Ansatz vor, der diese Beschränkungen adressiert.
Skalierungsgrenzen bestehender Algorithmen
Die Studie analysiert zunächst die Schwächen des bisherigen State-of-the-Art-Ansatzes LLM-A*. Dieser nutzt ein Large Language Model (LLM), um eine Sequenz von Wegpunkten zu generieren, zwischen denen dann der A*-Algorithmus kürzere, lokale Pfade sucht. Obwohl dieser Ansatz den globalen Suchraum reduziert, identifizierten die Forscher drei wesentliche Engpässe, die seine Leistung auf großen Karten (definiert als N ≥ 200, wobei N die Kantenlänge des Gitters ist) limitieren:
- Die Verwendung linearer Listen für die
OPEN
– undCLOSED
-Mengen (im Prinzip die Listen der möglichen und der bereits besuchten Wegpunkte) im A*-Algorithmus führt zu einer hohen Zeitkomplexität bei Such- und Einfügeoperationen. - Die global geführten Listen wachsen mit der Kartengröße stark an, was zu einem hohen Speicherverbrauch führt.
- LLMs neigen zur „räumlichen Illusion“ und generieren stochastische Wegpunkte, die redundant sein oder von der optimalen Route abweichen können, was den nachfolgenden A*-Suchprozess ineffizient macht.
Der von dem Team vorgestellte Algorithmus iLLM-A* (innovative LLM-enhanced A*) begegnet diesen drei Punkten mit gezielten Optimierungen:
- Die
CLOSED
-Liste wurde durch eine Hash-basierte Datenstruktur ersetzt. Dies reduziert die Komplexität der Abfrage, ob ein Knoten bereits expandiert wurde, von der Größenordnung O(N) auf durchschnittlich O(1). - Eine verzögerte Aktualisierungsstrategie für die Heuristikwerte in der
OPEN
-Liste vermeidet kostspielige Neuberechnungen für den gesamten Listenumfang. - Die Forscher setzen eine zweistufige Kollisionserkennung ein. Zunächst prüft ein rechenschonender Test mittels Axis-Aligned Bounding Boxes (AABB) auf potenzielle Kollisionen. Nur bei Überschneidung der Bounding Boxes wird eine präzise, aber aufwendigere Kollisionsprüfung durchgeführt.
Inkrementelles Lernen zur Erzeugung von Wegpunkten
Um die Qualität der vom LLM generierten Wegpunkte zu verbessern, haben die Forscher einen dynamischen Lernprozess implementiert: Dazu nutzt das System eine erweiterbare Few-Shot-Beispieldatenbank. Nachdem das LLM für eine Trainingskarte Wegpunkte generiert und der Algorithmus einen Pfad geplant hat, wird dieser Pfad anhand vordefinierter Metriken evaluiert. Diese Kriterien umfassen die Abweichung von der optimalen Pfadlänge sowie den Zeit- und Speicherverbrauch im Vergleich zu einer reinen A*-Lösung. Nur wenn der geplante Pfad die Qualitäts-Schwellenwerte erfüllt, wird das Paar aus Karte und generierten Wegpunkten als valides Beispiel in die Datenbank aufgenommen. Dies ermöglicht dem LLM, seine Strategie zur Wegpunkterzeugung iterativ an diverse Umgebungen anzupassen.
Prompt-Vorlage für die Erzeugung von Wegpunkten mittels LLM
(Bild: Yan Pan et. al)
Empirisch fundierte Selektion der Wegpunkte
Eine empirische Untersuchung der Forscher zeigte, dass eine hohe Anzahl von Wegpunkten den Rechenaufwand überproportional erhöht, ohne die Pfadqualität signifikant zu verbessern. Basierend auf diesen Ergebnissen wurde eine einfache, effektive Auswahlregel implementiert: Wenn das LLM mehr als zwei Wegpunkte generiert, verwenden sie für die anschließende A*-Suche ausschließlich die ersten beiden Wegpunkte, die am nächsten zum Startpunkt liegen. Dadurch minimiert sich die Anzahl der auszuführenden A*-Suchläufe und damit der Gesamtaufwand erheblich.
Die Evaluation auf verschiedenen Kartengrößen (N = 50 bis 450) zeigte laut den Forschern eine deutliche Überlegenheit von iLLM-A* gegenüber den Vergleichsmethoden (A*, Opt-A*, LLM-A*). iLLM-A* erzielte in den Untersuchungen bei der Suchzeit des kürzesten Wegs eine durchschnittliche Beschleunigung um den Faktor 1000 im Vergleich zu LLM-A*. In extremen Fällen lag die Beschleunigung sogar bei einem Faktor von knapp 2350 gegenüber LLM-A*. Der Speicherbedarf konnte um bis zu 58,6 Prozent im Vergleich zu LLM-A* reduziert werden. Auf einer Karte mit N=450 benötigte iLLM-A* 3,62 MByte, während der optimierte A*-Algorithmus (Opt-A*) allein 28,67 MByte belegte. Ferner wiesen die von iLLM-A* generierten Pfade eine geringere durchschnittliche Abweichung von der optimalen Länge auf (104,39 Prozent vs. 107,94 Prozent bei LLM-A*). Dabei war die Standardabweichung der Pfadlänge signifikant geringer, was auf eine höhere Stabilität und Vorhersagbarkeit der Ergebnisse hindeute, sagt das Forschungsteam.
Sollte sich diese massive Reduktion von Rechenzeit und Speicherbedarf auf die Wegfindung in komplexen Umgebungen anwenden lassen, eröffnet dies weitreichende Anwendungsmöglichkeiten. Konkrete Szenarien reichen von der dynamischen Navigation autonomer Roboter in der Logistik über die intelligente Steuerung von Charakteren in großen Videospielwelten bis zu schnellen Simulationen in digitalen Zwillingen.
(vza)
Entwicklung & Code
Software Testing: Wie KI die Anforderungen in Softwaretests verbessert
In dieser Episode sind Andreas Günther und Breno Pinheiro bei Richard Seidl zu Gast. Die drei sprechen über KI für bessere Anforderungen und eine tragfähige Testbasis. Sie zeigen, warum reiner Text nicht reicht und wie Modelle, Use Cases, Aktivitätsdiagramme und PlantUML Klarheit schaffen. KI unterstützt, wenn Teams Kontext, Scope und Begriffe sauber definieren und Feedback iterativ nutzen. Längere, wiederverwendbare Prompts statt Bauchgefühl. Der Blick reicht von Praxis in verschiedenen Branchen bis zu Agilität, Lernkultur und Verantwortung im Umgang mit Daten.
Wie die beiden Gäste betonen, weiß die KI umso mehr, was das Unternehmen überhaupt macht, je mehr gute Anforderungen als Trainingsbasis vorhanden sind.
Bei diesem Podcast dreht sich alles um Softwarequalität: Ob Testautomatisierung, Qualität in agilen Projekten, Testdaten oder Testteams – Richard Seidl und seine Gäste schauen sich Dinge an, die mehr Qualität in die Softwareentwicklung bringen.
Die aktuelle Ausgabe ist auch auf Richard Seidls Blog verfügbar: „Mit KI mehr Qualität bei Anforderungen – Andreas Günther, Breno Pinheiro“ und steht auf YouTube bereit.
(mai)
-
UX/UI & Webdesignvor 2 Monaten
Der ultimative Guide für eine unvergessliche Customer Experience
-
UX/UI & Webdesignvor 1 Monat
Adobe Firefly Boards › PAGE online
-
Social Mediavor 2 Monaten
Relatable, relevant, viral? Wer heute auf Social Media zum Vorbild wird – und warum das für Marken (k)eine gute Nachricht ist
-
Entwicklung & Codevor 2 Monaten
Posit stellt Positron vor: Neue IDE für Data Science mit Python und R
-
Entwicklung & Codevor 1 Monat
EventSourcingDB 1.1 bietet flexiblere Konsistenzsteuerung und signierte Events
-
UX/UI & Webdesignvor 3 Wochen
Fake It Untlil You Make It? Trifft diese Kampagne den Nerv der Zeit? › PAGE online
-
Apps & Mobile Entwicklungvor 3 Monaten
Firefox-Update 141.0: KI-gestützte Tab‑Gruppen und Einheitenumrechner kommen
-
Online Marketing & SEOvor 2 Monaten
So baut Googles NotebookLM aus deinen Notizen KI‑Diashows