{"id":591,"date":"2025-01-11T15:25:02","date_gmt":"2025-01-11T15:25:02","guid":{"rendered":"https:\/\/smolagents.org\/?post_type=docs&#038;p=591"},"modified":"2025-01-11T15:41:26","modified_gmt":"2025-01-11T15:41:26","password":"","slug":"tools-of-smolagents-in-depth-guide","status":"publish","type":"docs","link":"https:\/\/smolagents.org\/de\/docs\/tools-of-smolagents-in-depth-guide\/","title":{"rendered":"Ausf\u00fchrlicher Leitfaden zu den Tools von Smolagents"},"content":{"rendered":"<p>Hier geht es um die Verwendung fortgeschrittener Werkzeuge.<\/p>\n\n\n\n<p>Wenn Sie neu im Bereich der Bauagenten sind, sollten Sie zuerst die\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/conceptual_guides\/intro_agents\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Intro zu Agenten<\/a>\u00a0und die\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/guided_tour\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">gef\u00fchrte Besichtigung von smolagents<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#tools\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Werkzeuge<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#what-is-a-tool-and-how-to-build-one\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Was ist ein Werkzeug, und wie baut man es?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#share-your-tool-to-the-hub\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Teilen Sie Ihr Tool mit dem Hub<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#import-a-space-as-a-tool\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Einen Raum als Werkzeug importieren<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#use-langchain-tools\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LangChain-Tools verwenden<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#manage-your-agents-toolbox\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Verwalten Sie den Werkzeugkasten Ihres Agenten<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#use-a-collection-of-tools\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Verwenden Sie eine Sammlung von Werkzeugen<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#what-is-a-tool-and-how-to-build-one\" target=\"_blank\" rel=\"noopener\"><\/a>Was ist ein Werkzeug, und wie baut man es?<\/h3>\n\n\n\n<p>Ein Werkzeug ist meist eine Funktion, die ein LLM in einem agentenbasierten System nutzen kann.<\/p>\n\n\n\n<p>Aber um es zu benutzen, muss dem LLM eine API gegeben werden: Name, Werkzeugbeschreibung, Eingabetypen und Beschreibungen, Ausgabetyp.<\/p>\n\n\n\n<p>Es kann also nicht nur eine Funktion sein. Es sollte eine Klasse sein.<\/p>\n\n\n\n<p>Im Kern ist das Tool also eine Klasse, die eine Funktion mit Metadaten umh\u00fcllt, die dem LLM helfen zu verstehen, wie sie zu verwenden ist.<\/p>\n\n\n\n<p>So sieht es aus:<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">von smolagents importieren Werkzeug\n\nclass HFModelDownloadsTool(Tool):\n    name = \"model_download_counter\"\n    description = \"\"\"\n    Dies ist ein Tool, das das am h\u00e4ufigsten heruntergeladene Modell einer bestimmten Aufgabe auf dem Hugging Face Hub zur\u00fcckgibt.\n    Es gibt den Namen des Checkpoints zur\u00fcck.\"\"\"\n    inputs = {\n        \"task\": {\n            \"type\": \"string\",\n            \"description\": \"die Aufgabenkategorie (z. B. Textklassifizierung, Tiefenabsch\u00e4tzung usw.)\",\n        }\n    }\n    output_type = \"string\"\n\n    def forward(self, task: str):\n        from huggingface_hub import list_models\n\n        model = next(iter(list_models(filter=task, sort=\"downloads\", direction=-1)))\n        return model.id\n\nmodel_downloads_tool = HFModelDownloadsTool()<\/pre>\n\n\n\n<p>Die Unterklassen der benutzerdefinierten Werkzeuge\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.Tool\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Werkzeug<\/a>\u00a0um n\u00fctzliche Methoden zu erben. Die Kindklasse definiert auch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ein Attribut\u00a0<code>Name<\/code>der dem Namen des Werkzeugs selbst entspricht. Der Name beschreibt normalerweise, was das Werkzeug tut. Da der Code das Modell mit den meisten Downloads f\u00fcr eine Aufgabe zur\u00fcckgibt, nennen wir es\u00a0<code>model_download_counter<\/code>.<\/li>\n\n\n\n<li>Ein Attribut\u00a0<code>Beschreibung<\/code>\u00a0wird verwendet, um die System-Eingabeaufforderung des Agenten zu f\u00fcllen.<\/li>\n\n\n\n<li>Eine\u00a0<code>Eingaben<\/code>\u00a0Attribut, das ein W\u00f6rterbuch mit Schl\u00fcsseln ist\u00a0<code>\"Typ\"<\/code>\u00a0und\u00a0<code>\"Beschreibung\"<\/code>. Sie enth\u00e4lt Informationen, die dem Python-Interpreter helfen, eine fundierte Entscheidung \u00fcber die Eingabe zu treffen.<\/li>\n\n\n\n<li>Eine\u00a0<code>ausgabe_art<\/code>\u00a0Attribut, das den Ausgabetyp angibt. Die Typen f\u00fcr beide\u00a0<code>Eingaben<\/code>\u00a0und\u00a0<code>ausgabe_art<\/code>\u00a0sollte sein\u00a0<a href=\"https:\/\/docs.pydantic.dev\/latest\/concepts\/json_schema\/#generating-json-schema\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Pydantische Formate<\/a>k\u00f6nnen sie eines von beiden sein:\u00a0<code>~AUTHORIZED_TYPES()<\/code>.<\/li>\n\n\n\n<li>A\u00a0<code>weiter<\/code>\u00a0Methode, die den auszuf\u00fchrenden Inferenzcode enth\u00e4lt.<\/li>\n<\/ul>\n\n\n\n<p>Und das ist alles, was es braucht, um in einem Agenten verwendet zu werden!<\/p>\n\n\n\n<p>Es gibt noch einen anderen Weg, ein Werkzeug zu bauen. In der\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/guided_tour\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">gef\u00fchrte_tour<\/a>haben wir ein Tool implementiert, das die\u00a0<code>@tool<\/code>\u00a0Dekorateur. Die\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.tool\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">tool()<\/a>\u00a0Dekorator ist der empfohlene Weg, um einfache Werkzeuge zu definieren, aber manchmal braucht man mehr als das: die Verwendung mehrerer Methoden in einer Klasse f\u00fcr mehr Klarheit oder die Verwendung zus\u00e4tzlicher Klassenattribute.<\/p>\n\n\n\n<p>In diesem Fall k\u00f6nnen Sie Ihr Werkzeug durch Unterklassifizierung erstellen\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.Tool\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Werkzeug<\/a>\u00a0wie oben beschrieben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#share-your-tool-to-the-hub\" target=\"_blank\" rel=\"noopener\"><\/a>Teilen Sie Ihr Tool mit dem Hub<\/h3>\n\n\n\n<p>Sie k\u00f6nnen Ihr benutzerdefiniertes Tool f\u00fcr den Hub freigeben, indem Sie\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.Tool.push_to_hub\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">push_to_hub()<\/a>\u00a0f\u00fcr das Werkzeug. Stellen Sie sicher, dass Sie daf\u00fcr ein Repository auf dem Hub erstellt haben und ein Token mit Lesezugriff verwenden.<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">model_downloads_tool.push_to_hub(\"{Ihr_Benutzername}\/hf-model-downloads\", token=\"\")<\/pre>\n\n\n\n<p>Damit der Push-to-Hub funktioniert, muss Ihr Werkzeug einige Regeln einhalten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alle Methoden sind in sich geschlossen, d.h. sie verwenden Variablen, die entweder aus ihren Args stammen.<\/li>\n\n\n\n<li>Wie unter dem obigen Punkt beschrieben,\u00a0<strong>alle Importe sollten direkt in den Funktionen des Werkzeugs definiert werden<\/strong>sonst erhalten Sie eine Fehlermeldung, wenn Sie versuchen, die\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.Tool.save\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">speichern()<\/a>\u00a0oder\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.Tool.push_to_hub\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">push_to_hub()<\/a>\u00a0mit Ihrem benutzerdefinierten Werkzeug.<\/li>\n\n\n\n<li>Wenn Sie die Unterklasse\u00a0<code>__init__<\/code>\u00a0Methode k\u00f6nnen Sie ihr kein anderes Argument geben als\u00a0<code>selbst<\/code>. Der Grund daf\u00fcr ist, dass Argumente, die w\u00e4hrend der Initialisierung einer spezifischen Werkzeuginstanz gesetzt werden, schwer zu verfolgen sind, was verhindert, dass sie ordnungsgem\u00e4\u00df an den Hub weitergegeben werden. Und wie auch immer, die Idee der Erstellung einer spezifischen Klasse ist, dass Sie bereits Klassenattribute f\u00fcr alles setzen k\u00f6nnen, was Sie hart kodieren m\u00fcssen (setzen Sie einfach\u00a0<code>ihre_variable=(...)<\/code>\u00a0direkt unter dem\u00a0<code>class YourTool(Tool):<\/code>\u00a0Zeile). Und nat\u00fcrlich k\u00f6nnen Sie immer noch ein Klassenattribut irgendwo in Ihrem Code erstellen, indem Sie etwas an\u00a0<code>self.Ihre_Variable<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>Sobald Ihr Werkzeug an Hub \u00fcbergeben wurde, k\u00f6nnen Sie es visualisieren.\u00a0<a href=\"https:\/\/huggingface.co\/spaces\/m-ric\/hf-model-downloads\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Hier<\/a>\u00a0ist die\u00a0<code>model_downloads_tool<\/code>\u00a0die ich angeschoben habe. Es hat eine sch\u00f6ne Gradio-Schnittstelle.<\/p>\n\n\n\n<p>Wenn Sie in die Werkzeugdateien eintauchen, werden Sie feststellen, dass sich die gesamte Logik des Werkzeugs unter\u00a0<a href=\"https:\/\/huggingface.co\/spaces\/m-ric\/hf-model-downloads\/blob\/main\/tool.py\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">tool.py<\/a>. Dort k\u00f6nnen Sie ein von einer anderen Person freigegebenes Werkzeug einsehen.<\/p>\n\n\n\n<p>Dann k\u00f6nnen Sie das Werkzeug mit\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.load_tool\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">load_tool()<\/a>\u00a0oder erstellen Sie es mit\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.Tool.from_hub\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">from_hub()<\/a>\u00a0und \u00fcbergibt sie an die\u00a0<code>Werkzeuge<\/code>\u00a0Parameter in Ihrem Agenten. Da das Ausf\u00fchren von Werkzeugen das Ausf\u00fchren von benutzerdefiniertem Code bedeutet, m\u00fcssen Sie sicherstellen, dass Sie dem Repository vertrauen, daher m\u00fcssen wir den Parameter\u00a0<code>trust_remote_code=True<\/code>\u00a0um ein Werkzeug aus dem Hub zu laden.<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">von smolagents importieren load_tool, CodeAgent\n\nmodel_download_tool = load_tool(\n    \"{Ihr_Benutzername}\/hf-model-downloads\",\n    trust_remote_code=True\n)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#import-a-space-as-a-tool\" target=\"_blank\" rel=\"noopener\"><\/a>Einen Raum als Werkzeug importieren<\/h3>\n\n\n\n<p>Sie k\u00f6nnen einen Space direkt aus dem Hub als Werkzeug importieren, indem Sie die\u00a0<a href=\"https:\/\/huggingface.co\/docs\/smolagents\/v1.2.2\/en\/reference\/tools#smolagents.Tool.from_space\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Tool.from_space()<\/a>\u00a0Methode!<\/p>\n\n\n\n<p>Sie m\u00fcssen nur die ID des Spaces im Hub, seinen Namen und eine Beschreibung angeben, die dem Agenten hilft zu verstehen, was das Tool tut. Unter der Haube wird dies verwenden\u00a0<a href=\"https:\/\/pypi.org\/project\/gradio-client\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><code>gradio-Klient<\/code><\/a>\u00a0Bibliothek, um den Space aufzurufen.<\/p>\n\n\n\n<p>Importieren wir zum Beispiel die\u00a0<a href=\"https:\/\/huggingface.co\/black-forest-labs\/FLUX.1-dev\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">FLUX.1-dev<\/a>\u00a0Space aus dem Hub und verwenden Sie es, um ein Bild zu erzeugen.<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">image_generation_tool = Tool.from_space(\n    \"black-forest-labs\/FLUX.1-schnell\",\n    name=\"bild_generator\",\n    description=\"Erzeuge ein Bild aus einer Eingabeaufforderung\"\n)\n\nimage_generation_tool(\"Ein sonniger Strand\")<\/pre>\n\n\n\n<p>Und voil\u00e0, hier ist Ihr Bild! \ud83c\udfd6\ufe0f<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/sunny_beach.webp\" alt=\"\" class=\"wp-image-593\" style=\"width:1176px;height:auto\" srcset=\"https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/sunny_beach.webp 1024w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/sunny_beach-300x300.webp 300w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/sunny_beach-150x150.webp 150w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/sunny_beach-768x768.webp 768w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/sunny_beach-12x12.webp 12w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/sunny_beach-360x360.webp 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dann k\u00f6nnen Sie dieses Werkzeug wie jedes andere Werkzeug verwenden. Verbessern wir zum Beispiel die Eingabeaufforderung&nbsp;<code>ein Kaninchen in einem Raumanzug<\/code>&nbsp;und erstellen Sie ein Bild davon.<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">von smolagents importieren CodeAgent, HfApiModel\n\nmodel = HfApiModel(\"Qwen\/Qwen2.5-Coder-32B-Instruct\")\nagent = CodeAgent(tools=[image_generation_tool], model=model)\n\nagent.run(\n    \"Verbessern Sie diesen Prompt und erzeugen Sie dann ein Bild davon.\", prompt='Ein Kaninchen im Raumanzug'\n)<\/pre>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">=== Gedanken des Agenten:\nimproved_prompt k\u00f6nnte lauten: \"Ein hellblauer Raumanzug tragender Hase, auf der Oberfl\u00e4che des Mondes, unter einem hellorangen Sonnenuntergang, mit der Erde im Hintergrund\"\n\nNun, da ich die Eingabeaufforderung verbessert habe, kann ich das Bildgenerator-Tool verwenden, um ein Bild auf der Grundlage dieser Eingabeaufforderung zu erzeugen.\n&gt;&gt;&gt; Der Agent f\u00fchrt den folgenden Code aus:\nimage = image_generator(prompt=\"Ein Kaninchen in einem hellblauen Raumanzug, auf der Oberfl\u00e4che des Mondes, unter einem leuchtend orangen Sonnenuntergang, mit der Erde im Hintergrund\")\nfinal_answer(image)<\/pre>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/rabbit_spacesuit_flux.webp\" alt=\"\" class=\"wp-image-592\" style=\"width:1178px;height:auto\" srcset=\"https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/rabbit_spacesuit_flux.webp 1024w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/rabbit_spacesuit_flux-300x300.webp 300w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/rabbit_spacesuit_flux-150x150.webp 150w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/rabbit_spacesuit_flux-768x768.webp 768w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/rabbit_spacesuit_flux-12x12.webp 12w, https:\/\/smolagents.org\/wp-content\/uploads\/2025\/01\/rabbit_spacesuit_flux-360x360.webp 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Wie cool ist das denn? \ud83e\udd29<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#use-langchain-tools\" target=\"_blank\" rel=\"noopener\"><\/a>LangChain-Tools verwenden<\/h3>\n\n\n\n<p>Wir lieben Langchain und sind der Meinung, dass es eine sehr \u00fcberzeugende Reihe von Tools hat. Um ein Werkzeug aus LangChain zu importieren, verwenden Sie die&nbsp;<code>from_langchain()<\/code>&nbsp;Methode.<\/p>\n\n\n\n<p>Im Folgenden erfahren Sie, wie Sie das Suchergebnis des Intros mit Hilfe eines LangChain-Web-Suchwerkzeugs nachbilden k\u00f6nnen. Dieses Tool ben\u00f6tigt&nbsp;<code>pip install langchain google-search-results -q<\/code>&nbsp;richtig zu funktionieren.<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">from langchain.agents import load_tools\n\nsearch_tool = Tool.from_langchain(load_tools([\"serpapi\"]))[0])\n\nagent = CodeAgent(tools=[search_tool], model=model)\n\nagent.run(\"Wie viele Bl\u00f6cke (auch als Schichten bezeichnet) enth\u00e4lt der BERT-Basiskodierer im Vergleich zu dem Kodierer aus der in Attention is All You Need vorgeschlagenen Architektur?\")<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#manage-your-agents-toolbox\" target=\"_blank\" rel=\"noopener\"><\/a>Verwalten Sie den Werkzeugkasten Ihres Agenten<\/h3>\n\n\n\n<p>Sie k\u00f6nnen den Werkzeugkasten eines Agenten verwalten, indem Sie ein Werkzeug im Attribut \"Werkzeug\" hinzuf\u00fcgen oder ersetzen.&nbsp;<code>agent.tools<\/code>, da es sich um ein Standardw\u00f6rterbuch handelt.<\/p>\n\n\n\n<p>F\u00fcgen wir die&nbsp;<code>model_download_tool<\/code>&nbsp;zu einem vorhandenen Agenten, der nur mit der Standard-Toolbox initialisiert wurde.<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">von smolagents importieren HfApiModel\n\nmodel = HfApiModel(\"Qwen\/Qwen2.5-Coder-32B-Instruct\")\n\nagent = CodeAgent(tools=[], model=model, add_base_tools=True)\nagent.tools[model_download_tool.name] = model_download_tool<\/pre>\n\n\n\n<p>Jetzt k\u00f6nnen wir das neue Werkzeug nutzen:<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">agent.run(\n    \"K\u00f6nnen Sie mir den Namen des Modells nennen, das die meisten Downloads bei der Aufgabe 'Text-zu-Video' auf dem Hugging Face Hub hat, aber die Buchstaben umkehren?\"\n)<\/pre>\n\n\n\n<p>Achten Sie darauf, nicht zu viele Tools zu einem Agenten hinzuzuf\u00fcgen: Dies kann schw\u00e4chere LLM-Engines \u00fcberfordern.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/huggingface.co\/docs\/smolagents\/tutorials\/tools#use-a-collection-of-tools\" target=\"_blank\" rel=\"noopener\"><\/a>Verwenden Sie eine Sammlung von Werkzeugen<\/h3>\n\n\n\n<p>Sie k\u00f6nnen Werkzeugsammlungen nutzen, indem Sie das ToolCollection-Objekt mit dem Slug der Sammlung verwenden, die Sie verwenden m\u00f6chten. \u00dcbergeben Sie sie dann als Liste, um Ihren Agenten zu initialisieren, und beginnen Sie, sie zu verwenden!<\/p>\n\n\n\n<p>Kopiert<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">von smolagents importieren ToolCollection, CodeAgent\n\nimage_tool_collection = ToolCollection(\n    collection_slug=\"huggingface-tools\/diffusion-tools-6630bb19a942c2306a2cdb6f\",\n    token=\"\"\n)\nagent = CodeAgent(tools=[*image_tool_collection.tools], model=model, add_base_tools=True)\n\nagent.run(\"Bitte zeichnen Sie mir ein Bild von Fl\u00fcssen und Seen.\")<\/pre>\n\n\n\n<p>Um den Start zu beschleunigen, werden die Tools nur geladen, wenn sie vom Agenten aufgerufen werden.<\/p>","protected":false},"excerpt":{"rendered":"<p>Here, we\u2019re going to see advanced tool usage. If you\u2019re new to building agents, make sure to first read the\u00a0intro to agents\u00a0and the\u00a0guided tour of smolagents. What is a tool, and how to build one? A tool is mostly a function that an LLM can use in an agentic system. But to use it, the&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"doc_category":[8],"doc_tag":[],"class_list":["post-591","docs","type-docs","status-publish","hentry","doc_category-tutorials"],"year_month":"2026-04","word_count":1431,"total_views":"5887","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"smolagents","author_nicename":"wd-gstargmail-com","author_url":"https:\/\/smolagents.org\/de\/author\/wd-gstargmail-com\/"},"doc_category_info":[{"term_name":"Tutorials","term_url":"https:\/\/smolagents.org\/de\/docs-category\/tutorials\/"}],"doc_tag_info":[],"_links":{"self":[{"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/docs\/591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/comments?post=591"}],"version-history":[{"count":1,"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/docs\/591\/revisions"}],"predecessor-version":[{"id":594,"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/docs\/591\/revisions\/594"}],"wp:attachment":[{"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/media?parent=591"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/doc_category?post=591"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/smolagents.org\/de\/wp-json\/wp\/v2\/doc_tag?post=591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}