diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx index f5804d8ae..11256b6d3 100644 --- a/components/canvas/CanvasChatPanel.tsx +++ b/components/canvas/CanvasChatPanel.tsx @@ -675,7 +675,34 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF )} - {messages.map((message) => ( + {messages.map((message) => { + // 🆕 清理消息中的内部标记并检查是否有实际内容 + const cleanedParts = message.parts?.map((part: any) => { + if (part.type === 'text' && part.text) { + return { + ...part, + text: part.text.replace(/\n*\n*/g, '').trim() + }; + } + return part; + }); + + // 检查清理后是否有内容 + const hasContent = cleanedParts?.some((part: any) => { + if (part.type === 'text') return part.text && part.text.trim().length > 0; + if (part.type === 'file' || part.type === 'image') return part.url; + return true; + }); + + // 没有内容则不渲染 + if (!hasContent && cleanedParts?.length > 0) { + return null; + } + + // 使用清理后的消息 + const cleanedMessage = { ...message, parts: cleanedParts }; + + return (