0Pricing
AI Agents · Lektion

Tool-Aufrufe sowie Ein- und Ausgaben protokollieren

Erfassen Sie pro Schritt: Toolname, Eingabeargumente, Ausgabe, Latenz, Fehler und die ID des übergeordneten Spans.

Tool-Aufrufe sowie Ein- und Ausgaben protokollieren ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Was pro Schritt protokolliert werden sollte

Erfassen Sie für jeden Span:

  • Schrittname (llm_call, tool_call, retrieve)
  • Eingaben (Nachrichten, Tool-Argumente, Abfrage)
  • Ausgaben (Antwort, Tool-Ergebnis)
  • Metadaten (Modell, Latenz, Tokenanzahl, Kosten)
  • Fehlerinformationen, falls der Schritt fehlgeschlagen ist

Selbst erstellte Span-Hilfsfunktion

Ohne Framework genügt eine minimale Hilfsfunktion:

from contextlib import contextmanager
import time, uuid

@contextmanager
def span(name, trace_id, parent_id=None):
    span_id = str(uuid.uuid4())
    start = time.time()
    record = {'trace_id': trace_id, 'span_id': span_id, 'parent_id': parent_id, 'name': name, 'start': start}
    try:
        yield record
    except Exception as e:
        record['error'] = str(e)
        raise
    finally:
        record['duration_ms'] = (time.time() - start) * 1000
        save_span(record)

Using It

trace_id = str(uuid.uuid4())
with span('llm_call_planner', trace_id) as s:
    s['model'] = 'gpt-4o-mini'
    s['messages_in'] = messages
    response = client.chat.completions.create(model='gpt-4o-mini', messages=messages)
    s['response'] = response.choices[0].message.content
    s['tokens_in'] = response.usage.prompt_tokens
    s['tokens_out'] = response.usage.completion_tokens

Verschachtelung von Spans

Geben Sie parent_id weiter, damit die Spans einen Baum bilden:

with span('agent_step', trace_id) as parent:
    with span('llm_call', trace_id, parent_id=parent['span_id']):
        ...
    with span('tool_call:search', trace_id, parent_id=parent['span_id']):
        ...

Tool-Aufrufe protokollieren

Protokollieren Sie speziell für Tool-Aufrufe:

  • Toolname
  • Argumente (JSON)
  • Ergebnis (JSON, gegebenenfalls gekürzt)
  • Latenz
  • Fehler (falls vorhanden)

Große Payloads kürzen

Einige Tool-Ergebnisse sind sehr groß (200 KB HTML). Kürzen Sie sie vor dem Speichern:

def safe_payload(obj, max_chars=8000):
    s = json.dumps(obj)
    return s if len(s) <= max_chars else s[:max_chars] + '...[truncated]'

Personenbezogene Daten entfernen

Persönliche Informationen vor dem Speichern entfernen:

import re
EMAIL_RE = re.compile(r'[\w\.-]+@[\w\.-]+')

def redact(text):
    return EMAIL_RE.sub('[email]', text)

print(redact("Contact me at alice@example.com for details."))

Strukturierte Log-Ausgabe

Pro Span einen JSON-Datensatz ausgeben – an ELK, Loki, Datadog oder BigQuery weiterleiten:

import json
import sys

def save_span(record):
    print(json.dumps(record), file=sys.stderr, flush=True)

demo_record = {'span': 'call_llm', 'duration_ms': 120, 'ok': True}
save_span(demo_record)
print("Logged span:", json.dumps(demo_record))

Mit Benutzersitzungen korrelieren

Jeden Span um eine session_id und user_id ergänzen, damit Sie Traces später nach Benutzer filtern können.

Sampling

Bei Agents mit hohem Volumen Stichproben nehmen:

import random

def should_trace(user_id):
    return random.random() < 0.10  # 10% of traces
# Always trace errors and slow runs.

random.seed(42)
sampled = sum(should_trace(i) for i in range(1000))
print(f"Traced {sampled} out of 1000 calls (~10% target)")

Aus Traces wiedergeben

Vollständige Eingaben (Nachrichten, Tools, args) speichern, damit Sie einen Trace mit einem neuen Prompt erneut ausführen können, um Verbesserungen zu testen. Das ist die Grundlage für eval-getriebene Entwicklung.

Große Payloads kürzen?

Warum sollten große Tool-Ausgaben in Logs gekürzt werden?

Zusammenfassung

Jeder Schritt, jede Eingabe, jede Ausgabe – strukturiert, verschachtelt, durch Sampling erfasst. Das ist der Rohstoff für alles Weitere in der Observability.

Häufig gestellte Fragen

Ist die Lektion „Tool-Aufrufe sowie Ein- und Ausgaben protokollieren“ kostenlos?

Ja — der vollständige Text von „Tool-Aufrufe sowie Ein- und Ausgaben protokollieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Tool-Aufrufe sowie Ein- und Ausgaben protokollieren“?

Erfassen Sie pro Schritt: Toolname, Eingabeargumente, Ausgabe, Latenz, Fehler und die ID des übergeordneten Spans. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Agents zu starten?

Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Tool-Aufrufe sowie Ein- und Ausgaben protokollieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?

Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum Agents Tracing benötigen
  2. Tool-Aufrufe sowie Ein- und Ausgaben protokollieren
  3. Latenz und Kosten pro Schritt
  4. Agent-Läufe visualisieren (Langfuse, LangSmith)
← Zurück zu AI Agents