Aplikasi framework agen yang dihosting sendiri

Note

Pembantu protokol hosting mandiri untuk .NET akan segera hadir. Model hosting akan memungkinkan aplikasi Anda memiliki integrasi server, status, dan protokolnya.

Note

Pembantu protokol hosting mandiri saat ini tidak tersedia untuk Go.

Hosting mandiri memungkinkan Anda menjalankan agen Agen Framework atau alur kerja di aplikasi web, kontainer, layanan, atau runtime Anda sendiri. Aplikasi Anda mengontrol perutean, identitas, otorisasi, kebijakan permintaan, penyimpanan, penerapan, dan penskalaan. Tambahkan satu atau beberapa integrasi protokol ke server tersebut berdasarkan klien yang perlu Anda dukung.

Gunakan opsi ini saat Anda perlu mengintegrasikan titik akhir agen dengan infrastruktur aplikasi yang ada. Jika Anda ingin Microsoft Foundry menjalankan agen untuk Anda, lihat Foundry Hosted Agents. Jika Anda memerlukan pemicu Azure Functions atau eksekusi tahan lama, lihat Ekstensi Tahan Lama.

Paket-paket ini dirancang sedemikian rupa sehingga memungkinkan fleksibilitas maksimal bagi pengembang. Ini berarti jika Anda ingin membuat host yang mengekspos agen dengan Responses API, dan menyalahgunakan parameter untuk tujuan lain (yaitu memetakan temperature ke top_p), Anda dapat melakukannya. Jika Anda tidak ingin menyimpan sesi, Anda dapat melakukannya, jika Anda ingin mengizinkan penelepon mengontrol eksekusi agen penuh, Anda juga dapat melakukannya. Kami tidak akan menghambat, kami menyediakan alat bantu untuk kasus yang umum, dan menyerahkan sisanya kepada Anda, agar Anda dapat membangun host yang benar-benar sesuai dengan kebutuhan Anda.

Important

agent-framework-hosting, , agent-framework-hosting-responsesagent-framework-hosting-telegram, agent-framework-a2a, agent-framework-hosting-a2a, dan agent-framework-hosting-mcp merupakan paket Python prarilis. Instal versi prarilis secara eksplisit dan tinjau catatan rilis sebelum memperbarui penyebaran produksi.

pip install --pre agent-framework-hosting

Apa yang disediakan pembantu hosting

Paket hosting generik menyediakan status eksekusi bersama untuk server milik aplikasi:

  • AgentState mengaitkan target agen dengan SessionStore dan membuat sesi saat aplikasi memilih kunci baru.
  • SessionStore menyimpan, mengambil, dan menghapus sesi dengan ID yang dipilih aplikasi. Penyimpanan bawaannya bersifat lokal untuk proses dan tidak memiliki kebijakan penghapusan.
  • WorkflowState menentukan target alur kerja. Aplikasi Anda memiliki penyimpanan titik pemeriksaan dan pemetaan apa pun dari ID kelanjutan klien ke titik pemeriksaan.

AgentState bukan server atau registri protokol. Aplikasi Anda memilih kunci sesi resmi, menyelesaikan target, dan menyimpan status pasca-eksekusi. Ini dapat menggunakan target dan infrastruktur aplikasi bersama yang sama untuk satu atau beberapa titik akhir protokol.

Menyesuaikan penyimpanan sesi

SessionStore adalah kelas penyimpanan asinkron kecil dengan getmetode , set, dan delete . Implementasi default menyimpan sesi dalam memori proses. Buat subclass dan timpa metode tersebut untuk menyimpan objek AgentSession di Redis, basis data, penyimpanan blob, atau penyimpanan lain milik aplikasi, lalu teruskan instans tersebut ke AgentState(session_store=...).

SessionStore dan penyedia riwayat menyimpan bagian-bagian terpisah dari percakapan agen. Penyimpanan sesi menyimpan satu objek sesi per ID sesi, termasuk metadata sesi dan status penyedia. HistoryProvider khusus menyimpan percakapan secara terpisah, biasanya sebagai satu rekaman untuk setiap pesan. Pemisahan ini disarankan untuk host yang persisten karena menambahkan pesan satu per satu umumnya lebih efisien daripada menulis ulang objek sesi yang terus bertambah setelah setiap giliran. Penyedia riwayat didefinisikan per agen, dengan meneruskan kelas penyedia riwayat yang diinginkan ke context_providers parameter .

Note

Penyedia riwayat default: InMemoryHistoryProvider adalah pengecualian: ia menyimpan percakapan lengkap di AgentSession.state. Saat penyedia tersebut digunakan, SessionStore pertahankan percakapan di dalam objek sesi. Untuk percakapan atau penyimpanan produksi yang lebih lama, gunakan penyedia riwayat khusus sehingga penyimpanan sesi dapat tetap berfokus pada status sesi yang ringan.

Membawa kerangka kerja atau pustaka klien Anda sendiri

Paket hosting tidak terkait dengan kerangka kerja web atau pustaka klien. Sampel menggunakan FastAPI dan aiogram karena mereka memberikan contoh ringkas yang dapat dijalankan, bukan karena pembantu memerlukannya.

  • Untuk titik akhir HTTP, gunakan API perutean dan permintaan/respons kerangka kerja aplikasi Anda, seperti FastAPI, Starlette, Django, Flask, Azure Functions, atau kerangka kerja lain.
  • Untuk klien protokol seperti Telegram, gunakan pustaka klien apa pun yang dapat menyediakan pembaruan protokol dan menjalankan operasi yang dihasilkan oleh pembantu.

Aplikasi memilih kerangka kerja dan pustaka kliennya; paket Kerangka Kerja Agen hanya mengonversi data protokol dan mengelola status eksekusi opsional. Mereka tidak mendaftarkan rute, mengautentikasi penelepon, mengotorisasi akses ke status, memilih opsi model yang diizinkan, atau menyediakan penyimpanan yang tahan lama.

Menambahkan protokol ke server Anda

Pilih satu atau beberapa integrasi protokol:

Protocol Paket dan integrasi
Respon OpenAI agent-framework-hosting-responses
Telegram agent-framework-hosting-telegram
A2A agent-framework-a2a atau agent-framework-hosting-a2a
MCP agent-framework-hosting-mcp

Setiap halaman protokol menjelaskan penyiapannya. Namun mereka dirancang untuk memungkinkan Anda membangun satu host dengan satu atau beberapa protokol diaktifkan dan target yang dapat dipanggil; baik agen atau alur kerja. Karena kami tidak membatasi Anda pada satu kerangka kerja web, Anda dapat memilih yang Anda inginkan, dan mengatur host dengan protokol tersebut dengan mudah.

Kelanjutan sesi yang aman

Perlakukan setiap pengidentifikasi yang disediakan protokol sebagai input yang tidak tepercaya. Sebelum menggunakan ID untuk memuat sesi, titik pemeriksaan, tugas, atau status lainnya:

  1. Autentikasi pemanggil tersebut.
  2. Otorisasi pemanggil untuk mengakses status yang dirujuk.
  3. Partisikan status persisten berdasarkan tenant, pengguna, atau ruang kerja yang terautentikasi.
  4. Pertahankan status sesi dan titik pemeriksaan hanya setelah eksekusi atau streaming selesai.

Pola hosting mandiri ini memungkinkan aplikasi Anda hanya menerapkan titik akhir protokol dan kebijakan yang dibutuhkan; ini tidak mencoba menerapkan permukaan API lengkap dari setiap protokol yang didukung.

Langkah berikutnya

Masuk lebih dalam: