Agenten und Workflows: erst klären, ob man einen Agenten braucht
Ein Agent lässt das Modell selbst entscheiden, was als Nächstes zu tun ist. Bei denselben drei Fragen lag ein fester Ablauf mit 1 Aufruf richtig, der Agent brauchte 3 bis 4. Der Unterschied zwischen beiden, die Kosten eines Agenten und eine Checkliste für die Entscheidung, ob man einen braucht.
- Etwa 30 Minuten
- Niveau: Fortgeschritten
- Getestet: 2026-09-14 deepseek-flash
Code und Programmausgaben stehen genau so da, wie sie gelaufen sind – Kommentare und Ausgaben sind daher auf Chinesisch.
„Agent“ ist eines der heißesten Wörter der letzten Jahre. Es scheint, als müsse man alles zu einem Agenten machen, damit es fortschrittlich genug ist.
Bevor du loslegst, kläre eine Frage: Braucht deine Aufgabe wirklich einen Agenten? Diese Lektion grenzt zuerst Agent und Workflow klar voneinander ab, misst dann in einem Experiment, wie weit ihre Kosten auseinanderliegen, und gibt zum Schluss eine Checkliste.
Der Unterschied
Erinnere dich, wie RepoBot v2 eine Frage beantwortet: die Frage umformulieren, die Dokumentation durchsuchen, Dokumente und Frage an das Modell geben. Diese drei Schritte hast du fest in den Code geschrieben, in fester Reihenfolge, jedes Mal gleich. Das Modell ist nur für den konkreten Inhalt von zwei Schritten zuständig: in welche Wörter umformuliert wird und was geantwortet wird. Das nennt man Workflow.
Ein Agent ist anders: Du gibst ihm nur ein Ziel und eine Reihe von Tools, und was als Nächstes passiert, entscheidet das Modell. Vielleicht sucht es zuerst, merkt, dass das Ergebnis nicht passt, und sucht mit anderen Wörtern; vielleicht liest es eine Datei, findet sie unzureichend und liest noch eine; vielleicht meint es, genug zu wissen, und antwortet direkt. Zahl und Reihenfolge der Schritte sind vorher nicht bekannt.
工作流: 智能体:
改写问题(固定) ┌─▶ 模型决定:下一步做什么?
▼ │ │
检索文档(固定) │ ┌───┴───┬────────┬────────┐
▼ │ 搜索 读文件 列目录 回答 ──▶ 结束
回答(固定) │ │ │ │
└───┴───────┴────────┘
Eine scharfe Grenze zwischen beiden gibt es nicht. Lässt ein Workflow das Modell bei einem Schritt entscheiden, „ob gesucht werden soll“, hat er schon etwas von einem Agenten. Die praktischere Frage lautet: Wer hat die Kontrolle? Je mehr Kontrolle beim Modell liegt, desto flexibler und desto schwerer vorhersagbar ist das System.
Experiment: dieselben Fragen, zwei Vorgehensweisen
Mit dem RAG-Ablauf aus Modul 04 (umformulieren, hybride Suche, Antwort mit Quellen) und dem Agenten, den wir in der nächsten Lektion schreiben (der selbst entscheidet, mit grep_docs, read_doc und list_docs in der Dokumentation zu suchen), beantworten wir dieselben drei Fragen. Code in code/05-agents/workflow_vs_agent.py; mein Ergebnis (in der Mitte die Spur jedes Schritts des Agenten):
问:httpx 默认会自动跟随重定向吗?
固定流程:1 次回答调用,2.2 秒,输入 831 词元,输出 109 词元
不会。与 `requests` 不同,HTTPX 默认不跟随重定向 [1]。默认情况下,HTTPX 对所有 HTTP 方法都不会跟随重定向 [2]。
[第 1 步] grep_docs({"keyword": "follow_redirects"}) → compatibility.md:19: response = client.get(url, follow_redirects=True) | compatibility.md:
[第 1 步] grep_docs({"keyword": "redirect"}) → advanced/transports.md:178: Or this example, which uses a custom transport and `httpx.Moun
[第 2 步] read_doc({"path": "compatibility.md", "start": 8, "end": 30}) → 8: ## Redirects | 9: | 10: Unlike `requests`, HTTPX does **not follow redirects by defaul
[第 2 步] read_doc({"path": "quickstart.md", "start": 430, "end": 445}) → 430: [] | 431: >>> r.next_request | 432: <Request('GET', 'https://github.com/')> | 433: ``
智能体: 3 次调用,3.8 秒,输入 3261 词元,输出 457 词元
**不会。httpx 默认不自动跟随重定向。**
问:怎么给 httpx 设置代理?
固定流程:1 次回答调用,3.7 秒,输入 1550 词元,输出 518 词元
可以,以下是文档中提到的几种设置代理的方式。
(智能体的轨迹省略)
智能体: 4 次调用,5.8 秒,输入 6756 词元,输出 732 词元
httpx 设置代理主要有三种方式:
问:httpx 的超时分成哪几种?每种管什么?
固定流程:1 次回答调用,2.6 秒,输入 991 词元,输出 208 词元
httpx 的超时分为四种:**connect**、**read**、**write** 和 **pool** [1]。
(智能体的轨迹省略)
智能体: 3 次调用,4.1 秒,输入 3731 词元,输出 546 词元
httpx 的超时一共分成 **四种**(依据 `advanced/timeouts.md:45-61`):
(Beim festen Ablauf ist nur der Antwortaufruf gezählt; die Umformulierungen waren bereits zwischengespeichert.)
Beide Vorgehensweisen haben alle drei Fragen richtig beantwortet. Aber der Agent brauchte pro Frage 3 bis 4 Modellaufrufe, etwa viermal so viele Eingabe-Tokens wie der feste Ablauf und ein bis zwei Sekunden länger.
Der Grund ist leicht zu verstehen: Jeder Schritt des Agenten muss alle vorherigen Schritte erneut senden. Liest Schritt 1 ein grep-Ergebnis, enthält die Eingabe von Schritt 2 dieses Ergebnis; liest Schritt 2 zwei Dateien, enthält die Eingabe von Schritt 3 den Inhalt beider Dateien. Je mehr Schritte, desto länger die Eingabe.
Bei Fragen wie „schlag eine Tatsache nach“ findet eine einzige Suche die Antwort; die Flexibilität des Agenten nützt nichts, übrig bleiben nur zusätzliche Kosten und Zeit.
Die Kosten eines Agenten
- Teurer und langsamer. Mehrere Aufrufe, und der Kontext wächst Schritt für Schritt.
- Unvorhersehbar. Dieselbe Frage braucht diesmal 3 Schritte, beim nächsten Mal vielleicht 6; diesmal findet er die richtige Datei, beim nächsten Mal läuft er vielleicht immer weiter in die falsche Richtung.
- Schwer zu testen und zu debuggen. Bei einem Workflow sind Ein- und Ausgabe jedes Schritts festgelegt und einzeln testbar; Probleme eines Agenten findet man nur, wenn man seine Ausführungsspur durchgeht.
- Größeres Risiko. Das Modell kann selbst Tools aufrufen; können diese Daten ändern, Nachrichten senden oder Geld ausgeben, hat eine falsche Entscheidung oder ein erfolgreicher Angriff (Lektion 8) echte Folgen.
Der Wert eines Agenten
Ein Agent lohnt sich bei Aufgaben, deren Schritte man nicht vorab festlegen kann:
- Was nachgeschlagen werden muss, hängt davon ab, was der vorige Schritt gefunden hat. Etwa bei der Fehlersuche: erst die Fehlermeldung ansehen, dann anhand der Fehlermeldung den passenden Quellcode suchen, dann anhand des Quellcodes die zugehörige Konfiguration.
- Mehrere Wege müssen vielleicht ausprobiert werden. Die erste Suche findet nichts, also andere Stichwörter, andere Stelle.
- Die Aufgaben sind so vielfältig, dass man nicht für jede einen festen Ablauf schreiben kann. Etwa ein Programmierassistent: Der Nutzer lässt ihn vielleicht einen Bug beheben, eine Funktion hinzufügen, Tests schreiben oder Dokumentation ändern.
RepoBot v2 kann „wie oft werden Weiterleitungen standardmäßig höchstens verfolgt“ nicht beantworten, weil die Antwort nicht in der Dokumentation steht, sondern nur im Quellcode. Ein fester Ablauf „Dokumentation durchsuchen, dann antworten“ kann „steht es nicht in der Dokumentation, dann im Quellcode suchen“ grundsätzlich nicht. Dort braucht man einen Agenten, und Lektion 9 baut ihn.
Checkliste
Bevor du eine neue Funktion baust, frag dich der Reihe nach:
- Schafft es ein einziger Modellaufruf gut? Viele Aufgaben brauchen nur einen gut geschriebenen Prompt und passende Unterlagen. Wenn ja, hör hier auf.
- Lassen sich die Schritte vorab festschreiben? Kannst du ein festes Flussdiagramm zeichnen (erst A, dann B, bei X dann C), schreib es im Code als Workflow. Jeder Schritt darf das Modell aufrufen, aber den Ablauf steuert dein Code.
- Muss der nächste Schritt anhand von Zwischenergebnissen entschieden werden? Nur wenn ja und die Fälle so zahlreich sind, dass man sie nicht als Verzweigungen ausschreiben kann, kommt ein Agent in Frage.
- Sind die Kosten eines Fehlers tragbar? Agenten machen Fehler. Welche Folgen können seine Tools haben? Gibt es eine Möglichkeit, gefährliche Aktionen zuerst von einem Menschen bestätigen zu lassen?
- Sind Kosten und Latenz akzeptabel? Eine Aufgabe eines Agenten kann ein Mehrfaches an Kosten und Zeit eines Workflows verursachen.
Eine praktische Strategie: Erst als Workflow bauen und nur die Fälle, die er nicht bewältigt, an einen Agenten übergeben. RepoBot kann zum Beispiel zuerst den festen RAG-Ablauf durchlaufen und erst dann einen Agenten starten, der im Quellcode sucht, wenn die Suche zeigt, dass „es nicht in der Dokumentation steht“.
Häufige Missverständnisse
„Wer Tool-Aufrufe nutzt, hat einen Agenten.“ Das Programm aus Modul 03, Lektion 3 nutzte auch Tool-Aufrufe, aber nur nach dem Muster „will das Modell die Version wissen, wird einmal nachgeschlagen“, ein sehr fester Ablauf. Entscheidend sind nicht die Tools, sondern ob die Schritte dynamisch vom Modell bestimmt werden.
„Agenten sind fortschrittlicher, also besser.“ Im Experiment dieser Lektion lagen fester Ablauf und Agent bei allen drei Fragen richtig, der Agent kostete aber viermal so viel. Bei Aufgaben mit festen Schritten ist ein Agent nicht genauer, nur teurer, langsamer und schwerer vorhersagbar.
„Erst einen universellen Agenten bauen, der alles kann.“ Je mehr Tools und je breiter die Aufgabe, desto eher wählt das Modell das falsche Tool oder die falsche Richtung. In echten Projekten ist verlässlicher: Ein Agent ist nur für eine Art von Aufgabe zuständig, und seine Tools gehören nur zu dieser Art.
Übungen
- Füg
workflow_vs_agent.pydie Frage „Wie oft verfolgt httpx standardmäßig höchstens Weiterleitungen?“ hinzu (die Antwort steht im Quellcode, nicht in der Dokumentation). Wie antworten die beiden Vorgehensweisen? - Denk an eine Aufgabe aus deiner Arbeit (etwa Kundentickets bearbeiten oder einen Wochenbericht erstellen), geh sie mit der Checkliste dieser Lektion durch und schreib dein Ergebnis auf: einzelner Aufruf, Workflow oder Agent? Warum? Für diese Aufgabe gibt es keine Musterlösung.
Selbsttest
1. Was ist der grundlegende Unterschied zwischen Workflow und Agent?
Wer die Kontrolle hat. Beim Workflow sind Schritte und Reihenfolge im Code festgeschrieben, das Modell ist nur für den Inhalt jedes Schritts zuständig; beim Agenten sind nur Ziel und Tools vorgegeben, was als Nächstes passiert, entscheidet das Modell selbst, und Zahl und Reihenfolge der Schritte sind vorher unbekannt.
2. Warum braucht ein Agent für dieselbe Frage ein Mehrfaches an Eingabe-Tokens eines Workflows?
Der Agent ruft das Modell mehrmals auf, und jeder Aufruf trägt alle vorherigen Schritte mit sich: die Tool-Aufrufanfragen und die zurückgegebenen Ergebnisse. Je mehr Schritte, desto länger die Eingabe jedes Schritts, und zusammen viel mehr als ein einzelner Aufruf.
3. Welche Aufgaben lohnen einen Agenten?
Aufgaben, deren Schritte sich nicht vorab festlegen lassen: Was als Nächstes zu tun ist, hängt vom Ergebnis des vorigen Schritts ab, mehrere Versuche sind vielleicht nötig, und die Fälle sind zu zahlreich, um sie als feste Verzweigungen auszuschreiben. Aufgaben, die ein einzelner Aufruf oder ein fester Ablauf gut erledigt, sollten keinen Agenten bekommen.
Fragen und Diskussion
Hängst du in dieser Lektion fest? Frag hier. Und wenn du die Frage von jemandem beantworten kannst, tu es gern.
Eine Frage bringt 3 Punkte, eine Antwort 6. Beiträge erscheinen nach der Prüfung.
Diskussion wird geladen…