Skip to content

Release/v2.1.2#35

Closed
digitallysavvy wants to merge 8 commits into
mainfrom
release/v2.1.2
Closed

Release/v2.1.2#35
digitallysavvy wants to merge 8 commits into
mainfrom
release/v2.1.2

Conversation

@digitallysavvy
Copy link
Copy Markdown
Collaborator

Summary

  • Core SDK update — new generated types and API additions from the June 4 Fern generation
  • AgentKit bug fixes — corrects several serialization and precedence issues identified in post-request audit
  • New vendorsXaiGrok (xAI MLLM), GenericAvatar, AnamAvatar
  • New builder methodAgent.with_audio_scenario()
  • New fieldinteraction_language on Deepgram, Speechmatics, and Sarvam STT options

AgentKit fixes

Breaking change — OpenAI STT (OpenAISTT):
to_config() now validates that model, prompt, and language are all present in the effective input_audio_transcription object. The default model changes from
whisper-1 to gpt-4o-mini-transcribe. Callers who only set api_key will raise ValueError at config-build time; add prompt and language (or supply them via
input_audio_transcription).

TurnDetectionLanguage — removed bare "en" from the TurnDetectionLanguage literal and TURN_DETECTION_LANGUAGE_VALUES tuple; it is not a valid AsrLanguage enum value
and would be rejected by the backend.

VertexAI LLM URLVertexAILLM.to_config() now constructs the correct Vertex AI endpoint URL from location, project_id, and model instead of falling back to the
Gemini URL.

VertexAI MLLM paramsVertexAI.to_config() now places project_id, location, and adc_credentials_string inside params (where the backend expects them) rather than
at the top level of the config map.

LLM field precedence_resolve_llm_config (agent) and the session's LLM merge now use not in key-existence checks so vendor-configured fields win over the deprecated
agent-level convenience setters.

OpenAI TTS validatorOpenAITTSOptions._validate_byok_params now uses not value instead of value is None so empty-string base_url and model are rejected the same
way Go rejects them.

Deepgram keytermDeepgramSTTOptions gains a keyterm field serialized as asr.params.keyterm.

MiniMax preset model stripping (OV-1)MiniMaxTTS.to_config() no longer includes model, key, group_id, or url in params for the managed-preset path. A
_minimax_preset_model top-level hint enables preset inference and is stripped by strip_inferred_preset_fields before the POST body is finalized.

Test plan

  • pytest tests/custom/ passes (82 passed, 1 skipped)
  • test_vendor_config_takes_priority_over_agent_level_convenience_fields confirms vendor wins
  • test_stt_vendor_params_match_documented_shapes confirms OpenAISTT raises without prompt/language
  • test_xai_grok_serializes_v27_shape_without_style confirms new XaiGrok vendor
  • test_generic_avatar_omits_session_enriched_fields_when_unset confirms new GenericAvatar vendor

digitallysavvy and others added 7 commits June 3, 2026 10:58
  Optional longer body:

  Keep provider STT language settings inside asr.params, populate REST asr.language from
  turn_detection.language, and treat Ares as provider-only.
Generated by Fern
CLI Version: unknown
Generators:
  - fernapi/fern-python-sdk: 4.37.0
Patches applied (14):
  - patch-7c2d9d99: feat(agentkit): align session options and token uid handling
  - patch-7465fada: fix(agentkit): resolve Python session typing issues
  - patch-fae1249a: Re-export agora-agents API from legacy PyPI compatibility package The compat distribution delegates to agora_agent via __getattr__ and documents both import paths in its README.
  - patch-49af6f65: Align AgentKit TTS provider options with docs
  - patch-bad47d96: Align AgentKit provider BYOK parameter requirements
  - patch-434c8af1: Align AgentKit LLM and ASR vendor validation
  - patch-968e1f03: Restrict managed OpenAI LLM models in AgentKit
  - patch-676b93b3: Align managed vendor validation with generated core shapes
  - patch-8d52340e: fix(agentkit): flatten Deepgram TTS passthrough params
  - patch-cb9ab8b8: docs(agentkit): align OpenAI TTS instructions support
  - patch-299e4bd9: fix(agentkit): resolve provider config type checks
  - patch-583eccc0: Move AgentKit language to turn detection
  - patch-bed29b6b: chore: bump Python packages to 2.1.0
  - patch-776f7c4a: Fix vendor validation matrix for presets, pipeline_id, and deprecation path

