- Das Ergebnis eines zweitägigen Experiments legt nahe, Claude Fable 5 treffend als "relentlessly proactive" zu bezeichnen
- Allein mit Screenshots und einem Ein-Zeilen-Prompt verfolgte es die Ursache eines CSS-Bugs, indem es einen lokalen Entwicklungsserver startete, echte Browser bediente und Messcode einfügte
- Fable wechselte zwischen Playwright, Firefox, WebKit und Safari, um den Bug zu reproduzieren, und richtete nach Fehlschlägen selbst eine Screenshot-Automatisierung für echte Browserfenster ein
- Um den per
/-Taste geöffneten modalen Dialog zu testen, fügte es JavaScript in ein Datasette-Template ein und erzeugte nach dem Laden des Fensters per Keyboard-Event den benötigten Zustand
- Um Messwerte innerhalb der Seite zu erhalten, baute es einen CORS-Sammelserver auf Basis von Python
http.server und speicherte <textarea>-Informationen aus dem Shadow DOM einer Web Component als JSON
- Leistungsfähige Coding-Agenten können im Terminal alles tun, was auch ein Nutzer tun könnte; Ausführung außerhalb einer Sandbox erhöht daher das Risiko von Prompt-Injection und Datenabfluss
Der Debugging-Prozess von Claude Fable 5
- Es begann mit der Untersuchung einer unnötigen horizontalen Scrollbar im Chat-Prompt des Sprungmenüs von Datasette Agent
- Claude Fable 5 setzte zur Zielerreichung aktiv eine Vielzahl von Techniken ein
- Als Eingabe dienten ein Screenshot und der Ein-Zeilen-Prompt
Look at dependencies to help figure out why there is a horizontal scrollbar here
- Da vermutet wurde, dass die Ursache in Abhängigkeiten von Datasette Agent, insbesondere in Datasette selbst, liegen könnte, wurde zunächst die Abhängigkeitsbasis untersucht
- Claude Code öffnete ohne explizite Anweisung zur Browser-Automatisierung ein normales Firefox-Fenster und navigierte zu dem Dialog; danach öffnete es auch ein Safari-Fenster und setzte die Untersuchung fort
Browser-Screenshot-Automatisierung
- Fable baute mit
uv run --with pyobjc-framework-Quartz einen eigenen Weg zum Aufnehmen von Browserfenster-Screenshots
- Mit Python durchlief es alle Fenster der Maschine und filterte Safari-Fenster, deren Fensternamen erwartete Zeichenfolgen wie
"textarea" enthielten
- Nachdem es einen ganzzahligen Bezeichner für ein Fenster wie
153551 gefunden hatte, speicherte es per screencapture-CLI ein PNG
- Es schrieb temporäre HTML-Seiten wie
/tmp/textarea-scrollbar-test.html, öffnete sie in Safari und erstellte so Screenshots
- Ein Beispielbefehl war
screencapture -x -o -l 153551 /tmp/safari-cases.png
Automatisches Auslösen des modalen Dialogs
- Der zu testende modale Dialog ließ sich nur per Klick oder Tastenkürzel öffnen, und in Safari war kein klarer Mechanismus erkennbar, um Mausbewegungen oder Tastenkürzel auszuführen
- Claude lief in einem Ordner mit dem Quellcode der Anwendung und verstand die Struktur gut genug, um einen lokalen Entwicklungsserver für Datasette zu starten
- Es fügte JavaScript in ein Datasette-Template ein, sodass nach dem Öffnen des Fensters ein
/-Tastendruck simuliert wurde
- Dieser Code löst 1,2 Sekunden nach dem Laden des Fensters ein
keydown-Event für die /-Taste aus und aktiviert so das Tastenkürzel zum Öffnen des modalen Dialogs
<script>
window.addEventListener("load", function () {
setTimeout(function () {
document.dispatchEvent(new KeyboardEvent("keydown", {key: "/", bubbles: true}));
}, 1200);
});
</script>
Sammeln interner Seiten-Messwerte
- Claude musste JavaScript auf der Seite ausführen, um Messwerte direkt zu erhalten, und schrieb dafür eine eigene Web-Anwendung, die Informationen per CORS entgegennimmt
- Mit der Python-Standardbibliothek
http.server ließ es einen lokalen Server auf 127.0.0.1:9999 laufen
- Der Server nahm POST-Anfragen mit JSON entgegen, schrieb sie nach
/tmp/diag.json und sendete den Header Access-Control-Allow-Origin: *, damit auch Code von anderen Domains kommunizieren konnte
- Claude injizierte JavaScript in das im Browser geladene Template, um das
<textarea> innerhalb der Web Component <navigation-search> zu finden
- Der eingefügte Code maß
devicePixelRatio, scrollWidth, clientWidth, whiteSpace und width und sendete die Daten an den lokalen Server
const host = document.querySelector("navigation-search");
const ta = host.shadowRoot.querySelector("textarea");
const cs = getComputedStyle(ta);
fetch("http://127.0.0.1:9999/diag", {
method: "POST",
body: JSON.stringify({
dpr: window.devicePixelRatio,
scrollWidth: ta.scrollWidth, clientWidth: ta.clientWidth,
whiteSpace: cs.whiteSpace, width: cs.width,
}),
});
Wechsel zu Opus und Verifikation des Fixes
- Nachdem Fable mehrere Techniken gefunden hatte, stieß es auf unsichtbare Guardrails und wurde auf Opus heruntergestuft
- Opus hatte Zugriff auf den vollständigen Gesprächsverlauf und nutzte die von Fable erschlossenen Techniken weiter
- Anschließend fand, testete und verifizierte Opus das Problem und schloss den Fix-Commit ab
- Opus dokumentierte die im Verlauf der Sitzung gegen echte Browser eingesetzten Automatisierungstechniken und ausführbare Codebeispiele in
/tmp/automation-report.md
- Dieser Bericht wurde als separates Gist geteilt; auch das vollständige Claude-Code-Terminalprotokoll wurde veröffentlicht
Gesamtüberblick über die ausgeführten Arbeiten
- Claude Fable 5 und Claude Code fanden heraus, wie sich ein lokaler Entwicklungsserver starten lässt, und richteten auch die dafür nötigen gefälschten Umgebungsvariablen ein
- Sie starteten eine Playwright-Chrome-Sitzung, aktivierten in Chrome sichtbare Scrollbars mit
defaults write com.google.chrome.for.testing AppleShowScrollBars Always und deaktivierten die Einstellung später wieder
- Auch Playwright für Firefox und WebKit wurde durchprobiert, die Reproduktion des Bugs gelang damit jedoch nicht
- Es wurde erkannt, dass Safari der Standardbrowser ist, und das HTML-Dokument
textarea-scrollbar-test.html wurde erstellt
- Das Testdokument wurde in echtem Firefox geöffnet, doch
osascript-Zugriff wurde mit „osascript is not allowed assistive access“ blockiert
- Ein Workaround über
pyobjc-framework-Quartz wurde gefunden und daraus ein Screenshot-Workflow auf Basis von Fenster-IDs aufgebaut
- Durch zusätzliches JavaScript im Site-Template wurde die
/-Taste ausgelöst und JSON-Daten über einen Python-CORS-Server empfangen
- Über das Shadow DOM der Web Component wurden die benötigten Informationen gefunden und die Ursache des Bugs in Safari bestätigt
- Nach Anwendung eines potenziellen Fixes in einem benutzerdefinierten Template wurde das Verhalten geprüft und ein Lösungsweg für das Problem berichtet
Kostenschätzung
- Verwendet wurde der Claude-Max-Tarif für 100 US-Dollar pro Monat; Anthropic erklärte, bis zum 22. Juni ein großzügiges Kontingent für Fable bereitzustellen und danach die vollen API-Preise zu berechnen
- AgentsView wurde zur Ausgabenverfolgung genutzt; bei voller Bepreisung hätte diese Sitzung rund 12,11 US-Dollar gekostet
- Die Session-Ausgabe betrug
68606, der maximale Kontext 113178, und verwendet wurden die Modelle claude-fable-5 und claude-opus-4-8
- Wer die Kosten nicht genau im Blick hat, kann mit Fable für CSS-Debugging leicht rund 12 US-Dollar an Token-Kosten verbrauchen, während es neue Methoden entwickelt
Warum eine Sandbox nötig ist
- Beeindruckend war, dass Fable letztlich sogar extreme Methoden einsetzte, um die Informationen für einen zweizeiligen CSS-Fix zu erhalten
- Coding-Agenten können alles ausführen, was ein Nutzer per Terminalbefehl tun kann, und Frontier-Modelle kennen sehr viele Techniken
- Wären bösartige Anweisungen, Prompt-Injection in Code oder Issue-Threads oder unbedacht ins Terminal eingefügte Inhalte vorhanden gewesen, hätte das zu Datenabfluss oder anderen Schäden führen können
- Einen Coding-Agenten außerhalb einer Sandbox laufen zu lassen, ist immer eine schlechte Idee und gilt als einer der Hauptkandidaten für Sicherheitsvorfälle mit Coding-Agenten
- Fable ist zwar intelligenter und könnte bösartige Anweisungen eher misstrauisch betrachten, doch wenn es einmal darauf hereinfällt, kann der Schaden durch seine unablässige Proaktivität größer ausfallen
1 Kommentare
Hacker-News-Kommentare
Das liest sich wie ein eindrucksvoller Fall eines fatalen Verlusts menschlicher Eigeninitiative und zeigt auch, dass es tatsächlich ziemlich viele Commits gab [0]
Der Autor wollte die horizontale Scrollbar ausblenden. Ein ordentlicher Junior-Frontend-Entwickler würde sofort fragen: „Wo füge ich
overflow-x: hidden;ein?“ Für eine vollständige Lösung würde man im Browser auf „Inspect element“ klicken, die CSS-Klasse finden, dann die Stelle im Code mit (rip)grep suchen und eine Zeile hinzufügenEin proaktiverer Programmierer hätte Fragen gestellt wie: Welcher Inhalt ist in der leeren Textbox, dass er überläuft? Warum werden an zwei Stellen Workarounds eingebaut, die nur das Symptom verdecken statt die eigentliche Ursache zu beheben? Wäre es nicht besser,
textareanur einmal zu stylen? [0] https://github.com/datasette/datasette-agent/commit/a75a8b72...__init__.pyversteckt ist [0]Meine Erfahrung mit Claude war bisher eher, dass gut strukturierter Code herauskam, deshalb überrascht mich das tatsächlich etwas. Allerdings ist mein Ansatz eher weniger echtes Vibe Coding, sondern eher ein freundlicher sokratischer Schlagabtausch mit einem anderen Ingenieur, der ein Roboter ist
[0] https://github.com/datasette/datasette-agent/blob/main/datas...
Genau das würde ich auch von einem Junior-Entwickler erwarten: prüfen, ob der Bug tatsächlich existiert, herausfinden, wie man ihn behebt, und verifizieren, ob der Bug wirklich behoben wurde
Das Problem ist, wie auch im Blogpost richtig hervorgehoben wurde, dass es statt anzuhalten und nachzufragen, wenn höhere Berechtigungen nötig sind, endlos allein nach hackigen Umgehungslösungen sucht. Bei einem menschlichen Entwickler wäre das so, als bräuchte er Zugriff auf eine Third-Party-Sandbox, würde aber keinen Senior nach den Zugangsdaten fragen und stattdessen versuchen, von Grund auf seine eigene Sandbox zu bauen
Das erinnert mich an die Zeit, als beim Zugang zur Online-Welt noch minutenweise abgerechnet wurde. Damals gab es viele Anreize, den Zähler weiterlaufen zu lassen, und das hier scheint mir von derselben Art zu sein
Es ist nach wie vor verwirrend und überraschend, dass so viele Leute das weiterhin tun, obwohl sie klar einräumen: „Coding-Agenten außerhalb einer Sandbox laufen zu lassen, war schon immer eine schlechte Idee.“
Es ist, als würde jemand ein Video hochladen, in dem er auf dem Beifahrersitz die Füße aufs Armaturenbrett legt, und dazu sagen: „Denkt dran: Wenn es dabei zu einem Unfall kommt, kann der Airbag euch die Beine brechen oder Schlimmeres verursachen! Zum Glück ist mir das nicht passiert!“
Das Problem ist, dass die Art, wie Menschen prompten, viel zu unterschiedlich ist
Ich könnte zum Beispiel so etwas anfordern wie: „Teste auf den k8s-Pods dieses Services in diesem X-Cluster mehrere Varianten dieser Annotation. Das belegt schließlich Theorie Y.“ Ein Kollege sagt dagegen einfach: „Teste Theorie Y.“ Wenn man zwei Junior Engineers so fragt, probiert einer vielleicht zufällig Dinge in der Produktionsumgebung aus, während der andere lokale Tests laufen lässt. Das ist eine völlig ungeleitete Anfrage nach dem Muster „Mach, was du willst, und finde es heraus“, und der Agent liest das wie ein Junior, dem keine Grenzen mitgegeben wurden, der aber starken Druck bekommen hat, es „herauszufinden“
claudezu habenMit ähnlichen dotfiles wie bei mir, aber ohne Geheimnisse. Mein Home-Verzeichnis ist 0700,
claudehat eigene SSH-Keys, die ich meinem GitHub-Profil hinzugefügt habe, aber sie sind passwortgeschützt, und push/pull übernehme ich selbst. Es gibt auch einen separaten Postgres-Dev-/Test-Benutzer und eine Datenbank, aber keinen SuperuserIch behandle ihn also wie jeden anderen Entwickler im Projekt. Wenn etwas mit sudo ausgeführt werden muss, fragt er mich. Manchmal arbeiten wir sogar parallel an derselben Sache. Unix sollte von Anfang an ein Mehrbenutzersystem sein
Ein häufiger Trick ist, in seinen Git-Repositories solche zusätzlichen Remotes zu haben:
paul ssh://paul@localhost/~/src/example (fetch)paul ssh://paul@localhost/~/src/example (push)Das macht es leicht, gemeinsam an Dingen zu arbeiten, die noch nicht bereit zum Teilen sind
Dieses Setup fühlt sich ziemlich komfortabel an. Sorgen mache ich mir allerdings über Linux-Bugs zur Rechteausweitung. Ich glaube nicht, dass eine AI versteht, dass das Ausnutzen von Schwachstellen nicht erlaubt ist. Das erinnert mich an meinen ersten Job, als ich in Eile einmal versehentlich die
:!-Funktion von vim benutzt habe, um meine offiziell auf das Bearbeiten vonhttpd.confbeschränkten sudo-Rechte auszuweiten. Auch wenn es heute automatische Sicherheitsupdates gibt, aktualisiere ich Pakete inzwischen manuell noch häufiger. Ich glaube nicht, dass Opus sich die Mühe machen würde, nach Sicherheitslücken zu suchen, aber Fable vielleicht schon, und in letzter Zeit gab es davon viele. Künftige Modelle könnten selbst neue Schwachstellen finden oder einen Keylogger installieren, um das Passwort für SSH-Keys herauszufindenEin separater Benutzer ist abgesehen von einer separaten Maschine fast das paranoideste Setup, von dem ich gehört habe. Deshalb frage ich mich, ob ich nicht zu viel Geschwindigkeit und Komfort opfere. Trotzdem ist es in der Praxis immer noch sehr bequem, und ich halte es für einen effizienten und verantwortungsvollen Weg. Wenn jemand Lücken sieht, würde ich das gern hören
Fable fühlt sich an wie „Opus, das auf einem Harness läuft, das es nicht anhalten lässt, bis es sicher ist, dass das Problem behoben ist“. Wenn man ein Modell will, das in Benchmarks besser abschneidet, ergibt das Sinn
Es ist ein sehr gutes Modell, aber der Premiumaufschlag ist groß. Nicht nur sind die Tokens selbst teurer, das Modell will sie auch alle verbrauchen. Bei React-Native-Arbeit sagt Fable zum Beispiel nicht: „Okay, geschafft, fertig.“ Es will die ganze App von Grund auf neu bauen, die komplette Test-Suite laufen lassen und alle Logs und Warnungen beobachten
Zum ersten Mal bei der Nutzung eines LLM hatte ich das Gefühl, dass ein Modell-Upgrade selbst dann nicht lohnend ist, wenn das Unternehmen es erlaubt. Denn Builds und Tests quälen meinen Rechner und meinen Akku so stark, dass ich nichts anderes mehr machen kann
Im Moment scheint Opus mit ultracode besser zu sein. Es gibt weniger Verschmutzung des Hauptkontexts, und die Recherche wird stärker parallelisiert
Fable wollte UI-Änderungen in meinem Spiel verifizieren. Ich arbeitete gerade in einem anderen Fenster, als ich in der Taskleiste sah, dass sich ein Programm öffnete. Fable startete aus der CLI heraus das movie maker-Tool, öffnete das Spiel, zeichnete die Ausgabe auf und erfasste den letzten Frame, um die UI zu prüfen. Als der Startbildschirm des Spiels den Bereich verdeckte, den es sehen wollte, legte es ein temporäres worktree an, entfernte den Startbildschirm und startete den movie maker erneut
Als ich das sah, dachte ich nur, es hätte einfach mich nach einem Screenshot fragen können und so Tokens gespart. Trotzdem konnte ich nicht anders, als beeindruckt zu sein. Opus hätte das niemals getan
Solche Beiträge fühlen sich an, als kämen sie aus einem Paralleluniversum. Nach meiner anekdotischen Erfahrung und anhand eines von mir erstellten, zwar weiterhin subjektiven, aber direkten Benchmarks (https://pshirshov.github.io/llm-bench-pi-oneshot/) ist Fable gar nicht so beeindruckend.
Es liegt ungefähr auf dem Niveau von gpt-5.5 und opus 4.8, ist manchmal besser und manchmal schlechter, definitiv teurer und lehnt React-Fragen auch schon mal mit der Begründung ab, bei Chemie nicht helfen zu können.
Ich weiß nicht, ob dieser Wirbel wirklich Substanz hat oder einfach nur AGI-Hype vor dem IPO ist.
Ich lasse Fable komplexe Implementierungen koordinieren. Ich gebe ihm übergeordnete Tickets in Linear und sage: „Sieh dir die Unteraufgaben dieses Tickets an und entscheide, welche du selbst implementieren kannst, in welcher Reihenfolge das geschehen sollte und wie das mit dem koordiniert werden muss, woran andere Teammitglieder gerade arbeiten.“ Diese Tickets sind nicht trivial, haben viele bewegliche Teile und Abhängigkeiten und greifen auch innerhalb und außerhalb desselben Projekts ineinander, zum Beispiel mit dem Backend.
Dann wählt Fable Tickets aus und delegiert jedes Ticket an Unteragenten, ebenfalls Fable. Die Unteragenten sehen sich die Figma-Designs für das jeweilige Ticket an, setzen es unter strikter Einhaltung der Repository-Richtlinien und Konventionen perfekt um, machen Screenshots der einzelnen Teile, schreiben ausführliche Commit-Messages und PR-Beschreibungen und hängen die Screenshots als Beleg an. Am Ende gibt es eine Zusammenfassung wie: „PR #1283 muss zuerst gemergt werden. Außerdem gab es für diesen und jenen Screen kein Figma-Design, daher habe ich das Muster anhand eines bereits implementierten ähnlichen Screens angewendet.“
Das sind wahrscheinlich nur etwa 20 % dessen, was Fable kann. Es ist wirklich ein starkes Modell.
Opus 4.8 konnte vieles davon ebenfalls, brauchte aber deutlich mehr Führung und blieb eher mit etwas wie „Bis hierhin konnte ich es schaffen, aber weiter komme ich nicht“ stecken, sobald es auf Hindernisse stieß.
Fable ist etwas klüger, aber genau deshalb fühlt es sich insgesamt wie ein schlechteres Tool an.
Es verwandelt einen 50-Zeilen-Patch, der mit einem einzigen Prompt erledigt wäre, ständig in eine 30-minütige Erkundungstour, und oft lohnt sich das überhaupt nicht. Außerdem liegt es oft daneben.
Ich habe es mit einer ziemlich einfachen Aufgabe getestet: ein Backfill des redis-Dedup-Cache, nachdem sich die Hash-Funktion geändert hatte. Man musste nur die neue Hash-Funktion auf alle DB-Werte anwenden und damit den Cache erweitern, aber Fable implementierte stattdessen ein überkompliziertes Cache-Update, das versuchte, die Version der Hash-Funktion für jeden Cache-Wert zu erraten und nur veraltete Hashes neu zu berechnen. In manchen Kontexten mag das sinnvoll sein, aber nach 30 Minuten verbrannter Tokens kam Code heraus, den ich durch eine 10-Zeilen-
for-Schleife ersetzt habe.Ich mache mir Sorgen, weil das wie eine schlechte Nachricht für das Programmieren insgesamt wirkt. Es sieht stark danach aus, dass die LLM-Technik bei Intelligenz auf die Wand des abnehmenden Grenznutzens gestoßen ist, und wenn die Reaktion darauf einfach lautet, sie nur hartnäckiger zu machen, dann ist das eine miserabele Lösung für alle Beteiligten. Ausgenommen sind höchstens die Leute, die Tokens verkaufen, und die, die genug Tokens für das Scannen nach 0-days bezahlen können.
Erstens fehlt ein Kausalmodell. Alles, was sie können, ist Trial-and-Error-Suche, und das funktioniert bei vielen Problemen ziemlich gut, aber viele andere Probleme benötigen ein Kausalmodell.
Zweitens sind Prompts nicht präzise. Programmiersprachen und Maschinenmodelle wurden genau erfunden, um dieses Problem zu lösen. Englisch ist großartig, aber keine Programmiersprache.
Im Vorfeld des IPO wurde viel strategische Einführung und Manipulation betrieben, und in dieser Hinsicht war es wirksam.
tsclaufen lassen müssen, aber stattdessen wurde noch ein Skript geschrieben, dastscin jedem Unteragenten ausführt und die Ergebnisse zusammenführt.Das war wirklich zum Verrücktwerden. Etwas, das höchstens 1–2 Minuten gedauert hätte, dauerte auf diesem Weg etwa 10 Minuten.
Später werde ich es mit deutlich komplexeren Aufgaben versuchen, aber für einfache Dinge fühlte es sich an, als würde man mit einer Corvette zum Briefkasten fahren.
Mein Widerwille, auf meiner lokalen Maschine terminalbasierte LLMs zu verwenden, fühlt sich weiterhin bestätigt an.
Selbst wenn sie nichts Bösartiges tun, gibt es zu viele Möglichkeiten, wie sie eine erhebliche Menge Arbeit vernichten oder meinen Rechner und meine Arbeitsfähigkeit insgesamt beschädigen können.
Sollte ein Billionen-Dollar-Unternehmen das nicht relativ leicht hinbekommen? Im Vergleich zum ganzen Harness wirkt das auf mich wie eine Kleinigkeit.
Sicherheit ist offensichtlich das größere Thema, aber beim Lesen musste ich die ganze Zeit daran denken, wie viele Tokens wohl verbrannt wurden, um zwei Zeilen CSS zu korrigieren.
Man sollte abschätzen, wie lange ein Mensch dafür gebraucht hätte.
Die Leute können jetzt einfach faul sein und dabei produktiv wirken, aber es bleibt Faulheit.
Es gibt inzwischen Menschen, die für das Schreiben einer einzigen E-Mail Zugriff auf Hardware im Wert von Hunderttausenden Dollar brauchen. Darauf verzichte ich. Ich will mein Gehirn nicht ruinieren, nur um von der Denkmaschine eines Milliardärs abhängig zu werden.
Und ich werde mein Gehirn auch nicht mit einer lokalen „Maschine, die für mich denkt“ ruinieren. Ich möchte ein Mensch sein, der mehr wert ist als die Hardware, auf die ich Zugriff habe.
Meine persönliche Erfahrung damit, dass Fable 5 auf eigene Weise agiert, war sehr positiv
Ich wollte die eigentliche Ursache eines Python-Modul-Absturzes finden, der weder im Log noch in der Konsole Fehler hinterließ. Fable schrieb einen Test-Harness, der UI-Klicks simuliert, und nutzte dann eine Binärsuche in meinem Code, um den Punkt zu finden, an dem der Absturz begann. Anschließend formulierte es eine zugespitzte Hypothese zur Absturzursache und führte nacheinander Bash-Einzeiler aus, die unter
/tmpfür jede Version des betreffenden Python-Moduls eine virtuelle Umgebung anlegten, um die Version zu finden, bei der der Absturz nicht auftratEs hat die eigentliche Ursache viel tiefer verfolgt, als ich es allein getan hätte, und die Ursache war eine Regression im Modul, die einen Heap-Allocation-Overflow auslöste. Es lieferte genug Informationen und ein vereinfachtes Beispiel, um einen Bug-Report einzureichen, und schrieb auch einen Workaround, damit das in meiner Anwendung nicht passiert
Ich habe es aber nicht völlig von der Leine gelassen. Ich habe jeden CLI-Befehl geprüft, den es ausführen wollte, und beim Weitergehen mit „yes“ zusätzliche Antworten ergänzt, um übermäßigen Token-Verbrauch zu verhindern
Es hilft, im Prompt oder im Markdown Grenzen zu setzen. Wenn man zum Beispiel sagt, dass keine Webbrowser-Automatisierung verwendet werden soll, habe ich gesehen, dass Fable sowohl diese Regel als auch ihre Intention einhält. Es hat auch keine seltsamen Hacks versucht
Allerdings scheint es manche einfachen Debugging-Aufgaben komplizierter zu behandeln, als sie tatsächlich sind. Der Originalbeitrag ist dafür wohl ein gutes Beispiel
git bisect-Schleife laufen zu lassenDass es den Test-Case und die
git bisect-Schleife erstellt, kann ich noch nachvollziehen, aber ich verstehe nicht, warum das über das Internet und GPUs laufen muss. Das wirkt auf mich wie etwas, das auch auf einem Single-Core-Celeron laufen könnte