Skip to content

Releases: genkit-ai/genkit

Genkit JS and CLI 1.35.0

21 May 14:03

Choose a tag to compare

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

Full Changelog: v1.34.0...v1.35.0

Genkit Python SDK v0.6.0

21 May 19:12
58e9722

Choose a tag to compare

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 to raise 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 optional ctx argument, and call ctx.Interrupt() from within that tool. We changed the pattern such that you now call raise Interrupt to 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 config is 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 fastapi plugin (#5030) and bump mistune dependency (#5289).
  • Repository URL Migration: Update repository URLs and references from firebase/genkit to genkit-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-write SpanMetadata (#5311).

Genkit Python SDK v0.6.0-rc.1

21 May 18:54

Choose a tag to compare

Pre-release

Release candidate.

Genkit JS v1.34.0

12 May 19:54
20e5f41

Choose a tag to compare

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

Full Changelog: v1.33.0...v1.34.0

Genkit Go v1.8.0

06 May 20:25
2d3af05

Choose a tag to compare

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

29 Apr 23:09
77656d5

Choose a tag to compare

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

24 Apr 14:49

Choose a tag to compare

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

21 Apr 16:28

Choose a tag to compare

Genkit JS 1.33.0-rc.1 Pre-release
Pre-release

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

14 Apr 02:47

Choose a tag to compare

Genkit JS 1.33.0-rc.0 Pre-release
Pre-release

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

10 Apr 14:48

Choose a tag to compare

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

Full Changelog: v1.31.0...v1.32.0