diff --git a/apps/server/src/services/llm/providers/anthropic.ts b/apps/server/src/services/llm/providers/anthropic.ts index 5175ed2370..bfcd434ea7 100644 --- a/apps/server/src/services/llm/providers/anthropic.ts +++ b/apps/server/src/services/llm/providers/anthropic.ts @@ -132,7 +132,7 @@ export class AnthropicProvider extends BaseProvider { } const systemPrompt = this.buildSystemPrompt(messages, config); - const chatMessages = messages.filter(m => m.role !== "system"); + const chatMessages = messages.filter(m => m.role !== "system" && m.content); const coreMessages = this.buildMessages(chatMessages, systemPrompt); const thinkingBudget = config.thinkingBudget || 10000; diff --git a/apps/server/src/services/llm/providers/base_provider.ts b/apps/server/src/services/llm/providers/base_provider.ts index 02fd4c6bb3..47842013d2 100644 --- a/apps/server/src/services/llm/providers/base_provider.ts +++ b/apps/server/src/services/llm/providers/base_provider.ts @@ -144,7 +144,7 @@ export abstract class BaseProvider implements LlmProvider { chat(messages: LlmMessage[], config: LlmProviderConfig): StreamResult { const systemPrompt = this.buildSystemPrompt(messages, config); - const chatMessages = messages.filter(m => m.role !== "system"); + const chatMessages = messages.filter(m => m.role !== "system" && m.content); const coreMessages = this.buildMessages(chatMessages, systemPrompt); const streamOptions: Parameters[0] = {