Cara Membangun Agen AI yang Canggih dengan Alat di C#

Pembaharuan Terakhir: 05/21/2026
  • Agen C# modern menggabungkan penalaran LLM dengan alat, memori, dan alur kerja untuk menangani tugas-tugas kompleks yang berorientasi pada tujuan.
  • Azure OpenAI Assistants dan Microsoft Agent Framework menyediakan primitif inti untuk asisten, sesi, alat, dan eksekusi di .NET.
  • Arsitektur yang tangguh memisahkan agen-agen khusus, mempertahankan status, mengatur alur kerja, dan menerapkan pengujian, pengamatan, dan keamanan yang ketat.
  • Perangkat berbasis cloud seperti Azure AI Foundry dan ekstensi VS Code AI menyederhanakan pengembangan, evaluasi, dan penerapan agen tingkat produksi.

Agen AI dalam C# dengan berbagai alat

Membangun agen AI dengan alat-alat dalam C# telah bergeser dari eksperimen penelitian menjadi cara yang sangat praktis untuk menambahkan kecerdasan nyata pada aplikasi bisnis. Kerangka kerja modern dari Microsoft dan SDK OpenAI serta Azure OpenAI terbaru memungkinkan untuk melampaui sekadar chatbot sederhana, menghubungkan model bahasa yang besar dengan kode, file, alur kerja, dan sistem perusahaan sambil tetap menjaga kendali atas keamanan, biaya, dan keandalan.

Panduan ini akan memandu Anda melalui konsep inti, keputusan arsitektur, dan contoh .NET konkret yang Anda perlukan untuk mendesain agen siap produksi di C#. Kami akan menggabungkan ide-ide dari Azure OpenAI Assistants, Microsoft Agent Framework, pola orkestrasi, pengujian, observabilitas, dan penerapan cloud, menjelaskan bagaimana semuanya sesuai dengan strategi yang kohesif untuk aplikasi dunia nyata.

Apa sebenarnya agen AI itu (dan mengapa hal itu penting di .NET)

Dalam ekosistem .NET, agen AI paling baik dipahami sebagai komponen perangkat lunak yang berorientasi pada tujuan dan didukung oleh LLM (Learning Learning Model) yang dapat bernalar, memilih alat, dan bertindak dalam aplikasi Anda. Alih-alih skrip kaku yang selalu mengikuti jalur yang sama, agen menerima masukan terbuka, memutuskan apa yang harus dilakukan selanjutnya, dan menggunakan kode serta data Anda untuk bergerak menuju suatu hasil.

