Anti-Pattern Too Many Tools: zu viele Tools für Agenten

Zu viele Tools machen Entscheidungen für Agenten schwieriger.
Auf dieser Seite
  1. Idee in 30 Sekunden
  2. Beispiel für das Anti-Pattern
  3. Warum es entsteht und was schiefläuft
  4. Richtiger Ansatz
  5. Schnelltest
  6. Worin es sich von anderen Anti-Patterns unterscheidet
  7. Tool Calling Everywhere vs Too Many Tools
  8. Multi-Agent Overkill vs Too Many Tools
  9. Giant System Prompt vs Too Many Tools
  10. Selbstcheck: Habt ihr dieses Anti-Pattern?
  11. FAQ
  12. Was als Nächstes

Idee in 30 Sekunden

Too Many Tools ist ein Anti-Pattern, bei dem ein Agent zu viele Tools ohne klare Aufgabengrenzen bekommt.

Dadurch entsteht Rauschen bei der Aktionswahl: Der Agent wählt häufiger ein irrelevantes Tool und verbraucht Schritte für erneute Auswahl. Das erhöht latency, cost und Instabilität der Antwort.

Einfache Regel: Für jedes Szenario sollte der Agent nur das minimale Set an Tools sehen, das wirklich nötig ist.


Beispiel für das Anti-Pattern

Das Team baut einen Support-Agenten für Anfragen zu Bestellungen, Rückgaben und Zahlungen.

Statt eines engen Sets gibt das Team dem Agenten eine große Tool-Liste "für alle Fälle".

PYTHON
response = agent.run(
    "User: Warum schlägt die Zahlung für Bestellung #8341 fehl?"
)

In diesem Setup hat der Agent Dutzende Optionen und kann in die falsche Richtung gehen:

PYTHON
tools = ["get_payment_status", "get_invoice", "get_order"]
selected_tool = agent.pick_tool(tools)
result = run_tool(selected_tool, order_id)

# der Agent kann zuerst get_invoice wählen,
# die Ursache nicht finden
# und erst danach zu get_payment_status wechseln

Für diesen Fall reicht ein kurzer Ablauf mit wenigen Tools:

PYTHON
payment_data = get_payment_status(order_id)
return format_payment_answer(payment_data)

In diesem Fall erzeugt ein Tool-Übermaß:

  • Rauschen bei der Aktionswahl
  • unnötige Tool-Aufrufe
  • höheres Risiko für falsches Routing

Warum es entsteht und was schiefläuft

Dieses Anti-Pattern entsteht oft, wenn ein Team sofort einen "universellen" Agenten für alle Anfragen bauen will.

Typische Ursachen:

  • neue Tools werden ergänzt, alte aber nicht entfernt
  • keine per-task Allowlist für Tools
  • Sorge, dass "ein Tool nicht reicht"
  • große Toolsets aus Demos werden übernommen, ohne Production-Cases zu validieren

Daraus folgen Probleme:

  • instabile Auswahl - der Agent wählt ein Tool, das formal passt, aber nicht das beste ist
  • höhere latency - Auswahlschleifen und wiederholte Calls kosten mehr Zeit
  • höhere cost - unnötige Tool- oder LLM-Schritte für typische Anfragen
  • aufgeblähter Kontext - im Prompt landen viele Tool-Beschreibungen und Zwischenresultate
  • schwieriges Debugging - schwer nachzuvollziehen, warum genau dieser Pfad gewählt wurde

Typische Production-Signale, dass bereits zu viele Tools vorhanden sind:

  • eine typische User-Anfrage löst 3-5 Tool-Calls aus, obwohl 1-2 reichen würden
  • dieselbe Aufgabe läuft in verschiedenen Runs über unterschiedliche Pfade
  • das Team kann nicht klar erklären, warum Tool A statt Tool B gewählt wird
  • ein neues Tool verschlechtert die Quality bestehender Szenarien

Dadurch verbringt der Agent mehr Schritte mit Aktionswahl als mit der eigentlichen Lösung. Wichtig: Tool-Auswahl ist Teil der LLM inference. Das Modell wählt eine Aktion aus den Optionen, die es im Prompt sieht. Mit mehr Tools wächst die Zahl möglicher Pfade, und die Auswahl wird instabiler: Das Modell wählt häufiger ein Tool, das formal passt, aber nicht optimal ist.

Wenn dieses Setup wächst, ist ohne trace und Ausführungsvisualisierung kaum nachvollziehbar, warum der Agent genau diesen Tool-Pfad gewählt hat. Deshalb haben Production-Systeme meist eine dedizierte Observability-Schicht für Agent-Runs.

Richtiger Ansatz

Startet mit dem einfachsten Pfad, der heute die meisten Anfragen stabil löst. Fügt Tools nur hinzu, wenn es einen messbaren Ausfall, ein Risiko oder eine Grenze im aktuellen Design gibt.

Praktischer Rahmen:

  • definiert pro Aufgabentyp eine klare Tool-Allowlist
  • haltet ein kleines Tool-Set pro Route
  • ergänzt ein neues Tool nur bei messbarem Grund (zum Beispiel bessere success rate oder weniger Fehler ohne starken Anstieg von latency und cost per request)
PYTHON
def answer_payment_question(order_id: str, user_message: str) -> str:
    route = classify_intent(user_message)  # einfacher Klassifikator oder Regeln

    if route == "payment_status":
        allowed_tools = ["get_payment_status"]
        data = run_tool("get_payment_status", order_id)
        return format_payment_answer(data)

    allowed_tools = ["get_payment_status", "get_invoice"]
    return agent.run(
        user_message=user_message,
        allowed_tools=allowed_tools,
    )

