Skip to content

Commit b5a1092

Browse files
committed
Fix mcp prompts for anthropic models
1 parent 72b2275 commit b5a1092

File tree

6 files changed

+14
-8
lines changed

6 files changed

+14
-8
lines changed

src/eca/features/chat.clj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@
131131

132132
(defn ^:private prompt-messages!
133133
[user-messages
134+
reason?
134135
{:keys [db* config chat-id contexts behavior model] :as chat-ctx}]
135136
(when (seq contexts)
136137
(send-content! chat-ctx :system {:type :progress
@@ -161,6 +162,7 @@
161162
:past-messages past-messages
162163
:config config
163164
:tools all-tools
165+
:reason? reason?
164166
:on-first-response-received (fn [& _]
165167
(assert-chat-not-stopped! chat-ctx)
166168
(doseq [message user-messages]
@@ -289,7 +291,7 @@
289291
{}
290292
arguments)
291293
{:keys [messages]} (f.mcp/get-prompt! prompt args-vals @db*)]
292-
(prompt-messages! messages chat-ctx)))
294+
(prompt-messages! messages false chat-ctx)))
293295

294296
(defn ^:private handle-command! [{:keys [command]} {:keys [chat-id db*] :as chat-ctx}]
295297
(case command
@@ -336,7 +338,7 @@
336338
(case (:type decision)
337339
:mcp-prompt (send-mcp-prompt! decision chat-ctx)
338340
:eca-command (handle-command! decision chat-ctx)
339-
:prompt-message (prompt-messages! [{:role "user" :content message}] chat-ctx))
341+
:prompt-message (prompt-messages! [{:role "user" :content message}] true chat-ctx))
340342
{:chat-id chat-id
341343
:model chosen-model
342344
:status :success}))

src/eca/llm_api.clj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
:type "function"))
7272

7373
(defn complete!
74-
[{:keys [model model-config instructions user-messages config on-first-response-received
74+
[{:keys [model model-config instructions reason? user-messages config on-first-response-received
7575
on-message-received on-error on-prepare-tool-call on-tool-called on-reason
7676
past-messages tools]}]
7777
(let [first-response-received* (atom false)
@@ -116,6 +116,7 @@
116116
:user-messages user-messages
117117
:max-output-tokens max-output-tokens
118118
:reason-tokens reason-tokens
119+
:reason? reason?
119120
:past-messages past-messages
120121
:tools tools
121122
:web-search web-search
@@ -132,6 +133,7 @@
132133
:user-messages user-messages
133134
:max-output-tokens max-output-tokens
134135
:reason-tokens reason-tokens
136+
:reason? reason?
135137
:past-messages past-messages
136138
:tools tools
137139
:web-search web-search
@@ -143,6 +145,7 @@
143145
(llm-providers.ollama/completion!
144146
{:host (-> config :ollama :host)
145147
:port (-> config :ollama :port)
148+
:reason? reason?
146149
:model (string/replace-first model config/ollama-model-prefix "")
147150
:instructions instructions
148151
:user-messages user-messages
@@ -165,6 +168,7 @@
165168
:user-messages user-messages
166169
:max-output-tokens max-output-tokens
167170
:reason-tokens reason-tokens
171+
:reason? reason?
168172
:past-messages past-messages
169173
:web-search web-search
170174
:tools tools

src/eca/llm_providers/anthropic.clj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696

9797
(defn completion!
9898
[{:keys [model user-messages temperature instructions max-output-tokens
99-
api-url api-key reason-tokens past-messages tools web-search]
99+
api-url api-key reason? reason-tokens past-messages tools web-search]
100100
:or {temperature 1.0}}
101101
{:keys [on-message-received on-error on-reason on-prepare-tool-call on-tool-called]}]
102102
(let [messages (concat (normalize-messages past-messages)
@@ -109,7 +109,7 @@
109109
:stream true
110110
:tools (->tools tools web-search)
111111
:system [{:type "text" :text instructions :cache_control {:type "ephemeral"}}]}
112-
:thinking (when (and reason-tokens (> reason-tokens 0))
112+
:thinking (when (and reason? reason-tokens (> reason-tokens 0))
113113
{:type "enabled"
114114
:budget_tokens reason-tokens}))
115115

test/eca/llm_providers/anthropic_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
:arguments {}
3838
:output {:contents [{:type :text
3939
:error false
40-
:content "Allowed directories: /foo/bar"}]}}}
40+
:text "Allowed directories: /foo/bar"}]}}}
4141
{:role "assistant" :content "I see /foo/bar"}])))))
4242

4343
(deftest add-cache-to-last-message-test

test/eca/llm_providers/ollama_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,5 @@
3434
:arguments {}
3535
:output {:contents [{:type :text
3636
:error false
37-
:content "Allowed directories: /foo/bar"}]}}}
37+
:text "Allowed directories: /foo/bar"}]}}}
3838
{:role "assistant" :content "I see /foo/bar"}])))))

test/eca/llm_providers/openai_test.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,5 @@
3838
:arguments {}
3939
:output {:contents [{:type :text
4040
:error false
41-
:content "Allowed directories: /foo/bar"}]}}}
41+
:text "Allowed directories: /foo/bar"}]}}}
4242
{:role "assistant" :content [{:type :text :text "I see /foo/bar"}]}])))))

0 commit comments

Comments
 (0)