Preserve wire aliases when converting Responses output items to input

Đang mở Phù hợp với người mới
#5,477 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
62/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
ai-infra-agents

Hướng nghiên cứu

Các hàm hỗ trợ chuyển đổi _output_item_to_input_item và _tool_search_item_to_input_item được nêu trong issue là nơi cần thay đổi. Hãy bắt đầu từ đó và kiểm tra chỗ chúng gọi model_dump trên các mục phản hồi Pydantic như ResponseFunctionToolCall. Chuyển việc dump sang by_alias=True, đồng thời giữ exclude_unset và việc loại bỏ các trường chỉ dành cho đầu ra như created_by. Hoàn thành khi có một test hồi quy phát lại một lời gọi hàm có trường đặt bí danh như async và xác nhận đầu vào được tuần tự hóa dùng tên trên wire.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Summary

Response items converted back into Responses API input are serialized without Pydantic aliases. For OpenAI's ResponseFunctionToolCall, the Python attribute is async_ but the wire field is async. Replaying that item can therefore send async_ to the API and fail with an unknown parameter error.

This also affects users of the Restate Python SDK's OpenAI Agents integration, which persists model responses and returns them to the Agents SDK. The problematic conversion is in the Agents SDK's output-to-input path.

Expected behavior

When a Pydantic response item is converted to request input, serialize its API aliases (for example, async_ as async) while continuing to strip output-only metadata such as created_by.

Proposed fix

Use model_dump(exclude_unset=True, by_alias=True) in _output_item_to_input_item and _tool_search_item_to_input_item, with regression coverage for an aliased field on a response function call.

Ngôn ngữ chính
Python
Star
30.4k
Fork
4.9k
Merge trung bình
16 giờ 32 phút
Pull request đã merge (30 ngày)
85

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của openai/openai-agents-python

Tất cả issue của openai/openai-agents-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.