agent_framework Paket
Modul
| exceptions | |
| observability |
Kelas
| AIFunction |
Alat yang membungkus fungsi Python untuk membuatnya dapat dipanggil oleh model AI. Kelas ini membungkus fungsi Python untuk membuatnya dapat dipanggil oleh model AI dengan validasi parameter otomatis dan pembuatan skema JSON. Menginisialisasi AIFunction. |
| AgentExecutor |
pelaksana bawaan yang membungkus agen untuk menangani pesan. AgentExecutor mengadaptasi perilakunya berdasarkan mode eksekusi alur kerja:
Pelaksana secara otomatis mendeteksi mode melalui WorkflowContext.is_streaming(). Inisialisasi pelaksana dengan pengidentifikasi unik. |
| AgentExecutorRequest |
Permintaan ke pelaksana agen. |
| AgentExecutorResponse |
Respons dari pelaksana agen. |
| AgentInputRequest |
Permintaan input manusia sebelum agen berjalan dalam alur kerja penyusun tingkat tinggi. Dipancarkan melalui RequestInfoEvent saat alur kerja dijeda sebelum agen dijalankan. Respons disuntikkan ke dalam percakapan sebagai pesan pengguna untuk mengarahkan perilaku agen. Ini adalah jenis permintaan standar yang digunakan oleh .with_request_info() pada SequentialBuilder, ConcurrentBuilder, GroupChatBuilder, dan HandoffBuilder. |
| AgentMiddleware |
Kelas dasar abstrak untuk middleware agen yang dapat mencegat pemanggilan agen. Middleware agen memungkinkan Anda untuk mencegat dan memodifikasi pemanggilan agen sebelum dan sesudah eksekusi. Anda dapat memeriksa pesan, memodifikasi konteks, mengambil alih hasil, atau mengakhiri eksekusi lebih awal. Nota AgentMiddleware adalah kelas dasar abstrak. Anda harus subkelas dan menerapkannya metode process() untuk membuat middleware agen kustom. |
| AgentProtocol |
Protokol untuk agen yang dapat dipanggil. Protokol ini mendefinisikan antarmuka yang harus diterapkan semua agen, termasuk properti untuk identifikasi dan metode untuk eksekusi. Nota Protokol menggunakan subtipe struktural (pengetikan bebek). Kelas tidak perlu untuk secara eksplisit mewarisi dari protokol ini agar dianggap kompatibel. Ini memungkinkan Anda membuat agen kustom sepenuhnya tanpa menggunakan kelas dasar Kerangka Kerja Agen apa pun. |
| AgentRunContext |
Objek konteks untuk pemanggilan middleware agen. Konteks ini diteruskan melalui alur middleware agen dan berisi semua informasi tentang pemanggilan agen. Inisialisasi AgentRunContext. |
| AgentRunEvent |
Peristiwa dipicu saat eksekusi agen selesai. Menginisialisasi peristiwa eksekusi agen. |
| AgentRunResponse |
Mewakili respons terhadap permintaan eksekusi Agen. Menyediakan satu atau beberapa pesan respons dan metadata tentang respons. Respons umum akan berisi satu pesan, tetapi mungkin berisi beberapa pesan dalam skenario yang melibatkan panggilan fungsi, pengambilan RAG, atau logika kompleks. Menginisialisasi AgentRunResponse. |
| AgentRunResponseUpdate |
Mewakili potongan respons streaming tunggal dari Agen. Menginisialisasi AgentRunResponseUpdate. |
| AgentRunUpdateEvent |
Peristiwa dipicu saat agen melakukan streaming pesan. Menginisialisasi peristiwa streaming agen. |
| AgentThread |
Kelas utas Agen, ini dapat mewakili utas yang dikelola secara lokal atau utas yang dikelola oleh layanan. Mempertahankan Inisialisasi AgentThread, jangan gunakan metode ini secara manual, selalu gunakan: Nota Baik service_thread_id atau message_store dapat diatur, tetapi tidak keduanya. |
| AggregateContextProvider |
ContextProvider yang berisi beberapa penyedia konteks. Ini mendelegasikan peristiwa ke beberapa penyedia konteks dan menggabungkan respons dari peristiwa tersebut sebelum kembali. Ini memungkinkan Anda menggabungkan beberapa penyedia konteks ke dalam satu penyedia. Nota AggregateContextProvider dibuat secara otomatis saat Anda melewati satu konteks penyedia atau urutan penyedia konteks ke konstruktor agen. Inisialisasi AggregateContextProvider dengan penyedia konteks. |
| BaseAgent |
Kelas dasar untuk semua agen Agent Framework. Kelas ini menyediakan fungsionalitas inti untuk implementasi agen, termasuk penyedia konteks, dukungan middleware, dan manajemen utas. Nota BaseAgent tidak dapat diinstansiasi secara langsung karena tidak mengimplementasikan run(), run_stream(), dan metode lain yang diperlukan oleh AgentProtocol. Gunakan implementasi konkret seperti ChatAgent atau buat subkelas. Menginisialisasi instans BaseAgent. |
| BaseAnnotation |
Kelas dasar untuk semua jenis Anotasi AI. Menginisialisasi BaseAnnotation. |
| BaseChatClient |
Kelas dasar untuk klien obrolan. Kelas dasar abstrak ini menyediakan fungsionalitas inti untuk implementasi klien obrolan, termasuk dukungan middleware, persiapan pesan, dan normalisasi alat. Nota BaseChatClient tidak dapat dibuat langsung karena merupakan kelas dasar abstrak. Subkelas harus menerapkan _inner_get_response() dan _inner_get_streaming_response(). Menginisialisasi instans BaseChatClient. |
| BaseContent |
Mewakili konten yang digunakan oleh layanan AI. Menginisialisasi BaseContent. |
| Case |
Pembungkus runtime menggabungkan predikat switch-case dengan targetnya. Setiap Kasus menggandeng predikat boolean dengan pelaksana yang harus menangani pesan ketika predikat mengevaluasi ke True. Runtime menjaga kontainer ringan ini terpisah dari SwitchCaseEdgeGroupCase yang dapat diserialisasikan sehingga eksekusi dapat beroperasi dengan panggilan langsung tanpa mencemari status persisten. |
| ChatAgent |
Agen Klien Obrolan. Ini adalah implementasi agen utama yang menggunakan klien obrolan untuk berinteraksi dengan model bahasa. Ini mendukung alat, penyedia konteks, middleware, dan respons streaming dan non-streaming. Menginisialisasi instans ChatAgent. Nota Kumpulan parameter dari frequency_penalty ke request_kwargs digunakan untuk hubungi klien obrolan. Mereka juga dapat diteruskan ke kedua metode eksekusi. Ketika keduanya diatur, yang diteruskan ke metode eksekusi lebih diutamakan. |
| ChatClientProtocol |
Protokol untuk klien obrolan yang dapat menghasilkan respons. Protokol ini mendefinisikan antarmuka yang harus diterapkan semua klien obrolan, termasuk metode untuk menghasilkan respons streaming dan non-streaming. Nota Protokol menggunakan subtipe struktural (pengetikan bebek). Kelas tidak perlu untuk secara eksplisit mewarisi dari protokol ini agar dianggap kompatibel. |
| ChatContext |
Objek konteks untuk pemanggilan middleware obrolan. Konteks ini diteruskan melalui alur middleware obrolan dan berisi semua informasi tentang permintaan obrolan. Inisialisasi ChatContext. |
| ChatMessage |
Mewakili pesan obrolan. Menginisialisasi ChatMessage. |
| ChatMessageStore |
Implementasi dalam memori ChatMessageStoreProtocol yang menyimpan pesan dalam daftar. Implementasi ini menyediakan penyimpanan sederhana berbasis daftar untuk pesan obrolan dengan dukungan untuk serialisasi dan deserialisasi. Ini mengimplementasikan semua metode protokol yang Penyimpanan mempertahankan pesan dalam memori dan menyediakan metode untuk menserialisasikan dan mendeserialisasi status untuk tujuan persistensi. Buat ChatMessageStore untuk digunakan dalam utas. |
| ChatMessageStoreProtocol |
Menentukan metode untuk menyimpan dan mengambil pesan obrolan yang terkait dengan utas tertentu. Implementasi protokol ini bertanggung jawab untuk mengelola penyimpanan pesan obrolan, termasuk menangani data dalam volume besar dengan memotong atau meringkas pesan seperlunya. |
| ChatMiddleware |
Kelas dasar abstrak untuk middleware obrolan yang dapat mencegat permintaan klien obrolan. Middleware obrolan memungkinkan Anda mencegat dan memodifikasi permintaan klien obrolan sebelum dan sesudah eksekusi. Anda dapat mengubah pesan, menambahkan permintaan sistem, mencatat permintaan, atau mengambil alih respons obrolan. Nota ChatMiddleware adalah kelas dasar abstrak. Anda harus subkelas dan menerapkannya metode process() untuk membuat middleware obrolan kustom. |
| ChatOptions |
Pengaturan permintaan umum untuk layanan AI. Menginisialisasi ChatOptions. |
| ChatResponse |
Mewakili respons terhadap permintaan obrolan. Menginisialisasi ChatResponse dengan parameter yang disediakan. |
| ChatResponseUpdate |
Mewakili potongan respons streaming tunggal dari ChatClient. Menginisialisasi ChatResponseUpdate dengan parameter yang disediakan. |
| CheckpointStorage |
Protokol untuk backend penyimpanan titik pemeriksaan. |
| CitationAnnotation |
Mewakili anotasi kutipan. Inisialisasi CitationAnnotation. |
| ConcurrentBuilder |
Penyusun tingkat tinggi untuk alur kerja agen bersamaan.
Penggunaan:
|
| Context |
Kelas yang berisi konteks apa pun yang harus diberikan ke model AI sebagaimana disediakan oleh ContextProvider. Setiap ContextProvider memiliki kemampuan untuk memberikan konteksnya sendiri untuk setiap pemanggilan. Kelas Konteks berisi konteks tambahan yang disediakan oleh ContextProvider. Konteks ini akan dikombinasikan dengan konteks yang disediakan oleh penyedia lain sebelum diteruskan ke model AI. Konteks ini per pemanggilan, dan tidak akan disimpan sebagai bagian dari riwayat obrolan. Buat objek Konteks baru. |
| ContextProvider |
Kelas dasar untuk semua penyedia konteks. Penyedia konteks adalah komponen yang dapat digunakan untuk meningkatkan manajemen konteks AI. Ini dapat mendengarkan perubahan dalam percakapan dan memberikan konteks tambahan ke model AI tepat sebelum pemanggilan. Nota ContextProvider adalah kelas dasar abstrak. Anda harus subkelas dan menerapkannya metode invoking() untuk membuat penyedia konteks kustom. Idealnya, Anda harus juga menerapkan metode invoked() dan thread_created() untuk melacak percakapan negara bagian, tetapi ini bersifat opsional. |
| DataContent |
Mewakili konten data biner dengan jenis media terkait (juga dikenal sebagai jenis MIME). Penting Ini untuk data biner yang direpresentasikan sebagai URI data, bukan untuk sumber daya online. Gunakan UriContent untuk sumber daya online. Menginisialisasi instans DataContent. Penting Ini untuk data biner yang direpresentasikan sebagai URI data, bukan untuk sumber daya online. Gunakan UriContent untuk sumber daya online. |
| Default |
Representasi runtime cabang default dalam grup switch-case. Cabang default hanya dipanggil ketika tidak ada predikat kasus lain yang cocok. Dalam praktiknya dijamin ada sehingga perutean tidak pernah menghasilkan target kosong. |
| Edge |
Memodelkan hand-off yang diarahkan secara opsional-kondisional antara dua pelaksana. Setiap Edge mengambil metadata minimal yang diperlukan untuk memindahkan pesan dari satu pelaksana ke pelaksana lainnya di dalam grafik alur kerja. Ini secara opsional menyematkan predikat boolean yang memutuskan apakah tepi harus diambil pada runtime. Dengan membuat serial tepi ke primitif, kita dapat membangun kembali topologi alur kerja terlepas dari proses Python asli. Menginisialisasi tepi yang sepenuhnya ditentukan antara dua pelaksana alur kerja. |
| EdgeDuplicationError |
Pengecualian muncul saat tepi duplikat terdeteksi dalam alur kerja. |
| ErrorContent |
Mewakili kesalahan. Komentar: Biasanya digunakan untuk kesalahan non-fatal, di mana ada yang salah sebagai bagian dari operasi, tetapi operasi masih dapat dilanjutkan. Menginisialisasi instans ErrorContent. |
| Executor |
Kelas dasar untuk semua pelaksana alur kerja yang memproses pesan dan melakukan komputasi. Gambaran UmumPelaksana adalah blok penyusun dasar alur kerja, mewakili unit pemrosesan individual yang menerima pesan, melakukan operasi, dan menghasilkan output. Setiap pelaksana diidentifikasi secara unik dan dapat menangani jenis pesan tertentu melalui metode handler yang didekorasi. Sistem TipePelaksana memiliki sistem jenis kaya yang menentukan kemampuannya: Jenis InputJenis pesan yang dapat diproses oleh eksekutor, ditemukan dari tanda tangan metode handler:
Akses melalui properti input_types . Jenis OutputJenis pesan yang dapat dikirim eksekutor ke pelaksana lain melalui ctx.send_message():
Akses melalui properti output_types . Jenis Output Alur KerjaJenis data yang dapat dipancarkan eksekutor sebagai output tingkat alur kerja melalui ctx.yield_output():
Akses melalui properti workflow_output_types . Penemuan HandlerPelaksana menemukan kemampuan mereka melalui metode yang didekorasi: @handler DekoratorMenandai metode yang memproses pesan masuk:
Intersepsi Permintaan Sub-alur kerjaGunakan @handler metode untuk mencegat permintaan sub-alur kerja:
Jenis KonteksMetode handler menerima varian WorkflowContext yang berbeda berdasarkan jenis anotasinya: WorkflowContext (tanpa parameter jenis)Untuk handler yang hanya melakukan efek samping tanpa mengirim pesan atau menghasilkan output:
WorkflowContext[T_Out]Memungkinkan pengiriman pesan jenis T_Out melalui ctx.send_message():
WorkflowContext[T_Out, T_W_Out]Memungkinkan pengiriman pesan (T_Out) dan menghasilkan output alur kerja (T_W_Out):
Pelaksana FungsiFungsi sederhana dapat dikonversi menjadi pelaksana menggunakan dekorator @executor :
Komposisi sub-alur kerjaPelaksana dapat berisi sub-alur kerja menggunakan WorkflowExecutor. Sub-alur kerja dapat membuat permintaan yang dapat disadap alur kerja induk. Lihat Dokumentasi WorkflowExecutor untuk detail tentang pola komposisi alur kerja dan penanganan permintaan/respons. Pengelolaan StatusPelaksana dapat berisi status yang bertahan di seluruh eksekusi alur kerja dan titik pemeriksaan. Ambil alih metode on_checkpoint_save dan on_checkpoint_restore untuk menerapkan serialisasi status kustom dan logika pemulihan. Catatan Implementasi
Inisialisasi pelaksana dengan pengidentifikasi unik. |
| ExecutorCompletedEvent |
Peristiwa dipicu ketika handler eksekutor selesai. Inisialisasi peristiwa pelaksana dengan ID pelaksana dan data opsional. |
| ExecutorEvent |
Kelas dasar untuk peristiwa pelaksana. Inisialisasi peristiwa pelaksana dengan ID pelaksana dan data opsional. |
| ExecutorFailedEvent |
Peristiwa dipicu ketika handler eksekutor menimbulkan kesalahan. |
| ExecutorInvokedEvent |
Peristiwa dipicu ketika handler eksekutor dipanggil. Inisialisasi peristiwa pelaksana dengan ID pelaksana dan data opsional. |
| FanInEdgeGroup |
Mewakili sekumpulan tepi konvergensi yang memberi umpan pada satu pelaksana hilir. Grup fan-in biasanya digunakan ketika beberapa tahap upstream secara independen menghasilkan pesan yang semuanya harus tiba di prosesor hilir yang sama. Buat pemetaan fan-in yang menggabungkan beberapa sumber ke dalam satu target. |
| FanOutEdgeGroup |
Mewakili grup tepi gaya siaran dengan logika pemilihan opsional. Fan-out meneruskan pesan yang dihasilkan oleh satu pelaksana sumber ke satu atau beberapa pelaksana hilir. Pada runtime kami dapat mempersempit target lebih lanjut dengan menjalankan selection_func yang memeriksa payload dan mengembalikan subset id yang harus menerima pesan. Buat pemetaan fan-out dari satu sumber ke banyak target. |
| FileCheckpointStorage |
Penyimpanan titik pemeriksaan berbasis file untuk persistensi. Menginisialisasi penyimpanan file. |
| FinishReason |
Mewakili alasan respons obrolan selesai. Inisialisasi FinishReason dengan nilai. |
| FunctionApprovalRequestContent |
Mewakili permintaan persetujuan pengguna dari panggilan fungsi. Menginisialisasi instans FunctionApprovalRequestContent. |
| FunctionApprovalResponseContent |
Mewakili respons untuk persetujuan pengguna atas panggilan fungsi. Menginisialisasi instans FunctionApprovalResponseContent. |
| FunctionCallContent |
Mewakili permintaan panggilan fungsi. Menginisialisasi instans FunctionCallContent. |
| FunctionExecutor |
Pelaksana yang membungkus fungsi yang ditentukan pengguna. Pelaksana ini memungkinkan pengguna untuk menentukan fungsi sederhana (sinkronisasi dan asinkron) dan menggunakannya sebagai pelaksana alur kerja tanpa perlu membuat kelas pelaksana penuh. Fungsi sinkron dijalankan dalam kumpulan utas menggunakan asyncio.to_thread() untuk menghindari pemblokiran perulangan peristiwa. Inisialisasi FunctionExecutor dengan fungsi yang ditentukan pengguna. |
| FunctionInvocationConfiguration |
Konfigurasi untuk pemanggilan fungsi di klien obrolan. Kelas ini dibuat secara otomatis pada setiap klien obrolan yang mendukung pemanggilan fungsi. Ini berarti bahwa untuk sebagian besar kasus Anda hanya dapat mengubah atribut pada instans, daripada membuat yang baru. Inisialisasi FunctionInvocationConfiguration. |
| FunctionInvocationContext |
Objek konteks untuk pemanggilan middleware fungsi. Konteks ini diteruskan melalui alur middleware fungsi dan berisi semua informasi tentang pemanggilan fungsi. Inisialisasi FunctionInvocationContext. |
| FunctionMiddleware |
Kelas dasar abstrak untuk middleware fungsi yang dapat mencegat pemanggilan fungsi. Middleware fungsi memungkinkan Anda untuk mencegat dan memodifikasi pemanggilan fungsi/alat sebelum dan sesudah eksekusi. Anda dapat memvalidasi argumen, hasil cache, pemanggilan log, atau mengganti eksekusi fungsi. Nota FunctionMiddleware adalah kelas dasar abstrak. Anda harus subkelas dan menerapkannya metode process() untuk membuat middleware fungsi kustom. |
| FunctionResultContent |
Mewakili hasil panggilan fungsi. Menginisialisasi instans FunctionResultContent. |
| GraphConnectivityError |
Pengecualian muncul saat masalah konektivitas grafik terdeteksi. |
| GroupChatBuilder |
Penyusun tingkat tinggi untuk alur kerja obrolan grup yang diarahkan manajer dengan orkestrasi dinamis. GroupChat mengoordinasikan percakapan multi-agen menggunakan manajer yang memilih peserta mana yang berbicara berikutnya. Manajer dapat menjadi fungsi Python sederhana (set_select_speakers_func) atau pemilih berbasis agen melalui set_manager. Kedua pendekatan ini saling eksklusif. Alur Kerja Inti:
Pola Pemilihan Pembicara: Pola 1: Pilihan berbasis fungsi sederhana (disarankan)
Pola 2: Pilihan berbasis LLM
Pola 3: Meminta info untuk umpan balik pertengahan percakapan
Spesifikasi Peserta: Dua cara untuk menentukan peserta:
Struktur Rekam Jepret Status: GroupChatStateSnapshot yang diteruskan ke set_select_speakers_func berisi:
Batasan Penting:
Inisialisasi GroupChatBuilder. |
| GroupChatDirective |
Instruksi yang dipancarkan oleh implementasi manajer obrolan grup. |
| HandoffBuilder |
Penyusun yang fasih untuk alur kerja handoff percakapan dengan agen koordinator dan spesialis. Pola handoff memungkinkan agen koordinator untuk merutekan permintaan ke agen spesialis. Mode interaksi mengontrol apakah alur kerja meminta input pengguna setelah setiap respons agen atau selesai secara otonom setelah agen selesai merespons. Kondisi penghentian menentukan kapan alur kerja harus berhenti meminta input dan selesai. Pola Perutean: Single-Tier (Default): Hanya koordinator yang bisa menyerahkan ke spesialis. Secara default, setelah spesialis merespons, kontrol kembali ke pengguna untuk input lebih lanjut. Ini menciptakan alur siklus: pengguna - koordinator -> [spesialis opsional] - pengguna ->> koordinator -> ...> Gunakan with_interaction_mode("otonom") untuk melewati permintaan input pengguna tambahan dan menghasilkan percakapan akhir saat agen merespons tanpa mendelegasikan. Multi-Tingkat (Tingkat Lanjut): Spesialis dapat menyerahkan kepada spesialis lain menggunakan .add_handoff(). Ini memberikan lebih banyak fleksibilitas untuk alur kerja yang kompleks tetapi kurang dapat dikontrol daripada pola tingkat tunggal. Pengguna kehilangan visibilitas real-time ke dalam langkah-langkah menengah selama handoff spesialis-ke-spesialis (meskipun riwayat percakapan lengkap termasuk semua handoff dipertahankan dan dapat diperiksa setelahnya). Fitur Utama:
Penggunaan (Single-Tier):
Perutean Multi-Tingkat dengan .add_handoff():
Gunakan Pabrik Peserta untuk Isolasi Status: Kondisi Penghentian Kustom:
Titik pemeriksaan:
Menginisialisasi HandoffBuilder untuk membuat alur kerja handoff percakapan. Penyusun dimulai dalam status tidak dikonfigurasi dan mengharuskan Anda untuk memanggil:
Metode konfigurasi opsional memungkinkan Anda menyesuaikan manajemen konteks, logika penghentian, dan persistensi. Nota Peserta harus memiliki nama/id stabil karena alur kerja memetakan argumen alat handoff untuk pengidentifikasi ini. Nama agen harus cocok string yang dipancarkan oleh alat handoff koordinator (misalnya, alat yang output {"handoff_to": "billing"} memerlukan agen bernama billing). |
| HandoffUserInputRequest |
Pesan permintaan dipancarkan saat alur kerja memerlukan input pengguna baru. Catatan: Bidang percakapan sengaja dikecualikan dari serialisasi titik pemeriksaan untuk mencegah duplikasi. Percakapan dipertahankan dalam status koordinator dan akan direkonstruksi saat pemulihan. Lihat masalah #2667. |
| HostedCodeInterpreterTool |
Mewakili alat yang dihosting yang dapat ditentukan ke layanan AI untuk memungkinkannya menjalankan kode yang dihasilkan. Alat ini tidak menerapkan interpretasi kode itu sendiri. Ini berfungsi sebagai penanda untuk menginformasikan layanan bahwa layanan diizinkan untuk menjalankan kode yang dihasilkan jika layanan mampu melakukannya. Inisialisasi HostedCodeInterpreterTool. |
| HostedFileContent |
Mewakili konten file yang dihosting. Menginisialisasi instans HostedFileContent. |
| HostedFileSearchTool |
Mewakili alat pencarian file yang dapat ditentukan ke layanan AI untuk memungkinkannya melakukan pencarian file. Menginisialisasi FileSearchTool. |
| HostedMCPSpecificApproval |
Mewakili mode khusus untuk alat yang dihosting. Saat menggunakan mode ini, pengguna harus menentukan alat mana yang selalu atau tidak pernah memerlukan persetujuan. Ini direpresentasikan sebagai kamus dengan dua kunci opsional: |
| HostedMCPTool |
Mewakili alat MCP yang dikelola dan dijalankan oleh layanan. Buat alat MCP yang dihosting. |
| HostedVectorStoreContent |
Mewakili konten penyimpanan vektor yang dihosting. Menginisialisasi instans HostedVectorStoreContent. |
| HostedWebSearchTool |
Mewakili alat pencarian web yang dapat ditentukan ke layanan AI untuk memungkinkannya melakukan pencarian web. Menginisialisasi HostedWebSearchTool. |
| InMemoryCheckpointStorage |
Penyimpanan titik pemeriksaan dalam memori untuk pengujian dan pengembangan. Menginisialisasi penyimpanan memori. |
| InProcRunnerContext |
Konteks eksekusi dalam proses untuk eksekusi lokal dan titik pemeriksaan opsional. Menginisialisasi konteks eksekusi dalam proses. |
| MCPStdioTool |
Alat MCP untuk menyambungkan ke server MCP berbasis stdio. Kelas ini terhubung ke server MCP yang berkomunikasi melalui input/output standar, biasanya digunakan untuk proses lokal. Inisialisasi alat stdio MCP. Nota Argumen digunakan untuk membuat objek StdioServerParameters, yang kemudian digunakan untuk membuat klien stdio. Lihat mcp.client.stdio.stdio_client dan mcp.client.stdio.stdio_server_parameters untuk detail selengkapnya. |
| MCPStreamableHTTPTool |
Alat MCP untuk menyambungkan ke server MCP berbasis HTTP. Kelas ini terhubung ke server MCP yang berkomunikasi melalui HTTP/SSE yang dapat dialirkan. Inisialisasi alat HTTP yang dapat dialirkan MCP. Nota Argumen digunakan untuk membuat klien HTTP yang dapat dialirkan. Lihat mcp.client.streamable_http.streamablehttp_client untuk detail selengkapnya. Setiap argumen tambahan yang diteruskan ke konstruktor akan diteruskan ke konstruktor klien HTTP yang dapat dialirkan. |
| MCPWebsocketTool |
Alat MCP untuk menyambungkan ke server MCP berbasis WebSocket. Kelas ini terhubung ke server MCP yang berkomunikasi melalui WebSocket. Inisialisasi alat MCP WebSocket. Nota Argumen digunakan untuk membuat klien WebSocket. Lihat mcp.client.websocket.websocket_client untuk detail selengkapnya. Setiap argumen tambahan yang diteruskan ke konstruktor akan diteruskan ke Konstruktor klien WebSocket. |
| MagenticBuilder |
Penyusun yang fasih untuk membuat alur kerja orkestrasi multi-agen Magentic One. Alur kerja Magentic One menggunakan manajer bertenaga LLM untuk mengoordinasikan beberapa agen melalui perencanaan tugas dinamis, pelacakan kemajuan, dan replanning adaptif. Manajer membuat rencana, memilih agen, memantau kemajuan, dan menentukan kapan harus melakukan replan atau menyelesaikannya. Penyusun menyediakan API yang fasih untuk mengonfigurasi peserta, manajer, tinjauan paket opsional, titik pemeriksaan, dan panggilan balik peristiwa. Dukungan Human-in-the-loop: Magentic menyediakan mekanisme HITL khusus melalui:
Ini memancarkan peristiwa MagenticHumanInterventionRequest yang menyediakan opsi keputusan terstruktur (SETUJUI, REVISE, LANJUTKAN, REPLAN, PANDUAN) yang sesuai untuk orkestrasi berbasis perencanaan Magentic. Penggunaan:
Dengan manajer kustom:
|
| MagenticContext |
Konteks untuk manajer Magentic. |
| MagenticManagerBase |
Kelas dasar untuk manajer Magentic One. |
| ManagerDirectiveModel |
Model Pydantic untuk output arahan manajer terstruktur. Buat model baru dengan mengurai dan memvalidasi data input dari argumen kata kunci. Menaikkan [ValidationError][pydantic_core. ValidationError] jika data input tidak dapat divalidasi untuk membentuk model yang valid. diri sendiri secara eksplisit hanya posisional untuk memungkinkan diri sebagai nama bidang. |
| ManagerSelectionRequest |
Permintaan dikirim ke agen manajer untuk pemilihan pembicara berikutnya. Dataclass ini mengemas status percakapan lengkap dan konteks tugas bagi agen manajer untuk menganalisis dan membuat keputusan pemilihan pembicara. |
| ManagerSelectionResponse |
Respons dari agen manajer dengan keputusan pemilihan pembicara. Agen manajer harus menghasilkan struktur ini (atau dict/JSON yang kompatibel) untuk mengomunikasikan keputusannya kembali ke orkestrator. Buat model baru dengan mengurai dan memvalidasi data input dari argumen kata kunci. Menaikkan [ValidationError][pydantic_core. ValidationError] jika data input tidak dapat divalidasi untuk membentuk model yang valid. diri sendiri secara eksplisit hanya posisional untuk memungkinkan diri sebagai nama bidang. |
| Message |
Kelas yang mewakili pesan dalam alur kerja. |
| OrchestrationState |
Kontainer status terpadu untuk titik pemeriksaan orkestrator. Kelas data ini menstandarkan serialisasi titik pemeriksaan di ketiga pola obrolan grup sambil memungkinkan ekstensi khusus pola melalui metadata. Atribut umum mencakup masalah orkestrasi bersama (tugas, percakapan, pelacakan bulat). Status khusus pola masuk ke dikte metadata. |
| RequestInfoEvent |
Peristiwa dipicu saat pelaksana alur kerja meminta informasi eksternal. Menginisialisasi peristiwa info permintaan. |
| RequestInfoInterceptor |
Pelaksana internal yang menjeda alur kerja untuk input manusia sebelum agen berjalan. Pelaksana ini dimasukkan ke dalam grafik alur kerja oleh penyusun saat .with_request_info() dipanggil. Ini mencegat pesan AgentExecutorRequest SEBELUM agen berjalan dan menjeda alur kerja melalui ctx.request_info() dengan AgentInputRequest. Saat respons diterima, handler respons menyuntikkan input sebagai pesan pengguna ke dalam percakapan dan meneruskan permintaan ke agen. Parameter agent_filter opsional memungkinkan pembatasan agen mana yang memicu jeda. Jika ID agen target tidak berada dalam set filter, permintaan akan diteruskan tanpa jeda. Menginisialisasi eksekutor pencegat info permintaan. |
| Role |
Menjelaskan tujuan yang dimaksudkan dari pesan dalam interaksi obrolan. Properti: SYSTEM: Peran yang menginstruksikan atau mengatur perilaku sistem AI. PENGGUNA: Peran yang menyediakan input pengguna untuk interaksi obrolan. ASISTEN: Peran yang memberikan respons terhadap input yang diinstruksikan sistem dan diminta pengguna. ALAT: Peran yang menyediakan informasi dan referensi tambahan sebagai respons terhadap permintaan penggunaan alat. Menginisialisasi Peran dengan nilai. |
| Runner |
Kelas untuk menjalankan alur kerja di supersteps Pregel. Inisialisasi runner dengan tepi, status bersama, dan konteks. |
| RunnerContext |
Protokol untuk konteks eksekusi yang digunakan oleh runner. Konteks tunggal yang mendukung olahpesan, peristiwa, dan titik pemeriksaan opsional. Jika penyimpanan titik pemeriksaan tidak dikonfigurasi, metode titik pemeriksaan dapat muncul. |
| SequentialBuilder |
Penyusun tingkat tinggi untuk alur kerja agen/pelaksana berurutan dengan konteks bersama.
Penggunaan:
|
| SharedState |
Kelas untuk mengelola status bersama dalam alur kerja. SharedState menyediakan akses aman utas ke data status alur kerja yang perlu dibagikan di seluruh pelaksana selama eksekusi alur kerja. Kunci yang Dipesan: Kunci berikut dicadangkan untuk penggunaan kerangka kerja internal dan tidak boleh dimodifikasi oleh kode pengguna:
Peringatan Jangan gunakan kunci yang dimulai dengan garis bawah (_) karena dapat dicadangkan untuk operasi kerangka kerja internal. Menginisialisasi status bersama. |
| SingleEdgeGroup |
Pembungkus kenyamanan untuk tepi soliter, menjaga seragam API grup. Buat grup tepi satu ke satu di antara dua pelaksana. |
| StandardMagenticManager |
Manajer Magentic Standar yang melakukan panggilan LLM nyata melalui ChatAgent. Manajer membuat permintaan yang mencerminkan orkestrasi Magentic One asli:
Inisialisasi Manajer Magentik Standar. |
| SubWorkflowRequestMessage |
Pesan yang dikirim dari sub-alur kerja ke pelaksana dalam alur kerja induk untuk meminta informasi. Pesan ini membungkus RequestInfoEvent yang dipancarkan oleh pelaksana dalam sub-alur kerja. |
| SubWorkflowResponseMessage |
Pesan yang dikirim dari alur kerja induk ke sub-alur kerja melalui WorkflowExecutor untuk memberikan informasi yang diminta. Pesan ini membungkus data respons bersama dengan RequestInfoEvent asli yang dipancarkan oleh eksekutor sub-alur kerja. |
| SuperStepCompletedEvent |
Peristiwa dipicu saat superstep berakhir. Inisialisasi peristiwa superstep. |
| SuperStepStartedEvent |
Peristiwa dipicu saat superstep dimulai. Inisialisasi peristiwa superstep. |
| SwitchCaseEdgeGroup |
Varian fan-out yang meniadakan alur kontrol sakelar/kasus tradisional. Setiap kasus memeriksa payload pesan dan memutuskan apakah harus menangani pesan. Tepat satu kasus atau cabang default mengembalikan target pada runtime, mempertahankan semantik pengiriman tunggal. Konfigurasikan struktur perutean switch/case untuk satu pelaksana sumber. |
| SwitchCaseEdgeGroupCase |
Deskripsi yang dapat dipertahankan dari satu cabang kondisional dalam switch-case. Tidak seperti objek Kasus runtime varian serialisable ini hanya menyimpan pengidentifikasi target dan nama deskriptif untuk predikat. Ketika panggilan yang mendasar tidak tersedia selama deserialisasi, kami mengganti tempat penampung proksi yang gagal dengan keras, memastikan dependensi yang hilang segera terlihat. Rekam metadata perutean untuk cabang kasus bersyar. |
| SwitchCaseEdgeGroupDefault |
Deskriptor yang dapat dipertahankan untuk cabang fallback dari grup switch-case. Cabang default dijamin ada dan dipanggil ketika setiap predikat kasus lainnya gagal mencocokkan payload. Arahkan cabang default ke pengidentifikasi pelaksana yang diberikan. |
| TextContent |
Mewakili konten teks dalam obrolan. Menginisialisasi instans TextContent. |
| TextReasoningContent |
Mewakili konten penalaran teks dalam obrolan. Komentar: Kelas ini dan TextContent sangat mirip, tetapi berbeda. Menginisialisasi instans TextReasoningContent. |
| TextSpanRegion |
Mewakili wilayah teks yang telah diannotasi. Menginisialisasi TextSpanRegion. |
| ToolMode |
Menentukan apakah dan bagaimana alat digunakan dalam permintaan obrolan. Inisialisasi ToolMode. |
| ToolProtocol |
Mewakili alat generik. Protokol ini mendefinisikan antarmuka yang harus diterapkan semua alat agar kompatibel dengan kerangka kerja agen. Ini diimplementasikan oleh berbagai kelas alat seperti HostedMCPTool, HostedWebSearchTool, dan AIFunction. AIFunction biasanya dibuat oleh dekorator ai_function . Karena setiap konektor perlu mengurai alat secara berbeda, pengguna dapat meneruskan dikte untuk menentukan alat khusus layanan ketika tidak ada abstraksi yang tersedia. |
| TypeCompatibilityError |
Pengecualian dimunculkan ketika ketidaksesuaian jenis terdeteksi di antara pelaksana yang terhubung. |
| UriContent |
Mewakili konten URI. Penting Ini digunakan untuk konten yang diidentifikasi oleh URI, seperti gambar atau file. Untuk URI data (biner), gunakan DataContent sebagai gantinya. Menginisialisasi instans UriContent. Keterangan: Ini digunakan untuk konten yang diidentifikasi oleh URI, seperti gambar atau file. Untuk URI data (biner), gunakan DataContent sebagai gantinya. |
| UsageContent |
Mewakili informasi penggunaan yang terkait dengan permintaan dan respons obrolan. Menginisialisasi instans UsageContent. |
| UsageDetails |
Menyediakan detail penggunaan tentang permintaan/respons. Menginisialisasi instans UsageDetails. |
| Workflow |
Mesin eksekusi berbasis grafik yang mengatur eksekutor yang terhubung. Gambaran UmumAlur kerja menjalankan grafik eksekutor yang diarahkan yang terhubung melalui grup tepi menggunakan model seperti Pregel, berjalan di supersteps hingga grafik menjadi menganggur. Alur kerja dibuat menggunakan kelas WorkflowBuilder - jangan membuat instans kelas ini secara langsung. Model EksekusiPelaksana berjalan di supersteps yang disinkronkan di mana setiap pelaksana:
Pesan antar eksekutor dikirimkan di akhir setiap superstep dan tidak terlihat di aliran peristiwa. Hanya peristiwa tingkat alur kerja (output, peristiwa kustom) dan peristiwa status yang dapat diamati oleh pemanggil. Jenis Input/OutputJenis alur kerja ditemukan saat runtime dengan memeriksa:
Metode EksekusiAlur kerja menyediakan dua API eksekusi utama, masing-masing mendukung beberapa skenario:
Kedua metode mendukung:
Pengelolaan StatusInstans alur kerja berisi status dan status dipertahankan di seluruh panggilan untuk dijalankan dan run_stream. Untuk menjalankan beberapa eksekusi independen, buat instans Alur Kerja terpisah melalui WorkflowBuilder. Permintaan Input EksternalPelaksana dalam alur kerja dapat meminta input eksternal menggunakan ctx.request_info():
Titik PemeriksaanTitik pemeriksaan dapat dikonfigurasi pada waktu build atau runtime: Build-time (melalui WorkflowBuilder): alur kerja = WorkflowBuilder().with_checkpointing(storage).build() Runtime (melalui parameter run/run_stream): result = await workflow.run(message, checkpoint_storage=runtime_storage) Saat diaktifkan, titik pemeriksaan dibuat di akhir setiap superstep, menangkap:
KomposisiAlur kerja dapat ditumpuk menggunakan WorkflowExecutor, yang membungkus alur kerja anak sebagai pelaksana. Jenis input/output alur kerja berlapis menjadi bagian dari jenis WorkflowExecutor. Saat dipanggil, WorkflowExecutor menjalankan alur kerja berlapis untuk menyelesaikan dan memproses outputnya. Menginisialisasi alur kerja dengan daftar tepi. |
| WorkflowAgent |
Subkelas Agen yang membungkus alur kerja dan mengeksposnya sebagai agen. Inisialisasi WorkflowAgent. |
| WorkflowBuilder |
Kelas penyusun untuk membangun alur kerja. Kelas ini menyediakan API yang fasih untuk menentukan grafik alur kerja dengan menghubungkan pelaksana dengan tepi dan mengonfigurasi parameter eksekusi. Panggilan build untuk membuat instans yang tidak dapat diubah Workflow . Inisialisasi WorkflowBuilder dengan daftar tepi kosong dan tidak ada pelaksana awal. |
| WorkflowCheckpoint |
Mewakili titik pemeriksaan lengkap status alur kerja. Titik pemeriksaan menangkap status eksekusi penuh alur kerja pada titik tertentu, memungkinkan alur kerja dijeda dan dilanjutkan. Nota Dict shared_state mungkin berisi kunci cadangan yang dikelola oleh kerangka kerja. Lihat dokumentasi kelas SharedState untuk detail tentang kunci yang dipesan. |
| WorkflowCheckpointSummary |
Ringkasan titik pemeriksaan alur kerja yang dapat dibaca manusia. |
| WorkflowContext |
Konteks eksekusi yang memungkinkan pelaksana berinteraksi dengan alur kerja dan pelaksana lainnya. Gambaran UmumWorkflowContext menyediakan antarmuka terkontrol bagi pelaksana untuk mengirim pesan, menghasilkan output, mengelola status, dan berinteraksi dengan ekosistem alur kerja yang lebih luas. Ini memberlakukan keamanan jenis melalui parameter generik sambil mencegah akses langsung ke komponen runtime internal. Jenis parameterKonteks diparameterkan untuk memberlakukan keamanan jenis untuk operasi yang berbeda: WorkflowContext (tanpa parameter)Untuk pelaksana yang hanya melakukan efek samping tanpa mengirim pesan atau menghasilkan output:
WorkflowContext[T_Out]Memungkinkan pengiriman pesan jenis T_Out ke pelaksana lain:
WorkflowContext[T_Out, T_W_Out]Memungkinkan pengiriman pesan (T_Out) dan menghasilkan output alur kerja (T_W_Out):
Jenis UnionBeberapa jenis dapat ditentukan menggunakan notasi gabungan:
Inisialisasi konteks pelaksana dengan konteks alur kerja yang diberikan. |
| WorkflowErrorDetails |
Informasi kesalahan terstruktur untuk muncul dalam peristiwa/hasil kesalahan. |
| WorkflowEvent |
Kelas dasar untuk peristiwa alur kerja. Menginisialisasi peristiwa alur kerja dengan data opsional. |
| WorkflowExecutor |
Pelaksana yang membungkus alur kerja untuk mengaktifkan komposisi alur kerja hierarkis. Gambaran UmumWorkflowExecutor membuat alur kerja berperilaku sebagai pelaksana tunggal dalam alur kerja induk, memungkinkan arsitektur alur kerja berlapis. Ini menangani siklus hidup lengkap eksekusi sub-alur kerja termasuk pemrosesan peristiwa, penerusan output, dan koordinasi permintaan/respons antara alur kerja induk dan anak. Model EksekusiSaat dipanggil, WorkflowExecutor:
Pemrosesan Aliran PeristiwaWorkflowExecutor memproses peristiwa setelah penyelesaian sub-alur kerja: Penerusan OutputSemua output dari sub-alur kerja secara otomatis diteruskan ke induk: Ketika allow_direct_output False (default):
Ketika allow_direct_output True:Koordinasi Permintaan/ResponsSaat sub-alur kerja memerlukan informasi eksternal:
Pengelolaan StatusWorkflowExecutor mempertahankan status eksekusi di seluruh siklus permintaan/respons:
Ketik Integrasi SistemWorkflowExecutor mewarisi tanda tangan jenisnya dari alur kerja yang dibungkus: Jenis InputCocok dengan jenis input pelaksana mulai alur kerja yang dibungkus:
Jenis OutputMenggabungkan output sub-alur kerja dengan jenis koordinasi permintaan:
Penanganan KesalahanWorkflowExecutor menyebarkan kegagalan sub-alur kerja:
Dukungan Eksekusi BersamaanWorkflowExecutor sepenuhnya mendukung beberapa eksekusi sub-alur kerja bersamaan: Isolasi Status Per-ExecutionSetiap pemanggilan sub-alur kerja membuat ExecutionContext terisolasi:
Koordinasi Permintaan/ResponsRespons dirutekan dengan benar ke eksekusi asal:
Manajemen Memori
Pertimbangan PentingInstans Alur Kerja Bersama: Semua eksekusi bersamaan menggunakan instans alur kerja yang mendasar yang sama. Untuk isolasi yang tepat, pastikan bahwa alur kerja yang dibungkus dan pelaksananya tidak memiliki status.
Integrasi dengan Alur Kerja IndukAlur kerja induk dapat mencegat permintaan sub-alur kerja: Catatan Implementasi
Inisialisasi WorkflowExecutor. |
| WorkflowFailedEvent |
Peristiwa siklus hidup bawaan yang dipancarkan saat alur kerja berjalan berakhir dengan kesalahan. |
| WorkflowOutputEvent |
Peristiwa dipicu ketika pelaksana alur kerja menghasilkan output. Menginisialisasi peristiwa output alur kerja. |
| WorkflowRunResult |
Kontainer untuk peristiwa yang dihasilkan selama eksekusi alur kerja non-streaming. Gambaran UmumMewakili hasil eksekusi lengkap dari eksekusi alur kerja, yang berisi semua peristiwa yang dihasilkan dari status awal hingga diam. Alur kerja menghasilkan output secara bertahap melalui panggilan ctx.yield_output() selama eksekusi. Struktur PeristiwaMempertahankan pemisahan antara data-plane dan peristiwa sarana kontrol:
Metode Kunci
|
| WorkflowStartedEvent |
Peristiwa siklus hidup bawaan yang dipancarkan saat alur kerja berjalan dimulai. Menginisialisasi peristiwa alur kerja dengan data opsional. |
| WorkflowStatusEvent |
Peristiwa siklus hidup bawaan yang dipancarkan untuk transisi status eksekusi alur kerja. Inisialisasi peristiwa status alur kerja dengan status baru dan data opsional. |
| WorkflowValidationError |
Pengecualian dasar untuk kesalahan validasi alur kerja. |
| WorkflowViz |
Kelas untuk memvisualisasikan alur kerja menggunakan graphviz dan Mermaid. Inisialisasi WorkflowViz dengan alur kerja. |
Enum
| MagenticHumanInterventionDecision |
Opsi keputusan untuk respons intervensi manusia. |
| MagenticHumanInterventionKind |
Jenis intervensi manusia yang diminta. |
| ValidationTypeEnum |
Enumerasi jenis validasi alur kerja. |
| WorkflowEventSource |
Mengidentifikasi apakah peristiwa alur kerja berasal dari kerangka kerja atau pelaksana. Gunakan FRAMEWORK untuk peristiwa yang dipancarkan oleh jalur orkestrasi bawaan—bahkan ketika kode yang meningkatkannya hidup dalam modul terkait runner—dan PELAKSANA untuk peristiwa yang muncul oleh implementasi pelaksana yang disediakan pengembang. |
| WorkflowRunState |
Status tingkat eksekusi alur kerja. Semantik:
|
Fungsi
agent_middleware
Dekorator untuk menandai fungsi sebagai middleware agen.
Dekorator ini secara eksplisit mengidentifikasi fungsi sebagai middleware agen, yang memproses objek AgentRunContext.
agent_middleware(func: Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[AgentRunContext, Callable[[AgentRunContext], Awaitable[None]]], Awaitable[None]]
Parameter
| Nama | Deskripsi |
|---|---|
|
func
Diperlukan
|
Fungsi middleware untuk menandai sebagai middleware agen. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Fungsi yang sama dengan penanda middleware agen. |
Contoh
from agent_framework import agent_middleware, AgentRunContext, ChatAgent
@agent_middleware
async def logging_middleware(context: AgentRunContext, next):
print(f"Before: {context.agent.name}")
await next(context)
print(f"After: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
ai_function
Hiasi fungsi untuk mengubahnya menjadi AIFunction yang dapat diteruskan ke model dan dijalankan secara otomatis.
Dekorator ini membuat model Pydantic dari tanda tangan fungsi, yang akan digunakan untuk memvalidasi argumen yang diteruskan ke fungsi dan untuk menghasilkan skema JSON untuk parameter fungsi.
Untuk menambahkan deskripsi ke parameter, gunakan Annotated jenis dari typing dengan deskripsi string sebagai argumen kedua. Anda juga dapat menggunakan kelas Pydantic Field untuk konfigurasi yang lebih canggih.
Nota
Ketika approval_mode diatur ke "always_require", fungsi tidak akan dijalankan
hingga persetujuan eksplisit diberikan, ini hanya berlaku untuk alur pemanggilan otomatis.
Penting juga untuk dicatat bahwa jika model mengembalikan beberapa panggilan fungsi, beberapa yang memerlukan persetujuan
Dan orang lain yang tidak meminta persetujuan untuk semuanya.
ai_function(func: Callable[[...], ReturnT | Awaitable[ReturnT]] | None = None, *, name: str | None = None, description: str | None = None, approval_mode: Literal['always_require', 'never_require'] | None = None, max_invocations: int | None = None, max_invocation_exceptions: int | None = None, additional_properties: dict[str, Any] | None = None) -> AIFunction[Any, ReturnT] | Callable[[Callable[[...], ReturnT | Awaitable[ReturnT]]], AIFunction[Any, ReturnT]]
Parameter
| Nama | Deskripsi |
|---|---|
|
func
|
Callable[[...], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]] | None
Fungsi untuk menghias. Nilai default: None
|
|
name
Diperlukan
|
|
|
description
Diperlukan
|
|
|
approval_mode
Diperlukan
|
Literal['always_require', 'never_require'] | None
|
|
max_invocations
Diperlukan
|
|
|
max_invocation_exceptions
Diperlukan
|
|
|
additional_properties
Diperlukan
|
|
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
name
|
Nama fungsi. Jika tidak disediakan, atribut fungsi Nilai default: None
|
|
description
|
Deskripsi fungsi. Jika tidak disediakan, docstring fungsi akan digunakan. Nilai default: None
|
|
approval_mode
|
Apakah persetujuan diperlukan atau tidak untuk menjalankan alat ini. Defaultnya adalah persetujuan tidak diperlukan. Nilai default: None
|
|
max_invocations
|
Frekuensi maksimum fungsi ini dapat dipanggil. Jika Tidak Ada, tidak ada batasan, harus setidaknya 1. Nilai default: None
|
|
max_invocation_exceptions
|
Jumlah maksimum pengecualian yang diizinkan selama pemanggilan. Jika Tidak Ada, tidak ada batasan, harus setidaknya 1. Nilai default: None
|
|
additional_properties
|
Properti tambahan untuk diatur pada fungsi . Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
AIFunction[Any, <xref:agent_framework._tools.ReturnT>] | Callable[[Callable[[…], <xref:agent_framework._tools.ReturnT> | Awaitable[<xref:agent_framework._tools.ReturnT>]]], AIFunction[Any, <xref:agent_framework._tools.ReturnT>]]
|
Contoh
from agent_framework import ai_function
from typing import Annotated
@ai_function
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# the same function but with approval required to run
@ai_function(approval_mode="always_require")
def ai_function_example(
arg1: Annotated[str, "The first argument"],
arg2: Annotated[int, "The second argument"],
) -> str:
# An example function that takes two arguments and returns a string.
return f"arg1: {arg1}, arg2: {arg2}"
# With custom name and description
@ai_function(name="custom_weather", description="Custom weather function")
def another_weather_func(location: str) -> str:
return f"Weather in {location}"
# Async functions are also supported
@ai_function
async def async_get_weather(location: str) -> str:
'''Get weather asynchronously.'''
# Simulate async operation
return f"Weather in {location}"
chat_middleware
Dekorator untuk menandai fungsi sebagai middleware obrolan.
Dekorator ini secara eksplisit mengidentifikasi fungsi sebagai middleware obrolan, yang memproses objek ChatContext.
chat_middleware(func: Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[ChatContext, Callable[[ChatContext], Awaitable[None]]], Awaitable[None]]
Parameter
| Nama | Deskripsi |
|---|---|
|
func
Diperlukan
|
Fungsi middleware untuk menandai sebagai middleware obrolan. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Fungsi yang sama dengan penanda middleware obrolan. |
Contoh
from agent_framework import chat_middleware, ChatContext, ChatAgent
@chat_middleware
async def logging_middleware(context: ChatContext, next):
print(f"Messages: {len(context.messages)}")
await next(context)
print(f"Response: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
create_edge_runner
Fungsi pabrik untuk membuat pelari tepi yang sesuai untuk grup tepi.
create_edge_runner(edge_group: EdgeGroup, executors: dict[str, Executor]) -> EdgeRunner
Parameter
| Nama | Deskripsi |
|---|---|
|
edge_group
Diperlukan
|
<xref:agent_framework._workflows._edge.EdgeGroup>
Grup tepi untuk membuat runner. |
|
executors
Diperlukan
|
Peta ID pelaksana ke instans eksekutor. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
<xref:agent_framework._workflows._edge_runner.EdgeRunner>
|
Instans EdgeRunner yang sesuai. |
executor
Dekorator yang mengonversi fungsi mandiri menjadi instans FunctionExecutor.
Dekorator @executor dirancang hanya untuk fungsi tingkat modul mandiri. Untuk pelaksana berbasis kelas, gunakan kelas dasar Pelaksana dengan @handler pada metode instans.
Mendukung fungsi sinkron dan asinkron. Fungsi sinkron dijalankan dalam kumpulan utas untuk menghindari pemblokiran perulangan peristiwa.
Penting
Gunakan @executor untuk fungsi mandiri (fungsi tingkat modul atau lokal)
JANGAN gunakan @executor dengan staticmethod atau classmethod
Untuk pelaksana berbasis kelas, Pelaksana subkelas dan gunakan @handler pada metode instans
Penggunaan:
# Standalone async function (RECOMMENDED):
@executor(id="upper_case")
async def to_upper(text: str, ctx: WorkflowContext[str]):
await ctx.send_message(text.upper())
# Standalone sync function (runs in thread pool):
@executor
def process_data(data: str):
return data.upper()
# For class-based executors, use @handler instead:
class MyExecutor(Executor):
def __init__(self):
super().__init__(id="my_executor")
@handler
async def process(self, data: str, ctx: WorkflowContext[str]):
await ctx.send_message(data.upper())
executor(func: Callable[[...], Any] | None = None, *, id: str | None = None) -> Callable[[Callable[[...], Any]], FunctionExecutor] | FunctionExecutor
Parameter
| Nama | Deskripsi |
|---|---|
|
func
|
Fungsi untuk menghias (saat digunakan tanpa tanda kurung) Nilai default: None
|
|
id
Diperlukan
|
ID kustom opsional untuk pelaksana. Jika Tidak Ada, menggunakan nama fungsi. |
Parameter Kata Kunci-Saja
| Nama | Deskripsi |
|---|---|
|
id
|
Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Instans FunctionExecutor yang dapat dikabeli ke dalam Alur Kerja. |
Pengecualian
| Jenis | Deskripsi |
|---|---|
|
Jika digunakan dengan staticmethod atau classmethod (pola yang tidak didukung) |
function_middleware
Dekorator untuk menandai fungsi sebagai middleware fungsi.
Dekorator ini secara eksplisit mengidentifikasi fungsi sebagai middleware fungsi, yang memproses objek FunctionInvocationContext.
function_middleware(func: Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]) -> Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
Parameter
| Nama | Deskripsi |
|---|---|
|
func
Diperlukan
|
Callable[[FunctionInvocationContext, Callable[[FunctionInvocationContext], Awaitable[None]]], Awaitable[None]]
Fungsi middleware untuk menandai sebagai middleware fungsi. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Fungsi yang sama dengan penanda middleware fungsi. |
Contoh
from agent_framework import function_middleware, FunctionInvocationContext, ChatAgent
@function_middleware
async def logging_middleware(context: FunctionInvocationContext, next):
print(f"Calling: {context.function.name}")
await next(context)
print(f"Result: {context.result}")
# Use with an agent
agent = ChatAgent(chat_client=client, name="assistant", middleware=logging_middleware)
get_checkpoint_summary
get_checkpoint_summary(checkpoint: WorkflowCheckpoint) -> WorkflowCheckpointSummary
Parameter
| Nama | Deskripsi |
|---|---|
|
checkpoint
Diperlukan
|
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
get_logger
Dapatkan pencatat dengan nama yang ditentukan, default ke 'agent_framework'.
get_logger(name: str = 'agent_framework') -> Logger
Parameter
| Nama | Deskripsi |
|---|---|
|
name
|
Nama pencatat. Default ke 'agent_framework'. Nilai default: "agent_framework"
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Instans pencatat yang dikonfigurasi. |
handler
Dekorator untuk mendaftarkan handler untuk pelaksana.
handler(func: Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]) -> Callable[[ExecutorT, Any, ContextT], Awaitable[Any]]
Parameter
| Nama | Deskripsi |
|---|---|
|
func
Diperlukan
|
Callable[[<xref:agent_framework._workflows._executor.ExecutorT>, Any, <xref:agent_framework._workflows._executor.ContextT>], Awaitable[Any]]
Fungsi untuk menghias. Bisa Tidak Ada saat digunakan tanpa parameter. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Fungsi yang dihiasi dengan metadata handler. |
Contoh
@handler asinkron def handle_string(self, message: str, ctx: WorkflowContext[str]) -> Tidak ada:
...
@handler asinkron def handle_data(self, message: dict, ctx: WorkflowContext[str | int]) -> None:
...
prepare_function_call_results
Siapkan nilai hasil panggilan fungsi.
prepare_function_call_results(content: TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any | list[TextContent | DataContent | TextReasoningContent | UriContent | FunctionCallContent | FunctionResultContent | ErrorContent | UsageContent | HostedFileContent | HostedVectorStoreContent | FunctionApprovalRequestContent | FunctionApprovalResponseContent | Any]) -> str
Parameter
Mengembalikan
| Jenis | Deskripsi |
|---|---|
prepend_agent_framework_to_user_agent
Tambahkan "agent-framework" ke User-Agent di header.
Ketika telemetri agen pengguna dinonaktifkan melalui AGENT_FRAMEWORK_USER_AGENT_DISABLED variabel lingkungan, header User-Agent tidak akan menyertakan informasi kerangka kerja agen.
Ini akan dikirim kembali apa adanya, atau sebagai dict kosong ketika Tidak ada yang diteruskan.
prepend_agent_framework_to_user_agent(headers: dict[str, Any] | None = None) -> dict[str, Any]
Parameter
| Nama | Deskripsi |
|---|---|
|
headers
|
Kamus header yang ada. Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Dict baru dengan "User-Agent" diatur ke "agent-framework-python/{version}" jika header tidak ada. Kamus header yang dimodifikasi dengan "agent-framework-python/{version}" ditambahkan ke User-Agent. |
Contoh
from agent_framework import prepend_agent_framework_to_user_agent
# Add agent-framework to new headers
headers = prepend_agent_framework_to_user_agent()
print(headers["User-Agent"]) # "agent-framework-python/0.1.0"
# Prepend to existing headers
existing = {"User-Agent": "my-app/1.0"}
headers = prepend_agent_framework_to_user_agent(existing)
print(headers["User-Agent"]) # "agent-framework-python/0.1.0 my-app/1.0"
response_handler
Dekorator untuk mendaftarkan handler untuk menangani respons permintaan.
response_handler(func: Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]) -> Callable[[ExecutorT, Any, Any, ContextT], Awaitable[None]]
Parameter
| Nama | Deskripsi |
|---|---|
|
func
Diperlukan
|
Callable[[<xref:agent_framework._workflows._request_info_mixin.ExecutorT>, Any, Any, <xref:agent_framework._workflows._request_info_mixin.ContextT>], Awaitable[None]]
Fungsi untuk menghias. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Fungsi yang dihiasi dengan metadata handler. |
Contoh
@handler
async def run(self, message: int, context: WorkflowContext[str]) -> None:
# Example of a handler that sends a request
...
# Send a request with a `CustomRequest` payload and expect a `str` response.
await context.request_info(CustomRequest(...), str)
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: str,
context: WorkflowContext[str],
) -> None:
# Example of a response handler for the above request
...
@response_handler
async def handle_response(
self,
original_request: CustomRequest,
response: dict,
context: WorkflowContext[int],
) -> None:
# Example of a response handler for a request expecting a dict response
...
setup_logging
Siapkan konfigurasi pengelogan untuk kerangka kerja agen.
setup_logging() -> None
Mengembalikan
| Jenis | Deskripsi |
|---|---|
use_agent_middleware
Dekorator kelas yang menambahkan dukungan middleware ke kelas agen.
Dekorator ini menambahkan fungsionalitas middleware ke kelas agen apa pun.
Ini membungkus run() metode dan run_stream() untuk memberikan eksekusi middleware.
Eksekusi middleware dapat dihentikan kapan saja dengan mengatur context.terminate properti ke True. Setelah diatur, alur akan berhenti mengeksekusi middleware lebih lanjut segera setelah kontrol kembali ke alur.
Nota
Dekorator ini sudah diterapkan ke kelas agen bawaan. Anda hanya perlu menggunakan
jika Anda membuat implementasi agen kustom.
use_agent_middleware(agent_class: type[TAgent]) -> type[TAgent]
Parameter
| Nama | Deskripsi |
|---|---|
|
agent_class
Diperlukan
|
type[<xref:TAgent>]
Kelas agen untuk menambahkan dukungan middleware. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
type[~<xref:TAgent>]
|
Kelas agen yang dimodifikasi dengan dukungan middleware. |
Contoh
from agent_framework import use_agent_middleware
@use_agent_middleware
class CustomAgent:
async def run(self, messages, **kwargs):
# Agent implementation
pass
async def run_stream(self, messages, **kwargs):
# Streaming implementation
pass
use_chat_middleware
Dekorator kelas yang menambahkan dukungan middleware ke kelas klien obrolan.
Dekorator ini menambahkan fungsionalitas middleware ke kelas klien obrolan apa pun.
Ini membungkus get_response() metode dan get_streaming_response() untuk memberikan eksekusi middleware.
Nota
Dekorator ini sudah diterapkan ke kelas klien obrolan bawaan. Anda hanya perlu menggunakan
jika Anda membuat implementasi klien obrolan kustom.
use_chat_middleware(chat_client_class: type[TChatClient]) -> type[TChatClient]
Parameter
| Nama | Deskripsi |
|---|---|
|
chat_client_class
Diperlukan
|
type[<xref:TChatClient>]
Kelas klien obrolan untuk menambahkan dukungan middleware. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
type[~<xref:TChatClient>]
|
Kelas klien obrolan yang dimodifikasi dengan dukungan middleware. |
Contoh
from agent_framework import use_chat_middleware
@use_chat_middleware
class CustomChatClient:
async def get_response(self, messages, **kwargs):
# Chat client implementation
pass
async def get_streaming_response(self, messages, **kwargs):
# Streaming implementation
pass
use_function_invocation
Dekorator kelas yang memungkinkan panggilan alat untuk klien obrolan.
Dekorator ini membungkus get_response metode dan get_streaming_response untuk secara otomatis menangani panggilan fungsi dari model, menjalankannya, dan mengembalikan hasilnya kembali ke model untuk diproses lebih lanjut.
use_function_invocation(chat_client: type[TChatClient]) -> type[TChatClient]
Parameter
| Nama | Deskripsi |
|---|---|
|
chat_client
Diperlukan
|
type[<xref:TChatClient>]
Kelas klien obrolan untuk dihiasi. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
type[~<xref:TChatClient>]
|
Kelas klien obrolan yang didekorasi dengan pemanggilan fungsi diaktifkan. |
Pengecualian
| Jenis | Deskripsi |
|---|---|
|
Jika klien obrolan tidak memiliki metode yang diperlukan. |
Contoh
from agent_framework import use_function_invocation, BaseChatClient
@use_function_invocation
class MyCustomClient(BaseChatClient):
async def get_response(self, messages, **kwargs):
# Implementation here
pass
async def get_streaming_response(self, messages, **kwargs):
# Implementation here
pass
# The client now automatically handles function calls
client = MyCustomClient()
validate_workflow_graph
Fungsi kenyamanan untuk memvalidasi grafik alur kerja.
validate_workflow_graph(edge_groups: Sequence[EdgeGroup], executors: dict[str, Executor], start_executor: Executor) -> None
Parameter
| Nama | Deskripsi |
|---|---|
|
edge_groups
Diperlukan
|
Sequence[<xref:agent_framework._workflows._edge.EdgeGroup>]
daftar grup tepi dalam alur kerja |
|
executors
Diperlukan
|
Peta ID pelaksana ke instans eksekutor |
|
start_executor
Diperlukan
|
Pelaksana awal (dapat berupa instans atau ID) |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
Pengecualian
| Jenis | Deskripsi |
|---|---|
|
Jika ada validasi yang gagal |