Fix: Editing the agent greeting causes the greeting to be continuously added to the message list. #12635 (#12636)

### What problem does this PR solve?

Fix: Editing the agent greeting causes the greeting to be continuously
added to the message list. #12635
### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
balibabu
2026-01-15 14:55:19 +08:00
committed by GitHub
parent ac936005e6
commit d531bd4f1a
3 changed files with 50 additions and 21 deletions

View File

@ -65,6 +65,27 @@ const SvgIcon = memo(
},
);
SvgIcon.displayName = 'SvgIcon';
const themeIcons = [
LLMFactory.FishAudio,
LLMFactory.TogetherAI,
LLMFactory.Meituan,
LLMFactory.Longcat,
LLMFactory.MinerU,
];
const svgIcons = [
LLMFactory.LocalAI,
// LLMFactory.VolcEngine,
// LLMFactory.MiniMax,
LLMFactory.Gemini,
LLMFactory.StepFun,
LLMFactory.MinerU,
LLMFactory.PaddleOCR,
// LLMFactory.DeerAPI,
];
export const LlmIcon = ({
name,
height = 48,
@ -79,14 +100,7 @@ export const LlmIcon = ({
imgClass?: string;
}) => {
const isDark = useIsDarkTheme();
const themeIcons = [
LLMFactory.FishAudio,
LLMFactory.TogetherAI,
LLMFactory.Meituan,
LLMFactory.Longcat,
LLMFactory.MinerU,
];
let icon = useMemo(() => {
const icon = useMemo(() => {
const icontemp = IconMap[name as keyof typeof IconMap];
if (themeIcons.includes(name as LLMFactory)) {
if (isDark) {
@ -98,16 +112,6 @@ export const LlmIcon = ({
return icontemp;
}, [name, isDark]);
const svgIcons = [
LLMFactory.LocalAI,
// LLMFactory.VolcEngine,
// LLMFactory.MiniMax,
LLMFactory.Gemini,
LLMFactory.StepFun,
LLMFactory.MinerU,
LLMFactory.PaddleOCR,
// LLMFactory.DeerAPI,
];
if (svgIcons.includes(name as LLMFactory)) {
return (
<SvgIcon

View File

@ -536,6 +536,30 @@ export const useSelectDerivedMessages = () => {
});
}, []);
const addPrologue = useCallback((prologue: string) => {
setDerivedMessages((pre) => {
if (pre.length > 0) {
return [
{
...pre[0],
content: prologue,
},
...pre.slice(1),
];
}
return [
{
role: MessageType.Assistant,
content: prologue,
id: buildMessageUuid({
role: MessageType.Assistant,
}),
},
];
});
}, []);
const removeLatestMessage = useCallback(() => {
setDerivedMessages((pre) => {
const nextMessages = pre?.slice(0, -2) ?? [];
@ -607,6 +631,7 @@ export const useSelectDerivedMessages = () => {
removeAllMessages,
scrollToBottom,
removeAllMessagesExceptFirst,
addPrologue,
};
};

View File

@ -243,6 +243,7 @@ export const useSendAgentMessage = ({
removeAllMessages,
removeAllMessagesExceptFirst,
scrollToBottom,
addPrologue,
} = useSelectDerivedMessages();
const { addEventList: addEventListFun } = useContext(AgentChatLogContext);
const {
@ -417,12 +418,11 @@ export const useSendAgentMessage = ({
return;
}
if (prologue) {
addNewestOneAnswer({
answer: prologue,
});
addPrologue(prologue);
}
}, [
addNewestOneAnswer,
addPrologue,
agentId,
isTaskMode,
prologue,