Zum Hauptinhalt springen
connic

Jeden Run nachvollziehen.
Und sehen, was er kostet.

Jeder Run bekommt einen Trace mit jeder Modellanfrage, jedem Tool-Aufruf und jeder Guardrail, samt Ein- und Ausgaben und Token-Kosten. So findest du den Run, der fehlschlägt oder teuer wird, und siehst, warum.

claims-intakeLLM Agent
Agent runsAvgp50p95
Runs
1,284
97.6%Success
Runtime
3h 12m
11.4sper Run
Token Cost
€38.40
€0.071per Run
All Statusescontext.claim_type == 'water_damage'
RunStatusDurationTokens
8b41d2c07f3e Completed6.8s14.8k1.4k(€0.032)
c19e5a7b2d04 Failed41.3s22.4k2.6k(€0.051)
57fa03e9c6b1 Awaiting Approval9.1k610(€0.018)
4a0c9f3e18d7 Completed5.4s12.9k1.1k(€0.027)
a7d3e9f20c6b Completed9.4s21.6k1.9k(€0.046)

Jeden Span öffnen und sehen, was rein- und rausging.

Ein Trace zerlegt einen Run in typisierte Spans für Verbindungen, Middleware, Modellanfragen, Tools, MCP-Aufrufe und Guardrails. Klick auf einen Span, und du siehst Eingabe, Ausgabe, Reasoning und Metadaten.

Der fehlgeschlagene LLM Call lief beim Anbieter in ein Rate Limit. Die Metadaten nennen Grund und Wartezeit, der neue Versuch ist ein eigener Span.

Run Details#a7d3e9f20c6b Completed
Triggered by Claims portalOct 13, 09:41:07 AM9.42s21.6k1.9k(€0.046)
LLM Agent · claims-intake
ok
Thoughts
The claim names policy HV-20931 and a burst pipe. Check that the policy covers water damage and that the customer has no open claim before opening a new one.
Output
{ "claim_id": "CL-55821", "priority": "standard", "next_step": "assessor_visit" }
Metadata
{
  "agent.model": "connic/claude-sonnet-5.5",
  "tokens.input_tokens": "21604",
  "tokens.output_tokens": "1604",
  "tokens.thinking_tokens": "296"
}

Runs mit eigenen Schlüsseln taggen und danach filtern.

Middleware schreibt Werte wie claim_type und policy_id in den Run-Kontext. Agent Runs, Dashboards und Token Usage filtern und gruppieren Runs und Kosten dann nach diesen Schlüsseln.

Filterausdrücke
Durchsuche Agent Runs nach Kontext, Eingabe und Ausgabe, etwa mit output.priority == 'high'. Verknüpfen kannst du Ausdrücke mit and, or und not.
Logs ohne Einrichtung
print, stderr und das logging-Modul von Python landen aus Tools, Middleware, Hooks und Guardrails in den Logs des Runs, mit ihrer Quelle markiert.
Erneut ausführen
Run Again startet den Agenten mit derselben Eingabe. Den neuen Trace vergleichst du dann Span für Span mit dem alten.
middleware/claims-intake.py
import logging
from typing import Any, Dict

log = logging.getLogger(__name__)

async def before(content: Dict[str, Any], context: Dict[str, Any]) -> Dict[str, Any]:
    claim = context.get("payload", {})
    context["claim_type"] = claim.get("claim_type", "unknown")
    context["policy_id"] = claim.get("policy_id")
    log.info("Claim received for policy %s", context["policy_id"])
    return content
Logs
SourceMessage
middlewarebeforeClaim received for policy HV-20931
toollookup_policycache miss for HV-20931
toolopen_claimOpened CL-55821 for C-20931

Kosten nach eigenen Schlüsseln gruppieren. Ausgaben pro Agent deckeln.

Gruppiere Token Usage nach claim_type, und du siehst, welche Schadensarten am meisten kosten. Danach setzt du dem Agenten ein Monatslimit.

