diff --git a/web/src/pages/agent/chat/use-send-agent-message.ts b/web/src/pages/agent/chat/use-send-agent-message.ts index 7d16a4715..e89579fcd 100644 --- a/web/src/pages/agent/chat/use-send-agent-message.ts +++ b/web/src/pages/agent/chat/use-send-agent-message.ts @@ -200,12 +200,14 @@ export const useSendAgentMessage = ({ beginParams, isShared, refetch, + isTaskMode: isTask, }: { url?: string; addEventList?: (data: IEventList, messageId: string) => void; beginParams?: any[]; isShared?: boolean; refetch?: () => void; + isTaskMode?: boolean; }) => { const { id: agentId } = useParams(); const { handleInputChange, value, setValue } = useHandleMessageInputChange(); @@ -217,7 +219,7 @@ export const useSendAgentMessage = ({ return answerList[0]?.message_id; }, [answerList]); - const isTaskMode = useIsTaskMode(); + const isTaskMode = useIsTaskMode(isTask); const { findReferenceByMessageId } = useFindMessageReference(answerList); const prologue = useGetBeginNodePrologue(); @@ -230,6 +232,7 @@ export const useSendAgentMessage = ({ addNewestOneQuestion, addNewestOneAnswer, removeAllMessages, + removeAllMessagesExceptFirst, scrollToBottom, } = useSelectDerivedMessages(); const { addEventList: addEventListFun } = useContext(AgentChatLogContext); @@ -321,8 +324,18 @@ export const useSendAgentMessage = ({ stopOutputMessage(); resetAnswerList(); setSessionId(null); - removeAllMessages(); - }, [resetAnswerList, removeAllMessages, stopOutputMessage]); + if (isTaskMode) { + removeAllMessages(); + } else { + removeAllMessagesExceptFirst(); + } + }, [ + stopOutputMessage, + resetAnswerList, + isTaskMode, + removeAllMessages, + removeAllMessagesExceptFirst, + ]); const handlePressEnter = useCallback(() => { if (trim(value) === '') return; diff --git a/web/src/pages/agent/hooks/use-get-begin-query.tsx b/web/src/pages/agent/hooks/use-get-begin-query.tsx index 10fd4361d..7978321a6 100644 --- a/web/src/pages/agent/hooks/use-get-begin-query.tsx +++ b/web/src/pages/agent/hooks/use-get-begin-query.tsx @@ -27,13 +27,16 @@ export function useSelectBeginNodeDataInputs() { ); } -export function useIsTaskMode() { +export function useIsTaskMode(isTask?: boolean) { const getNode = useGraphStore((state) => state.getNode); return useMemo(() => { + if (typeof isTask === 'boolean') { + return isTask; + } const node = getNode(BeginId); return node?.data?.form?.mode === AgentDialogueMode.Task; - }, [getNode]); + }, [getNode, isTask]); } export const useGetBeginNodeDataQuery = () => { diff --git a/web/src/pages/agent/hooks/use-send-shared-message.ts b/web/src/pages/agent/hooks/use-send-shared-message.ts index e379215fc..ab7f7d2fc 100644 --- a/web/src/pages/agent/hooks/use-send-shared-message.ts +++ b/web/src/pages/agent/hooks/use-send-shared-message.ts @@ -59,6 +59,7 @@ export const useSendNextSharedMessage = ( addEventList, beginParams: params, isShared: true, + isTaskMode, }); const ok = useCallback(