From 4f2e9ef248abb25e5d5c72c7549e84f1666f0537 Mon Sep 17 00:00:00 2001 From: chanx <1243304602@qq.com> Date: Fri, 8 Aug 2025 17:45:37 +0800 Subject: [PATCH] feat(agent): Adds prologue functionality (#9336) ### What problem does this PR solve? feat(agent): Adds prologue functionality #3221 - Add a prologue field to the IInputs type - Initialize the prologue state in the chat container - Use useEffect to monitor prologue changes and add prologue responses ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- web/src/pages/agent/chat/use-send-agent-message.ts | 1 + web/src/pages/agent/interface.ts | 1 + web/src/pages/next-chats/share/index.tsx | 11 +++++++++++ 3 files changed, 13 insertions(+) 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 ffe7f5175..c5f0ee826 100644 --- a/web/src/pages/agent/chat/use-send-agent-message.ts +++ b/web/src/pages/agent/chat/use-send-agent-message.ts @@ -361,5 +361,6 @@ export const useSendAgentMessage = ( resetSession, findReferenceByMessageId, appendUploadResponseList, + addNewestOneAnswer, }; }; diff --git a/web/src/pages/agent/interface.ts b/web/src/pages/agent/interface.ts index 0a634c5d8..92fa44081 100644 --- a/web/src/pages/agent/interface.ts +++ b/web/src/pages/agent/interface.ts @@ -38,4 +38,5 @@ export type IInputs = { avatar: string; title: string; inputs: Record; + prologue: string; }; diff --git a/web/src/pages/next-chats/share/index.tsx b/web/src/pages/next-chats/share/index.tsx index 7d11474f3..e779df9be 100644 --- a/web/src/pages/next-chats/share/index.tsx +++ b/web/src/pages/next-chats/share/index.tsx @@ -60,6 +60,7 @@ const ChatContainer = () => { parameterDialogVisible, showParameterDialog, sendFormMessage, + addNewestOneAnswer, ok, resetSession, } = useSendNextSharedMessage(addEventList); @@ -75,6 +76,7 @@ const ChatContainer = () => { avatar: '', title: '', inputs: {}, + prologue: '', }); const handleUploadFile: NonNullable = useCallback( @@ -97,9 +99,18 @@ const ChatContainer = () => { avatar, title, inputs: inputs, + prologue: '', }); }, [inputsData, setAgentInfo]); + React.useEffect(() => { + if (inputsData.prologue) { + addNewestOneAnswer({ + answer: inputsData.prologue, + }); + } + }, [inputsData.prologue, addNewestOneAnswer]); + React.useEffect(() => { if (inputsData && inputsData.inputs && !isEmpty(inputsData.inputs)) { showParameterDialog();