8/22/2025

🚀

Major Release: Breaking Changes, Start from Record, Enhanced Agent Support

This release includes significant SDK improvements with breaking changes, powerful new "Start from Record" capabilities, and expanded agent functionality. Please review the SDK-specific sections below as this release requires code updates.

  • Major SDK updates with breaking changes across Python, JVM, and Node
  • New model support including GPT-5 and Claude Opus 4.1

SDK Updates

⚠️ Important: This release contains breaking changes across all SDKs. Please review the specific changes for your SDK below and update your code accordingly.

Python SDK v0.5.0

⚠️ Breaking Changes

RecordPayload Changes:

  • Now requires project_id as the first parameter
  • Update all RecordPayload instances to include this field

Example Update:

RecordPayload(
    project_id=project_id,  # ← Required as first parameter
    all_messages=all_messages,
    session_info=session.session_info,
    inputs=variables,
    prompt_info=formatted_prompt.prompt_info,
    call_info=call_info,
    response_info=response_info,
    test_run_info=test_run_info,
    eval_results=eval_results
)

PromptInfo Changes:

  • No longer contains a project_id field
  • Access project ID from project context instead

✨ New Features

Vertex AI Tool Calling Support:

from vertexai.generative_models import GenerativeModel

# Get formatted prompt with tool schema
formatted_prompt = fp_client.prompts.get(
    project_id=project_id,
    template_name='my-prompt',
    environment='latest'
).bind(input_variables).format()

# Tool schema automatically converted to Vertex AI format
model = GenerativeModel(
    model_name=formatted_prompt.prompt_info.model,
    tools=formatted_prompt.tool_schema  # Returns list[Tool] for Vertex AI
)

Enhanced Test Control:

  • New target_evaluation_ids parameter in TestRuns.create() to control which evaluations run
  • create and create_many methods now support media_inputs for programmatic test cases with images, audio, and other files

🔄 Changes

Optional Fields in RecordPayload:

  • inputs (Optional)
  • prompt_info (Optional)
  • call_info (Optional)
  • session_info now has default value and auto-generates if not provided

Need Help with the Migration?

We understand that breaking changes can be disruptive. Our team is here to help make this transition as smooth as possible!

If you're running into issues or have questions about updating your code, please don't hesitate to reach out. We'd love to understand more about your specific use case and help you get the most out of these new features.

What specific challenges are you facing with the migration? Are there particular workflows or integrations that are critical to your success that we should prioritize in our support?

Reach out to us through your usual support channels, and we'll get you sorted quickly.