ai newsSo., 25. Okt.
EilmeldungAnthropic Sandbox Runtime: OS-Level Agent Sandboxing Without Containers

Kshetrajna Drift: I Let a Local Llama Deal With My Download Pile

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady . What I Built I don't usually put off filing a document because dragging it is difficult. I put it off because I have to decide what it is, where it belongs, and whether I will find it again. Kshetrajna Dri

dev.toSonntag 19:32 · 25.10.5 Min. Lesezeit
Bild: dev.to

Hacktoberfest Open-Source AI Challenge Woche 3: Slow and Steady Einreichung

Dies ist eine Einreichung für die Hacktoberfest Open-Source AI Challenge Woche 3: Slow and Steady.

Ich schiebe das Ablegen eines Dokuments normalerweise nicht auf, weil das Ziehen mühsam ist. Ich schiebe es auf, weil ich entscheiden muss, was es ist, wohin es gehört und ob ich es wiederfinden werde.

Kshetrajna Drift nimmt mir diese erste Entscheidung ab. Es ist ein kleiner lokaler Begleiter, der einen freigegebenen Ordner liest, ein Open-Weight-Modell um Vorschläge für die Ablage loser Dateien bittet und zu jedem Vorschlag eine Erklärung anzeigt. Ich wähle die Umzüge aus, denen ich zustimme, und gebe sie gemeinsam frei.

Eine Quittung, ein Kundenbriefing und eine Picknotiz können alle.txt-Dateien sein. Sie müssen nicht notwendigerweise zusammenliegen. Drift gruppiert nach Zweck: Study, Work, Receipts, Personal, Read Later oder Keep here.

Die letzte Kategorie ist wichtig. Manchmal ist die faulste sinnvolle Handlung, etwas in Ruhe zu lassen.

Sehen Sie sich den aufgezeichneten Durchlauf an: sieben echte Browser-UI-Snapshots, mit zusammengefassten Wartezeiten. Die Dateien sind synthetisch, aber die Inferenz, der genehmigte Umzug und das Rückgängigmachen sind echt.

Der Durchlauf zeigt, wie ein Kundenübergabe-Briefing zu Work geht, Überarbeitungsnotizen zu Study, eine Zahlungsquittung zu Receipts, ein Vogelartikel zu Read Later und eine Picknotiz zu Personal. Eine mehrdeutige Notiz mit dem Inhalt „blue / maybe next time / 42“ bleibt, wo sie ist. Anschließend verschiebe ich die Quittung und mache das rückgängig.

Führen Sie dieselbe Demo mit python app.py --demo aus. Sie erstellt eine wegwerfbare Kopie der sechs mitgelieferten Beispieldateien und lässt persönliche Downloads unangetastet.

Das neue eigenständige Repository enthält die Python-Anwendung, eine abhängigkeitsfreie Browser-Oberfläche, sechs Fixtures, Tests, eine Einrichtungsanleitung, eine Lizenz und messbare Nachweise. Der Code ist unter der MIT-Lizenz lizenziert. Laden Sie das Quell-ZIP herunter und folgen Sie der README, um alles lokal auszuführen.

Danksagung: Drift ist von unserem bestehenden Kshetrajna-Projekt inspiriert, insbesondere von dessen Ansatz Observe → Explain → Approve → Act → Recover. Dies ist eine neue Anwendung, die am 25. Oktober entstanden ist, nicht die ältere Anwendung, die als neue Arbeit präsentiert wurde. Aus diesem Repository wurden keine Quelldateien kopiert.

Die Reasoning-Engine ist Llama 3.1 8B, ausgeführt über einen installierten Ollama-Dienst auf demselben Rechner. Das Modell erhält Datei-IDs, Dateinamen, Größen und optional kurze Vorschauen unterstützter Textdateien. Der Standardmodus für echte Ordner sendet nur Dateinamen und Größen. Die Beispiel-Demo aktiviert Vorschauen, damit der Zweck vager Dateinamen erkennbar ist.

Das Modell muss strukturiertes JSON zurückgeben: eine bekannte Datei-ID, eine erlaubte Kategorie und einen kurzen Grund. Drift prüft die Antwort unabhängig. Fehlende IDs, Duplikate, erfundene Kategorien, unerwartete Felder und ungültige Erklärungen stoppen den Plan. Ist das Modell nicht verfügbar, meldet die Anwendung einen Fehler und verschiebt nichts. Es gibt keinen versteckten Dateinamen-Regelklassifikator, der die KI ersetzt.