EUR und USD bleiben getrennt
connic/* Tokens werden in EUR berechnet, BYOK-Modelle in der Währung aus Token Pricing. Berichte zeigen jede Währung für sich.
Alerts und Hard Limits
Ein Alert benachrichtigt dein Team. Ein Limit hält zusätzlich passende Runs in der Warteschlange zurück, bis du es erhöhst oder entfernst oder der Zeitraum neu beginnt.
Teure Ausreißer
Die Anomalieerkennung markiert Runs, die mehr als das Dreifache des 30-Tage-Schnitts kosten.
Token Usage
claim_typeBy AgentBy ModelBy Context
claim_typeTotalInputOutputRuns
water_damage€18.4210€12.0832€5.9104412
storm€9.1036€6.2210€2.7408233
theft€6.0517€4.1890€1.7905186
glass€2.9071€2.0214€0.8202118
Token Cost Alerts & Limits
Claims monthly capMonthly · Agent: claims-intake
€32.80 of €40.0082%
BYOK daily spendDaily · All agents
$6.40 of $25.0026%

Jeden Run an Datadog oder OpenTelemetry weiterleiten.

Drains schicken Run-Events, Environment Health, Log-Zeilen und Audit-Einträge an Datadog, ein OpenTelemetry-Backend oder einen Webhook. OpenTelemetry-Kanäle bekommen zusätzlich vollständige Traces.

{
  "type": "run",
  "level": "info",
  "run_status": "completed",
  "agent_name": "claims-intake",
  "environment_name": "production",
  "trigger_source": "connector",
  "queue_wait_ms": 412.0,
  "duration_ms": 9420.0,
  "token_usage": { "input_tokens": 21604, "output_tokens": 1604, "total_tokens": 23504 },
  "context": { "claim_type": "water_damage", "policy_id": "HV-20931" },
  "channel_name": "Datadog production"
}

Häufig gestellte Fragen

Ein Trace zerlegt einen Run in Spans: eingehende Verbindung, Middleware, Modellschritte, einzelne Anfragen an den Anbieter, Tool- und MCP-Aufrufe, Guardrails, ausgelöste Agenten und ausgehende Zustellungen. Jeder Span hat Status, Dauer, Ein- und Ausgabe sowie Metadaten. LLM-Spans zeigen außerdem das Reasoning des Modells als Thoughts, sofern der Anbieter es mitliefert.

Jeder Run erfasst Input-, Output-, Thinking- und Cached-Input-Tokens. connic/* KI-Modelle werden in EUR berechnet, BYOK-Modelle nach den USD- oder EUR-Preisen, die du unter Token Pricing hinterlegst. Solange du unter Cost Display keine Umrechnung einschaltest, halten Diagramme und Rankings beide Währungen getrennt.

Ja. Auf der Seite Token Usage legst du einen Alert oder ein Hard Limit für Token-Kosten an, für das ganze Projekt, einzelne Environments oder einzelne Agenten, pro Tag oder pro Monat. Ein Alert schickt eine Benachrichtigung, ein Limit hält zusätzlich passende Runs in der Warteschlange zurück, bis du es erhöhst oder entfernst oder der nächste Zeitraum beginnt.

Schreib die Kunden-ID per Middleware in den Run-Kontext, etwa als customer_id. Agent Runs filtert dann mit Ausdrücken wie context.customer_id == 'C-1042', und Dashboards und Token Usage gruppieren die Kosten nach diesem Schlüssel.

Ja, mit Drains im Enterprise-Plan. Run Drains, Log Drains und Audit Drains schicken Run-Events, Log-Zeilen und das Audit Log an Datadog, einen OpenTelemetry-Endpoint oder einen Webhook, Traces gehen an OpenTelemetry-Kanäle. Für fertige Runs kann after() in der Middleware außerdem run_id, duration_ms und token_usage an deinen eigenen Dienst schicken.

Jedes Environment hat eine Aufbewahrungsdauer für Logs, höchstens so lang, wie dein Plan erlaubt. Danach löscht connic die Runs automatisch. Die Schwärzung sensibler Daten ersetzt die JSON-Felder, die du angibst, in gespeicherten Eingaben, Ausgaben, Kontexten, Logs und Traces durch [REDACTED], Agenten und Aufrufer bekommen weiterhin die Originalwerte.