Zum Hauptinhalt springen
connic

AWS SQS

Von connic
InboundOutbound

connic pollt deine Queue, führt die verknüpften Agenten für jede Nachricht aus und löscht sie erst, wenn alle Runs abgeschlossen sind. Eine fehlgeschlagene Nachricht kommt nach dem Visibility Timeout zurück.

Publisher
Von connic
Modi
Inbound, Outbound
Einrichtung
Dashboard oder connectors/*.yaml
Dokumentation
AWS SQS Docs

Lösche eine Nachricht erst, wenn die Arbeit erledigt ist

connic pollt deine Queue per Long Polling, führt jeden verknüpften Agenten für jede Nachricht aus und löscht sie, sobald alle diese Runs abgeschlossen sind.

Max Messages
1 bis 10 Nachrichten pro Abfrage, standardmäßig 10.
Wait Time
Long Polling für 0 bis 20 Sekunden, standardmäßig 20. Kürzere Wartezeiten antworten schneller und erzeugen mehr API Calls.
Visibility Timeout
6 bis 43.200 Sekunden, standardmäßig 300. Nach einem fehlgeschlagenen Run erscheint die Nachricht wieder, sobald diese Zeit abgelaufen ist.
  1. Abrufen

    connic pollt die Queue per Long Polling und holt bis zu Max Messages pro Abfrage.

    wait_time_seconds: 20
  2. Ausführen

    Jeder verknüpfte Agent bekommt einen Run. Solange Runs laufen, verlängert connic den Visibility Timeout der Nachricht fortlaufend.

  3. Löschen

    Sind alle Runs abgeschlossen, löscht connic die Nachricht aus der Queue.

    Gelöscht
  4. Wiederholen

    Schlägt ein Run fehl, bleibt die Nachricht in der Queue. Nach dem Visibility Timeout wird sie wieder sichtbar und startet neue Runs, und die Redrive Policy der Queue verschiebt wiederholte Fehlschläge in deine Dead-Letter Queue.

    Wieder sichtbar

Lies den Body und die Queue-Metadaten

Der Message Body wird zur Eingabe des Agenten, und connic ergänzt unter _sqs, was SQS über die Nachricht weiß.

JSON und Text
Ein JSON-Objekt kommt mit seinen Feldern unverändert an. Jeder andere Body landet unter message.
Receive Count
approximate_receive_count zeigt dem Agenten, wie oft die Nachricht schon empfangen wurde, damit er einen erneuten Versuch anders behandeln kann.
Dateien in der Nachricht
Ein JSON-Objekt kann ein Array files mit Name, MIME-Typ und base64-Daten jeder Datei enthalten, bis zu 10 Dateien und insgesamt 10 MiB.
send-message.sh
aws sqs send-message \
  --queue-url <queue-url> \
  --message-body '{"document_id": "doc_5521", "type": "invoice"}'
context["payload"]
{
  "document_id": "doc_5521",
  "type": "invoice",
  "_sqs": {
    "message_id": "5fea7756-0ea4-451a-a703-a558b933e274",
    "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCg...",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789/intake",
    "approximate_receive_count": 1,
    "sent_timestamp": 1791881998000
  }
}

Halte die Queue neben deinen Agenten

Deklariere sie als YAML-Datei in connectors/. Region und IAM-Schlüssel liegen in einer Connection, deshalb enthält die Datei nur die Queue und ihre Polling-Einstellungen. Eine im Code deklarierte Verbindung beginnt mit dem Polling, sobald ihr Deployment live geht.

Eingeschränkte IAM-Schlüssel
Inbound braucht sqs:ReceiveMessage, sqs:DeleteMessage und sqs:ChangeMessageVisibility für die Queue. Outbound braucht sqs:SendMessage für die Ziel-Queue.
Private Endpoints
Leite die Verbindung über eine Bridge, wenn der Endpoint der Queue nur in deinem Netzwerk erreichbar ist.
connectors/document-intake.yaml
type: sqs
mode: inbound
name: Document intake
connection: aws-intake
config:
  queue_url: ${INTAKE_QUEUE_URL}
  max_messages: 5
  visibility_timeout: 900
agents:
  - document-extractor
create: connectors/document-intake.yaml (sqs)

Sende Ergebnisse an eine weitere Queue

Eine ausgehende Verbindung sendet jeden abgeschlossenen Run an eine Queue oder lässt den Agenten während des Runs eine eigene Nachricht senden.

Run-Ergebnisse
Die automatische Zustellung sendet run_id, agent_name, status, output, error, Timestamps und token_usage als Message Body.
FIFO-Queues
Lege eine Message Group ID fest, damit Ergebnisse innerhalb der Gruppe in Reihenfolge bleiben. Automatische Zustellungen nutzen die Run-ID als Deduplication ID.
Nachrichten vom Agenten
Als Agent-Tool verknüpft oder aus Middleware aufgerufen, sendet die Verbindung die übergebene Payload als Message Body. Queue und Zugangsdaten bleiben für das Modell unsichtbar.
connectors/extracted-documents.yaml
type: sqs
mode: outbound
name: Extracted documents
connection: aws-intake
config:
  queue_url: ${RESULTS_QUEUE_URL}
  message_group_id: documents  # FIFO queues only
agents:
  - name: document-extractor
    outbound:
      usage: automatic
      source: [document-intake]
message body
{
  "run_id": "550e8400-e29b-41d4-a716-446655440000",
  "agent_name": "document-extractor",
  "status": "completed",
  "output": "Invoice INV-2041, Example GmbH, EUR 1,240.00.",
  "error": null,
  "started_at": "2026-10-13T09:00:01Z",
  "ended_at": "2026-10-13T09:00:12Z",
  "token_usage": {
    "input_tokens": 3184,
    "output_tokens": 142,
    "thinking_tokens": 0,
    "cached_input_tokens": 0,
    "total_tokens": 3326
  }
}

Wo SQS passt

Wähle ein Szenario und sieh, was in der Queue landet, was der Agent bekommt und wohin das Ergebnis geht.

Dein Upload-Service stellt jedes Dokument in die Queue, und die extrahierten Felder gehen nach dem Run an eine Ergebnis-Queue.

Upload-Service
SQS Consumer
document-extractor
Datensatz in der Ergebnis-Queue
context["payload"]
{
  "document_id": "doc_5521",
  "type": "invoice",
  "_sqs": {
    "message_id": "5fea7756-0ea4-451a-a703-a558b933e274",
    "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCg...",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789/intake",
    "approximate_receive_count": 1,
    "sent_timestamp": 1791881998000
  }
}
message body
{
  "run_id": "550e8400-e29b-41d4-a716-446655440000",
  "agent_name": "document-extractor",
  "status": "completed",
  "output": "Invoice INV-2041, Example GmbH, EUR 1,240.00.",
  "error": null,
  "started_at": "2026-10-13T09:00:01Z",
  "ended_at": "2026-10-13T09:00:12Z",
  "token_usage": {
    "input_tokens": 3184,
    "output_tokens": 142,
    "thinking_tokens": 0,
    "cached_input_tokens": 0,
    "total_tokens": 3326
  }
}

Der Agent wählt für jede Bestellung Lager und Versandart und stellt den Fulfillment-Auftrag selbst in die Queue.

Shop-Backend
SQS Consumer
order-router
Auftrag in der Fulfillment-Queue
context["payload"]
{
  "order_id": "ord_8812",
  "items": 3,
  "ship_to": "DE-10115",
  "_sqs": {
    "message_id": "0c7a2f91-5b1e-4d0a-9e47-2d8f3c6b1a50",
    "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCg...",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789/intake",
    "approximate_receive_count": 1,
    "sent_timestamp": 1791881998000
  }
}
connector-payload.json
{
  "payload": {
    "order_id": "ord_8812",
    "warehouse": "north",
    "carrier": "standard"
  }
}

Jede Registrierung landet in der Queue, und der Agent schreibt eine Willkommens-E-Mail, die zur Rolle der Person passt.

Registrierungsservice
SQS Consumer
onboarding-writer
Willkommens-E-Mail
context["payload"]
{
  "email": "jana@example.com",
  "company": "Example GmbH",
  "role": "Head of Operations",
  "_sqs": {
    "message_id": "9d41e6b8-27c3-4f5a-b0d2-6a1e8f7c3b94",
    "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCg...",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789/intake",
    "approximate_receive_count": 1,
    "sent_timestamp": 1791881998000
  }
}
output.json
{
  "to": "jana@example.com",
  "subject": "Welcome to Example Cloud, Jana",
  "body": "Hi Jana, here's how to set up your first workflow."
}

Der Agent ordnet jede Zahlung einer offenen Rechnung zu und verbucht sie über seine Tools. Eine Zahlung, die immer wieder fehlschlägt, landet in deiner Dead-Letter Queue.

Abrechnungssystem
SQS Consumer
payment-matcher
Buchung im Hauptbuch
context["payload"]
{
  "payment_id": "pay_7730",
  "amount": 1240.0,
  "reference": "INV 2041 Example",
  "_sqs": {
    "message_id": "3b8e1d27-6f4c-4a95-8c02-e7d5a9f1b468",
    "receipt_handle": "AQEBwJnKyrHigUMZj6rYigCg...",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789/intake",
    "approximate_receive_count": 3,
    "sent_timestamp": 1791881998000
  }
}

FAQ zu AWS SQS

Füge eine AWS-SQS-Verbindung im Modus Inbound hinzu, wähle eine Connection mit Region und IAM-Schlüsseln, gib die Queue URL ein und verknüpfe den Agenten. Im Dashboard erstellte Verbindungen starten pausiert, klicke also auf Resume, sobald alles bereit ist. Danach pollt connic die Queue per Long Polling, führt jeden verknüpften Agenten für jede Nachricht aus und löscht sie, wenn alle Runs abgeschlossen sind. Wie sich SQS von anderen Triggern unterscheidet, zeigen die gängigen Verbindungsmuster.

Die Nachricht wird nicht gelöscht. Nach dem Visibility Timeout wird sie wieder sichtbar und startet neue Runs. Hinterlegst du in AWS eine Redrive Policy für die Queue, landen dauerhaft fehlschlagende Nachrichten in deiner Dead-Letter Queue.

Eine eingehende Verbindung braucht sqs:ReceiveMessage, sqs:DeleteMessage und sqs:ChangeMessageVisibility für die Queue. Eine ausgehende Verbindung braucht sqs:SendMessage für die Ziel-Queue.

Ja, Standard- und FIFO-Queues funktionieren beide. Für eine ausgehende FIFO-Queue legst du eine Message Group ID fest, damit Ergebnisse innerhalb der Gruppe in Reihenfolge bleiben. Automatische Zustellungen nutzen die Run-ID als Message Deduplication ID.