feat: CLI-Fallback für Sub-Agents (Preparer/Review/Finalizer) wenn kein API-Key zugewiesen

Statt Hard-Error "Kein API-Key zugewiesen" nutzen Sub-Agents jetzt
Claude CLI als Fallback. Preparer wird nur übersprungen wenn weder
Key noch CLI verfügbar sind.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
MelekiandClaude Opus 4.6 committed 2026-04-17 10:11:34 +02:00
1 parent eccecf8f14
commit 1526891cd9
2 files changed
+111 -7

No files matched your search

+8 -7
View File
@@ -142,14 +142,14 @@ public static class ChatEndpoint
if (ctx.Preparer != null && !isChoiceResponse)
{
var preparerApiToken = userApiKey?.ApiKey;
// Anthropic-Preparer braucht zwingend einen Key, OpenAI-Provider können ohne auskommen
if (string.IsNullOrEmpty(ctx.Preparer.Provider) && string.IsNullOrEmpty(preparerApiToken))
{
res.StatusCode = 400;
await res.WriteAsJsonAsync(new { error = "Kein API-Key für diesen Agent zugewiesen. Bitte weise einen Key zu." });
return;
}
// Kein Key und kein CLI → Preparer überspringen (main agent wird auch CLI nutzen oder fehlermelden)
bool skipPreparer = string.IsNullOrEmpty(ctx.Preparer.Provider)
&& string.IsNullOrEmpty(preparerApiToken)
&& !anthropic.IsCliAvailable;
if (!skipPreparer)
{
// Preparer bekommt History MIT seinen eigenen vorherigen Messages (Tag "preparer"),
// damit er den Kontext seiner Rückfragen kennt
var preparerHistory = await chatService.BuildHistoryFromDb(sessionId, includeTag: "preparer", promptBlocks: ctx.PromptBlocks);
@@ -182,6 +182,7 @@ public static class ChatEndpoint
Content = $"[Vorbereitet von {ctx.Preparer.Agent?.Name ?? "Vorbereiter-Agent"}]:\n{preparerResult.ForwardedPrompt}"
});
}
} // !skipPreparer
}
// History für den Session-Agent: OHNE Sub-Agent-Messages (saubere History)