flowchart LR A[Freigegebener Ordner] --> B[Begrenzte lokale Suche] B --> C[Ollama und Llama 3.1 8B] C --> D[IDs und Kategorien prüfen] D --> E[Erklärter Plan] E --> F[Auswählen und genehmigen] F --> G[Dateien und Ziele erneut prüfen] G --> H[Protokollieren und dann verschieben] H --> I[Rückgängig machen und Neustart-Wiederherstellung] Vor der Ausführung prüft Drift Hashes, Dateiidentität, Größen und Änderungszeiten erneut. Bereits vorhandene Ziele blockieren die Auswahl. Die Verschiebeabsicht jeder Datei wird in SQLite festgehalten, bevor ihr Ziel ohne Überschreiben einer anderen Datei angelegt wird. Anschließend wird der Quellname entfernt. Dies erfordert Hard-Link-Unterstützung im selben Volume; nicht unterstützte Dateisysteme scheitern ohne Kopier- und Lösch-Fallback.

Der Stapel ist nicht atomar: Schlägt eine spätere Verschiebung fehl, bleiben frühere erfolgreiche Verschiebungen sichtbar und rückgängig machbar. Rückgängigmachen verweigert sich bei veränderten Dateien oder belegten Originalnamen. Unterbrochene Vorgänge werden beim Neustart abgeglichen, ungelöste Konflikte bleiben sichtbar.

31 automatisierte Tests wurden unter Windows bestanden, darunter echte Dateiverschiebungen und Rückgängigmachen, Zurückweisung veränderter Dateien, Namenskonflikte, Wiederherstellung unterbrochener Vorgänge, fehlerhafte Modellausgaben, ModellAusfälle und Prüfungen des lokalen HTTP-Zugriffs. Der Modelllauf wird separat von den Tests aufgezeichnet, die explizite Doubles verwenden.

Bei diesem Workflow können die Eingaben die privaten Dinge sein, die auf dem Rechner einer Person liegen. Das lokale Ausführen des Modells bedeutet, dass ein gehosteter Anbieter die Dateinamen oder Ausschnitte nicht erhalten muss, um einen Ablagevorschlag zu machen.

Es erlaubt mir auch, Prompt, Kategoriepolitik, Validierung und Ausführungsverhalten gemeinsam zu ändern. Das Modell schlägt vor; Code, den ich kontrolliere, setzt die Grenzen. Ein anderes installiertes lokales Modell kann ausgewählt werden, ohne die gesamte Anwendung auszutauschen.

Nachdem Runtime und Gewichte installiert sind, kann der Workflow ohne Internetverbindung arbeiten. Ich habe die lokale Loopback-Inferenz verifiziert; einen Lauf ohne Netzverbindung habe ich noch nicht gemessen. Es gibt keine gehosteten Kosten pro Anfrage, obwohl Rechner, Speicher und Strom weiterhin Geld kosten.

Ollama ist Open-Source-Software. Llama 3.1 ist Open Weight unter Metas Community License, was etwas anderes ist, als die Gewichte als OSI-Open-Source zu bezeichnen. Das Modell ist nicht im Quellpaket enthalten.

Der erste Plan mit sechs Dateien dauerte 17,56 Sekunden. Alle fünf Ablageentscheidungen und die Keep-here-Entscheidung entsprachen den beabsichtigten Beispielen. Ein zweiter aufgezeichneter Durchlauf dauerte 15,24 Sekunden. Nach dem Verschieben und Rückgängigmachen der Quittung stimmten alle sechs Originaldateien mit ihren Fixture-SHA-256-Hashes überein.

Dies ist eine kleine synthetische Demonstration, keine messbare Aussage über gesparte Stunden oder allgemeine Klassifikationsgenauigkeit. Sie zeigt die Interaktion, die ich wollte: die Maschine den kleinen Stapel lesen lassen, einen klaren Plan prüfen und sich wieder etwas Interessanterem zuwenden.

Die bewusste Grenze sind zwölf lose Dateien pro Stapel. Dieser Prototyp hat keinen Hintergrund-Watcher, keine PDF-Extraktion, kein OCR, kein automatisches Löschen und keine unbeaufsichtigte Sortierung. Slow and steady schien ein guter Grund, den Umfang klein genug zu halten, um ihn zu verstehen.

Erstellt mit KI-Coding-Unterstützung. Design-Referenzen: Ollama structured outputs, Llama 3.1 Lizenz. Die Community-Lektüre umfasste Jangwook Kims structured-output-Durchlauf und Neeraj Singhis Diskussion zur Tool-Grenzvalidierung. Der Abruf von Kommentaren war nicht verfügbar; dies sind einzelne Referenzen, kein behaupteter Community-Konsens.

Automatisch übersetzt. Das Original auf Englisch ist unten aufklappbar.

Original (Englisch) anzeigen

Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady.

