Fix: Click the reset button on the agent page shared externally, and the greeting in conversation mode should not be deleted. #10567 (#10571)

### What problem does this PR solve?

Fix: Click the reset button on the agent page shared externally, and the
greeting in conversation mode should not be deleted. #10567
### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
balibabu
2025-10-15 11:22:37 +08:00
committed by GitHub
parent 34c54cd459
commit e8bfda6020
3 changed files with 22 additions and 5 deletions

View File

@ -200,12 +200,14 @@ export const useSendAgentMessage = ({
beginParams, beginParams,
isShared, isShared,
refetch, refetch,
isTaskMode: isTask,
}: { }: {
url?: string; url?: string;
addEventList?: (data: IEventList, messageId: string) => void; addEventList?: (data: IEventList, messageId: string) => void;
beginParams?: any[]; beginParams?: any[];
isShared?: boolean; isShared?: boolean;
refetch?: () => void; refetch?: () => void;
isTaskMode?: boolean;
}) => { }) => {
const { id: agentId } = useParams(); const { id: agentId } = useParams();
const { handleInputChange, value, setValue } = useHandleMessageInputChange(); const { handleInputChange, value, setValue } = useHandleMessageInputChange();
@ -217,7 +219,7 @@ export const useSendAgentMessage = ({
return answerList[0]?.message_id; return answerList[0]?.message_id;
}, [answerList]); }, [answerList]);
const isTaskMode = useIsTaskMode(); const isTaskMode = useIsTaskMode(isTask);
const { findReferenceByMessageId } = useFindMessageReference(answerList); const { findReferenceByMessageId } = useFindMessageReference(answerList);
const prologue = useGetBeginNodePrologue(); const prologue = useGetBeginNodePrologue();
@ -230,6 +232,7 @@ export const useSendAgentMessage = ({
addNewestOneQuestion, addNewestOneQuestion,
addNewestOneAnswer, addNewestOneAnswer,
removeAllMessages, removeAllMessages,
removeAllMessagesExceptFirst,
scrollToBottom, scrollToBottom,
} = useSelectDerivedMessages(); } = useSelectDerivedMessages();
const { addEventList: addEventListFun } = useContext(AgentChatLogContext); const { addEventList: addEventListFun } = useContext(AgentChatLogContext);
@ -321,8 +324,18 @@ export const useSendAgentMessage = ({
stopOutputMessage(); stopOutputMessage();
resetAnswerList(); resetAnswerList();
setSessionId(null); setSessionId(null);
removeAllMessages(); if (isTaskMode) {
}, [resetAnswerList, removeAllMessages, stopOutputMessage]); removeAllMessages();
} else {
removeAllMessagesExceptFirst();
}
}, [
stopOutputMessage,
resetAnswerList,
isTaskMode,
removeAllMessages,
removeAllMessagesExceptFirst,
]);
const handlePressEnter = useCallback(() => { const handlePressEnter = useCallback(() => {
if (trim(value) === '') return; if (trim(value) === '') return;

View File

@ -27,13 +27,16 @@ export function useSelectBeginNodeDataInputs() {
); );
} }
export function useIsTaskMode() { export function useIsTaskMode(isTask?: boolean) {
const getNode = useGraphStore((state) => state.getNode); const getNode = useGraphStore((state) => state.getNode);
return useMemo(() => { return useMemo(() => {
if (typeof isTask === 'boolean') {
return isTask;
}
const node = getNode(BeginId); const node = getNode(BeginId);
return node?.data?.form?.mode === AgentDialogueMode.Task; return node?.data?.form?.mode === AgentDialogueMode.Task;
}, [getNode]); }, [getNode, isTask]);
} }
export const useGetBeginNodeDataQuery = () => { export const useGetBeginNodeDataQuery = () => {

View File

@ -59,6 +59,7 @@ export const useSendNextSharedMessage = (
addEventList, addEventList,
beginParams: params, beginParams: params,
isShared: true, isShared: true,
isTaskMode,
}); });
const ok = useCallback( const ok = useCallback(