Releases: genkit-ai/genkit
Genkit JS and CLI 1.35.0
What's Changed
- fix(compat-oai): refer to proper api keys in tsdoc by @MichaelDoyle in #5257
- feat(js/plugins/google-genai): Better debug traces by @ifielker in #5335
- feat(js/plugins/google-genai): support for Gemini 3.5 Flash by @ifielker in #5347
- docs(js): add JSDoc comments to exported types/schemas and project README by @pavelgj in #5348
- feat(js/plugins/google-genai): Support for Gemini 3.5 (Gemini API) by @ifielker in #5350
- feat(js): deprecate genkit/model/middleware retry and fallback middleware in favor of @genkit-ai/middleware by @pavelgj in #5344
- feat(js): honor Retry-After header & never retry AbortError/ToolInterruptError by @pavelgj in #5343
New Contributors
- @Anthony-Bible made their first contribution in #5255
Full Changelog: v1.34.0...v1.35.0
Genkit Python SDK v0.6.0
Python SDK v0.6.0 Release Notes
This release bumps the Genkit Python SDK to version 0.6.0.
New Features
- Dynamic Tools: Add support for dynamically defined tools (#5214). This is extremely helpful in cases where tools need to be defined dynamically through a closure, such as user-specific tools.
- Tool Restarts: When a flow is interrupted, there is a path now for app developers to restart the interrupted tool with some updated input, and continue the generate loop (#5069). With this new SDK feature you can easily support tools that need approval before executing.
- Add interrupt metadata, so when you run your interrupt flow locally, you can see a transparent trace that shows tool with a special interrupt callout in Dev UI (#5260).
Existing API Changes
-
Breaking change:
ctx.Interrupt()usage changed toraise Interrupt.
Previously, to interrupt the execution flow from within a tool and hand control back to the user, the recommended pattern was to define your tool function with an optionalctxargument, and callctx.Interrupt()from within that tool. We changed the pattern such that you now callraise Interruptto break out of the regular execution flow, like any normal Python exception. -
Breaking change: When executing prompts, options have been flattened into standard Python keyword arguments. In your Genkit code, if you invoke prompts with custom configuration defined in code, you will need to migrate your usage code such that
configis named as an explicit kwarg.
# OLD (v0.5.2):
response = await my_prompt(input_data, {'config': {'temperature': 0.7}})
# NEW (v0.6.0):
response = await my_prompt(input_data, config={'temperature': 0.7})- Non-breaking change: Decorator @ai.tool returns a Tool wrapper instead of the raw function.
In v0.5.2, decorating a function with @ai.tool registered the action behind the scenes, but returned the original raw Python function. In v0.6.0, decorating a function with @ai.tool now returns a wrapper instance of the Tool class. This change shouldn't require any migration on your end for typical Genkit usage.
Bug Fixes & Refactoring
- Code Execution: Fix code execution serialization issue for googleai plugin (#5326).
- Async Safety: Make plugin init state loop-local to fix cross-loop Task error (#5262).
- Telemetry: Fix double generate span in model runner (#5113).
- Validation: Enforce object root JSON Schema for tool inputs at
define_tool(#5059) and parallelize tool calls in generate loop (#5054). - Dependencies & Configuration: Fix pyproject.toml on
fastapiplugin (#5030) and bumpmistunedependency (#5289). - Repository URL Migration: Update repository URLs and references from
firebase/genkittogenkit-ai/genkit(#5155). - Samples: Update samples to use
gemini-*latest(#5328). - Reflection Server v2: Implement reflection server v2 support (#5186). Hidden behind flag.
- Expose ActionRunContext in Dev UI correctly.: Before it was propagating correctly but not showing up in the Dev UI, now it is (#5364).
- Observability & Spans: Unify span creation through
run_in_new_span+ hand-writeSpanMetadata(#5311).
Genkit Python SDK v0.6.0-rc.1
Release candidate.
Genkit JS v1.34.0
What's Changed
- chore(js/plugins/middleware): fix the coding agent sample by @pavelgj in #5185
- feat(js/plugins/google-genai): PayGo support for priority and flex by @ifielker in #5191
- feat(js/plugins/google-genai): Support for veo-3.1-lite-generate-001 by @ifielker in #5190
- fix(js/plugins/compat-oai): Content is not empty if tool_calls is [] by @ifielker in #5224
- feat(tools): consolidate OTLP routes to prioritize standard v1 endpoints by @MichaelDoyle in #5225
- fix(js/core): fix ValidationResponse type and cache ajv validators by @7hokerz in #5201
- fix(js/ai): make updateState patch state instead of replace it by @cabljac in #1573
- chore(js/testapps/rag): use docs feature of generate instead of custom prompt by @pavelgj in #2942
- chore(js/evaluators): remove unnecessary path dependency by @10kc-emilyk in #3587
- feat(js/plugins/google-genai): New Deep research models by @ifielker in #5187
- feat(js/plugins/google-genai): Support for Gemini 3.1 Flash Lite by @ifielker in #5261
- feat(js/plugins/mcp): support for multipart tools by @ifielker in #5205
- feat(js/plugins/google-genai): 'Steps' for Interactions (googleAI only) by @ifielker in #5317
New Contributors
- @CatoPaus made their first contribution in #5184
- @shamjam made their first contribution in #2007
- @Acconut made their first contribution in #3840
- @10kc-emilyk made their first contribution in #3587
- @q1uf3ng made their first contribution in #5259
Full Changelog: v1.33.0...v1.34.0
Genkit Go v1.8.0
What's Changed
- feat(go/plugins/googlegenai): improve model config UX in dev UI by @apascal07 in #5231
- feat(go/ai): support middleware in dotprompt frontmatter by @apascal07 in #5229
- feat(go): trace GenerateActionOptions as input for generate calls by @MichaelDoyle in #5232
- fix(go): eagerly resolve genkit schema references in reflection API by @apascal07 in #5221
- fix(go): use *Part for GenerateActionResume.Respond and Restart by @apascal07 in #5226
- fix(prompt): prompt metadata for middleware and tools by @MichaelDoyle in #5216
- fix(go): preserve schema for shared struct types in InferJSONSchema by @apascal07 in #5243
Full Changelog: go/v1.7.0...go/v1.8.0
Genkit Go v1.7.0
What's Changed
- feat(go/ai): added
DefineMiddleware(Middleware V2) by @apascal07 in #4464 - feat(go): implement reflection API v2 over WebSocket by @apascal07 in #5150
- feat(go): added common middleware (e.g. tool approval, retry, fallback) by @apascal07 in #4719
- feat(go/plugins/middleware): rework filesystem middleware by @apascal07 in #5202
- fix(go/plugins/googlegenai): handle multi-field response parts by @apascal07 in #5198
- fix(go/plugins/googlegenai): fixed nullable in array type in JSON schema by @apascal07 in #5162
Full Changelog: go/v1.6.1...go/v1.7.0
Genkit JS and CLI 1.33.0
What's Changed
- feat(js): implemented new generate middleware and new @genkit-ai/middleware package by @pavelgj in #5040
- fix(js/genkit): Explicitly allow null types in promptDir by @7hokerz in #5036
- feat(js/plugins/google-genai): serviceTier support for googleAI by @ifielker in #5058
- feat(js): allow middleware generate hook manipulate message/turn index by @pavelgj in #5131
- feat(js/plugins/googleai): support for gemini-3.1-flash-tts-preview by @ifielker in #5138
- chore(global): update repository URLs and references from firebase/genkit to genkit-ai/genkit by @pavelgj in #5155
- feat(js/plugins/anthropic): Support for claude opus 4.7 by @ifielker in #5160
- feat(genkit-tools/cli): support ephemeral runtime commands by @ssbushi in #5079
- feat(js/plugins/vertex): Model garden support for Claude 4.7 by @ifielker in #5164
- fix(js/core): Fix DAP resolution by @ifielker in #5166
- feat(js/plugins/google-genai): Support for gemini-embedding-2 by @ifielker in #5165
- feat(js): Support Otel logging by @shrutip90 in #4981
Full Changelog: v1.32.0...v1.33.0
Genkit JS 1.33.0-rc.1
What's Changed
- feat(js/plugins/google-genai): serviceTier support for googleAI by @ifielker in #5058
- feat(js): allow middleware generate hook manipulate message/turn index by @pavelgj in #5131
- feat(js/plugins/googleai): support for gemini-3.1-flash-tts-preview by @ifielker in #5138
Full Changelog: v1.33.0-rc.0...v1.33.0-rc.1
Genkit JS 1.33.0-rc.0
What's Changed
- feat(js): implemented new generate middleware and new @genkit-ai/middleware package by @pavelgj in #5040
- fix(js/genkit): Explicitly allow null types in promptDir by @7hokerz in #5036
Full Changelog: v1.32.0...v1.33.0-rc.0
Genkit JS and CLI 1.32.0
What's Changed
- feat(js): add interrupt metadata to span attribs by @ssbushi in #4989
- fix(js/plugins/anthropic): remove duplicated keys maxOutputTokens, etc by @ifielker in #4988
- feat(js/plugins/google-genai): Support for lyria 3 in vertexAI by @ifielker in #5028
- chore(js/plugins/google-genai): deprecate some imagen and veo models by @ifielker in #5033
- feat(js/plugins/google-genai): support for veo-3.1-lite-generate-preview by @ifielker in #5038
- chore(js/core): Include key for all actions by @ifielker in #5041
- feat(js/plugins/google-genai): Support for Gemma 4 by @ifielker in #5089
New Contributors
- @simakmak made their first contribution in #4028
- @Gerifield made their first contribution in #4971
Full Changelog: v1.31.0...v1.32.0