I don't usually put off filing a document because dragging it is difficult. I put it off because I have to decide what it is, where it belongs, and whether I will find it again.

Kshetrajna Drift takes that first decision off my plate. It is a small local companion that reads one approved folder, asks an open-weight model to suggest homes for loose files, and shows an explanation for each suggestion. I select the moves I agree with and approve them together.

A receipt, a client brief, and a picnic note might all be.txt files. They should not necessarily live together. Drift groups by purpose: Study, Work, Receipts, Personal, Read Later, or Keep here.

The final category matters. Sometimes the laziest sensible action is to leave something alone.

Watch the recorded walkthrough: seven actual browser UI snapshots, with waiting condensed. The files are synthetic, but the inference, approved move and undo are real.

The walkthrough shows a client handover brief going to Work, revision notes to Study, a payment receipt to Receipts, a bird article to Read Later, and a picnic note to Personal. An ambiguous note containing “blue / maybe next time / 42” stays where it is. I then move the receipt and undo it.

Run the same demo with python app.py --demo. It creates a disposable copy of the six bundled samples and leaves personal Downloads alone.

The new standalone repository contains the Python application, dependency-free browser interface, six fixtures, tests, setup guide, license and measured evidence. The code is MIT licensed. Download the source ZIP and follow the README to run locally.

Credit: Drift is inspired by our existing Kshetrajna project, especially its Observe → Explain → Approve → Act → Recover approach. This is a new application created on October 25, not the older application presented as fresh work. No source files were copied from that repository.

The reasoning engine is Llama 3.1 8B, running through an installed Ollama service on the same computer. The model receives file IDs, filenames, sizes, and optionally short previews of supported text files. The real-folder default sends filenames and sizes only. The sample demo enables previews so the purpose of vague filenames is visible.

The model must return structured JSON: a known file ID, an allowed category, and a short reason. Drift independently validates the answer. Missing IDs, duplicates, invented categories, unexpected fields and invalid explanations stop the plan. If the model is unavailable, the app reports an error and moves nothing. There is no hidden filename-rule classifier substituting for AI.

flowchart LR A[Approved folder] --> B[Bounded local scan] B --> C[Ollama and Llama 3.1 8B] C --> D[Validate IDs and categories] D --> E[Explained plan] E --> F[Select and approve] F --> G[Recheck files and destinations] G --> H[Journal then move] H --> I[Undo and restart recovery] Before execution, Drift rechecks hashes, file identity, sizes and modification times. Existing destinations block the selection. Each file's move intent is committed to SQLite before its destination is created without overwriting another file. The source name is then removed. This requires same-volume hard-link support; unsupported filesystems fail without a copy/delete fallback.

The batch is not atomic: if a later move fails, earlier successful moves remain visible and undoable. Undo refuses changed files or occupied original names. Interrupted operations are reconciled on restart, with unresolved conflicts kept visible.

31 automated tests passed on Windows, including real file moves and undo, changed-file rejection, name conflicts, interrupted-operation recovery, malformed model output, model failure and local HTTP access checks. The model run is recorded separately from tests that use explicit doubles.

For this workflow, the inputs can be the private things sitting on a person's computer. Running the model locally means a hosted provider does not have to receive the filenames or snippets to make a filing suggestion.

It also lets me change the prompt, category policy, validation and execution behavior together. The model proposes; code I control sets the limits. Another installed local model can be selected without replacing the whole application.

After the runtime and weights are installed, the workflow can operate without an internet connection. I verified local loopback inference; I have not yet measured a disconnected-network run. There is no hosted per-request model charge, though the computer, storage and electricity still cost money.

Ollama is open-source software. Llama 3.1 is open-weight under Meta's Community License, which is different from calling its weights OSI open source. The model is not bundled in the source package.

The first six-file plan took 17.56 seconds. All five filing choices and the Keep-here decision matched the intended sample purposes. A second recorded walkthrough run took 15.24 seconds. After moving and undoing the receipt, all six originals matched their fixture SHA-256 hashes.

This is a small synthetic demonstration, not a measured claim about hours saved or general classification accuracy. It shows the interaction I wanted: let the machine read the small pile, review one clear plan, and go back to something more interesting.

The deliberate limit is twelve loose files per batch. This prototype has no background watcher, PDF extraction, OCR, automatic deletion, or unattended sorting. Slow and steady seemed like a good reason to make the scope small enough to understand.

Built with AI coding assistance. Design references: Ollama structured outputs, Llama 3.1 license. Community reading included Jangwook Kim's structured-output walkthrough and Neeraj Singhi's tool-boundary validation discussion. Comment retrieval was unavailable; these are individual references, not a claimed community consensus.

Quelle: dev.to (dev.to). Original öffnen