diff --git a/.changeset/fix-google-primitive-tool-results.md b/.changeset/fix-google-primitive-tool-results.md new file mode 100644 index 00000000000..97194ea175c --- /dev/null +++ b/.changeset/fix-google-primitive-tool-results.md @@ -0,0 +1,5 @@ +--- +"@effect/ai-google": patch +--- + +Wrap primitive tool results in an object before sending to Gemini diff --git a/packages/ai/google/src/GoogleLanguageModel.ts b/packages/ai/google/src/GoogleLanguageModel.ts index 760022de4bd..adf1effc39b 100644 --- a/packages/ai/google/src/GoogleLanguageModel.ts +++ b/packages/ai/google/src/GoogleLanguageModel.ts @@ -386,11 +386,12 @@ const prepareMessages: ( const parts: Array = [] for (const part of message.content) { + const response = Predicate.isRecord(part.result) ? part.result : { result: part.result } parts.push({ functionResponse: { id: part.id, name: part.name, - response: part.result as any + response: response as any } }) }