mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 19:39:02 +08:00
fix: wrong order of history prompts in ReAct agent mode (#5236)
This commit is contained in:
parent
12c815c597
commit
4f0488abb5
@ -379,7 +379,7 @@ class CotAgentRunner(BaseAgentRunner, ABC):
|
|||||||
organize historic prompt messages
|
organize historic prompt messages
|
||||||
"""
|
"""
|
||||||
result: list[PromptMessage] = []
|
result: list[PromptMessage] = []
|
||||||
scratchpad: list[AgentScratchpadUnit] = []
|
scratchpads: list[AgentScratchpadUnit] = []
|
||||||
current_scratchpad: AgentScratchpadUnit = None
|
current_scratchpad: AgentScratchpadUnit = None
|
||||||
|
|
||||||
self.history_prompt_messages = AgentHistoryPromptTransform(
|
self.history_prompt_messages = AgentHistoryPromptTransform(
|
||||||
@ -391,6 +391,7 @@ class CotAgentRunner(BaseAgentRunner, ABC):
|
|||||||
|
|
||||||
for message in self.history_prompt_messages:
|
for message in self.history_prompt_messages:
|
||||||
if isinstance(message, AssistantPromptMessage):
|
if isinstance(message, AssistantPromptMessage):
|
||||||
|
if not current_scratchpad:
|
||||||
current_scratchpad = AgentScratchpadUnit(
|
current_scratchpad = AgentScratchpadUnit(
|
||||||
agent_response=message.content,
|
agent_response=message.content,
|
||||||
thought=message.content or 'I am thinking about how to help you',
|
thought=message.content or 'I am thinking about how to help you',
|
||||||
@ -398,6 +399,7 @@ class CotAgentRunner(BaseAgentRunner, ABC):
|
|||||||
action=None,
|
action=None,
|
||||||
observation=None,
|
observation=None,
|
||||||
)
|
)
|
||||||
|
scratchpads.append(current_scratchpad)
|
||||||
if message.tool_calls:
|
if message.tool_calls:
|
||||||
try:
|
try:
|
||||||
current_scratchpad.action = AgentScratchpadUnit.Action(
|
current_scratchpad.action = AgentScratchpadUnit.Action(
|
||||||
@ -409,24 +411,23 @@ class CotAgentRunner(BaseAgentRunner, ABC):
|
|||||||
)
|
)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
scratchpad.append(current_scratchpad)
|
|
||||||
elif isinstance(message, ToolPromptMessage):
|
elif isinstance(message, ToolPromptMessage):
|
||||||
if current_scratchpad:
|
if current_scratchpad:
|
||||||
current_scratchpad.observation = message.content
|
current_scratchpad.observation = message.content
|
||||||
elif isinstance(message, UserPromptMessage):
|
elif isinstance(message, UserPromptMessage):
|
||||||
|
if scratchpads:
|
||||||
|
result.append(AssistantPromptMessage(
|
||||||
|
content=self._format_assistant_message(scratchpads)
|
||||||
|
))
|
||||||
|
scratchpads = []
|
||||||
|
current_scratchpad = None
|
||||||
|
|
||||||
result.append(message)
|
result.append(message)
|
||||||
|
|
||||||
if scratchpad:
|
|
||||||
result.append(AssistantPromptMessage(
|
|
||||||
content=self._format_assistant_message(scratchpad)
|
|
||||||
))
|
|
||||||
|
|
||||||
scratchpad = []
|
if scratchpads:
|
||||||
|
|
||||||
if scratchpad:
|
|
||||||
result.append(AssistantPromptMessage(
|
result.append(AssistantPromptMessage(
|
||||||
content=self._format_assistant_message(scratchpad)
|
content=self._format_assistant_message(scratchpads)
|
||||||
))
|
))
|
||||||
|
|
||||||
return result
|
return result
|
Loading…
x
Reference in New Issue
Block a user