Patches with unresolved conflicts (28):
  - patch-6e30398b: chore(agentkit): bump to v1.5.0 and expose v2.7 type aliases
  - patch-9df782b4: feat(agentkit): update MLLM and LLM vendor wrappers for v2.7
  - patch-26706d73: feat(agentkit): add GenericAvatar and session-aware avatar validation
  - patch-9f491c63: feat(agentkit): update Agent builder and session lifecycle for v2.7
  - patch-64703bda: test(agentkit): add custom tests for v1.5.0 AgentKit behavior
  - patch-6c20f076: docs(agentkit): update v1.5.0 guides, reference, and changelog
  - patch-eaec58eb: refactor(agentkit): align deprecated vendor aliases with canonical names
  - patch-20245632: feat(agentkit): export type aliases and avatar token helpers
  - patch-972dd5bd: updated docs
  - patch-4323b470: rename python package to agora-agents
  - patch-d29165c4: make python compat package publishable
  - patch-fc9d93c3: Document agora-agents PyPI install name and migration notes
  - patch-44c21c14: Re-export AgentKit symbols from agora_agent package root Extend __getattr__ and __all__ so vendor classes, presets, and helpers are importable via `from agora_agent import ...`. Add tests and update class docstring examples to use the root import path.
  - patch-87fc4488: Update docs to import from agora_agent package root
  - patch-923cf954: Prioritize app credentials and builder in Python docs Rewrite getting-started auth and quick-start for app credentials with the builder API. De-emphasize presets and align index, BYOK, and README with the recommended onboarding path.
  - patch-d475306b: Move package rename guidance to installation docs and protect manual paths in Fern ignore. Consolidate migration notes into the installation guide with next-step links, add a brief README pointer, and exclude README, compat, and workflow files from Fern generation.
  - patch-c9355576: Streamline Python docs and README for app-credentials-first onboarding. Remove duplicated low-level client examples from the README, de-emphasize legacy auth modes, refocus the low-level API guide on AgentKit with telephony escape hatches, and update Agora-managed model terminology.
  - patch-98ecb4d3: Add Groq, Vertex AI, Bedrock, Dify, and Custom LLM vendor helpers. Introduce named LLM vendor classes with correct request serialization, export them from the package root, and add tests covering each provider's config shape.
  - patch-a5097b8d: Document new LLM vendors and tighten onboarding docs. Add Groq, Vertex AI, Bedrock, Dify, and Custom LLM to vendor references, simplify README and index navigation, and align quick-start and terminology with Agora-managed model language.
  - patch-7d30c9dd: Add AgentKit ASR interaction language handling
  - patch-a95214eb: Document AgentKit ASR language and STT params
  - patch-eeac05d0: Move prompt and greeting docs to vendor config
  - patch-a94bac6d: Align AgentKit provider wrappers with regenerated core schemas
  - patch-198f367f: Update AgentKit TTS provider docs and examples
  - patch-96afe786: align v2.1 provider docs with AgentKit validation
  - patch-617ee134: feat(agentkit): support agent-level pipeline_id
  - patch-8e22e6d0: udpated agent docs
  - patch-b76a7006: Bump Python SDK version metadata and request headers to v2.1.1
    Run `fern-replay resolve` to apply these customizations.

Patches absorbed by generator (5):
  - patch-b7f0c36c: feat(agentkit): release v2.0.0 updates
  - patch-4d32368c: Add compat-build CI job and harden dual-package PyPI publish Build and verify the compat wheel re-exports, gate publish on compat-build, simplify version checks with poetry version, wait for primary package on PyPI, and retry compat publish on failure.
  - patch-20109390: Fix PyPI publish auth and explicitly protect release workflow in Fern ignore. Use PYPI_API_TOKEN for primary and compat Poetry publishes, matching the v1.4.1 release flow, and list release.yml explicitly in .fernignore.
  - patch-0297a70e: Update AgentKit v2.1 provider docs and examples
  - patch-c9022354: docs(agentkit): align TTS provider reference fields
    The generator now produces these customizations natively.
…LM URL, LLM precedence, TurnDetection language cleanup

  - OpenAISTT.to_config: change default model to gpt-4o-mini-transcribe; validate that model,
    prompt, and language are present after applying input_audio_transcription overrides
  - DeepgramSTTOptions: add keyterm field emitted as params.keyterm
  - OpenAITTSOptions: strengthen empty check from  to  for base_url/model
  - VertexAILLM.to_config: construct correct Vertex AI endpoint URL from location/project_id/model
  - _resolve_llm_config: vendor-provided keys now win over agent-level convenience fields
  - Remove bare en from TurnDetectionLanguage and TURN_DETECTION_LANGUAGE_VALUES
…fields, fix fern-replay artifacts

  - Add InteractionLanguage field to Deepgram, Speechmatics, and Sarvam STT options
  - Add XaiGrok MLLM vendor, GenericAvatar, AnamAvatar vendors
  - Add with_audio_scenario() builder method to Agent
  - Fix VertexAI MLLM: move project_id, location, adc_credentials_string into params (not top-level)
  - Fix agent_session LLM merge to use key-existence checks (Issue 9 parity with agent.py)
  - Remove duplicate imports, method declarations, and dead XaiRealtime test reference
  - Remove unused StartAgentsRequestPropertiesLlmGreetingConfigs import (type never generated)
  - Update tests for new OpenAISTT required-field validation, correct vendor-wins precedence behavior
…and preset resolution

  - MiniMaxTTS.to_config: model, key, group_id, url now only emitted in params on the BYOK
    path (key set); for managed preset path, model is stored as _minimax_preset_model at
    the config top level as an inference hint
  - presets.py infer_tts_preset: falls back to _minimax_preset_model when model is absent
    from params (preset path)
  - strip_inferred_preset_fields: pops _minimax_preset_model from the tts dict so the hint
    never reaches the wire
@digitallysavvy digitallysavvy self-assigned this Jun 5, 2026
@digitallysavvy digitallysavvy added documentation Improvements or additions to documentation enhancement New feature or request labels Jun 5, 2026
@digitallysavvy digitallysavvy deleted the release/v2.1.2 branch June 5, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant