- Là một tiêu chuẩn mã nguồn mở và hệ sinh thái hướng tới khả năng tương tác giữa nhiều nhà cung cấp LLM, định nghĩa giao diện chung dựa trên OpenAI Responses API
- Mô tả yêu cầu và phản hồi bằng schema dùng chung, cho phép chạy theo cùng một cách trên nhiều nhà cung cấp mô hình chỉ với lượng chuyển đổi tối thiểu
- Tổ chức các thành phần chung như message, tool calling, streaming, đầu vào đa phương thức trong một cấu trúc nhất quán, phù hợp để triển khai quy trình agent
- Với cấu trúc cho phép mở rộng theo từng nhà cung cấp trên nền core ổn định, theo đuổi đồng thời khả năng mở rộng và tính không phân mảnh
- Được vận hành dựa trên cộng đồng có nhiều builder tham gia như OpenRouter, Vercel, Hugging Face, LM Studio, Ollama, OpenAI, vLLM
Tổng quan
- Open Responses là một tiêu chuẩn mã nguồn mở và hệ sinh thái công cụ dựa trên OpenAI Responses API
- Được thiết kế để có thể thực hiện độc lập với nhà cung cấp việc gọi mô hình ngôn ngữ, xử lý kết quả streaming và xây dựng agent
- Cung cấp trải nghiệm giao diện thống nhất thông qua schema chung và lớp tooling
Vì sao là Open Responses
- Các API LLM cùng chia sẻ những thành phần tương tự như message, tool calling, streaming, đầu vào đa phương thức, nhưng hiện đang dùng các cách mã hóa khác nhau
- Open Responses cung cấp một tiêu chuẩn chung công khai để hợp nhất điều này, giúp giảm gánh nặng triển khai trùng lặp
- Cấu trúc yêu cầu và đầu ra được định nghĩa một lần có thể tái sử dụng trên nhiều nhà cung cấp
Nguyên tắc thiết kế
- Với thiết kế ưu tiên đa nhà cung cấp, một schema duy nhất có thể ánh xạ tới nhiều nhà cung cấp mô hình khác nhau
- Sử dụng khái niệm items như đơn vị tối thiểu của sự kiện streaming, mẫu tool calling và đầu ra mô hình, mang lại cấu trúc thân thiện với quy trình agent
- Với các tính năng khó khái quát hóa, cho phép mở rộng theo từng nhà cung cấp nhưng vẫn ưu tiên duy trì sự ổn định của core
Cộng đồng và hệ sinh thái
- Được vận hành như một dự án cộng đồng mở với tiền đề là môi trường đa vendor
- Nhiều tổ chức như OpenRouter, Vercel, Hugging Face, LM Studio, Ollama, OpenAI, vLLM được thể hiện là tham gia qua logo
- Hình thành cộng đồng tập trung vào nhà phát triển, coi trọng tính di động, khả năng tương tác và nền tảng chung
Đặc điểm của đặc tả
- Với schema chung lấy items làm trung tâm, message/tool calling/trạng thái suy luận được biểu diễn bằng cùng một đơn vị; cả đầu vào lẫn đầu ra đều đi qua item
- Định nghĩa response và item như một state machine, quản lý tường minh vòng đời như
in_progress→completed/failed/incomplete
- Chuẩn hóa streaming không phải bằng các mảnh văn bản mà bằng semantic events, với mẫu cố định bắt đầu từ
response.output_item.added rồi đóng bằng delta→done
- Phân biệt tool thành thực thi bên ngoài (developer/third-party) và thực thi nội bộ (provider-hosted), đồng thời cung cấp control plane để ép phạm vi có thể gọi bằng
tool_choice/allowed_tools
- Với
previous_response_id, server tái dựng đầu vào + đầu ra trước đó thành context để hỗ trợ tiếp tục hội thoại/giảm thiểu gửi lại, và truncation cho phép chọn “được phép cắt bớt” hay “thất bại nếu vượt quá”
- Các phần mở rộng ngoài tiêu chuẩn được tách bằng tiền tố
provider_slug:, còn hosted tool tùy biến thì bắt buộc cung cấp item type tương ứng để để lại “biên nhận” có thể log/round-trip
- Lỗi được trả về dưới dạng error object có cấu trúc, và lỗi trong lúc streaming sẽ kết thúc bằng sự kiện
response.failed
1 bình luận
Ồ... trước đó tôi cũng đang làm phần triển khai gì đó, giờ có lẽ nên lấy cái này làm khung.