Handbuch - CCA-F Claude Certified Architect - Foundations
Zuletzt überprüft: Mai 2026
Eine übersichtliche Referenz der Architekturmuster, die in der CCA-F-Prüfung getestet werden. Von oben nach unten lesen oder zu einem Abschnitt springen.
Agentische Architektur & Orchestrierung
Wahl zwischen einem Agenten und einem Multi-Agenten-Schwarm für einen komplexen Workflow.
Beginnen Sie mit einem einzelnen Agenten + Tools. Teilen Sie nur in mehrere Agenten auf, wenn Aufgabenabgrenzungen klar sind, Kontextfenster überlaufen oder unterschiedliche Modellebenen pro Unteraufgabe benötigt werden.
Warum: Multi-Agenten erhöhen Latenz, Fehleranfälligkeit und Orchestrierungskosten. Die meisten Produktions-Workloads sind mit einem gut ausgestatteten Agenten erfolgreich.
Der Agent muss Beobachtungen bewerten, bevor er erneut handelt.
Implementieren Sie einen ReAct (Reason + Act)-Loop: Das Modell generiert einen Gedanken, wählt ein Tool aus, empfängt das Ergebnis und wiederholt dies, bis eine Stoppbedingung erfüllt ist.
Warum: ReAct macht die Zwischenbewertung sichtbar, verbessert die Debugging-Fähigkeit und ermöglicht es Ihnen, die Gedankenkette zu prüfen.
Der Agent muss mit externen Systemen (APIs, Datenbanken, Dateisystemen) interagieren.
Definieren Sie Tools über die tool_use API. Das Modell gibt einen tool_use-Block aus; Ihr Code führt diesen aus und gibt ein tool_result zurück. Das Modell fährt dann fort.
Der Orchestrator muss heterogene Unteraufgaben (Code-Review, Websuche, Datenanalyse) verteilen.
Verwenden Sie einen Supervisor-Agenten, der das Ziel zerlegt, an spezialisierte Sub-Agenten delegiert und Ergebnisse aggregiert. Jeder Sub-Agent hat seinen eigenen System-Prompt und Toolsatz.
Mehrere Sub-Agenten müssen sich ohne direkte Peer-to-Peer-Kommunikation koordinieren.
Leiten Sie alle Nachrichten zwischen Agenten über einen Supervisor. Der Supervisor entscheidet, welcher Sub-Agent als Nächstes läuft, übergibt den Kontext und erzwingt Reihenfolgebedingungen.
Warum: Direkte Peer-Nachrichten erzeugen Zyklen und erschweren die Nachverfolgung des Status. Ein zentraler Supervisor hält den Ausführungs-DAG explizit.
Der Agent muss den Kontext über eine Multi-Turn-Sitzung hinweg speichern.
Übergeben Sie den vollständigen Konversationsverlauf (System + frühere Benutzer-/Assistenten-Turns) im Nachrichten-Array. Für lange Sitzungen fassen Sie ältere Turns zusammen, um im Kontextfenster zu bleiben.
Der Agent benötigt Persistenz über Sitzungen oder Benutzer hinweg.
Speichern Sie Fakten in einer externen Speicherschicht (Vektordatenbank, Schlüssel-Wert-Speicher, Datei). Rufen Sie relevante Erinnerungen über RAG ab und injizieren Sie diese bei jedem Turn in den System-Prompt.
Das Team verwendet standardmäßig eine agentische Architektur für jede LLM-Funktion.
Verwenden Sie keine Agenten, wenn ein einzelner Prompt + strukturierte Ausgabe ausreicht. Agenten erhöhen Latenz, Kosten und Fehlermöglichkeiten. Reservieren Sie agentische Loops für Aufgaben, die Iteration oder Tool-Nutzung erfordern.
Eine komplexe Denkaufgabe erfordert mehr interne Überlegung vor der Antwort.
Ermöglichen Sie erweitertes Denken mit einem budget_tokens-Parameter. Das Modell verwendet einen Denkblock, bevor es antwortet, was die Genauigkeit bei mehrstufigen Problemen verbessert.
Warum: Erweitertes Denken tauscht Latenz gegen Qualität. Setzen Sie budget_tokens proportional zur Aufgabenkomplexität; begrenzen Sie es, um die Kosten zu kontrollieren.
Tool-Aufruf gibt einen Fehler zurück; Agent muss sich elegant erholen.
Geben Sie den Fehler als tool_result mit is_error: true zurück. Das Modell erkennt den Fehler und kann es mit korrigierten Parametern erneut versuchen, ein alternatives Tool ausprobieren oder den Fehler dem Benutzer erklären.
Temporäre API-Fehler (429, 529) während eines agentischen Loops.
Implementieren Sie exponentielles Backoff mit Jitter. Bei 429 (Rate Limit) beachten Sie den retry-after Header. Bei 529 (überlastet) länger zurücktreten. Versuchen Sie niemals 400er-Fehler blind erneut.
Messen, ob sich ein agentisches System im Laufe der Zeit tatsächlich verbessert.
Erstellen Sie eine Evaluierungssuite: Definieren Sie Input-Output-Paare, führen Sie den Agenten aus, bewerten Sie Ausgaben (exakte Übereinstimmung, LLM als Richter, menschliche Überprüfung). Verfolgen Sie die Erfolgsquote pro Release.
Warum: Ohne Evaluierungen sind Prompt-Anpassungen Ratespiele. Regressionserkennung erfordert eine automatisierte, wiederholbare Bewertung.
Der Agent erzeugt beim ersten Durchlauf eine minderwertige Ausgabe.
Fügen Sie einen Reflexionsschritt hinzu: Nach dem Generieren einer Antwort fordern Sie das Modell auf, seine eigene Ausgabe zu kritisieren und zu überarbeiten. Verwenden Sie einen separaten Nachrichten-Turn oder erweitertes Denken.
Agentischer Workflow führt irreversible Aktionen aus (Ressourcen löschen, E-Mails senden).
Fügen Sie einen Prüfpunkt vor destruktiven Operationen ein. Präsentieren Sie dem Benutzer die geplante Aktion, warten Sie auf Genehmigung und führen Sie sie dann aus. Protokollieren Sie die Entscheidung zur Überprüfung.
Claude Code Konfiguration & Workflows
Mehrere CLAUDE.md-Dateien in einem Monorepo; unklar, welche Vorrang hat.
Drei Ebenen: ~/.claude/CLAUDE.md (Benutzer), Projekt-Root CLAUDE.md (Projekt), Workspace-Kind CLAUDE.md (Workspace). Alle werden zusammengeführt; Workspace überschreibt Projekt, Projekt überschreibt Benutzer.
Das Team möchte wiederverwendbare Prompts, die als /my-command aufgerufen werden.
Erstellen Sie eine .claude/commands/<name>.md-Datei, die die Prompt-Vorlage enthält. Rufen Sie sie mit /<name> auf. Verwenden Sie $ARGUMENTS für Benutzereingaben. Projektbezogene Befehle befinden sich im Repository.
Einen Linter automatisch ausführen, nachdem Claude eine Datei bearbeitet hat.
Konfigurieren Sie einen PostToolUse-Hook in settings.json, der dem Write/Edit-Tool entspricht. Das Hook-Skript wird nach Abschluss des Tools ausgeführt; ein Exit-Code ungleich Null blockiert die Änderung.
Claude Code fragt bei jedem Shell-Befehl nach Berechtigung; verlangsamt die Iteration.
Verwenden Sie Zulassungslistenmuster in settings.json unter permissions.allow. Drei Modi: default (für jeden fragen), allowlist (passende Muster automatisch genehmigen) und yolo (alle automatisch genehmigen - nicht für die Produktion empfohlen).
Entwickler möchten persönliche Überschreibungen, die nicht im Repository committed werden.
settings.json wird committed (Team-Standardeinstellungen). settings.local.json wird von Git ignoriert (persönliche Überschreibungen). Lokale Einstellungen werden über die Projekteinstellungen zusammengeführt.
Claude Code in einer CI-Pipeline ohne interaktives Terminal ausführen.
Verwenden Sie `claude -p "prompt" --output-format json` im Headless-Modus. Leiten Sie die Eingabe über stdin weiter, parsen Sie die strukturierte Ausgabe. Setzen Sie ANTHROPIC_API_KEY als CI-Geheimnis.
Claude Code benötigt Zugriff auf einen benutzerdefinierten MCP-Server (Datenbank, interne API).
Fügen Sie den Server zu mcpServers in settings.json mit Befehl und Argumenten hinzu. Claude Code startet den MCP-Server als Child-Prozess und entdeckt Tools beim Start.
Claude Code arbeitet an einem Feature-Branch, während Sie an Main entwickeln.
Verwenden Sie Git-Worktrees. Claude Code operiert im Worktree-Verzeichnis; Ihr Main-Checkout bleibt unberührt. Vermeidet Indexkonflikte und Stash-Jonglieren.
Claude Code generiert Änderungen, aber Sie möchten saubere atomare Commits.
Claude Code verfolgt Dateiänderungen und kann Commits mit Nachrichten erstellen. Überprüfen Sie den Diff vor dem Committen. Bevorzugen Sie das Staging spezifischer Dateien gegenüber `git add -A`, um das Offenlegen von Geheimnissen zu vermeiden.
Claude Code von VS Code oder JetBrains verwenden.
Installieren Sie die Claude Code-Erweiterung. Sie bettet die CLI als Panel in die IDE ein und teilt dieselben CLAUDE.md, Hooks und Einstellungen. Terminalbasierte und IDE-basierte Sitzungen sind austauschbar.
Langer Prompt mit mehreren Abschnitten; Modell verwechselt Anweisungen mit Daten.
Umschließen Sie Abschnitte in XML-Tags: <instructions>, <context>, <examples>. Claude ist darauf trainiert, XML-Grenzen als strukturelle Begrenzer zu respektieren.
Definieren eines konsistenten Verhaltens über alle Turns hinweg (Ton, Einschränkungen, Persona).
Platzieren Sie invariante Anweisungen im System-Prompt. Halten Sie ihn prägnant: Rolle, Einschränkungen, Ausgabeformat. Benutzernachrichten tragen den Kontext pro Turn; das System trägt sitzungsweite Regeln.
Das Modell zwingen, seine Antwort mit einem bestimmten Präfix zu beginnen (z.B. öffnende JSON-Klammer).
Fügen Sie eine partielle Assistentennachricht am Ende des Nachrichten-Arrays hinzu. Claude fährt dort fort, wo Sie aufgehört haben. Nützlich zur Erzwingung des Ausgabeformats.
Das Ausgabeformat des Modells ist trotz detaillierter Anweisungen inkonsistent.
Fügen Sie 2-3 Few-Shot-Beispiele als Benutzer-/Assistenten-Turn-Paare vor der eigentlichen Abfrage hinzu. Beispiele verankern Format, Ton und Denkstil zuverlässiger als Prosa-Anweisungen.
Das Modell überspringt Denkschritte bei mehrstufigen Logikproblemen.
Prompte mit "Think step by step" oder verwende erweitertes Denken. Für die Produktion verwende erweitertes Denken (budget_tokens) anstatt auf eine sichtbare Gedankenkette zu prompte, um die Ausgabe sauber zu halten.
Wahl zwischen deterministischen und kreativen Ausgaben.
temperature=0 für deterministische Aufgaben (Klassifizierung, Extraktion). temperature=0.5-0.7 für kreatives Schreiben. temperature=1.0 für maximale Vielfalt. Hinweis: Erweitertes Denken erfordert temperature=1.
Benötigt garantierte gültige JSON-Ausgabe vom Modell.
Definieren Sie ein Tool mit dem gewünschten JSON-Schema als input_schema. Setzen Sie tool_choice, um dieses Tool zu erzwingen. Das Modell gibt strukturiertes JSON im tool_use-Block zurück, das gegen das Schema validiert wird.
Benutzerorientierte Anwendung benötigt niedrige Zeit bis zum ersten Token.
Verwenden Sie stream=true auf der Messages API. Verarbeiten Sie Server-sent Events inkrementell: content_block_start, content_block_delta, message_stop. Zeigen Sie Tokens an, sobald sie ankommen.
Verarbeitung von Tausenden von Prompts, bei denen Latenz nicht kritisch ist.
Verwenden Sie die Message Batches API. Senden Sie bis zu 100.000 Anfragen pro Batch. Die Ergebnisse kommen innerhalb von 24 Stunden mit einer Kostenreduzierung von 50% an. Polling oder Webhook zur Fertigstellung verwenden.
Extrahieren von Daten aus gescannten Dokumenten oder Bildern.
Übergeben Sie Bilder als Base64-Inhaltsblöcke (type: image) oder PDF-Seiten (type: document) in der Benutzernachricht. Claude verarbeitet bis zu 20 MB pro Anfrage. Bevorzugen Sie native PDFs gegenüber Screenshots für textlastige Dokumente.
Wiederholte Aufrufe teilen denselben langen System-Prompt; Kosten sollen reduziert werden.
Markieren Sie cache-fähigen Inhalt mit cache_control: { type: "ephemeral" }. Cache-gespeicherte Präfixe werden über Aufrufe hinweg für bis zu 5 Minuten wiederverwendet (automatisch verlängert bei Treffer). Schreibkosten sind 25 % höher; Lesekosten sind 90 % niedriger.
Definieren eines Tools für die Claude Messages API.
Jedes Tool hat name, description und input_schema (JSON-Schema). Die Beschreibung teilt Claude mit, wann es zu verwenden ist; das Schema validiert Parameter. Halten Sie Beschreibungen aktionsorientiert und prägnant.
Tool erfolgreich ausgeführt; Ergebnis muss an Claude zurückgegeben werden.
Senden Sie eine Benutzernachricht mit role: "user" und einem tool_result Inhaltsblock. Fügen Sie die tool_use_id zur Korrelation hinzu. Geben Sie Daten als Text oder strukturierten Inhalt zurück; halten Sie Payloads unter 100k Tokens.
Agent muss Daten gleichzeitig von drei unabhängigen Quellen abrufen.
Claude kann mehrere tool_use Blöcke in einer einzigen Antwort ausgeben. Führen Sie sie parallel aus und geben Sie dann alle tool_result Blöcke in einer Benutzernachricht zurück. Reduziert Round Trips.
Verständnis des Komponentenmodells des Model Context Protocols.
Drei Rollen: Host (Anwendung wie Claude Code), Client (Protokoll-Handler pro Server), Server (stellt Tools/Ressourcen/Prompts bereit). Clients unterhalten 1:1-Verbindungen zu Servern.
Entscheiden, welche MCP-Primitive exponiert werden sollen.
Ressourcen: schreibgeschützte Daten (Dateien, DB-Zeilen), die der Client abruft. Tools: Aktionen, die das Modell aufruft (schreiben, berechnen, abfragen). Prompts: wiederverwendbare Prompt-Vorlagen, die der Benutzer auswählt. Tools werden modellgesteuert; Ressourcen werden anwendungsgesteuert.
Erstellen eines benutzerdefinierten MCP-Servers zur Bereitstellung interner APIs.
Verwenden Sie das MCP SDK (TypeScript oder Python). Implementieren Sie Tool-Handler mit Eingabeschemata. Registrieren Sie sich über server.tool(). Transport: stdio für lokal, streamable HTTP für remote.
Der Agent muss mit einer GUI-Anwendung interagieren (Klicken, Tippen, Screenshots).
Aktivieren Sie Computer-Nutzungstools: computer_20250124 (Screenshot + Maus + Tastatur), text_editor_20250124, bash_20250124. Das Modell empfängt Screenshots und gibt koordinatenbasierte Aktionen aus.
Das Modell muss immer ein bestimmtes Tool aufrufen, anstatt mit Text zu antworten.
Setzen Sie tool_choice auf { type: "tool", name: "my_tool" }. Das Modell wird gezwungen, dieses Tool aufzurufen. Verwenden Sie type: "any", um einen Tool-Aufruf zu erzwingen, oder type: "auto" (Standard), um das Modell entscheiden zu lassen.
Anwendung erreicht Kontextlimit mitten im Gespräch.
Claude-Modelle unterstützen 200k Tokens. Überwachen Sie die Nutzung über response.usage. Wenn Sie sich dem Limit nähern, fassen Sie ältere Turns zusammen oder kürzen Sie sie. Lassen Sie niemals Nachrichten stillschweigend fallen.
Verarbeitung eines 150-seitigen Dokuments, das den größten Teil des Kontextfensters füllt.
Platzieren Sie das Dokument frühzeitig im Prompt (nach dem System). Stellen Sie Fragen zuletzt. Verwenden Sie Prompt Caching, um ein erneutes Senden bei Nachfragen zu vermeiden. Für Aufgaben mit mehreren Dokumenten verwenden Sie RAG, um relevante Abschnitte auszuwählen.
Wissensdatenbank ist zu groß, um in den Kontext zu passen; Modell benötigt Zugriff zur Abfragezeit.
Dokumente in einem Vektorspeicher einbetten und indizieren. Zur Abfragezeit die Top-k-Chunks abrufen und in die Benutzernachricht injizieren. Zitieren Sie Quelldokumente in der Ausgabe zur Nachverfolgbarkeit.
Modell behauptet selbstbewusst falsche Fakten.
Begründen Sie Antworten im bereitgestellten Kontext (RAG). Weisen Sie das Modell an, "Ich weiß nicht" zu sagen, wenn die Beweise unzureichend sind. Verwenden Sie Zitate. Überprüfen Sie faktische Behauptungen programmgesteuert anhand von Quelldokumenten.
Anwendung erhält 429 (ratelimitiert) oder 529 (überlastet) Antworten.
429: Sie haben Ihr Tier-Ratelimit erreicht. Zurücktreten und erneut versuchen; retry-after beachten. 529: Anthropic API ist überlastet. Länger zurücktreten. Beide sind transient. Niemals 400 oder 401 erneut versuchen.
Monatliche API-Ausgaben sind höher als erwartet.
Verwenden Sie Prompt Caching für wiederholte Präfixe (90% Leserabatt). Leiten Sie einfache Aufgaben an Haiku weiter. Verwenden Sie die Batch API für asynchrone Workloads (50% Rabatt). Überwachen Sie die Token-Nutzung pro Endpunkt. Schneiden Sie unnötigen Kontext ab.
Benötigt Einblick in den Token-Verbrauch pro Anfrage.
Jede Messages API-Antwort enthält usage.input_tokens, usage.output_tokens und (falls gecached) usage.cache_read_input_tokens. Protokollieren Sie diese pro Aufruf, aggregieren Sie nach Endpunkt, setzen Sie Budget-Benachrichtigungen.