In diesem Setup arbeitet der Agent mit einem kleinen, relevanten Tool-Set, dadurch wird die Aktionswahl stabiler.

Schnelltest

Wenn diese Fragen mit "ja" beantwortet werden, habt ihr ein Too-Many-Tools-Risiko:

  • Braucht eine typische Anfrage regelmäßig 3+ Tool-Calls, obwohl 1-2 reichen sollten?
  • Läuft dieselbe Anfrage in verschiedenen Runs über unterschiedliche Tool-Pfade?
  • Werden neue Tools schneller ergänzt, als das Team sie begrenzen, entfernen oder reviewen kann?

Worin es sich von anderen Anti-Patterns unterscheidet

Tool Calling Everywhere vs Too Many Tools

Tool Calling EverywhereToo Many Tools
Hauptproblem: Tools werden selbst dort aufgerufen, wo reasoning oder ein einfacher workflow reicht.Hauptproblem: es gibt zu viele Tools, und der Agent wählt zwischen ihnen instabil.
Wann es entsteht: wenn fast jede Anfrage automatisch in einen Tool-Call umgewandelt wird.Wann es entsteht: wenn eine Route ein überladenes Tool-Set ohne klare Allowlist hat.

Multi-Agent Overkill vs Too Many Tools

Multi-Agent OverkillToo Many Tools
Hauptproblem: zu viele Agenten und komplexe Koordination zwischen Rollen.Hauptproblem: Tool-Übermaß innerhalb einer Agent-Route.
Wann es entsteht: wenn eine Anfrage zu viele handoffs zwischen Agenten durchläuft.Wann es entsteht: wenn der Agent wiederholt mehrere Tools ausprobiert, um ein relevantes zu finden.

Giant System Prompt vs Too Many Tools

Giant System PromptToo Many Tools
Hauptproblem: ein großer system prompt mit widersprüchlichen Instruktionen.Hauptproblem: der Agent sieht zu viele Tools und macht Fehler bei der Aktionswahl.
Wann es entsteht: wenn neue Regeln laufend in einen monolithischen Prompt geschrieben werden.Wann es entsteht: wenn Tools ergänzt werden, ohne veraltete oder doppelte Tools zu prüfen.

Selbstcheck: Habt ihr dieses Anti-Pattern?

Schnellcheck für das Anti-Pattern Too Many Tools.
Markiert die Punkte für euer System und prüft den Status unten.

Prüft euer System:

Fortschritt: 0/8

⚠ Es gibt Anzeichen für dieses Anti-Pattern

Verschieben Sie einfache Schritte in einen workflow und behalten Sie den Agenten nur für komplexe Entscheidungen.

FAQ

Q: Bedeutet das, dass viele Tools immer schlecht sind?
A: Nein. Das Problem ist nicht die Menge an sich. Das Problem ist, dass der Agent in einem konkreten Szenario zu viele irrelevante Optionen sieht.

Q: Wann sollten wir ein neues Tool ergänzen?
A: Wenn es ein konkretes Signal gibt: Lücken in der Aufgabenabdeckung, Quality-Fehler oder Limits der aktuellen Route, die ohne unverhältnismäßigen Anstieg von latency, cost oder Debugging-Komplexität nicht lösbar sind.

Q: Wie reduzieren wir Tool-Auswahl-Chaos ohne großen Refactor?
A: Startet einfach: führt Allowlists pro Aufgabentyp ein, setzt Schritt-Limits und entfernt Tools, die selten genutzt werden oder nur doppelte Ergebnisse liefern.


Was als Nächstes

Ähnliche Anti-Patterns:

Was ihr stattdessen bauen solltet:

  • Allowed Actions - wie ihr klare Grenzen dafür setzt, was der Agent tun darf.
  • Routing Agent - wie ihr Aufgaben routet und dem Agenten nur relevante Tools gebt.
  • Tool Execution Layer - wo Tool-Calls und Zugriffsregeln in der Architektur kontrolliert werden.
⏱️ 7 Min. LesezeitAktualisiert 16. März 2026Schwierigkeit: ★★★
In OnceOnly umsetzen
Safe defaults for tool permissions + write gating.
In OnceOnly nutzen
# onceonly guardrails (concept)
version: 1
tools:
  default_mode: read_only
  allowlist:
    - search.read
    - kb.read
    - http.get
writes:
  enabled: false
  require_approval: true
  idempotency: true
controls:
  kill_switch: { enabled: true, mode: disable_writes }
audit:
  enabled: true
Integriert: Production ControlOnceOnly
Guardrails für Tool-Calling-Agents
Shippe dieses Pattern mit Governance:
  • Budgets (Steps / Spend Caps)
  • Tool-Permissions (Allowlist / Blocklist)
  • Kill switch & Incident Stop
  • Idempotenz & Dedupe
  • Audit logs & Nachvollziehbarkeit
Integrierter Hinweis: OnceOnly ist eine Control-Layer für Production-Agent-Systeme.
Autor

Diese Dokumentation wird von Engineers kuratiert und gepflegt, die AI-Agenten in der Produktion betreiben.

Die Inhalte sind KI-gestützt, mit menschlicher redaktioneller Verantwortung für Genauigkeit, Klarheit und Produktionsrelevanz.

Patterns und Empfehlungen basieren auf Post-Mortems, Failure-Modes und operativen Incidents in produktiven Systemen, auch bei der Entwicklung und dem Betrieb von Governance-Infrastruktur für Agenten bei OnceOnly.