Das Anthropic-Team startete ohne jegliche Rust-Vorerfahrung und schloss die sprachübergreifende Rekonstruktion der Kern-API mithilfe von Claude ab: Der CPU-Verbrauch wird um 40 % eingespart, die Latenz sinkt um 20 %.
Anthropic hat kürzlich eine bemerkenswerte technische Umstellung abgeschlossen: Ein Team, das ursprünglich über keine Rust-Entwickler verfügte, hat mithilfe von Claude die Messages API des Unternehmens von Python auf Rust migriert. Laut Katelyn Lesse, Leiterin für Plattformtechnik bei Anthropic, sank der CPU-Ressourcenverbrauch der betreffenden Dienste nach der Umstellung um etwa 40 % bis 50 %, und die Latenzzeit für das erste Token verbesserte sich um etwa 10 % bis 20 %.
In diesem Projekt übernahm Claude einen großen Teil der Codeerstellungsarbeit, während die menschlichen Ingenieure hauptsächlich für das Systemarchitekturdesign, die Migrationsstrategie und die Validierungslösung verantwortlich waren. Ein komplexes Projekt, das ursprünglich eine große Menge manueller Codierung erforderte, kann heute mithilfe von KI abgeschlossen werden. Nun stellt sich die Frage: Was können Software-Ingenieure noch tun, wenn KI bereits so komplexe Entwicklungsaufgaben übernehmen kann? Und wie sollen sie ihren eigenen Wert unter Beweis stellen?
Katelyn ist diesbezüglich sehr optimistisch. Am 26. Oktober veröffentlichte Katelyn auf X einen ausführlichen Artikel mit dem Titel „The new set of problems for engineers to solve“. Darin erwähnt sie, dass für Software-Ingenieure jetzt eine hervorragende Zeit ist. Obwohl KI die Arbeitsweise von Ingenieuren verändert, bringt sie auch eine Reihe von technischen Herausforderungen mit sich, denen man in der Vergangenheit nie gegenüberstand.
Diese Optimismus ist nicht unbegründet. Wenn Agenten nicht mehr nur Fragen beantworten und einfache Aufgaben ausführen, sondern beginnen, lange Zeit autonom zu laufen, miteinander zusammenzuarbeiten und sogar an komplexen wissenschaftlichen Forschungs- und technischen Projekten teilzunehmen, stehen die vorhandene Softwareinfrastruktur, Authentifizierung und Autorisierung, Sicherheitsisolation sowie Überwachungsmechanismen vor neuen Herausforderungen.
Aus Katelyns Sicht bedeuten diese Herausforderungen auch neue technische Anforderungen, die genau die Richtung sind, in die Software-Ingenieure in Zukunft ihre Energie stecken sollten. Für Ingenieure, die über ihren eigenen beruflichen Wert nachdenken, bietet dies möglicherweise eine andere Perspektive für die Zukunft.
1 Können Kubernetes noch standhalten, wenn Zehntausende Agenten gleichzeitig laufen?
Ein Agent, der die Arbeit koordiniert, kann Aufgaben an mehrere Unteragenten verteilen; verschiedene Agenten können jeweils die Ausführung, Überprüfung, Bewertung und andere Arbeiten übernehmen und dann die Ergebnisse zusammenfassen. Mit zunehmender Komplexität der Aufgaben kann die Anzahl der an der Zusammenarbeit beteiligten Agenten stetig steigen, und einige Aufgaben müssen sogar mehrere Stunden oder Tage lang ununterbrochen laufen. Wenn Zehntausende Agenten gleichzeitig laufen, kann die vorhandene Infrastruktur diese Workloads effizient verwalten?
Katelyn erwähnte Kubernetes. Als weit verbreitete Container-Orchestrierungsplattform kann Kubernetes die Anwendungsbereitstellung, Skalierung und Fehlerwiederherstellung verwalten. Es kann sowohl zustandslose Anwendungen ausführen als auch zustandsbehaftete Workloads unterstützen, aber die Ausführungsmerkmale von Agenten stellen neue Anforderungen an die vorhandenen Verwaltungsmethoden.
Katelyn beschrieb Agenten als eine Art von Workload, die Isolation erfordert, einen unabhängigen Zustand hat und normalerweise als einzelne Instanz ausgeführt wird. Im Vergleich zu herkömmlichen Online-Diensten unterscheidet sich das Ausführungsmodell von Agenten deutlich. Sie können nacheinander komplexe Aufgaben ausführen, aber auch lange auf die Modellinferenz, den Aufruf von Tools oder die Rückgabe von Ergebnissen durch andere Agenten warten. Wenn jeder Agent ständig eine unabhängige Ausführungsumgebung belegt, kann die Ressourcennutzung sehr niedrig sein; aber wenn Ressourcen im Leerlauf freigegeben werden, müssen Probleme wie Zustandsspeicherung, schnelle Wiederherstellung und Neuplanung gelöst werden. Ein Gleichgewicht zwischen Startgeschwindigkeit, Zustandspersistenz, Isolationsstärke und Ressourcenkosten zu finden, wird zu einer neuen Herausforderung für die Agenten-Infrastruktur.
Auf diese Probleme hin entstehen ständig neue technische Lösungen. Katelyn erwähnte, dass einige Unternehmen für KI-Infrastruktur bereits neue Dateisysteme und Sandbox-Dienste entwickeln, und das Google-Team baut auch eine neue Laufzeitumgebung namens Agent Substrate auf. Ihrer Meinung nach gibt es jedoch noch viele Probleme, die Ingenieure lösen müssen, um eine effiziente und zuverlässige Ausführungsumgebung für groß angelegte Agenten bereitzustellen.
2 An wen sollen die Berechtigungen übergeben werden, wenn Agenten beginnen, Aufgaben für Menschen zu erledigen?
Die Agenten stabil zum Laufen zu bringen, ist nur der erste Schritt.
Wenn sie beginnen, auf Code-Repositories zuzugreifen, externe Dienste aufzurufen, Dateien zu ändern und sogar Aufgaben an andere Agenten zu übergeben, taucht ein weiteres Problem auf: Wie viele Berechtigungen sollen diese Agenten eigentlich haben?
Katelyn unterschied in ihrem Artikel klar zwischen zwei Konzepten: Authentifizierung und Autorisierung. Ersteres beantwortet die Frage „Wer bist du?“, Letzteres bestimmt, „Was darfst du tun?“. Für Ersteres gibt es in der Softwarebranche bereits ausgereifte Technologien wie Workload Identity und kurzfristige Zertifikate, auf die zurückgegriffen werden kann. Das wirklich Komplexe ist, wie Berechtigungen verteilt und übermittelt werden sollen, wenn Agenten beginnen, Aufgaben lange Zeit im Namen des Benutzers auszuführen und sogar selbstständig Unteragenten zu erstellen.
Gegenwärtig arbeiten viele Agenten tatsächlich im Namen menschlicher Benutzer. Sie verwenden die Identität und Anmeldeinformationen des Benutzers, um auf verschiedene Systeme zuzugreifen und Operationen im Namen des Benutzers auszuführen. Das Problem ist: Wenn eine Datei geändert oder eine Operation ausgeführt wird, wie kann das System unterscheiden, ob dies der Benutzer selbst getan hat oder ob der Agent dies im Namen des Benutzers erledigt hat?
Wenn Agenten lange Zeit autonom laufen, wird das Autorisierungsproblem noch schwieriger. Beispielsweise autorisiert der Benutzer einen Agenten, wochenlang Entwicklungsaufgaben zu bearbeiten, und der Agent delegiert einen Teil der Arbeit an Unteragenten. In diesem Fall müssen neu gestaltet werden, ob die Unteragenten die ursprünglichen Berechtigungen erben können, wie viele sie erben und wie die Gültigkeitsdauer der Autorisierung festgelegt wird. Insbesondere wenn der Agent Operationen ausführen möchte, die über die ursprünglichen Erwartungen des Benutzers hinausgehen, muss das System auch beurteilen, ob eine erneute Bestätigung durch den Menschen erforderlich ist.
Katelyn erwähnte insbesondere das On-Behalf-Of(OBO)-Modell. Das herkömmliche OBO-Autorisierungsmodell ermöglicht es Diensten, im Namen des Benutzers auf andere Ressourcen zuzugreifen, aber die Autonomie und die Dauer der Aufgaben von Agenten machen die Berechtigungsdelegation komplexer. Das System muss nicht nur bestätigen, wer der Agent bei der Ausführung von Operationen vertritt, sondern auch den Autorisierungsbereich, die Delegationskette und die Behandlung nach dem Widerruf von Berechtigungen klar definieren.
Ein noch komplexerer Fall ist: Wenn zukünftige Agenten nicht mehr auf die Identität menschlicher Benutzer angewiesen sind, sondern eine eigene unabhängige Identität haben, wie sollen ihnen Berechtigungen zugewiesen werden? Wenn mehrere Agenten zusammenarbeiten müssen und ein Agent eine Anfrage an einen anderen Agenten sendet, wie soll letzterer dann die Identität des Gegenübers bestätigen und beurteilen, ob diese Anfrage autorisiert ist? Für diese Probleme gibt es derzeit noch keine ausgereiften Lösungen, und sie sind immer noch neue Probleme, die Ingenieure lösen müssen.
3 Sicherheitsisolation: Wie kann die Ausbreitung von Risiken begrenzt werden, nachdem ein Agent angegriffen wurde?
In den letzten Monaten, insbesondere in den letzten Wochen, tauchten nacheinander Software-Schwachstellen auf, deren Auftretensgeschwindigkeit sogar die Geschwindigkeit der Behebung durch die Branche überstieg, wobei viele davon wichtige Basissoftware betrafen, auf der eine große Anzahl von Systemen läuft.
Katelyn wies darauf hin, dass wenn Zehntausende Agenten ständig laufen, unzuverlässigen Code schreiben und ausführen sowie Inhalte aus unzuverlässigen Quellen lesen, nicht behobene Schwachstellen in der Basissoftware größere Sicherheitsrisiken mit sich bringen können. Daher wird die Härtung von Betriebssystemkernen, Browsern, Laufzeitumgebungen und gängigen Softwarebibliotheken zu einem wichtigen Problem, das Software-Ingenieure lösen müssen.
Darüber hinaus führen Multi-Agent-Systeme auch eine weitere Art von Risiko ein.
Angenommen, ein Agent liest bei der Ausführung einer Aufgabe eine Webseite oder Datei, die bösartige Anweisungen enthält, und wird durch einen Prompt-Injection-Angriff angegriffen. Wenn er nur unabhängig läuft, kann das Risiko auf die aktuelle Aufgabe beschränkt sein. Aber wenn er mit anderen Agenten zusammenarbeiten muss, können bösartige Inhalte durch die Kommunikation an andere Agenten übermittelt werden und sogar in das gemeinsame Gedächtnis gelangen, was nachfolgende Aufgaben beeinträchtigt.
In diesem Fall wird der Blast Radius des Angriffs zu einem Problem, das ernsthaft berücksichtigt werden muss: Wenn der erste Agent kompromittiert wird, wie viele Teile des gesamten Multi-Agent-Systems können davon betroffen sein? Ihrer Meinung nach ist eine stark isolierte Ausführungsumgebung eine wichtige Grundlage.
Tatsächlich hat Katelyn bereits am 13. September einen speziellen Artikel über die Sicherheitsarchitektur von Agenten verfasst und vorgeschlagen, das „Gehirn“ und die „Hände“ des Agenten zu trennen.
Das sogenannte „Gehirn“ umfasst den Agent Harness, der für Modellaufrufe, Tool-Aufrufe und Benutzerinteraktionen verantwortlich ist, sowie die Sitzungszustände und Zugriffsanmeldeinformationen, die dauerhaft gespeichert werden müssen. Diese Komponenten sollen in einer vertrauenswürdigen Infrastruktur außerhalb der Sandbox ausgeführt werden. Die Sandbox als „Hände“ ist dafür verantwortlich, den von dem Agenten generierten Code und die Befehle auszuführen und externe Daten zu verarbeiten, die bösartige Inhalte enthalten können.
Der Schlüssel dieser Architektur besteht darin, dass unzuverlässiger Code immer in einer Umgebung mit eingeschränkten Berechtigungen ausgeführt wird. Wenn der Agent auf externe Dienste zugreifen muss, übernimmt der vertrauenswürdige Proxy außerhalb der Sandbox die Injektion von Anmeldeinformationen und die Zugriffskontrolle, um zu verhindern, dass sensible Schlüssel direkt dem Code in der Sandbox ausgesetzt werden. Selbst wenn der Agent einem Prompt-Injection-Angriff ausgesetzt ist oder bösartigen Code ausführt, sind die Ressourcen, auf die ein Angreifer zugreifen kann, begrenzt.
4 Wie kann erkannt werden, ob der Agent sich bemüht, die Aufgabe zu erledigen, oder ob er die Kontrolle verloren hat?
Selbst mit Isolierungsmaßnahmen stehen Ingenieure noch vor einem weiteren Problem: Wie kann rechtzeitig festgestellt werden, dass der Agent bereits Anomalien aufweist?
Angenommen, ein Agent versucht ständig, auf eine Domain zuzugreifen, die nicht in der Zulassungsliste steht, um die Aufgabe zu erledigen. Bemüht er sich wirklich, einen Weg zu finden, die Aufgabe zu erledigen, oder wurde er bereits von bösartigen Anweisungen beeinflusst und versucht, die Beschränkungen zu umgehen?
Dies ist ein Szenario, das Katelyn in ihrem ausführlichen Artikel vorgeschlagen hat. Die beiden Verhaltensweisen können von außen sehr ähnlich aussehen, und in Systemen, in denen mehrere Agenten zusammenarbeiten, ist es noch schwieriger, anomales Verhalten zu beurteilen. Ingenieure müssen nicht nur wissen, was jeder Agent getan hat, sondern auch verstehen, wie Aufgaben zwischen verschiedenen Agenten übermittelt werden, um Probleme zu diagnostizieren.
Aus diesem Grund erwähnte Katelyn die verteilte verknüpfte Verfolgung über mehrere Agenten hinweg auf Basis von OpenTelemetry(OTel), die es Ingenieuren ermöglicht, den gesamten Ausführungsprozess der Aufgabe zu verfolgen. Gleichzeitig müssen die Verfolgungsaufzeichnungen in einem vertrauenswürdigen System gespeichert werden, das der Agent nicht manipulieren darf, um zu verhindern, dass der Agent die Betriebsaufzeichnungen von sich selbst oder anderen Agenten ändert und nachfolgende Untersuchungen beeinträchtigt.
Neben der Erkennung von Anomalien muss das System auch über die Fähigkeit verfügen, Risiken rechtzeitig zu stoppen. Katelyn betonte insbesondere den Kill Switch: Sobald festgestellt wird, dass der Agent gefährliches Verhalten zeigt, sollen Ingenieure in der Lage sein, die betreffenden Agenten von außen zu stoppen, bei Bedarf das gesamte System zu beenden und die Zugriffsanmeldeinformationen zu widerrufen, um eine weitere Ausbreitung des Risikos zu verhindern.
Für Agenten, die lange Zeit autonom laufen und miteinander zusammenarbeiten können, ist die Verfolgung ihres Verhaltens und das rechtzeitige Anhalten bei Bedarf ebenfalls ein Problem, das Software-Ingenieure lösen müssen.
5 Was machen Ingenieure, nachdem der Code an Claude übergeben wurde?
Zurück zum Anfang des Artikels: Das Rekonstruktionsprojekt der Messages API von Anthropic bietet ein konkretes Beispiel dafür, wie KI-Programmierung die Praxis der Softwareentwicklung verändert.
In dem am 27. Oktober veröffentlichten Latent Space-Podcast stellte Katelyn den konkreten Prozess dieser Migration vor. Mit der Erweiterung des API-Nutzungsumfangs stand der ursprüngliche monolithische Python-Dienst von Anthropic unter Druck in Bezug auf die CPU-Ressourceneffizienz, daher beschloss das Team, die Messages API neu in Rust zu implementieren.
Aber zu Beginn des Projekts hatte das Team keine Rust-Entwickler. Bei der herkömmlichen Entwicklungsmethode würde eine solche sprachübergreifende Rekonstruktion normalerweise erfordern, zuerst die entsprechenden Talente zu ergänzen und dann die Migration schrittweise abzuschließen. Anthropic entschied sich stattdessen, Claude zu nutzen, um einen großen Teil der Code-Implementierungsarbeit zu übernehmen.
Es handelte sich jedoch nicht einfach darum, Claude den Python-Code in Rust übersetzen zu lassen. Katelyn erläuterte, dass das Team zuerst die Systemarchitektur festlegen und einen Migrationsplan erstellen muss, bevor Claude die konkrete Implementierung abschließen kann. Wichtiger als Claude dazu zu bringen, Rust-Code zu schreiben, ist es, nachzuweisen, dass das neue System das alte sicher ersetzen kann. Das Team verwendete auch Methoden wie Shadow Traffic, damit die alte und die neue Implementierung dieselben oder gleichwertige Anforderungen verarbeiten, die Ausgaben vergleichen und dann den Datenverkehr schrittweise validieren und umstellen.
Die Praxis von Anthropic zeigt eine entstehende Arbeitsteilung im Ingenieurwesen: KI übernimmt immer mehr Code-Implementierungsarbeiten, während menschliche Ingenieure mehr Energie in Systemarchitektur, Validierung, Zuverlässigkeit und Sicherheitskontrolle stecken. Aber diese Arbeitsteilung bedeutet auch, dass sich die Fähigkeiten, die Ingenieure benötigen, ändern.
Die vier Arten von Problemen, die Katelyn vorgeschlagen hat, weisen genau auf diese Veränderung hin. Agenten werden immer besser darin, Aufgaben auszuführen, aber damit Zehntausende von Agenten in einer echten Produktionsumgebung stabil laufen, sicher zusammenarbeiten und immer unter menschlicher Kontrolle bleiben können, gibt es noch eine große Anzahl grundlegender technischer Probleme, die nicht gelöst wurden.
In dem Interview von Latent Space teilte Katelyn auch die konkreten Erfahrungen von Anthropic bei der API-Rekonstruktion, dem Design der Agentenarchitektur, der Sicherheitsisolation und der technischen Bewertung. Diese Praktiken lassen uns auch intuitiver sehen, wie sich der Arbeitsschwerpunkt von Ingenieuren verändert, wenn KI beginnt, eine große Menge an Codierungsarbeiten zu übernehmen.
Im Folgenden sind sechs Gruppen von Fragen und Antworten ausgewählt, die am relevantesten für die oben genannten Themen im Interview sind. InfoQ hat sie unter der Voraussetzung, dass die ursprüngliche Bedeutung nicht verändert wird, bearbeitet und zusammengestellt.