Skip to content

ADR-0003 – WhatsApp-Agent-Rebuild (Queue-basiert, Capabilities-Pattern)

Status

Accepted (2026-06-21), Umsetzung laufend (Capabilities noch Stubs).

Kontext

Der ursprüngliche WhatsApp-Agent (Multi-Agent mit LangChain/LangGraph + zentralem MCP-Server, Azure OpenAI gpt-4o-mini) war eng gekoppelt, schwer zu erweitern und hatte einen eigenen Schreibpfad. WhatsApp ist der USP von Work7 und braucht eine wartbare, erweiterbare Basis.

Entscheidung

Neuaufbau als @work7/agent (eigener Prozess):

  • Queue-basiert mit BullMQ (Queues wa-inbound, scheduler; Redis-Prefix work7:bull). Next.js nimmt Webhooks entgegen und enqueued; der Agent-Worker verarbeitet asynchron.
  • Capabilities-Pattern: Tools via defineTool() in capabilities/*, zentral registriert in capabilities/index.ts – Loop/Registry/Channel bleiben unberührt.
  • OpenAI-SDK gegen Azure OpenAI (Default-Deployment gpt-5-mini, Fallback gpt-4o-mini) statt LangChain; Tool-Calling mit AGENT_MAX_STEPS (8).
  • Persistenz für Reminder (agent_schedules) und Medien (agent_media), Migration 033.
  • Geschäftslogik kommt aus @work7/domain (siehe adr-0002-shared-domain-layer).

Konsequenzen

  • ➕ Klare Erweiterung über Capabilities; robuste Async-Verarbeitung mit Retries; gemeinsame Domain-Logik; Sprache (Whisper) + Medien (Tenant-Blob) integriert.
  • ➖ Business-Capabilities sind noch Stubs (_example.*); End-to-End-Flows müssen die Domain-Tools noch anbinden. Agent + App releasen gemeinsam.

Status der Bausteine

✅ Infrastruktur (Queues, Worker, D360-Client, Session/History, Media/Transcribe, Scheduler) · 🧪 Capabilities (project-context, rapport-draft, reminder) als Referenz-Stubs.

Verwandte Notes

Work7 · Software für Handwerksbetriebe