mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-02 21:19:12 +00:00
Fix engaging anthropic api cache for operator trajectories.
It had become broken at some point due to refactoring. The cache control was getting added and removed right after in add_action_results What we actually wanted to do is clear the old cache breakpoint and put a new one at the latest operator tool result message. This should improve operator speed and lower costs with anthropic models.
This commit is contained in:
@@ -206,11 +206,6 @@ class AnthropicOperatorAgent(OperatorAgent):
|
||||
if env_step.error:
|
||||
action_result["is_error"] = True
|
||||
|
||||
# Append tool results to the message history
|
||||
self.messages += [AgentMessage(role="environment", content=agent_action.action_results)]
|
||||
|
||||
# Mark the final tool result as a cache break point
|
||||
agent_action.action_results[-1]["cache_control"] = {"type": "ephemeral"}
|
||||
# Remove previous cache controls
|
||||
for msg in self.messages:
|
||||
if msg.role == "environment" and isinstance(msg.content, list):
|
||||
@@ -218,6 +213,12 @@ class AnthropicOperatorAgent(OperatorAgent):
|
||||
if isinstance(block, dict) and "cache_control" in block:
|
||||
del block["cache_control"]
|
||||
|
||||
# Mark the final tool result as a cache break point
|
||||
agent_action.action_results[-1]["cache_control"] = {"type": "ephemeral"}
|
||||
|
||||
# Append tool results to the message history
|
||||
self.messages += [AgentMessage(role="environment", content=agent_action.action_results)]
|
||||
|
||||
def _format_message_for_api(self, messages: list[AgentMessage]) -> list[dict]:
|
||||
"""Format Anthropic response into a single string."""
|
||||
formatted_messages = []
|
||||
|
||||
Reference in New Issue
Block a user