Agen menjadi jauh lebih berguna ketika Anda menambahkan tiga kemampuan di atas pembuatan teks biasa. Anda memberi mereka kemampuan penalaran dan pengambilan keputusan (melalui LLM, algoritma pencarian atau perencanaan), kemampuan untuk memanggil alat (fungsi C# lokal, server MCP, API, eksekusi kode) dan kesadaran akan konteks (riwayat obrolan, utas, penyimpanan vektor, grafik pengetahuan perusahaan, atau pencarian file). Inilah yang mengubah penyelesaian obrolan sederhana menjadi komponen yang dapat secara mandiri mengoordinasikan pekerjaan multi-langkah.

Seiring bertambahnya kompleksitas tujuan Anda, Anda jarang menjalankan semuanya sebagai satu perintah besar yang tidak transparan; Anda memecah pekerjaan menjadi alur kerja. Alur kerja adalah urutan atau grafik langkah-langkah yang diperlukan untuk mencapai suatu tujuan: pengumpulan persyaratan, perancangan, implementasi, pengujian, dan penyebaran fitur, misalnya. Setiap langkah dapat berisi sub-tugas dan dapat berulang tergantung pada kesalahan atau informasi baru, sehingga orkestrasi dengan cepat menjadi perhatian utama.

Saat Anda menempatkan agen di dalam alur kerja ini, Anda akan mendapatkan alur kerja agenAlur di mana agen berkolaborasi untuk mengeksekusi, menyesuaikan, dan mengoptimalkan tugas. Anda mungkin memiliki agen yang menganalisis log, agen lain yang menyusun perbaikan kode, dan agen ketiga yang menyiapkan laporan pemangku kepentingan. Bagian pentingnya adalah bagaimana mereka menyampaikan informasi, bagaimana mereka dikoordinasikan, dan bagaimana Anda menjaga agar seluruh sistem dapat diamati dan diaudit.

Blok bangunan inti dari asisten dan agen AI.

Sebagian besar platform agen AI modern yang ditujukan untuk C# dan .NET memiliki sejumlah kecil komponen inti yang sama, meskipun penamaannya sedikit berbeda antara Azure OpenAI Assistants dan Microsoft Agent Framework. Memahami blok-blok ini membantu Anda merancang arsitektur Anda sendiri alih-alih menyalin cuplikan kode secara membabi buta.

Asisten atau agen adalah klien AI sentral yang menggunakan LLM plus konfigurasi untuk memproses instruksi, mengelola percakapan, dan memanggil alat. Di Azure OpenAI Assistants, objek ini membungkus konfigurasi model, instruksi, dan konfigurasi alat. Di Microsoft Agent Framework, sebuah AIAgent Membungkus klien obrolan (OpenAI atau Azure OpenAI) beserta alat dan petunjuk, dan sengaja bersifat stateless sehingga dapat melayani banyak percakapan secara paralel.

Sebuah thread atau sesi mewakili satu percakapan tunggal antara pengguna dan agen, termasuk semua pesan dan status yang relevan. Asisten Azure OpenAI membahas tentang benang, yang memiliki pesan dan menangani pemotongan otomatis agar sesuai dengan konteks model. Microsoft Agent Framework membahas tentang Sesi Agen, yang berisi riwayat dan dapat diserialkan serta disimpan. Keduanya memiliki tujuan yang sama: melacak konteks di beberapa giliran.

Pesan adalah kontribusi individual di dalam sebuah utas atau sesi, yang dihasilkan baik oleh pengguna maupun oleh asisten. Pesan dapat berisi teks biasa, gambar, atau file, dan dalam API Asisten, pesan tersebut disimpan sebagai daftar berurutan di dalam sebuah thread. Di sisi C#, Anda biasanya mengambilnya sebagai koleksi bertipe kuat di mana Anda dapat memeriksa teks, anotasi, dan referensi file.

Suatu eksekusi atau pemanggilan adalah aktivasi tunggal agen pada suatu thread atau sesi tertentu. Anda mengambil konteks yang ada, mengirimkannya ke model bersama dengan alat dan konfigurasi, dan menunggu hingga proses mencapai keadaan akhir. Selama proses berjalan, agen dapat menghasilkan pesan baru, memanggil alat, dan memperbarui status thread atau sesi.

Langkah-langkah eksekusi membentuk jejak rinci dari semua yang terjadi selama proses berjalannya agen. Asisten dapat memanggil alat pencarian file, memicu penerjemah kode, atau memanggil fungsi khusus beberapa kali saat memproses tugas. Memiliki pandangan terstruktur tentang langkah-langkah ini sangat berguna untuk memahami mengapa jawaban tertentu dihasilkan dan untuk melakukan debugging atau audit perilaku di kemudian hari.

Membuat agen konsol C# minimal dengan Azure OpenAI Assistants

Untuk melihat konsep-konsep ini dalam praktiknya, Anda dapat menjalankan aplikasi konsol .NET minimal yang menggunakan SDK OpenAI atau Azure OpenAI resmi untuk membangun asisten yang membaca data dari file dan menghasilkan visualisasi. Idenya adalah untuk menghubungkan LLM (Language Learning Machine) dengan pencarian file dan eksekusi kode, lalu membiarkannya menjawab pertanyaan analitik dalam bahasa alami.

Langkah pertama adalah penyiapan proyek: buat aplikasi konsol .NET baru dan tambahkan paket NuGet untuk OpenAI dan Azure.AI.OpenAI. Kemudian Anda membuat instance klien utama di Program.cs, baik untuk OpenAI secara langsung atau untuk Azure OpenAI menggunakan kredensial seperti DefaultAzureCredentialDari klien OpenAI Anda memperoleh sebuah AssistantClient untuk mengelola asisten dan terpisah OpenAIFileClient untuk unggahan file.

Selanjutnya, Anda menyiapkan data realistis agar agen dapat bekerja dengan membuat dokumen di memori, menserialisasikannya sebagai JSON, dan mengalirkannya ke klien file. Dalam contoh ini, JSON ini mengkodekan data penjualan produk selama beberapa bulan untuk perusahaan fiktif, memetakan bulan ke kuantitas per produk. Dengan mengunggahnya bersama dengan Assistants Untuk tujuan pengarsipan, Anda menandainya sebagai materi yang dapat dicari oleh agen.

Setelah data ada di dalam sistem, Anda mengkonfigurasi asisten melalui AssistantCreationOptions untuk mengaktifkan pencarian file dan alat penerjemah kode. Anda menentukan nama, serangkaian instruksi yang jelas (“Anda adalah asisten yang mencari data penjualan dan menghasilkan visualisasi saat diminta”), lalu melampirkan alat: sebuah FileSearchToolDefinition sehingga asisten dapat menanyakan file, ditambah CodeInterpreterToolDefinition sehingga dapat menulis dan menjalankan kode dalam lingkungan terisolasi (sandbox) untuk analisis atau pembuatan grafik.

Agar pencarian file benar-benar menggunakan dokumen penjualan yang Anda unggah, Anda mengaitkannya dengan toko vektor baru di dalam ToolResources. Sang pembantu VectorStoreCreationHelper Mengikat ID file yang diunggah ke dalam penyimpanan vektor yang dapat diakses asisten secara semantik, alih-alih memindai teks mentah. Ini adalah cara yang ringan namun ampuh untuk menambahkan perilaku pembuatan yang diperkaya dengan pengambilan data.

Dengan opsi yang telah ditetapkan, Anda membuat asisten dengan meneruskan model target (misalnya gpt-4o) dan konfigurasinya, lalu Anda memulai percakapan dengan pesan awal dari pengguna. Permintaan pertama mungkin berupa sesuatu seperti “Bagaimana kinerja produk 113045 di bulan Februari? Gambarkan trennya dari waktu ke waktu.” Terakhir, Anda memanggil CreateThreadAndRun, yang sekaligus membuat thread dan memulai sebuah proses.

Karena proses eksekusi bersifat asinkron, aplikasi konsol biasanya akan terus memantau proses tersebut hingga statusnya menjadi terminal. Setelah itu, Anda mengambil pesan thread dalam urutan menaik dan mengulanginya: mencetak teks bantu, mengeluarkan anotasi untuk kutipan file atau file yang dihasilkan, dan mengunduh output gambar menggunakan klien file sehingga Anda dapat menyimpan grafik yang dihasilkan oleh penerjemah kode ke disk sebagai file PNG.

Hasil akhirnya adalah aplikasi konsol C# mandiri di mana satu asisten dapat mencari data penjualan terstruktur, melakukan perhitungan melalui kode, dan mengembalikan wawasan tekstual serta grafik visual dalam siklus yang sepenuhnya otomatis. Pola ini dapat dengan mudah diterapkan pada backend web atau layanan latar belakang setelah Anda menambahkan persistensi dan otentikasi.

Merancang arsitektur agen yang tangguh di C#

Saat Anda beralih dari demo ke aplikasi nyata, cara Anda menyusun agen sama pentingnya dengan model yang Anda pilih. Arsitektur yang baik memudahkan pengujian, penskalaan, pengamanan, dan pengembangan solusi Anda tanpa berakhir dengan jalinan perintah dan fungsi callback yang sulit dipelihara.

Strategi yang terbukti efektif adalah memperlakukan agen sebagai komponen khusus, bukan sebagai satu kesatuan yang "mampu melakukan segalanya". Sebagai contoh, Anda dapat mendefinisikan satu agen yang fokus pada pengambilan dan verifikasi informasi, agen lain yang didedikasikan untuk menulis dan meringkas konten, dan agen lain lagi yang tugas utamanya adalah berinteraksi dengan API atau basis data eksternal. Pemisahan ini memungkinkan pengujian unit yang terarah, penerapan independen, dan batasan keamanan serta token yang lebih rinci.

Status dan memori akan cepat menjadi hambatan jika Anda memperlakukannya sebagai hal yang kurang penting. Riwayat percakapan berkembang seiring waktu, dan mengirimkan seluruh transkrip ke model secara membabi buta pada setiap giliran akan meningkatkan latensi dan biaya. Strategi praktis meliputi peringkasan berkala dari pesan-pesan sebelumnya, membagi percakapan ke dalam utas terpisah per pengguna atau per kasus penggunaan, dan menerapkan kebijakan pemadatan berbasis kepentingan semantik sehingga hanya bagian-bagian yang paling relevan dari masa lalu yang disimpan secara detail.

Dalam skenario produksi, Anda juga memerlukan penyimpanan memori yang persisten agar percakapan dapat tetap ada meskipun proses dimulai ulang, terjadi kegagalan, atau dilakukan penyebaran ulang. Kerangka kerja agen seperti Microsoft Agent Framework membuat sesi dapat diserialisasi ke suatu JsonElement, yang dapat Anda dorong ke SQL Server, Redis, atau penyimpanan NoSQL lainnya. Kemampuan yang sama memungkinkan jejak audit dan kepatuhan terhadap peraturan karena Anda dapat merekonstruksi dengan tepat keadaan agen saat mengambil keputusan.

Alat dan panggilan fungsi adalah saat agen berhenti bersikap pasif dan mulai melakukan pekerjaan yang bermanfaat. Mengekspos metode C# asli sebagai alat memungkinkan model untuk memanggil perilaku seperti melakukan kueri CRM, menjalankan analitik atas data, atau memicu alur kerja. Setiap alat harus diberi anotasi dengan metadata yang jelas (deskripsi dan dokumentasi parameter), sehingga LLM tahu kapan harus memanggilnya dan dengan argumen apa.

Karena alat yang bermasalah dapat merusak seluruh interaksi, Anda memerlukan rekayasa yang kuat di sekitarnya: validasi input, batas waktu, penanganan pengecualian, dan pengaman. Jangan berasumsi bahwa model selalu memberikan argumen yang sempurna; validasi parameter dan bersihkan setiap panggilan eksternal. Pertimbangkan juga kuota dan batasan laju per alat untuk menghindari biaya yang membengkak atau kelebihan beban yang tidak disengaja pada sistem hilir.

Untuk skenario yang ambisius, orkestrasi multi-agen dapat membuka kemampuan yang sulit dicapai dengan satu agen monolitik. Anda dapat menghubungkan agen "peneliti" yang mengumpulkan dan memeriksa informasi, "analis" yang menafsirkan temuan, dan "penulis" yang mengubahnya menjadi laporan, masing-masing berkomunikasi melalui pesan terstruktur dan berbagi permukaan kerja (seperti dokumen bersama atau penyimpanan pengetahuan). Pola ini meningkatkan spesialisasi dan membuat jalur pengambilan keputusan dapat dilacak ketika Anda kemudian perlu meninjau atau mengaudit hasilnya.

Dari Semantic Kernel dan AutoGen hingga Microsoft Agent Framework

Microsoft telah menyatukan perangkat bantu agennya untuk .NET, menggabungkan ide-ide dari Semantic Kernel dan proyek AutoGen ke dalam Microsoft Agent Framework (MAF) yang baru dan terpadu. Kerangka kerja ini bertujuan untuk memberikan Anda stabilitas dan fitur tingkat perusahaan sekaligus menyederhanakan cara Anda membangun agen multi-giliran dan alur kerja berbasis grafik.

MAF saat ini dalam tahap pratinjau publik dan tersedia untuk .NET dan Python di bawah lisensi MIT. Meskipun beberapa API masih berevolusi di antara kandidat rilis, arah keseluruhannya jelas: AIAgents untuk perilaku cerdas, AgentSessions untuk manajemen status, dan sistem alur kerja berbasis grafik dan eksekutor untuk alur kerja yang lebih deterministik.

Pada intinya, kerangka kerja ini membedakan antara agen dan alur kerja, yang masing-masing ditujukan untuk bentuk masalah yang berbeda. Agen adalah sistem dinamis yang menggunakan LLM (Learning Language Models) untuk menginterpretasikan input, memutuskan alat apa yang akan dipanggil, dan menghasilkan respons. Mereka unggul dalam domain yang tidak dapat diprediksi seperti percakapan dukungan teknis di mana pengguna mungkin menanyakan apa saja. Alur kerja, sebaliknya, adalah urutan langkah eksplisit yang dihubungkan sebagai grafik dan digunakan ketika Anda menginginkan pemrosesan yang deterministik dan terdefinisi dengan baik seperti pipeline data atau rantai persetujuan.

Pedoman resmi dapat disimpulkan sebagai "jika Anda dapat mengimplementasikan suatu tugas sebagai fungsi standar, Anda mungkin tidak memerlukan agen untuk tugas tersebut." Dengan kata lain, gunakan agen hanya untuk domain di mana Anda benar-benar tidak dapat menentukan semua langkah sebelumnya, dan andalkan alur kerja atau kode klasik untuk alur yang berulang dan deterministik. Menggabungkan keduanya di tempat yang tepat adalah kunci untuk membangun sistem yang mudah dipelihara.

Untuk memperjelas hal ini, bayangkan sebuah chatbot dukungan yang dibangun sebagai API ASP.NET Core 10 menggunakan Microsoft Agent Framework. Agen tersebut menggunakan klien obrolan (yang didukung oleh Azure OpenAI atau OpenAI) sebagai mesin penalaran, dan tujuan utamanya adalah untuk menjawab pertanyaan tentang dokumentasi internal yang tersimpan dalam file Markdown sambil mempertahankan konteks di berbagai pesan dari pengguna yang sama.

Menariknya, contoh ini dapat dengan sengaja melewatkan RAG dengan embedding dan tetap realistis dengan menggunakan pencarian kata kunci pada file datar sebagai titik awal. Hal itu menjaga fokus pada bagaimana MAF menyusun agen, alat, dan sesi, alih-alih tersesat dalam konfigurasi basis data vektor, sambil tetap mendukung interaksi dukungan yang sangat masuk akal.

Lima konsep kunci dalam Microsoft Agent Framework

Tutorial resmi untuk MAF menyusun pembelajaran ke dalam lima ide progresif yang sesuai dengan cara berpikir pengembang C# tentang layanan dan status. Memahami konsep-konsep ini akan memberi Anda fondasi yang kokoh untuk agen apa pun yang akan Anda bangun di .NET.

Pertama-tama, agen awal Anda adalah seorang AIAgent Dibangun dari klien obrolan, instruksi, dan sebuah nama. Anda mengarahkan agen ke model obrolan yang disediakan oleh AzureOpenAIClient atau OpenAI, memberikan panduan tingkat sistem (“Anda adalah asisten dukungan yang membantu”) dan kemudian menelepon RunAsync dengan masukan dari pengguna. Detail pentingnya adalah bahwa instance agen bersifat stateless dan dapat melayani beberapa percakapan independen sekaligus.

Kedua adalah alat, yang pada dasarnya adalah metode C# yang diberi dekorasi. atribut dan diubah menjadi fungsi yang dapat dipanggil melalui AIFunctionFactory.Create(). Saat agen dijalankan, LLM menerima skema yang berasal dari atribut tersebut dan dapat secara mandiri memutuskan kapan dan bagaimana memanggil setiap alat, termasuk argumennya. Di sinilah logika bisnis Anda sendiri dan integrasi eksternal menjadi bagian dari ruang aksi agen.

Ketiga adalah dukungan percakapan multi-giliran, yang ditangani MAF melalui AgentSession benda. Karena AIAgent Sistem itu sendiri tidak mengingat apa pun, setiap percakapan yang sedang berlangsung berada di dalam sesi yang dibuat dengan CreateSessionAsync()Anda meneruskan sesi tersebut pada panggilan berikutnya, memungkinkan agen untuk melacak pesan sebelumnya, preferensi pengguna, dan masalah yang belum terselesaikan.

Keempat adalah memori dan persistensi, yang dimungkinkan oleh fakta bahwa sesi dapat diurutkan menjadi sebuah JsonElement. Hal itu memudahkan penyimpanan data di memori, Redis, tabel SQL, atau penyimpanan lain yang Anda sukai, lalu merekonstruksinya dengan DeserializeSessionAsync()Untuk skenario dukungan, ini berarti pengguna dapat menutup browser mereka dan kemudian melanjutkan percakapan yang sama, atau instance layanan yang berbeda dapat mengambil alih dengan lancar setelah restart.

Kelima adalah alur kerja, yang dibangun dengan WorkflowBuilder ketika Anda perlu secara eksplisit mengatur beberapa agen atau langkah pemrosesan berurutan. Anda mendefinisikan eksekutor sebagai unit pemrosesan, menghubungkannya melalui edge, dan membiarkan mesin alur kerja menangani perutean dan transisi. Dalam banyak kasus percakapan, Anda mungkin tidak memerlukan alur kerja sama sekali, tetapi alur kerja menjadi sangat membantu ketika Anda menginginkan perutean terstruktur, klasifikasi, atau langkah-langkah yang melibatkan manusia di sekitar agen Anda.

Menerapkan bot dukungan nyata dengan MAF, alat, dan sesi.

Contoh konkret yang mengilustrasikan konsep-konsep di atas adalah API SupportBot yang didukung oleh proyek ASP.NET Core 10. Layanan ini mengekspos titik akhir HTTP yang menerima pesan pengguna dan pengidentifikasi sesi, mendelegasikan penalaran ke AIAgent, dan mempertahankan sesi sehingga konteks tetap terjaga di seluruh permintaan.

Alat utama dalam skenario ini adalah DocumentationTool yang mengetahui cara mencari di dalam file Markdown internal. Tugasnya adalah menemukan panduan, FAQ, atau manual modul yang relevan dan mengembalikan segmen teks yang membantu agen menyusun jawaban. Atribut yang diterapkan pada metodenya bukanlah sekadar hiasan; MAF menggunakannya untuk membangun skema fungsi yang dibaca oleh LLM, dan kejelasan deskripsi tersebut sangat memengaruhi seberapa efektif model memilih dan memanggil alat tersebut.

Pilihan desain pragmatis dalam alat ini adalah untuk mengembalikan semua dokumen jika tidak ada yang cocok dengan topik yang diminta. Daripada membiarkan agen tanpa materi sama sekali, lebih baik memberikan terlalu banyak konteks dan membiarkan model memilih bagian terbaik daripada membiarkannya berhalusinasi dalam ruang hampa. Pola "cadangan aman" ini sering muncul dalam implementasi agen yang tangguh.

Kemudian SupportAgentFactory menghubungkan semuanya dengan mengambil sebuah AzureOpenAIClient, mengekstrak klien obrolan melalui GetChatClient(), menyesuaikannya dengan AsIChatClient() lalu mengubahnya menjadi sebuah AIAgent dengan AsAIAgent(). Pada langkah terakhir ini, alat dan instruksi yang terdaftar menjadi bagian dari konfigurasi agen yang digunakan untuk setiap percakapan. Anda biasanya mendaftarkan agen yang telah dibuat ini sebagai singleton di dalam kontainer DI sehingga dapat melayani banyak sesi secara bersamaan.

Manajemen sesi diabstraksikan di balik sebuah InMemorySessionStore selama pengembangan, yang mengadakan sesi sebagai JsonElement nilai-nilai. Brankas benang ConcurrentDictionary Ini sudah cukup untuk menghindari penguncian manual. Dalam penerapan sebenarnya, Anda akan mengganti implementasi ini dengan penyimpanan berbasis Redis atau basis data, menjaga antarmuka tetap utuh tetapi mendapatkan penyimpanan yang tahan lama dan skalabilitas horizontal.

Permukaan API di Program.cs sengaja dibuat sesederhana mungkin: satu POST saja /chat Titik akhir yang menerima ID sesi dan pesan pengguna. Penangan permintaan memuat atau membuat sesi, mengeksekusi agen, menserialisasi sesi yang diperbarui secara asinkron (perhatikan bahwa SerializeSessionAsync (bersifat asinkron di RC1, meskipun dokumentasi awal menyarankan sebaliknya), menyimpannya dan mengembalikan balasan asisten ke klien. Dari sudut pandang frontend, "tetap dalam percakapan yang sama" berarti mengirimkan ID sesi yang sama pada setiap panggilan.

Saat Anda menjalankan API dan mengobrol dengannya, Anda dapat melihat agen menyampaikan konteks antar giliran, sama seperti petugas dukungan manusia. Pesan pertama mungkin menjelaskan masalah login; pertanyaan kedua, yang dikirim dengan ID sesi yang sama, dapat merujuk pada "kesalahan itu lagi" tanpa mengulangi detail lengkap, dan agen tetap menjawab dengan koheren karena statusnya terkait dengan penyimpanan sesi.

Alur kerja baru akan mulai efektif jika Anda menambahkan fitur-fitur seperti klasifikasi tujuan otomatis, pengalihan ke agen khusus (penagihan, akses, pelaporan) atau eskalasi ke staf manusia. Anda kemudian dapat memperkenalkan eksekutor klasifikasi di bagian depan grafik alur kerja dan menghubungkannya ke agen khusus topik, atau menambahkan node "manusia dalam lingkaran" yang menghentikan otomatisasi dan menyerahkan konteks kepada seseorang ketika tingkat kepercayaan rendah.

Alur kerja, mode orkestrasi, dan kolaborasi multi-agen.

Bahkan di luar MAF, ada baiknya memikirkan bagaimana alur kerja yang berisi agen diatur, karena strukturnya memengaruhi latensi, biaya, dan keterlacakan. Terdapat beberapa pola umum yang muncul di berbagai proyek dan kerangka kerja.

Orkestrasi sekuensial berarti agen menangani tugas satu demi satu, meneruskan output ke tahap berikutnya. Sebagai contoh, agen pengambilan data pertama-tama mengumpulkan dokumentasi yang relevan, kemudian meneruskannya ke agen analisis, yang selanjutnya menyerahkan temuannya kepada agen pelaporan. Proses ini mudah dipahami dan mudah di-debug, tetapi dengan konsekuensi latensi ujung-ke-ujung yang lebih tinggi.

Orkestrasi konkuren menjalankan beberapa agen secara paralel, masing-masing berfokus pada aspek masalah yang berbeda. Satu agen dapat menghitung metrik, agen lain dapat mencari insiden terkini, dan agen ketiga dapat mengevaluasi dampak kepatuhan, semuanya secara bersamaan. Setelah selesai, seorang koordinator menggabungkan hasil mereka menjadi satu jawaban. Pola ini mengurangi latensi tetapi membutuhkan pengendalian sumber daya dan penyelesaian konflik yang cermat.

Alur serah terima secara eksplisit mengubah kepemilikan tugas dari satu agen ke agen lain berdasarkan kondisi atau hasil sementara. Jika agen dukungan mendeteksi bahwa sebuah pertanyaan sebenarnya terkait penjualan, ia dapat meneruskan percakapan tersebut kepada agen penjualan khusus, dengan opsi untuk menyimpan riwayat obrolan dan metadata. Hal ini sangat membantu dalam perjalanan pelanggan yang kompleks di mana tanggung jawab secara sah berpindah antar tim.

Pengaturan bergaya obrolan grup memungkinkan beberapa agen untuk berkolaborasi dalam saluran percakapan bersama, bertukar pesan secara real-time. Setiap agen membawa perspektif atau perangkatnya sendiri, dan seorang pengatur pusat atau moderator LLM dapat mengelola percakapan sehingga mengarah ke konvergensi daripada berputar tanpa henti. Pola ini ampuh tetapi membutuhkan pengamanan yang kuat untuk menghindari gangguan dan biaya yang tidak perlu.

Terakhir, orkestrasi magnetik menempatkan satu "pemimpin" atau agen konduktor yang bertanggung jawab untuk mengarahkan orang lain. Agen utama menguraikan tugas, mengirimkan sub-tugas kepada spesialis yang tepat, dan kemudian mensintesis hasilnya. Ini mirip dengan seorang manajer teknik yang mengoordinasikan tim pengembang dan dapat menghasilkan alur kerja yang jelas dan dapat diaudit dalam domain yang kompleks.

Pengujian, kemampuan pengamatan, pengendalian biaya, dan keamanan.

Menerapkan agen AI ke lingkungan produksi tanpa rencana pengujian, pemantauan, biaya, dan keamanan adalah resep untuk kejutan yang tidak menyenangkan. Ketelitian yang sama yang Anda terapkan pada layanan .NET kritis apa pun harus diperluas ke lapisan agen Anda, hanya saja disesuaikan dengan sifat probabilistik LLM.

Mulailah dengan menguji alat dan jalur orkestrasi dengan pengujian unit dan integrasi klasik sebelum mengkhawatirkan perilaku model. Setiap fungsi C# yang dapat dipanggil oleh agen harus dapat diuji secara independen, dengan input dan output yang deterministik. Kemudian, rancang skrip percakapan terkontrol yang menjalankan jalur interaksi lengkap, memverifikasi tidak hanya jawaban akhir tetapi juga alat mana yang dipanggil dan bagaimana keadaan berkembang.

Observabilitas harus melacak latensi, konsumsi token, dan tingkat keberhasilan di berbagai jalur eksekusi. Sangat bermanfaat untuk mengukur token permintaan dan token penyelesaian per interaksi, yang diuraikan berdasarkan alur kerja, alat, atau jenis pengguna, sehingga Anda dapat mendeteksi regresi dan lonjakan biaya. Percakapan yang lebih panjang sangat mahal, jadi investasikan pada strategi peringkasan otomatis dan pemotongan cerdas untuk menjaga konteks tetap efisien.

Keamanan adalah hal yang tidak bisa ditawar begitu agen Anda menyentuh data sensitif atau data pelanggan. Anda harus menerapkan kontrol akses yang ketat terhadap alat dan kumpulan data mana yang dapat dilihat oleh agen, mencatat setiap pemanggilan alat untuk tujuan audit, dan menjalankan semua panggilan eksternal melalui lapisan sanitasi. Kredensial tidak boleh disematkan dalam kode; andalkan identitas terkelola, penyimpanan rahasia, dan praktik keamanan cloud biasa yang sudah Anda terapkan pada layanan mikro non-AI.

Persyaratan kepatuhan juga memengaruhi cara Anda menyimpan dan memproses riwayat percakapan. Karena sesi dan percakapan mungkin berisi informasi identitas pribadi atau konten rahasia, tetapkan kebijakan retensi, strategi anonimisasi, dan aturan minimalisasi data sejak dini. Kemampuan untuk melakukan serialisasi dan deserialisasi sesi agen sangat ampuh, tetapi harus diimbangi dengan kewajiban hukum dan peraturan.

Dari sisi biaya, jangan remehkan dampak dari inefisiensi kecil sekalipun dalam skala besar. Perubahan kecil pada ukuran perintah, frekuensi panggilan alat, atau jumlah agen yang berjalan bersamaan dapat mengakibatkan tagihan bulanan yang besar. Menginstrumentasi sistem, meninjau telemetri secara berkala, dan menyetel perintah, kebijakan memori, dan pilihan model sangat penting untuk menjaga agar biaya tetap berkelanjutan dari waktu ke waktu.

Penyebaran dan penskalaan akan lebih mudah jika Anda memisahkan bidang kontrol (tempat Anda mengkonfigurasi agen dan alur kerja) dari bidang inferensi (tempat panggilan model sebenarnya dijalankan). Orkestrasi berbasis kontainer, antrian pesan untuk operasi jangka panjang, dan layanan cloud terkelola untuk hosting LLM semuanya berkontribusi pada ketahanan. Hasilnya kemudian dapat mengalir ke dasbor atau alat BI seperti Power BI untuk menutup siklus umpan balik analitik dan menunjukkan nilai bisnis.

Perangkat bantu terintegrasi seperti AI Toolkit dan ekstensi Azure AI Foundry untuk Visual Studio Code dapat menyederhanakan sebagian besar siklus hidup ini. Dari dalam editor, Anda dapat menjelajahi katalog model, menyebarkan model yang dihosting di GitHub atau model lokal melalui Ollama, membandingkan output secara berdampingan, membangun dan menjalankan evaluator, memvisualisasikan hasil di Data Wrangler, mendesain agen dengan perintah sistem, melampirkan server MCP untuk integrasi alat, dan men-debug interaksi agen. Azure AI Foundry menambahkan perancang visual, sinkronisasi YAML, pembuatan kode untuk akses model Azure, dan integrasi kelas satu dari alat-alat seperti Bing Search dan interpreter kode.

Ketika Anda menggabungkan bahan-bahan ini—arsitektur agen yang solid, manajemen status yang cermat, alat yang andal, alur kerja berbasis grafik jika diperlukan, kemampuan pengamatan yang mendalam, dan penerapan berbasis cloud—Anda akan mendapatkan agen AI C# yang bukan hanya sekadar demo yang cerdas, tetapi juga bagian yang andal dari sistem perusahaan yang lebih besar. Dengan desain yang cermat dan penggunaan yang tepat dari Azure OpenAI Assistants dan Microsoft Agent Framework, agen-agen tersebut dapat secara terukur meningkatkan efisiensi, kualitas informasi, dan otomatisasi di seluruh organisasi Anda, sekaligus tetap mudah dipelihara dan aman.

API
Artikel terkait:
Evolusi API: Batas Baru dalam Integrasi, Keamanan, dan AI Agen
Pos terkait: