@@ -57,16 +57,18 @@ func newAnthropicClient(opts providerClientOptions) AnthropicClient {
59func (a *anthropicClient) convertMessages(messages []message.Message) (anthropicMessages []anthropic.MessageParam) {
59func (a *anthropicClient) convertMessages(messages []message.Message) (anthropicMessages []anthropic.MessageParam) {
61− for _, msg := range messages {
60+ for i, msg := range messages {
62+ if len(messages)-3 > i {
62 switch msg.Role {
65 switch msg.Role {
63 case message.User:
66 case message.User:
64 content := anthropic.NewTextBlock(msg.Content().String())
67 content := anthropic.NewTextBlock(msg.Content().String())
65− if cachedBlocks < 2 && !a.options.disableCache {
68+ if cache && !a.options.disableCache {
66 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
69 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
67 Type: "ephemeral",
70 Type: "ephemeral",
71 anthropicMessages = append(anthropicMessages, anthropic.NewUserMessage(content))
73 anthropicMessages = append(anthropicMessages, anthropic.NewUserMessage(content))
@@ -74,11 +76,10 @@ func (a *anthropicClient) convertMessages(messages []message.Message) (anthropic
74 blocks := []anthropic.ContentBlockParamUnion{}
76 blocks := []anthropic.ContentBlockParamUnion{}
75 if msg.Content().String() != "" {
77 if msg.Content().String() != "" {
76 content := anthropic.NewTextBlock(msg.Content().String())
78 content := anthropic.NewTextBlock(msg.Content().String())
77− if cachedBlocks < 2 && !a.options.disableCache {
79+ if cache && !a.options.disableCache {
78 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
80 content.OfRequestTextBlock.CacheControl = anthropic.CacheControlEphemeralParam{
79 Type: "ephemeral",
81 Type: "ephemeral",
83 blocks = append(blocks, content)
84 blocks = append(blocks, content)