| @@ -379,7 +379,7 @@ class CotAgentRunner(BaseAgentRunner, ABC): | |||
| organize historic prompt messages | |||
| """ | |||
| result: list[PromptMessage] = [] | |||
| scratchpad: list[AgentScratchpadUnit] = [] | |||
| scratchpads: list[AgentScratchpadUnit] = [] | |||
| current_scratchpad: AgentScratchpadUnit = None | |||
| self.history_prompt_messages = AgentHistoryPromptTransform( | |||
| @@ -391,13 +391,15 @@ class CotAgentRunner(BaseAgentRunner, ABC): | |||
| for message in self.history_prompt_messages: | |||
| if isinstance(message, AssistantPromptMessage): | |||
| current_scratchpad = AgentScratchpadUnit( | |||
| agent_response=message.content, | |||
| thought=message.content or 'I am thinking about how to help you', | |||
| action_str='', | |||
| action=None, | |||
| observation=None, | |||
| ) | |||
| if not current_scratchpad: | |||
| current_scratchpad = AgentScratchpadUnit( | |||
| agent_response=message.content, | |||
| thought=message.content or 'I am thinking about how to help you', | |||
| action_str='', | |||
| action=None, | |||
| observation=None, | |||
| ) | |||
| scratchpads.append(current_scratchpad) | |||
| if message.tool_calls: | |||
| try: | |||
| current_scratchpad.action = AgentScratchpadUnit.Action( | |||
| @@ -409,24 +411,23 @@ class CotAgentRunner(BaseAgentRunner, ABC): | |||
| ) | |||
| except: | |||
| pass | |||
| scratchpad.append(current_scratchpad) | |||
| elif isinstance(message, ToolPromptMessage): | |||
| if current_scratchpad: | |||
| current_scratchpad.observation = message.content | |||
| elif isinstance(message, UserPromptMessage): | |||
| result.append(message) | |||
| if scratchpad: | |||
| if scratchpads: | |||
| result.append(AssistantPromptMessage( | |||
| content=self._format_assistant_message(scratchpad) | |||
| content=self._format_assistant_message(scratchpads) | |||
| )) | |||
| scratchpads = [] | |||
| current_scratchpad = None | |||
| result.append(message) | |||
| scratchpad = [] | |||
| if scratchpad: | |||
| if scratchpads: | |||
| result.append(AssistantPromptMessage( | |||
| content=self._format_assistant_message(scratchpad) | |||
| content=self._format_assistant_message(scratchpads) | |||
| )) | |||
| return result | |||