fix: Prevent assistant-message prefill rejected by Claude 4.6

This commit is contained in:
0xallam
2026-02-20 08:04:45 -08:00
committed by Ahmed Allam
parent e7970de6d2
commit e09b5b42c1
2 changed files with 5 additions and 2 deletions

View File

@@ -188,6 +188,9 @@ class LLM:
conversation_history.extend(compressed) conversation_history.extend(compressed)
messages.extend(compressed) messages.extend(compressed)
if messages[-1].get("role") == "assistant":
messages.append({"role": "user", "content": "<meta>Continue the task.</meta>"})
if self._is_anthropic() and self.config.enable_prompt_caching: if self._is_anthropic() and self.config.enable_prompt_caching:
messages = self._add_cache_control(messages) messages = self._add_cache_control(messages)

View File

@@ -91,7 +91,7 @@ def _summarize_messages(
if not messages: if not messages:
empty_summary = "<context_summary message_count='0'>{text}</context_summary>" empty_summary = "<context_summary message_count='0'>{text}</context_summary>"
return { return {
"role": "assistant", "role": "user",
"content": empty_summary.format(text="No messages to summarize"), "content": empty_summary.format(text="No messages to summarize"),
} }
@@ -123,7 +123,7 @@ def _summarize_messages(
return messages[0] return messages[0]
summary_msg = "<context_summary message_count='{count}'>{text}</context_summary>" summary_msg = "<context_summary message_count='{count}'>{text}</context_summary>"
return { return {
"role": "assistant", "role": "user",
"content": summary_msg.format(count=len(messages), text=summary), "content": summary_msg.format(count=len(messages), text=summary),
} }
except Exception: except Exception: