Technisches Buch in einen Agent-Skill umwandeln
Wandeln Sie PDF, EPUB oder interne Dokumente in einen Agent-Skill um. Erfahren Sie mehr zu Installation, Token-Budget, headless runs und Lizenzierung.
Einen technischen Buchinhalt in einen Agent-Skill umwandeln: das Ergebnis
Um einen technischen Buchinhalt in einen Agent-Skill umzuwandeln, übergeben Sie einem Konverter ein PDF, ein EPUB, einen DOCX-Export oder einen Ordner mit internen Dokumenten, die Sie bereits besitzen. Der Konverter erstellt ein Skill-Verzeichnis: eine Einstiegsdatei mit den benannten Frameworks und einem Index der Kapitel sowie eine Datei pro Kapitel, die der Agent nur liest, wenn Ihre Frage sie erfordert. Das Buch gelangt nie in das Kontextfenster. Der Index schon.
Diese Aufgabe unterscheidet sich grundlegend vom Schreiben eines Agent-Skills von Grund auf, bei dem Sie eine bereits bekannte Vorgehensweise festhalten. Hier ist das Wissen vorhanden, aber niemand kann darauf zugreifen: ein 800-seitiges PDF eines Anbieters oder ein Handbuch, das seit dem Ausscheiden der Person, die es verfasst hat, nicht mehr geöffnet wurde. Die Arbeit besteht aus Komprimierung und Indexierung. Wenn der Begriff Skill für Sie neu ist, lesen Sie zuerst was ein Agent-Skill tatsächlich ist.
Der hier verwendete Konverter ist book-to-skill, ein MIT-lizenzierter Skill, der auf Ihrem eigenen Rechner ausgeführt wird. Der aktuelle Tag im August 2026 ist v1.4.0. Die von ihm erzeugte Struktur ist wichtiger als das Tool selbst. Im letzten Abschnitt vor dem FAQ wird gezeigt, wie Sie dieselbe Struktur manuell erstellen.
Warum das Token-Budget die gesamte Struktur bestimmt
Ein in ein Kontextfenster eingefügtes Buch verursacht bei jeder Unterhaltung, die es benötigt, die vollständigen Kosten seiner Größe. Ein Skill verursacht einmalig die Kosten seiner Einstiegsdatei sowie die Kosten der Kapitel, die von der jeweiligen Frage tatsächlich benötigt werden. Das Projekt legt für jede erzeugte Datei ein Budget fest.
The data behind this chart
[
{
"label": "SKILL.md entry file",
"tokens": "4,000"
},
{
"label": "One chapter file",
"tokens": "1,000"
},
{
"label": "glossary.md",
"tokens": "1,500"
},
{
"label": "patterns.md",
"tokens": "2,000"
},
{
"label": "cheatsheet.md",
"tokens": "1,000"
}
]Die Einstiegsdatei SKILL.md ist auf 4,000 Tokens begrenzt und enthält die genannten Frameworks sowie den Kapitelindex. Jede Kapiteldatei umfasst etwa 1,000 Tokens und bleibt auf der Festplatte, bis sie benötigt wird. Die unterstützenden Dateien sind ähnlich aufgebaut: 1,500 Tokens für glossary.md, 2,000 für patterns.md und 1,000 für cheatsheet.md.
Diese Budgets entsprechen der tatsächlichen Nutzung des Kontexts durch Claude Code. Die description eines Skills erscheint in der Skill-Liste, damit das Modell weiß, dass der Skill vorhanden ist. Der Inhalt wird geladen, wenn der Skill aufgerufen wird, und bleibt danach für den Rest der Sitzung im Kontext. Daher verursacht jede Zeile in der Einstiegsdatei wiederkehrende Kosten. Unterstützende Dateien werden nur geladen, wenn der Agent sie liest. Dadurch bleiben Dateien pro Kapitel kostengünstig.
Hinter dem Wert für die Einstiegsdatei steht eine weitere harte Grenze. Wenn die automatische Kompaktierung eine lange Unterhaltung zusammenfasst, hängt Claude Code nach der Zusammenfassung die jeweils letzte Verwendung jedes Skills erneut an und behält von jedem Skill die ersten 5,000 Tokens. Dafür gilt über alle erneut angehängten Skills hinweg ein gemeinsames Budget von 25,000 Tokens. Eine Einstiegsdatei, die in 5,000 Tokens passt, bleibt nach der Kompaktierung vollständig erhalten. Eine Einstiegsdatei mit 20,000 Tokens wird nur mit ihrem ersten Viertel erneut eingefügt. Es gibt keinen Hinweis darauf, welche drei Viertel fehlen.
Das ist progressive Offenlegung: ein kleiner Index, dessen Kosten sich immer lohnen, während der umfangreiche Inhalt hinter einer Tür liegt, die der Agent gezielt öffnet. So verwaltet Claude Code sein Kontextfenster behandelt die übrige Berechnung.
Den Konverter auf Ihrem VPS installieren und auf einen Release festlegen
Das Skill ist ein Git-Repository. Klonen Sie es in das Skills-Verzeichnis des verwendeten Agents. Der Verzeichnisname wird zum Slash-Befehl. Der Clone-Pfad ist daher nicht beliebig.
git clone --depth 1 --branch v1.4.0 \
https://github.com/virgiliojr94/book-to-skill.git \
~/.claude/skills/book-to-skill--branch akzeptiert ein Tag. Dadurch wird v1.4.0 ausgecheckt und keine spätere Version. Legen Sie die Version fest, weil ein Skill aus Anweisungen besteht, die Ihr Agent ausführt. Eine ungeprüfte Änderung dieser Anweisungen ändert somit, was auf Ihrem Server ausgeführt wird. GitHub Copilot CLI liest stattdessen ~/.copilot/skills/, und Amp liest ~/.agents/skills/.
Es gibt außerdem eine einzeilige Installation mit npx skills add virgiliojr94/book-to-skill. Sie lädt jeweils den aktuellen Stand. Verwenden Sie sie, um das Tool zu testen. Für alles, was Sie erneut ausführen, verwenden Sie den festgelegten Clone.
Prüfen Sie jetzt, welche Extractors auf dem System vorhanden sind:
cd ~/.claude/skills/book-to-skill
python3 scripts/extract.py --check--check zeigt, welche Extractors installiert sind, und gibt für jeden fehlenden Extractor den Installationsbefehl aus. Das Paket benötigt Python 3.9 oder neuer.
Wenn /book-to-skill nach dem Klonen nicht in der Autovervollständigung erscheint, starten Sie Ihren Agent neu. Claude Code überwacht die Skill-Verzeichnisse, die beim Start der Sitzung bereits vorhanden waren. Ein ~/.claude/skills/, das Sie vor zwei Minuten erstellt haben, wird daher noch nicht überwacht.
Welche Extractors benötigen Sie tatsächlich?
Über Python hinaus ist nichts erforderlich, weil für jedes Format ein Fallback aus der Standardbibliothek vorhanden ist. Diese Fallbacks sind schlechter. Auf einem kleinen Server geht außerdem Zeit für die Installation von Extractors verloren, die Sie nicht benötigen.
pdftotextaus dem Paketpoppler-utilsverarbeitet textlastige PDFs nahezu sofort. Installieren Sie es mitsudo apt install poppler-utils.pypdfundpdfminer.sixsind die Python-Fallbacks für PDF.doclingist für technische PDFs vorgesehen, deren Inhalt hauptsächlich in Tabellen und Codeauflistungen steckt. Das Projekt gibt die Verarbeitungszeit mit ungefähr 1.5 Sekunden pro Seite an.ebooklibliest EPUB-Dateien zusammen mitbeautifulsoup4korrekt ein. Ohne diese Pakete verwendet das Tool den Readerzipfileaus der Standardbibliothek.python-docxliest DOCX-Dateien, undstriprtfliest RTF-Dateien.- Calibres
ebook-convertwird für MOBI- und AZW-Dateien benötigt. ocrmypdfführt OCR (optische Zeichenerkennung) für ein gescanntes Buch aus, das überhaupt keine Textebene enthält.
Unter Ubuntu 24.04 bricht ein einfaches pip3 install pypdf mit dieser Meldung ab:
error: externally-managed-environmentDas bedeutet nicht, dass pip beschädigt ist. Ubuntu und Debian markieren die System-Python-Installation als von apt verwaltet. Deshalb verweigert pip das Schreiben in diese Installation. Zwei Lösungen funktionieren. sudo apt install poppler-utils installiert eine Binärdatei und benötigt überhaupt kein pip. pdftotext deckt die meisten PDF-Dateien mit Fließtext allein ab. Für die Python-Extractor erstellen Sie eine virtuelle Umgebung und starten Ihren Agenten innerhalb dieser Umgebung. Dadurch ist python3, das vom Skill aufgerufen wird, der Interpreter mit den installierten Paketen.
python3 -m venv ~/.venvs/book-to-skill
source ~/.venvs/book-to-skill/bin/activate
pip install "$HOME/.claude/skills/book-to-skill[pdf,epub,docx]"
claudeDas Repository deklariert die Extras pdf, epub, docx, rtf, technical und all. Dabei ist technical gleich docling. Die Installationsseite des Projekts zeigt außerdem pip install "book-to-skill[pdf,epub,docx]". Dieser Name wird jedoch Stand August 2026 nicht auf PyPI veröffentlicht. Installieren Sie es daher wie oben beschrieben aus Ihrem eigenen Checkout.
Lassen Sie docling zunächst weg, bis ein Buch es benötigt. Das Paket installiert einen Machine-Learning-Stack. Prüfen Sie daher vor der Installation den freien Speicherplatz auf einem kleinen Tarif.
Führen Sie den Befehl über ein Dokumentenverzeichnis aus, auch ohne Interaktion
Der Befehl akzeptiert eine Datei, ein Verzeichnis, ein quotiertes Glob-Muster oder mehrere Pfade gleichzeitig, gefolgt von einem optionalen Skill-Namen. Sie können beliebige Inhalte eines Verzeichnisses verwenden, darunter auch ein RFC-Set (Request for Comments, also die Dokumente, die Internetprotokolle definieren).
/book-to-skill ~/library/platform-docs/ platform-handbook
/book-to-skill "~/books/*.epub" my-library
/book-to-skill ~/papers/paper1.pdf ~/notes/export.txt unified-researchQuotieren Sie das Glob-Muster, damit Ihre Shell es nicht erweitert, bevor der Skill es erhält. Wenn Sie den Befehl auf ein vorhandenes Skill-Verzeichnis anwenden, werden die neuen Quellen in diesen Skill integriert, statt einen zweiten Skill zu erstellen.
Bei einer interaktiven Ausführung werden Sie gefragt, ob das Material technisch oder textlastig ist. Davon hängt der Extractor ab. Außerdem werden Sie nach der gewünschten Referenz- oder Lerntiefe gefragt. Davon hängt das Budget pro Kapitel ab. Danach legen Sie den Namen des Skills und das Skills-Root-Verzeichnis fest. Vor der Generierung zeigt der Befehl außerdem eine Schätzung für Token und Dauer an und wartet auf Ihre Bestätigung.
Bei einer Ausführung ohne Interaktion kann niemand diese Fragen beantworten. Von Benutzern aufrufbare Skills funktionieren in claude -p: Setzen Sie den Slash-Befehl in die Prompt-Zeichenfolge ein, und Claude Code erweitert ihn, bevor die Ausführung beginnt. Beantworten Sie die Fragen daher in derselben Prompt.
claude -p "/book-to-skill ~/library/platform-docs/ platform-handbook
The sources are technical. Use reference depth. Write the skill to
~/.claude/skills/. Do not publish it to GitHub. Proceed without asking me." \
--allowedTools "Bash,Read,Write,Edit"--allowedTools bestätigt die für die Ausführung benötigten Tools vorab. Ohne angeschlossenes Terminal würde eine Berechtigungsabfrage dazu führen, dass die Ausführung nie abgeschlossen wird. Mit --output-format json wird total_cost_usd in das Ergebnis aufgenommen. Dabei handelt es sich um eine clientseitige Schätzung und nicht um Ihre Abrechnung.
Vor dem Lesen durch ein Modell führt die Extraktion alle Quellen in einem temporären Arbeitsverzeichnis unter /tmp zusammen. Im letzten Schritt der Ausführung wird dieses Verzeichnis gelöscht. Eine Quelle, deren Extraktion fehlschlägt, wird übersprungen, damit die Stapelverarbeitung fortgesetzt werden kann. Daher kann eine Ausführung erfolgreich enden, obwohl weniger Dateien gelesen wurden als angegeben. Vergleichen Sie das Dateiinventar im Abschlussbericht mit dem Inhalt des Verzeichnisses. Ein fehlendes Kapitel weist normalerweise auf eine fehlende Quelle hin.
Verwenden Sie für die Ausführung einen Server, den Sie bedenkenlos einem Agenten überlassen können. Claude Code sicher auf einem VPS ausführen behandelt die erforderlichen Berechtigungen.
Wohin die Ausgabe geschrieben wird, damit Ihr Coding-Agent sie findet
Das generierte Skill wird in einem Skill-Stammverzeichnis abgelegt. Zwei davon sind relevant.
~/.claude/skills/<skill-name>/ist persönlich und in jedem Projekt auf diesem Rechner verfügbar..claude/skills/<skill-name>/liegt innerhalb eines Repositorys und wird mit diesem versioniert.
In beiden Verzeichnissen finden Sie SKILL.md, ein chapters/-Verzeichnis mit einer Datei pro Kapitel, sowie die unterstützenden Dateien. Der Verzeichnisname ist der Befehl. ~/.claude/skills/platform-handbook/ liefert daher /platform-handbook. Anschließend können Sie ein Thema oder eine einfache Frage angeben.
Wählen Sie das Stammverzeichnis nach den Lizenzbedingungen und nicht nach der Bequemlichkeit. Ein Skill, der aus einem von Ihnen gekauften Buch erstellt wurde, gehört in Ihr persönliches Verzeichnis. Ein Skill, der aus Dokumentation erstellt wurde, die Ihr eigenes Team verfasst hat, gehört in das Repository. Dadurch wird ein Skill über mehrere Repositorys hinweg gemeinsam zu nutzen zum nächsten zu lösenden Problem.
Mit jedem zusätzlichen Skill steigt ein Kostenfaktor. Die Beschreibung jedes Skills bleibt in der Skill-Liste, damit das Modell seine Verwendung entscheiden kann. Der zusammengefasste Beschreibungstext wird pro Eintrag auf 1,536 Zeichen gekürzt, und für die gesamte Liste gilt ein Budget. Zehn Buch-Skills bedeuten, dass zehn Beschreibungen um dieses Budget konkurrieren. Für Skills, die Sie immer per Namen aufrufen, fügen Sie dem generierten Frontmatter eine Zeile hinzu:
---
name: platform-handbook
description: Frameworks and chapter index from the internal platform handbook.
disable-model-invocation: true
---Mit disable-model-invocation: true bleibt die Beschreibung vollständig aus dem Kontext entfernt. Der Skill wird trotzdem vollständig geladen, wenn Sie /platform-handbook eingeben. Sie verzichten auf die automatische Erkennung und erhalten dafür ein ruhigeres Kontextfenster.
Lizenzen: MIT gilt für den Konverter, nicht für das Buch
Seien Sie hier genau, denn der Fehler ist kein technischer.
- Die MIT-Lizenz gilt für den Code des Konverters und seine Skill-Definition. Über das Dokument, das Sie ihm übergeben, sagt sie nichts aus.
- Wenn Sie den Konverter über ein gekauftes Buch auf Hardware ausführen, die Sie kontrollieren, machen Sie Notizen aus Ihrer eigenen Kopie.
- Die Veröffentlichung des Ergebnisses ist eine Verbreitung. Die MIT-Lizenz des Tools gibt Ihnen kein Recht, aus dem Buch einer anderen Person abgeleitete Inhalte zu verbreiten.
- Die Ausgabe ist ein abgeleitetes Werk. Auch Frameworks und Kapitelzusammenfassungen sind von der Quelle geprägt, und ein abgeleitetes Werk unterliegt weiterhin dem Urheberrecht der Quelle.
- Ein Skill, der aus Material erstellt wurde, das Sie nicht weiterverbreiten dürfen, bleibt auf dem Rechner, auf dem er erstellt wurde. Er gehört nicht in ein öffentliches Repository und nicht in einen gemeinsam genutzten Team-Marktplatz.
- Veröffentlichen Sie nur dann, wenn die Quelle Ihnen gehört oder unter einer offenen Lizenz steht: beispielsweise von Ihrem Team erstellte Dokumentation oder ein Standard, dessen Bedingungen die Weiterverbreitung erlauben.
Das Tool ist darauf ausgelegt. Es enthält keine Buchinhalte, die Extraktion läuft lokal, und der Veröffentlichungsschritt fragt die Sichtbarkeit des Repositorys als separate Frage ab. Als Antwort werden nur die einzelnen Wörter public oder private akzeptiert; eine Auswahl wird nicht automatisch abgeleitet. Behandeln Sie diese Abfrage als Lizenzentscheidung, denn genau das ist sie.
Interne Handbücher bringen ein zweites Problem mit sich. Sie enthalten häufiger Zugangsdaten, als irgendjemand zugibt, und ein Konverter macht aus einer PDF-Datei, die niemand öffnet, eine Datei, die Ihr Agent bei Bedarf liest. Lesen Sie die erzeugten Dateien einmal, bevor Sie sie committen, und lesen Sie wie Sie Geheimnisse aus Ihren AI-Agenten heraushalten.
Was kostet eine Konvertierung?
Die folgenden Zahlen stammen aus den veröffentlichten Messungen des Projekts, nicht aus unseren eigenen Messungen.
The data behind this chart
[
{
"label": "Think Python 2",
"cost_usd": 0.88
},
{
"label": "Working Backwards",
"cost_usd": 0.96
},
{
"label": "Pro Git",
"cost_usd": 1.23
},
{
"label": "Moby-Dick",
"cost_usd": 1.42
}
]Bei den 4 Büchern, die das Projekt gemessen hat, kostete eine Konvertierung zwischen 0.88 und 1.42 US-Dollar. Für Pro Git betrugen die Kosten 1.23. Die Werte wurden mit Claude Sonnet 4.5 gemessen. Die Token-Anzahlen stammen aus tiktoken und wurden mit cl100k_base ermittelt. Sie sind im docs/performance.md des Projekts mit Stand August 2026 veröffentlicht. Ihr eigener Wert hängt von Ihrem Modell und Ihren Preisen ab.
Das Projekt dokumentiert außerdem, dass die Beantwortung einer einzelnen Frage aus dem Skill 24- bis 51-mal weniger Tokens benötigt als die Beantwortung einer Frage aus dem gesamten Buch, das in den Kontext eingefügt wurde. Verstehen Sie dies als Größenordnung der Einsparung, nicht als Zusage. Der Wert hängt vom Buch und von der Frage ab. Der strukturelle Punkt bleibt jedoch bestehen: Die Konvertierung wird einmal bezahlt. Ein in den Kontext eingefügtes Buch wird dagegen bei jeder Unterhaltung, die das Buch benötigt, erneut bezahlt.
Warum nicht die PDF einfügen oder einen RAG-Index erstellen?
Das Einfügen funktioniert und ist die richtige Lösung für eine Frage zu einem Dokument. Es ist nicht mehr die richtige Lösung, wenn dasselbe Buch am Dienstag und erneut am Freitag benötigt wird, weil Sie jedes Mal die vollständige Größe bezahlen.
Retrieval oder RAG (Retrieval-Augmented Generation) durchsucht den Inhalt zum Abfragezeitpunkt und liefert die Passagen zurück, die zu Ihren Wörtern passen. Das ist hilfreich, wenn Sie den genauen Satz benötigen. Es ist weniger geeignet, wenn die relevante Information ein über ein Kapitel verteiltes Konzept ist, weil keine einzelne Passage dieses Konzept vollständig enthält. Ein Skill führt diese Extraktion einmalig bei der Konvertierung durch und speichert die Struktur statt der Passagen.
Die ehrliche Einschränkung: Ein generierter Skill ist eine verlustbehaftete, von einem Modell erstellte Zusammenfassung. Er dient als Lernhilfe. Die Quelle bleibt maßgeblich. Wenn der genaue Wortlaut rechtlich oder protokolltechnisch relevant ist, bewahren Sie die PDF auf und zitieren Sie daraus. Skills im Vergleich zu MCP-Servern und Rules-Dateien erläutert, wo welcher Ansatz geeignet ist.
Fehlerfälle und die angezeigten Meldungen
Eine gescannte PDF-Datei erzeugt keine Ausgabe. Der Extractor prüft die ersten Seiten auf eine Textebene und beendet sich mit einer Erklärung, statt 400 Seiten mit Bildern zu verarbeiten. Führen Sie zuerst ocrmypdf input.pdf output.pdf aus und übergeben Sie anschließend die Ausgabedatei.
pip verweigert die Installation. error: externally-managed-environment auf Ubuntu 24.04 ist der Schutz von apt für die System-Python-Installation. Verwenden Sie die oben beschriebene virtuelle Umgebung oder installieren Sie poppler-utils und verzichten Sie vollständig auf pip.
Die Kapitel werden falsch erkannt. Die Kapitelerkennung sucht nach expliziten Überschriften wie Chapter 7 und deren Sprachvarianten. Ein Buch mit einfachen Abschnittstiteln oder römischen Zahlen wird falsch aufgeteilt. Geben Sie in diesem Fall an, wo die Kapitel beginnen, statt auf eine korrekte automatische Erkennung zu hoffen.
Der Befehl ist nicht vorhanden. Wenn /book-to-skill in der Autovervollständigung fehlt, wurde das Skills-Verzeichnis nach dem Start Ihrer Sitzung erstellt. Starten Sie den Agent neu.
Docling benötigt sehr viel Zeit. Bei ungefähr 1.5 Sekunden pro Seite benötigt die Verarbeitung eines langen Buchs mehrere Minuten CPU-Zeit. Auf einem gemeinsam genutzten Server konkurriert dieser Lauf außerdem mit den anderen gehosteten Diensten. Antworten Sie auf die Frage nach dem Inhaltstyp mit "text-heavy" oder übergeben Sie --mode text, wenn Sie scripts/extract.py selbst ausführen. --mode technical wählt docling aus.
Eine Quelle verschwindet ohne Meldung. Eine nicht lesbare Datei wird übersprungen, damit der Batch abgeschlossen werden kann. Der Lauf meldet anschließend Erfolg für weniger Quellen, als Sie übergeben haben. Dies ist nur im Dateibestand des Abschlussberichts sichtbar.
Muster manuell anwenden
Das Tool dient nur der Vereinfachung. Die Struktur ist der übertragbare Teil. Ein Texteditor kann sie für jedes Referenzmaterial erstellen, über das Sie verfügen.
- Schreiben Sie eine Einstiegsdatei und halten Sie sie nahe an den 4,000 Tokens, auf die der Konverter abzielt. Nehmen Sie die benannten Konzepte mit ihren exakten Formulierungen auf. Fügen Sie außerdem einen Index hinzu, der jede Detaildatei und die darin enthaltenen Themen aufführt.
- Teilen Sie das Material in Dateien mit ungefähr 1,000 Tokens auf. Jede Datei sollte genau ein Thema behandeln. Benennen Sie die Dateien so, dass ihr Inhalt allein anhand des Dateinamens erkennbar ist.
- Beschreiben Sie jede dieser Dateien in der Einstiegsdatei. Verwenden Sie dafür den Satz, der angibt, wann die Datei gelesen werden soll.
Schritt 3 wird häufig übersprungen. Er ist jedoch entscheidend dafür, dass das Muster funktioniert. Der Agent entscheidet anhand des Index, welche Datei geöffnet wird. Eine Datei, die im Index nicht beschrieben ist, wird vom Agenten niemals geöffnet. Der Index ist das eigentliche Produkt. Die Kapiteld ateien dienen als Speicher.
Halten Sie die Einstiegsdatei innerhalb des Komprimierungsbudgets. Dann bleibt die gesamte Struktur auch über eine lange Sitzung hinweg erhalten. Diese Regel gilt unabhängig davon, ob ein Konverter die Dateien erstellt hat oder Sie selbst.
FAQ
Kann ich einen aus einem gekauften Buch erstellten Skill veröffentlichen?
Nein, außer die Lizenz des Buchs erlaubt die Weiterverteilung. Die MIT-Lizenz des Converters gilt für den Code des Converters, nicht für das Material, das Sie ihm übergeben. Der erzeugte Skill ist ein abgeleitetes Werk des Buchs. Bewahren Sie ihn in ~/.claude/skills/ auf Ihrem eigenen Rechner auf. Eine Veröffentlichung ist für selbst verfasste Dokumentation oder für Quellen mit einer offenen Lizenz zulässig. Das Tool fragt die Sichtbarkeit des Repositorys außerdem separat ab und akzeptiert dafür ausschließlich ein einzelnes public oder private. Dadurch bleibt die Entscheidung bewusst.
Benötige ich docling, oder reicht pdftotext aus?
pdftotext aus poppler-utils reicht für Fließtext aus und ist nahezu sofort fertig. Installieren Sie docling, wenn der wesentliche Inhalt des Buchs in Tabellen und Codeauflistungen steht. Ein einfacher Textextraktor lässt genau diese Inhalte weg. Der Nachteil ist die Geschwindigkeit: Das Projekt misst für docling ungefähr 1.5 Sekunden pro Seite. Ein Handbuch mit 300 Seiten benötigt auf einem VPS daher mehrere Minuten CPU-Zeit.
Warum schlägt pip auf meinem VPS mit externally-managed-environment fehl?
Ubuntu 24.04 und aktuelle Debian-Versionen kennzeichnen das System-Python als von apt verwaltet. Daher verweigert pip die Installation in dieser Umgebung und gibt error: externally-managed-environment aus. Erstellen Sie mit python3 -m venv ~/.venvs/book-to-skill eine virtuelle Umgebung, aktivieren Sie sie und installieren Sie die Extraktoren darin. Starten Sie anschließend Ihren Agent aus derselben Shell. Der Skill ruft python3 auf und verwendet daher den Interpreter, der in Ihrem PATH gefunden wird. Das ist jetzt der Interpreter aus der virtuellen Umgebung.
Warum wird mein erzeugter Skill nicht als Slash-Befehl angezeigt?
Es gibt zwei Ursachen. Der Befehlsname stammt vom Verzeichnisnamen. Der Skill muss daher unter ~/.claude/skills/<name>/SKILL.md oder .claude/skills/<name>/SKILL.md liegen, wobei SKILL.md exakt so geschrieben sein muss. Wenn der Pfad stimmt, starten Sie den Agent neu. Claude Code übernimmt Änderungen in Skill-Verzeichnissen, die es bereits überwacht. Ein Skills-Verzeichnis, das nach dem Sitzungsstart erstellt wurde, wird dagegen überhaupt nicht überwacht.