- Spesifikasi open source dan ekosistem yang menargetkan interoperabilitas antar banyak penyedia LLM, dengan mendefinisikan antarmuka umum berbasis OpenAI Responses API
- Permintaan dan respons dideskripsikan dengan skema bersama, sehingga dapat dijalankan dengan cara yang sama di berbagai penyedia model hanya dengan pekerjaan konversi minimal
- Komponen umum seperti pesan, pemanggilan tool, streaming, dan input multimodal disusun dalam struktur yang konsisten sehingga cocok untuk implementasi workflow agen
- Dengan struktur yang mengizinkan ekstensi per penyedia di atas core yang stabil, spesifikasi ini mengejar ekstensibilitas dan non-fragmentasi secara bersamaan
- Dikelola berbasis komunitas dengan partisipasi banyak builder seperti OpenRouter, Vercel, Hugging Face, LM Studio, Ollama, OpenAI, dan vLLM
Ikhtisar
- Open Responses adalah spesifikasi open source dan ekosistem alat yang berbasis OpenAI Responses API
- Dirancang agar pemanggilan model bahasa, pemrosesan hasil streaming, dan pekerjaan penyusunan agen dapat dilakukan secara independen dari penyedia
- Memberikan pengalaman antarmuka tunggal melalui skema umum dan lapisan tooling
Mengapa Open Responses
- API LLM berbagi komponen serupa seperti pesan, pemanggilan tool, streaming, dan input multimodal, tetapi saat ini menggunakan cara encoding yang berbeda-beda
- Open Responses menyediakan spesifikasi umum yang terbuka untuk menyatukan hal tersebut dan mengurangi beban implementasi yang berulang
- Struktur permintaan dan output yang didefinisikan sekali dapat digunakan ulang di banyak penyedia
Prinsip desain
- Dengan desain multi-penyedia sebagai dasar, satu skema dapat dipetakan ke berbagai penyedia model
- Menggunakan konsep items sebagai unit terkecil untuk event streaming, pola pemanggilan tool, dan output model, sehingga menyediakan struktur yang ramah untuk workflow agen
- Fitur yang belum dapat digeneralisasi tetap mengizinkan ekstensi per penyedia, tetapi menjaga stabilitas core menjadi prioritas
Komunitas dan ekosistem
- Dioperasikan sebagai proyek komunitas terbuka dengan asumsi lingkungan multi-vendor
- Berbagai organisasi seperti OpenRouter, Vercel, Hugging Face, LM Studio, Ollama, OpenAI, dan vLLM ditampilkan sebagai peserta melalui logo
- Terbentuk komunitas yang berfokus pada developer dengan penekanan pada portabilitas, interoperabilitas, dan fondasi bersama
Karakteristik spesifikasi
- Dengan skema umum berbasis Items, pesan/pemanggilan tool/status penalaran direpresentasikan dalam unit yang sama, sehingga input dan output sama-sama bergerak sebagai item
- Respons dan item didefinisikan sebagai state machine, yang secara eksplisit mengelola lifecycle seperti
in_progress→completed/failed/incomplete
- Streaming distandardisasi bukan sebagai potongan teks melainkan sebagai semantic events, dimulai dari
response.output_item.added lalu ditutup dengan pola delta→done
- Tool dibedakan menjadi eksekusi eksternal (developer/pihak ketiga) dan eksekusi internal (di-host oleh penyedia), serta menyediakan control plane yang memaksa cakupan pemanggilan lewat
tool_choice/allowed_tools
- Dengan
previous_response_id, server dapat menyusun ulang input+output sebelumnya sebagai konteks untuk mendukung melanjutkan percakapan/meminimalkan pengiriman ulang, dan truncation memungkinkan pilihan “boleh dipotong vs gagal saat melebihi batas”
- Ekstensi di luar standar dipisahkan dengan prefiks
provider_slug:, dan hosted tool kustom wajib menyediakan tipe item yang sesuai agar meninggalkan “tanda terima” yang dapat dicatat/log dan di-round-trip
- Error dikembalikan sebagai structured error object, dan error saat streaming diakhiri dengan event
response.failed
1 komentar
Oh... saya sempat mengerjakan implementasinya, sepertinya saya harus menjadikan ini sebagai kerangkanya.