Skip to content

feat(google-vertex): add support for streaming tool arguments input#13929

Merged
aayush-kapoor merged 34 commits intomainfrom
aayush/gemini-stream-tool-input
Apr 9, 2026
Merged

feat(google-vertex): add support for streaming tool arguments input#13929
aayush-kapoor merged 34 commits intomainfrom
aayush/gemini-stream-tool-input

Conversation

@aayush-kapoor
Copy link
Copy Markdown
Collaborator

Background

google vertex announced that models on vertex can stream the arguments of a single function call in multiple parts/contents/responses. the aisdk supports this via tool-input-delta but google vertex needed more plumbing

#11126

Summary

  • emit warning when using this config with non-vertex providers
  • Vertex sends the arguments as partialArgs objects with typed values and JSON paths
{ "jsonPath": "$.location", "stringValue": "Boston", "willContinue": true }
{ "jsonPath": "$.location", "stringValue": ", MA" }
{ "jsonPath": "$.brightness", "numberValue": 50 }

which needs to be concatenated across chunks. and hence we need a tracking state in accumulatedArgs

  • we need applyPartialArgs function to do the conversion for tool-input-delta expecting a string instead of an object
  • we also track tool call boundaries - google signals start with name + willContinue: true and end with an empty functionCall: {}

Manual Verification

verified by running examples/ai-functions/src/stream-text/google/vertex-stream-function-call-args.ts with and without the providerOption defined

before

Recording_2026-03-30_14.20.53.mp4

after

Recording_2026-03-30_14.21.13.mp4

Checklist

  • Tests have been added / updated (for bug fixes / features)
  • Documentation has been added / updated (for bug fixes / features)
  • A patch changeset for relevant packages has been added (for bug fixes / features - run pnpm changeset in the project root)
  • I have reviewed this pull request (self-review)

Related Issues

fixes #11126

@tigent tigent bot added ai/provider related to a provider package. Must be assigned together with at least one `provider/*` label feature New feature or request provider/google-vertex Issues related to the @ai-sdk/google-vertex provider labels Mar 30, 2026
@aayush-kapoor aayush-kapoor added the backport Admins only: add this label to a pull request in order to backport it to the prior version label Mar 31, 2026
@aayush-kapoor aayush-kapoor merged commit 5036db8 into main Apr 9, 2026
18 checks passed
@aayush-kapoor aayush-kapoor deleted the aayush/gemini-stream-tool-input branch April 9, 2026 14:22
vercel-ai-sdk bot pushed a commit that referenced this pull request Apr 9, 2026
@vercel-ai-sdk vercel-ai-sdk bot removed the backport Admins only: add this label to a pull request in order to backport it to the prior version label Apr 9, 2026
@vercel-ai-sdk
Copy link
Copy Markdown
Contributor

vercel-ai-sdk bot commented Apr 9, 2026

⚠️ Backport to release-v6.0 created but has conflicts: #14267

@vercel-ai-sdk
Copy link
Copy Markdown
Contributor

vercel-ai-sdk bot commented Apr 9, 2026

🚀 Published in:

Package Version
@ai-sdk/google 4.0.0-beta.32
@ai-sdk/google-vertex 5.0.0-beta.41

aayush-kapoor added a commit that referenced this pull request Apr 9, 2026
…ts input (#14267)

This is an automated backport of #13929 to the release-v6.0 branch. FYI
@aayush-kapoor
This backport has conflicts that need to be resolved manually.

### `git cherry-pick` output

```
Auto-merging packages/google/src/google-generative-ai-language-model.test.ts
Auto-merging packages/google/src/google-generative-ai-language-model.ts
CONFLICT (content): Merge conflict in packages/google/src/google-generative-ai-language-model.ts
Auto-merging packages/google/src/google-prepare-tools.ts
error: could not apply 5036db8... feat(google-vertex): add support for streaming tool arguments input (#13929)
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
```

---------

Co-authored-by: Aayush Kapoor <83492835+aayush-kapoor@users.noreply.github.com>
Co-authored-by: Aayush Kapoor <aayushkapoor34@gmail.com>
aayush-kapoor added a commit that referenced this pull request Apr 11, 2026
… doGenerate (#14352)

## Background

#14314

introduced in #13929, we added support
for streaming tool call arguments for the vertex provider. but the check
for passing that parameter seeped through for doGenerate as well,
producing an API error (the generate endpoint rejects that option)

## Summary

- add a check to only pass `streamFunctionCallArguments` for doStream 

## Manual Verification

verified by running the example
`examples/ai-functions/src/generate-text/google/vertex-grounding.ts`
before and after the fix. before, it gave the api error. after: it
resolves and produces an answer

## Checklist

- [x] Tests have been added / updated (for bug fixes / features)
- [x] Documentation has been added / updated (for bug fixes / features)
- [x] A _patch_ changeset for relevant packages has been added (for bug
fixes / features - run `pnpm changeset` in the project root)
- [x] I have reviewed this pull request (self-review)

## Related Issues

fixes #14314
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai/provider related to a provider package. Must be assigned together with at least one `provider/*` label feature New feature or request provider/google-vertex Issues related to the @ai-sdk/google-vertex provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

(feat) Support streamFunctionCallArguments for Gemini 3 Pro Preview via Vertex API

2 participants