{"id":26050,"date":"2026-09-15T12:15:08","date_gmt":"2026-09-15T11:15:08","guid":{"rendered":"https:\/\/nowtec.solutions\/?p=26050"},"modified":"2026-09-15T16:45:59","modified_gmt":"2026-09-15T15:45:59","slug":"agenten-harness-bauen","status":"publish","type":"post","link":"https:\/\/nowtec.solutions\/de\/blog\/agenten-harness-bauen\/","title":{"rendered":"Einen Agenten-Harness bauen: Von der Schleife zur Multi-Agenten-Architektur"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wir kommen bei nowtec solutions aus dem Aktivismus, und davon ist uns eine Gewohnheit geblieben: Wenn ein Werkzeug nicht so existiert, wie wir es brauchen, bauen wir es selbst. Gerade reden alle \u00fcber den \u201eKI-Agenten\u201c \u2013 und das meiste, was unter diesem Namen verkauft wird, ist ein einzelner Modellaufruf im Trenchcoat. Also haben wir angefangen, einen echten zu bauen, von Grund auf und \u00f6ffentlich. Er heisst Whale, ich sitze an der Tastatur, und die ersten zwei Build-Sessions sind online (auf Englisch).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Agenten-Harness ist die Software rund um ein Sprachmodell \u2013 Steuerschleife, Ged\u00e4chtnis und Werkzeugzugriff \u2013, die aus einem einzelnen Modellaufruf einen Agenten macht, der ein Ziel verfolgt. Das ist der rote Faden der beiden Sessions: die eine Idee, mit der Agenten verst\u00e4ndlich werden, und die Architektur, die sie \u00fcber die \u00fcblichen Grenzen hinausbringt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ein Harness ist eine Schleife, kein Aufruf<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Agenten ergeben in dem Moment Sinn, in dem du aufh\u00f6rst, in \u201ePrompt rein, Antwort raus\u201c zu denken, und anf\u00e4ngst, in einer Schleife zu denken:<\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong>handeln \u2192 beobachten \u2192 entscheiden \u2192 wiederholen \u2192 aufh\u00f6ren<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein einzelner LLM-Aufruf beantwortet eine Frage. Ein Harness verfolgt ein Ziel: Er ruft ein Werkzeug auf, beobachtet das Ergebnis, entscheidet \u00fcber den n\u00e4chsten Schritt und wiederholt das, bis eine Abbruchbedingung erf\u00fcllt ist. Alles andere \u2013 die Skills, die er nutzen kann, das Ged\u00e4chtnis, das er liest und schreibt, das Modell dahinter \u2013 h\u00e4ngt an dieser Schleife. Stimmt die Schleife, hat der Rest einen Ort, an dem er andocken kann.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Der erste Build<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In der ersten Session kommen wir von den Begriffen zu etwas, das tats\u00e4chlich l\u00e4uft. Der Stack ist bewusst unspektakul\u00e4r und portabel, denn unspektakul\u00e4r ist, was du auch in einem Jahr noch warten kannst: ein mit <a href=\"https:\/\/docs.astral.sh\/uv\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">uv<\/a> verwaltetes Python-Projekt, eine Kommandozeile mit <a href=\"https:\/\/typer.tiangolo.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Typer<\/a> als Oberfl\u00e4che und <a href=\"https:\/\/docs.litellm.ai\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">LiteLLM<\/a> als Abstraktionsschicht f\u00fcr die Modelle, damit der Harness modellunabh\u00e4ngig bleibt \u2013 standardm\u00e4ssig <a href=\"https:\/\/www.deepseek.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">DeepSeek<\/a> wegen der Kosten, jeder andere Anbieter per Flag. Darunter liegt eine Konfigurationsarchitektur im Home-Verzeichnis \u2013 Skills, Agenten, <a href=\"https:\/\/modelcontextprotocol.io\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">MCP<\/a>-Konnektoren und Ged\u00e4chtnis \u2013 plus ein strukturierter Logger, damit jeder Schritt nachvollziehbar ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Ergebnis am Ende von Teil 1 ist klein, aber echt: Der erste Prompt l\u00e4uft einmal komplett bis zur Antwort des Modells durch, mit Logging. An diesem Ger\u00fcst h\u00e4ngt jede sp\u00e4tere F\u00e4higkeit.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube\" style=\"margin:2rem 0\">\n<a href=\"https:\/\/youtu.be\/tgmM7EgUvdU\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display:block;position:relative;border-radius:10px;overflow:hidden;background:#000;text-decoration:none;line-height:0\">\n<img decoding=\"async\" src=\"https:\/\/i.ytimg.com\/vi\/tgmM7EgUvdU\/maxresdefault.jpg\" alt=\"Creating an AI Agent Harness: Iteration 1\" loading=\"lazy\" style=\"display:block;width:100%;height:auto;aspect-ratio:16\/9;object-fit:cover\">\n<span style=\"position:absolute;inset:0;display:flex;align-items:center;justify-content:center\">\n<span style=\"width:76px;height:54px;border-radius:14px;background:rgba(18,18,18,.82);display:flex;align-items:center;justify-content:center\">\n<span style=\"width:0;height:0;border-left:21px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:5px\"><\/span>\n<\/span><\/span>\n<span style=\"position:absolute;left:0;right:0;bottom:0;padding:.85rem 1rem;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font-size:.9rem;line-height:1.4\">\nCreating an AI Agent Harness: Iteration 1 &#8212; auf YouTube ansehen &#8594;<\/span>\n<\/a>\n<figcaption class=\"wp-element-caption\"><strong>Teil 1 \u2013 Konzepte und der erste Build.<\/strong> Kapitel: 00:00 Intro \u00b7 04:00 Anatomie eines Harness \u00b7 11:00 Konfigurationsarchitektur \u00b7 16:00 Losprogrammieren (uv, DeepSeek) \u00b7 30:00 Modellabstraktion (LiteLLM) \u00b7 42:00 Coding-Agenten \u00b7 48:00 Es l\u00e4uft \u00b7 56:00 Zusammenfassung.<\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u00dcber ReAct hinaus<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die meisten Agenten-Frameworks h\u00f6ren bei <a href=\"https:\/\/arxiv.org\/abs\/2210.03629\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">ReAct<\/a> auf: \u00fcberlegen \u2192 handeln \u2192 beobachten, in einer Schleife \u00fcber Werkzeuge und Ged\u00e4chtnis. In der zweiten Session treten wir einen Schritt zur\u00fcck und fragen, wie eine reichhaltigere Architektur aussieht. Denn die Architektur, nicht das Modell, entscheidet, ob du etwas wirklich Neues baust oder nur einen weiteren Wrapper.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unsere Pipeline geht weiter als die \u00fcbliche Schleife:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>abrufen<\/strong> \u2013 holt aus dem Ged\u00e4chtnis zur\u00fcck, was vorher passiert ist.<\/li>\n\n\n<li><strong>lernen<\/strong> \u2013 eine Unterschleife, die aus diesem Kontext ein \u00fcbergeordnetes Verst\u00e4ndnis aufbaut, statt ihn nur abzurufen.<\/li>\n\n\n<li><strong>planen<\/strong> \u2013 Planungsagenten legen die Arbeit als Baum oder Graph an, nicht als flache Liste. Und weil es eine Schleife ist, l\u00e4sst sich auch der Plan selbst iterieren.<\/li>\n\n\n<li><strong>recherchieren<\/strong> \u2013 geht mit einem Schwarm von Agenten tiefer in den Plan, bevor gehandelt wird.<\/li>\n\n\n<li><strong>ausf\u00fchren<\/strong> \u2013 erzeugt das Ergebnis f\u00fcr die Nutzerinnen und Nutzer, wiederum parallelisierbar \u00fcber einen Schwarm.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein <strong>Schwarm<\/strong> ist hier eine Gruppe von Agenten, die bei Bedarf erzeugt werden und parallel an einem Teil des Problems arbeiten. Diese dynamische Erzeugung mehrerer Agenten ist aus unserer Sicht das, was einen Harness von einem Wrapper unterscheidet.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube\" style=\"margin:2rem 0\">\n<a href=\"https:\/\/youtu.be\/IEfmDQczF_E\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display:block;position:relative;border-radius:10px;overflow:hidden;background:#000;text-decoration:none;line-height:0\">\n<img decoding=\"async\" src=\"https:\/\/i.ytimg.com\/vi\/IEfmDQczF_E\/maxresdefault.jpg\" alt=\"Creating an AI Agent Harness: Iteration 2 \u2014 In-Depth Architecture\" loading=\"lazy\" style=\"display:block;width:100%;height:auto;aspect-ratio:16\/9;object-fit:cover\">\n<span style=\"position:absolute;inset:0;display:flex;align-items:center;justify-content:center\">\n<span style=\"width:76px;height:54px;border-radius:14px;background:rgba(18,18,18,.82);display:flex;align-items:center;justify-content:center\">\n<span style=\"width:0;height:0;border-left:21px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:5px\"><\/span>\n<\/span><\/span>\n<span style=\"position:absolute;left:0;right:0;bottom:0;padding:.85rem 1rem;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font-size:.9rem;line-height:1.4\">\nCreating an AI Agent Harness: Iteration 2 \u2014 In-Depth Architecture &#8212; auf YouTube ansehen &#8594;<\/span>\n<\/a>\n<figcaption class=\"wp-element-caption\"><strong>Teil 2 \u2013 Architektur im Detail.<\/strong> Kapitel: 00:00 R\u00fcckblick \u00b7 03:45 Mehr als abrufen: \u201elernen\u201c \u00b7 05:00 Planen, recherchieren, ausf\u00fchren \u00b7 15:00 Analyse eines bestehenden Harness \u00b7 22:30 Ged\u00e4chtnis als semantisches Wiki \u00b7 45:00 Session-Ged\u00e4chtnis \u00b7 55:00 Architektur als gerichteter Graph \u00b7 90:00 Einbau in Whale.<\/figcaption>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Warum wir \u00f6ffentlich bauen \u2013 und local-first<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aus zwei Gr\u00fcnden. Erstens sind die Designentscheidungen der eigentliche Wert. Zuzuschauen, wie sie entstehen, inklusive der Irrwege, bringt viel mehr als ein poliertes Ergebnis, bei dem die Begr\u00fcndung weggeschliffen wurde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zweitens arbeiten wir local-first. Die Modelle k\u00f6nnen auf unserer eigenen Hardware laufen, und das z\u00e4hlt, wenn dir wichtig ist, wohin deine Daten und dein geistiges Eigentum gehen. Aus demselben Grund setzen wir uns \u00fcberall in unserer Arbeit f\u00fcr <a href=\"https:\/\/nowtec.solutions\/de\/blog\/digitale-souveraenitaet-meistern-strategien-fuer-kontrolle-und-transparenz-in-der-it\/\">digitale Souver\u00e4nit\u00e4t<\/a> ein: Je mehr vom Stack dir geh\u00f6rt, desto weniger h\u00e4ngst du von den Nutzungsbedingungen anderer ab. Deshalb haben wir auch <a href=\"https:\/\/nowtec.solutions\/de\/produkte\/nowllm\/\">nowLLM<\/a> gebaut, eine souver\u00e4ne KI f\u00fcr Organisationen, die ihre Daten in den eigenen H\u00e4nden behalten wollen. Ein Agenten-Harness, den du selbst betreibst, ist Souver\u00e4nit\u00e4t auf der Ebene der Automatisierung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Teil 3 und 4 setzen den Build fort. Wenn du mit Agenten arbeitest oder in einer NGO \u00fcberlegst, was \u201eagentische KI\u201c f\u00fcr eure Arbeit konkret bedeutet, ist jetzt ein guter Moment, um dranzubleiben.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Den Build anschauen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Teil 1 \u2013 Konzepte und der erste Build:<\/strong> <a href=\"https:\/\/youtu.be\/tgmM7EgUvdU\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">youtu.be\/tgmM7EgUvdU<\/a><\/li>\n\n\n<li><strong>Teil 2 \u2013 Architektur im Detail:<\/strong> <a href=\"https:\/\/youtu.be\/IEfmDQczF_E\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">youtu.be\/IEfmDQczF_E<\/a><\/li>\n\n\n<li><strong>Playlist der ganzen Serie:<\/strong> <a href=\"https:\/\/www.youtube.com\/playlist?list=PLPbgiIdJb7gE\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Creating an Agent Harness<\/a><\/li>\n\n\n<li><strong>Code:<\/strong> <a href=\"https:\/\/github.com\/nowtec\/whale\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">github.com\/nowtec\/whale<\/a><\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Dieser Artikel wurde mit Unterst\u00fctzung von KI-Werkzeugen verfasst und vor der Ver\u00f6ffentlichung von unserem Team gepr\u00fcft (EU AI Act, Art. 50).<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das meiste, was als \u201eKI-Agent\u201c verkauft wird, ist ein einzelner Modellaufruf im Trenchcoat. Wir bauen \u00f6ffentlich einen echten: Whale. Die Schleife, mit der Agenten verst\u00e4ndlich werden, und eine Architektur \u00fcber ReAct hinaus.<\/p>\n","protected":false},"author":4,"featured_media":26044,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[42],"tags":[],"class_list":["post-26050","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologietrends-und-innovationen"],"acf":[],"_links":{"self":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/posts\/26050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/comments?post=26050"}],"version-history":[{"count":1,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/posts\/26050\/revisions"}],"predecessor-version":[{"id":26051,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/posts\/26050\/revisions\/26051"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/media\/26044"}],"wp:attachment":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/media?parent=26050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/categories?post=26050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/tags?post=26050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}