Cara Membina Ejen AI yang Berkuasa dengan Alatan dalam Csharp

Kemaskini terakhir: 05/21/2026
Pengarang C SourceTrail
  • Ejen C# moden menggabungkan penaakulan LLM dengan alatan, memori dan aliran kerja untuk mengendalikan tugasan yang kompleks dan berpandukan matlamat.
  • Azure OpenAI Assistants dan Microsoft Agent Framework menyediakan primitif teras untuk pembantu, sesi, alatan dan pelaksanaan dalam .NET.
  • Seni bina yang teguh memisahkan ejen khusus, mengekalkan keadaan, mengatur aliran kerja dan menguatkuasakan pengujian, kebolehcerapan dan keselamatan yang ketat.
  • Peralatan awan seperti Azure AI Foundry dan sambungan VS Code AI memperkemas pembangunan, penilaian dan penggunaan ejen gred pengeluaran.

Ejen AI dalam C# dengan alatan

Membina ejen AI dengan alatan dalam C# telah beralih daripada eksperimen penyelidikan kepada cara yang sangat praktikal untuk menambah kecerdasan sebenar kepada aplikasi perniagaan. Rangka kerja moden daripada Microsoft dan SDK OpenAI dan Azure OpenAI terkini membolehkan kita melangkaui chatbot mudah, menghubungkan model bahasa yang besar dengan kod, fail, aliran kerja dan sistem perusahaan sambil mengekalkan kawalan ke atas keselamatan, kos dan kebolehpercayaan.

Panduan ini membimbing anda melalui konsep teras, keputusan seni bina dan contoh .NET konkrit yang anda perlukan untuk mereka bentuk ejen sedia pengeluaran dalam C#. Kami akan mengumpulkan idea-idea daripada Azure OpenAI Assistants, Microsoft Ejen Framework, corak orkestrasi, pengujian, kebolehcerapan dan penggunaan awan, menerangkan bagaimana semuanya sesuai dengan strategi yang padu untuk aplikasi dunia sebenar.

Apakah ejen AI sebenarnya (dan mengapa ia penting dalam .NET)

Dalam ekosistem .NET, ejen AI paling difahami sebagai komponen perisian berpandukan matlamat yang dikuasakan oleh LLM yang boleh membuat penaakulan, memilih alatan dan bertindak dalam aplikasi anda. Daripada skrip tegar yang sentiasa mengikuti laluan yang sama, ejen menerima input terbuka, memutuskan apa yang perlu dilakukan seterusnya dan menggunakan kod serta data anda untuk mencapai hasil.

Ejen menjadi jauh lebih berguna apabila anda menambah tiga keupayaan di atas penjanaan teks biasa. Anda memberi mereka penaakulan dan pembuatan keputusan (melalui LLM, algoritma carian atau perancangan), keupayaan untuk memanggil alatan (fungsi C# tempatan, pelayan MCP, API, pelaksanaan kod) dan kesedaran tentang konteks (sejarah sembang, thread, stor vektor, graf pengetahuan perusahaan atau carian fail). Inilah yang mengubah penyiapan sembang mudah menjadi komponen yang boleh menyelaraskan kerja berbilang langkah secara autonomi.

Apabila objektif anda menjadi lebih kompleks, anda jarang menjalankan semuanya sebagai satu gesaan legap yang besar; anda menguraikan kerja kepada aliran kerja. Aliran kerja ialah urutan atau graf langkah yang diperlukan untuk mencapai matlamat: contohnya, mengumpul keperluan, mereka bentuk, melaksanakan, menguji dan menggunakan ciri. Setiap langkah boleh mengandungi subtugasan dan mungkin berulang bergantung pada ralat atau maklumat baharu, jadi orkestrasi dengan cepat menjadi kebimbangan kelas pertama.

Apabila anda meletakkan ejen dalam aliran kerja ini, anda akan mendapat aliran kerja agen: aliran tempat ejen bekerjasama untuk melaksanakan, menyesuaikan dan mengoptimumkan tugas. Anda mungkin mempunyai ejen yang menganalisis log, ejen lain yang mendraf pembetulan kod dan ejen ketiga yang menyediakan laporan pihak berkepentingan. Bahagian penting ialah cara ia menyampaikan maklumat, cara ia diselaraskan dan cara anda memastikan keseluruhan sistem boleh diperhatikan dan diaudit.

Blok binaan teras pembantu dan ejen AI

Kebanyakan platform ejen AI moden yang ditujukan untuk C# dan .NET berkongsi set kecil komponen teras, walaupun penamaannya sedikit berbeza antara Azure OpenAI Assistants dan Microsoft Agent Framework. Memahami blok ini membantu anda mereka bentuk seni bina anda sendiri dan bukannya menyalin coretan secara membuta tuli.

Pembantu atau ejen ialah klien AI pusat yang menggunakan konfigurasi LLM plus untuk memproses arahan, mengurus perbualan dan menggunakan alatan. Dalam Azure OpenAI Assistants, objek ini membungkus konfigurasi model, arahan dan konfigurasi alat. Dalam Microsoft Agent Framework, satu AIAgent membungkus klien sembang (OpenAI atau Azure OpenAI) serta alatan dan arahan, dan sengaja tidak mempunyai status supaya ia boleh melayan berbilang perbualan secara selari.

Satu thread atau sesi mewakili satu perbualan antara pengguna dan ejen, termasuk semua mesej dan keadaan yang berkaitan. Pembantu Azure OpenAI membincangkan tentang benang, yang memiliki mesej dan mengendalikan pemotongan automatik agar sesuai dengan konteks model. Rangka Kerja Ejen Microsoft membincangkan tentang EjenSesi, yang mengandungi sejarah dan boleh bersiri dan disimpan. Kedua-duanya mempunyai tujuan yang sama: menjejaki konteks merentasi berbilang giliran.

Mesej ialah sumbangan individu di dalam thread atau sesi, yang dihasilkan sama ada oleh pengguna atau pembantu. Mesej mungkin mengandungi teks biasa, imej atau fail, dan dalam API Pembantu, ia disimpan sebagai senarai tersusun dalam thread. Di bahagian C#, anda biasanya mendapatkannya sebagai koleksi yang ditaip kuat di mana anda boleh memeriksa teks, anotasi dan rujukan fail.

Pelaksanaan, pelaksanaan atau pemanggilan ialah pengaktifan tunggal ejen di atas thread atau sesi yang diberikan. Anda mengambil konteks sedia ada, menghantarnya ke model bersama-sama dengan alatan dan konfigurasi, dan menunggu sehingga larian mencapai keadaan terminal. Semasa larian, ejen boleh menghasilkan mesej baharu, memanggil alatan dan mengemas kini keadaan thread atau sesi.

Langkah-langkah pelaksanaan membentuk jejak terperinci bagi semua yang berlaku semasa ejen dijalankan. Pembantu boleh memanggil alat carian fail, mencetuskan penterjemah kod atau menggunakan fungsi tersuai berbilang kali semasa ia membuat pertimbangan tentang tugasan tersebut. Mempunyai pandangan berstruktur tentang langkah-langkah ini adalah sangat berguna untuk memahami mengapa jawapan tertentu dihasilkan dan untuk menyahpepijat atau mengaudit tingkah laku kemudian.

Mencipta ejen konsol C# minimum dengan Azure OpenAI Assistants

Untuk melihat konsep-konsep ini dalam tindakan, anda boleh menggunakan aplikasi konsol .NET minimum yang menggunakan SDK OpenAI atau Azure OpenAI rasmi untuk membina pembantu yang membaca data daripada fail dan menjana visualisasi. Ideanya adalah untuk menghubungkan LLM dengan carian fail dan pelaksanaan kod, dan kemudian membiarkannya menjawab soalan analitik dalam bahasa semula jadi.

Langkah pertama ialah persediaan projek: cipta aplikasi konsol .NET baharu dan tambahkan pakej NuGet untuk OpenAI dan Azure.AI.OpenAI. Kemudian anda mewujudkan pelanggan utama dalam Program.cs, sama ada untuk OpenAI secara langsung atau untuk Azure OpenAI menggunakan kelayakan seperti DefaultAzureCredentialDaripada klien OpenAI, anda memperoleh AssistantClient untuk menguruskan pembantu dan yang berasingan OpenAIFileClient untuk muat naik fail.

Seterusnya anda menyediakan data realistik untuk ejen gunakan dengan membina dokumen dalam memori, menyusunnya sebagai JSON dan menstrimkannya ke klien fail. Dalam sampel, JSON ini mengekod beberapa bulan jualan produk untuk syarikat fiksyen, memetakan bulan kepada kuantiti setiap produk. Dengan memuat naiknya dengan Assistants Untuk tujuan fail, anda menandakannya sebagai bahan yang boleh dicari oleh ejen.

Sebaik sahaja data wujud dalam sistem, anda mengkonfigurasi pembantu melalui AssistantCreationOptions untuk mendayakan kedua-dua carian fail dan alat penterjemah kod. Anda menyatakan nama, satu set arahan yang jelas (“anda seorang pembantu yang mencari data jualan dan menghasilkan visualisasi apabila diminta”), dan kemudian melampirkan alatan: a FileSearchToolDefinition supaya pembantu boleh membuat pertanyaan tentang fail, serta CodeInterpreterToolDefinition supaya ia boleh menulis dan menjalankan kod dalam persekitaran kotak pasir untuk analisis atau penjanaan carta.

Untuk menjadikan carian fail benar-benar menggunakan dokumen jualan yang dimuat naik, anda mengaitkannya dengan kedai vektor baharu di dalamnya ToolResources. Penolong itu VectorStoreCreationHelper mengikat ID fail yang dimuat naik ke dalam stor vektor yang boleh ditanya oleh pembantu secara semantik dan bukannya mengimbas teks mentah. Ini ialah cara yang ringan tetapi berkuasa untuk menambah tingkah laku penjanaan tambahan yang boleh diperoleh semula.

Dengan pilihan yang tersedia, anda mencipta pembantu dengan menghantar model sasaran (contohnya gpt-4o) dan konfigurasi, dan kemudian anda membuka thread perbualan dengan mesej awal pengguna. Gesaan pertama itu mungkin seperti “Bagaimanakah prestasi produk 113045 pada bulan Februari? Plotkan trendnya dari semasa ke semasa.” Akhir sekali, anda menghubungi CreateThreadAndRun, yang kedua-duanya mencipta thread dan memulakan larian.

Oleh kerana larian bersifat tak segerak, aplikasi konsol biasanya menilai larian sehingga status menjadi terminal. Selepas itu, anda menarik mesej thread dalam tertib menaik dan mengulanginya: mencetak teks pembantu, mengeluarkan anotasi untuk petikan fail atau fail yang dijana dan memuat turun output imej menggunakan klien fail supaya anda boleh menyimpan carta yang dihasilkan oleh penterjemah kod ke cakera sebagai fail PNG.

Hasil akhirnya ialah aplikasi konsol C# yang kendiri di mana seorang pembantu tunggal boleh mencari data jualan berstruktur, melakukan pengiraan melalui kod dan mengembalikan kedua-dua pandangan tekstual dan graf visual dalam gelung automatik sepenuhnya. Corak ini diskalakan dengan baik ke dalam backend web atau perkhidmatan latar belakang sebaik sahaja anda menambah kegigihan dan pengesahan.

Mereka bentuk seni bina ejen yang mantap dalam C#

Apabila anda beralih daripada demo kepada aplikasi sebenar, cara anda menstrukturkan ejen anda adalah penting sama seperti model yang anda pilih. Seni bina yang baik memudahkan pengujian, penskalaan, pengaman dan pengembangan penyelesaian anda tanpa berakhir dengan kusut gesaan dan panggilan balik yang tidak dapat dikekalkan.

Strategi yang terbukti adalah untuk melayan ejen sebagai komponen khusus dan bukannya satu otak "melakukan semuanya". Contohnya, anda mungkin mentakrifkan satu ejen yang tertumpu pada pencarian dan pengesahan maklumat, satu lagi ejen yang dikhaskan untuk menulis dan meringkaskan kandungan, dan satu lagi ejen yang tugas utamanya berinteraksi dengan API atau pangkalan data luaran. Pemisahan ini membolehkan ujian unit yang disasarkan, penggunaan bebas dan had keselamatan dan token yang lebih terperinci.

Keadaan dan ingatan dengan cepat menjadi kesesakan jika anda menganggapnya sebagai perkara sampingan. Sejarah perbualan berkembang dari semasa ke semasa, dan menghantar keseluruhan transkrip kepada model secara membuta tuli pada setiap pusingan meningkatkan kependaman dan kos. Strategi praktikal termasuk ringkasan berkala mesej terdahulu, membahagikan perbualan kepada utas berasingan bagi setiap pengguna atau setiap kes penggunaan dan melaksanakan dasar pemadatan berasaskan kepentingan semantik supaya hanya bahagian masa lalu yang paling relevan dipelihara secara terperinci.

Dalam senario pengeluaran, anda juga mahukan stor memori yang berterusan supaya perbualan dapat bertahan daripada proses dimulakan semula, kegagalan atau penggunaan semula. Rangka kerja ejen seperti Microsoft Agent Framework menjadikan sesi boleh disirikan kepada JsonElement, yang boleh anda masukkan ke dalam SQL Server, Redis atau mana-mana stor NoSQL. Keupayaan yang sama membolehkan jejak audit dan pematuhan kawal selia kerana anda boleh membina semula dengan tepat keadaan yang dimiliki ejen semasa ia membuat keputusan.

Alat dan panggilan fungsi adalah tempat ejen berhenti bersikap pasif dan mula melakukan kerja yang berguna. Mendedahkan kaedah C# natif sebagai alat membolehkan model mencetuskan tingkah laku seperti membuat pertanyaan pada CRM, menjalankan analitik melalui data atau mencetuskan aliran kerja. Setiap alat harus dianotasi dengan metadata yang jelas (perihalan dan dokumentasi parameter), supaya LLM tahu bila hendak memanggilnya dan dengan argumen yang mana.

Oleh kerana alat yang tidak berfungsi dengan baik boleh merosakkan keseluruhan interaksi, anda memerlukan kejuruteraan yang mantap di sekelilingnya: pengesahan input, tamat masa, pengendalian pengecualian dan penghadang. Jangan menganggap model sentiasa lulus argumen yang sempurna; sahkan parameter dan bersihkan sebarang panggilan luaran. Fikirkan juga dari segi kuota dan had kadar setiap alat untuk mengelakkan kos yang tidak terkawal atau beban sistem hiliran yang tidak disengajakan.

Untuk senario yang bercita-cita tinggi, orkestrasi berbilang ejen boleh membuka kunci keupayaan yang sukar dicapai dengan ejen monolitik tunggal. Anda boleh melantik ejen "penyelidik" yang mengumpulkan dan menyemak maklumat, "penganalisis" yang mentafsir dapatan dan "penulis" yang mengubahnya menjadi laporan, setiap satunya berkomunikasi melalui mesej berstruktur dan berkongsi permukaan kerja (seperti dokumen kongsi atau stor pengetahuan). Corak ini meningkatkan pengkhususan dan menjadikan laluan keputusan boleh dikesan apabila anda kemudian perlu menyemak atau mengaudit hasil.

Daripada Kernel Semantik dan AutoGen kepada Rangka Kerja Ejen Microsoft

Microsoft telah menggabungkan perkakasan ejennya untuk .NET, menyatukan idea daripada Semantic Kernel dan projek AutoGen ke dalam Rangka Kerja Ejen Microsoft (MAF) yang baharu dan bersatu. Rangka kerja ini bertujuan untuk memberi anda kestabilan dan ciri gred perusahaan sambil memudahkan cara anda membina ejen berbilang pusingan dan aliran kerja berasaskan graf.

MAF kini dalam pratonton awam dan tersedia untuk .NET dan Python di bawah lesen MIT. Walaupun sesetengah API masih berkembang antara calon keluaran, hala tuju keseluruhannya adalah jelas: AIAgents untuk tingkah laku pintar, AgentSessions untuk pengurusan keadaan dan sistem aliran kerja berdasarkan graf dan pelaksana untuk saluran paip yang lebih deterministik.

Pada terasnya, rangka kerja ini membezakan antara ejen dan aliran kerja, setiap satunya bertujuan untuk bentuk masalah yang berbeza. Ejen ialah sistem dinamik yang menggunakan LLM untuk mentafsir input, memutuskan alatan yang hendak dipanggil dan menjana respons. Ejen menyerlah dalam domain yang tidak dapat diramalkan seperti perbualan sokongan teknikal di mana pengguna mungkin bertanya apa sahaja. Sebaliknya, aliran kerja ialah urutan langkah eksplisit yang dirangka sebagai graf dan digunakan apabila anda mahukan pemprosesan yang deterministik dan jelas seperti saluran data atau rantaian kelulusan.

Panduan rasmi boleh diringkaskan sebagai "jika anda boleh melaksanakan tugas sebagai fungsi standard, anda mungkin tidak memerlukan ejen untuknya." Dalam erti kata lain, ejen simpanan untuk domain di mana anda benar-benar tidak boleh mentakrifkan semua langkah terlebih dahulu dan bergantung pada aliran kerja atau kod klasik untuk aliran deterministik yang boleh diulang. Menggabungkan kedua-duanya di tempat yang betul adalah kunci untuk membina sistem yang boleh diselenggara.

Untuk menjadikannya konkrit, bayangkan chatbot sokongan yang dibina sebagai API ASP.NET Core 10 menggunakan Microsoft Agent Framework. Ejen tersebut menggunakan klien sembang (disokong oleh Azure OpenAI atau OpenAI) sebagai enjin penaakulannya dan tujuan utamanya adalah untuk menjawab soalan tentang dokumentasi dalaman yang disimpan dalam fail Markdown sambil mengekalkan konteks merentasi berbilang mesej daripada pengguna yang sama.

Menariknya, contohnya boleh sengaja melangkau RAG dengan penyematan dan masih kekal realistik dengan menggunakan carian kata kunci melalui fail rata sebagai titik permulaan. Itu mengekalkan fokus pada bagaimana MAF menstrukturkan ejen, alatan dan sesi dan bukannya tersesat dalam konfigurasi pangkalan data vektor, sambil masih menyokong interaksi sokongan yang sangat munasabah.

Lima konsep utama dalam Rangka Kerja Ejen Microsoft

Tutorial rasmi untuk MAF menyusun pembelajaran kepada lima idea progresif yang sepadan dengan cara pembangun C# sudah berfikir tentang perkhidmatan dan keadaan. Menguasai konsep-konsep ini memberi anda asas yang kukuh untuk mana-mana ejen yang akan anda bina berdasarkan .NET.

Pertama sekali, ejen awal anda: seorang AIAgent dibina daripada klien sembang, arahan dan nama. Anda menghalakan ejen ke model sembang yang disediakan oleh AzureOpenAIClient atau OpenAI, memberikan panduan peringkat sistem (“anda ialah pembantu sokongan yang membantu”) dan kemudian menghubungi RunAsync dengan input pengguna. Perincian penting ialah tika ejen tidak berstatus dan boleh melayan berbilang perbualan bebas sekaligus.

Kedua ialah alat, yang merupakan kaedah C# yang dihiasi dengan atribut dan ditukar menjadi fungsi yang boleh dipanggil melalui AIFunctionFactory.Create(). Apabila ejen berjalan, LLM menerima skema yang diperoleh daripada atribut tersebut dan boleh memutuskan secara autonomi bila dan bagaimana untuk memanggil setiap alat, termasuk argumen. Di sinilah logik perniagaan anda sendiri dan integrasi luaran menjadi sebahagian daripada ruang tindakan ejen.

Ketiga ialah sokongan perbualan berbilang pusingan, yang dikendalikan oleh MAF AgentSession objek. Kerana AIAgent itu sendiri tidak mengingati apa-apa, setiap perbualan yang sedang berjalan berada di dalam sesi yang dicipta dengan CreateSessionAsync()Anda menghantar kembali sesi itu pada panggilan berikutnya, membolehkan ejen menjejaki mesej terdahulu, pilihan pengguna dan isu yang belum diselesaikan.

Keempat ialah ingatan dan kegigihan, didayakan oleh fakta bahawa sesi boleh disusun bersiri menjadi JsonElement. Itu menjadikannya mudah untuk menyimpannya dalam memori, Redis, jadual SQL atau mana-mana stor lain yang anda suka, dan kemudian membinanya semula dengan DeserializeSessionAsync()Untuk senario sokongan, ini bermakna pengguna boleh menutup pelayar mereka dan kemudian menyambung semula perbualan yang sama atau contoh perkhidmatan yang berbeza boleh mengambil alih dengan lancar selepas dimulakan semula.

Kelima ialah aliran kerja, dibina dengan WorkflowBuilder apabila anda perlu mengatur secara eksplisit berbilang ejen atau langkah pemprosesan berjujukan. Anda mentakrifkan pelaksana sebagai unit pemprosesan, menghubungkannya melalui tepi dan membiarkan enjin aliran kerja mengendalikan penghalaan dan peralihan. Dalam banyak kes perbualan, anda tidak memerlukan aliran kerja sama sekali, tetapi ia menjadi sangat membantu apabila anda mahukan penghalaan berstruktur, pengelasan atau langkah manusia dalam gelung di sekitar ejen anda.

Melaksanakan bot sokongan sebenar dengan MAF, alatan dan sesi

Contoh konkrit yang menggambarkan konsep di atas ialah API SupportBot yang disokong oleh projek ASP.NET Core 10. Perkhidmatan ini mendedahkan titik akhir HTTP yang menerima mesej pengguna dan pengecam sesi, mewakilkan penaakulan kepada AIAgent dan mengekalkan sesi supaya konteks dipelihara merentasi permintaan.

Alat utama dalam senario ini ialah DocumentationTool yang tahu cara mencari fail Markdown dalaman. Tanggungjawabnya adalah untuk mencari panduan, Soalan Lazim atau manual modul yang berkaitan dan mengembalikan segmen teks yang membantu ejen mencipta jawapan. Atribut yang digunakan pada kaedahnya bukanlah hiasan; MAF menggunakannya untuk membina skema fungsi yang dibaca oleh LLM, dan kejelasan penerangan tersebut sangat mempengaruhi keberkesanan model memilih dan memanggil alat tersebut.

Pilihan reka bentuk pragmatik dalam alat ini adalah untuk kembali memulangkan semua dokumen jika tiada dokumen yang sepadan dengan topik yang diminta. Daripada meninggalkan ejen tanpa sebarang bahan langsung, anda lebih suka memberikan terlalu banyak konteks dan membiarkan model memilih bahagian terbaik daripada membiarkannya berhalusinasi dalam vakum. Corak "fail sandaran selamat" ini kerap muncul dalam pelaksanaan ejen yang mantap.

Kilang AgentSupport kemudian menghubungkan semuanya dengan mengambil AzureOpenAIClient, mengekstrak klien sembang melalui GetChatClient(), menyesuaikannya dengan AsIChatClient() dan kemudian mengubahnya menjadi AIAgent bersama AsAIAgent(). Semasa langkah terakhir ini, alat dan arahan berdaftar menjadi sebahagian daripada konfigurasi ejen yang digunakan untuk setiap perbualan. Anda biasanya mendaftarkan ejen terbina ini sebagai singleton dalam bekas DI supaya ia boleh menyampaikan banyak sesi secara serentak.

Pengurusan sesi diabstrakkan di sebalik InMemorySessionStore semasa pembangunan, yang mengadakan sesi sebagai JsonElement nilai-nilai. Selamat untuk thread ConcurrentDictionary sudah cukup di sini untuk mengelakkan penguncian manual. Dalam penggunaan sebenar, anda akan menukar pelaksanaan ini kepada stor yang disokong Redis atau pangkalan data, memastikan antara muka utuh tetapi memperoleh storan yang tahan lama dan kebolehskalaan mendatar.

Permukaan API dalam Program.cs sengaja dibuat ringkas: satu POST /chat titik akhir yang menerima ID sesi dan mesej pengguna. Pengendali permintaan memuatkan atau mencipta sesi, melaksanakan ejen, menyiratkan sesi yang dikemas kini secara tak segerak (perhatikan bahawa SerializeSessionAsync adalah asinkron dalam RC1, walaupun dokumen awal mencadangkan sebaliknya), mengekalkannya dan mengembalikan balasan pembantu kepada klien. Dari sudut pandangan bahagian hadapan, "kekal dalam perbualan yang sama" bermaksud menghantar ID sesi yang sama pada setiap panggilan.

Apabila anda menjalankan API dan bersembang dengannya, anda boleh melihat ejen membawa konteks antara giliran seperti wakil sokongan manusia. Mesej pertama mungkin menerangkan isu log masuk; soalan kedua, yang dihantar dengan ID sesi yang sama, boleh merujuk kepada "ralat itu sekali lagi" tanpa menyatakan semula butiran penuh dan ejen masih menjawab secara koheren kerana keadaan terikat dengan stor sesi.

Aliran kerja hanya akan mula berfungsi jika anda menambah ciri seperti pengelasan niat automatik, penghalaan kepada ejen khusus (pengebilan, akses, pelaporan) atau peningkatan kepada kakitangan manusia. Anda kemudian boleh memperkenalkan pelaksana pengelasan di bahagian hadapan graf aliran kerja dan menghubungkannya dengan ejen khusus topik atau menambah nod manusia dalam gelung yang menghentikan automasi dan menyerahkan konteks kepada seseorang apabila keyakinan rendah.

Aliran kerja, mod orkestrasi dan kerjasama berbilang ejen

Walaupun di luar MAF, adalah membantu untuk memikirkan bagaimana aliran kerja yang mengandungi ejen diatur, kerana strukturnya mempengaruhi kependaman, kos dan kebolehkesanan. Terdapat beberapa corak umum yang muncul merentasi projek dan rangka kerja.

Orkestrasi berjujukan bermaksud ejen mengendalikan tugas satu demi satu, menyampaikan output ke hadapan. Contohnya, ejen pencarian semula mengumpul dokumentasi yang berkaitan terlebih dahulu, kemudian menyerahkannya kepada ejen analisis, yang seterusnya menyerahkan penemuannya kepada ejen pelapor. Ini mudah untuk dipertimbangkan dan didebug, dengan kos latensi hujung ke hujung yang lebih tinggi.

Orkestrasi serentak menjalankan berbilang ejen secara selari, setiap satunya memberi tumpuan kepada aspek masalah yang berbeza. Seorang ejen mungkin mengira metrik, seorang lagi mungkin mencari insiden baru-baru ini, dan seorang lagi mungkin menilai impak pematuhan, semuanya pada masa yang sama. Sebaik sahaja mereka selesai, penyelaras mengagregatkan keputusan mereka ke dalam satu jawapan. Corak ini mengurangkan latensi tetapi memerlukan kawalan sumber yang teliti dan penyelesaian konflik.

Aliran serah terima secara eksplisit mengubah pemilikan tugas daripada satu ejen kepada ejen yang lain berdasarkan keadaan atau hasil pertengahan. Jika ejen sokongan mengesan bahawa soalan sebenarnya berkaitan dengan jualan, ia boleh menyerahkan perbualan tersebut kepada ejen jualan khusus, dan secara pilihannya mengekalkan sejarah sembang dan metadata. Ini amat membantu dalam perjalanan pelanggan yang kompleks di mana tanggungjawab secara sah berpindah antara pasukan.

Persediaan gaya sembang kumpulan membolehkan beberapa ejen bekerjasama dalam saluran perbualan kongsi, bertukar mesej dalam masa nyata. Setiap ejen membawa perspektif atau set alatnya sendiri, dan seorang orkestrator pusat atau moderator LLM boleh menguruskan perbualan supaya ia menumpu dan bukannya berulang selama-lamanya. Corak ini berkuasa tetapi memerlukan penghadang yang kukuh untuk mengelakkan bunyi bising dan kos yang tidak perlu.

Akhirnya, orkestrasi magnetik meletakkan seorang "pemimpin" atau ejen konduktor yang bertanggungjawab mengarah orang lain. Ejen utama menguraikan tugasan, menghantar subtugasan kepada pakar yang betul dan kemudian mensintesis outputnya. Ini menyerupai pengurus kejuruteraan yang menyelaras pasukan pembangun dan boleh menghasilkan aliran yang jelas dan boleh diaudit dalam domain yang kompleks.

Pengujian, kebolehcerapan, kawalan kos dan keselamatan

Menghantar ejen AI ke dalam pengeluaran tanpa pelan untuk pengujian, pemantauan, kos dan keselamatan adalah resipi untuk kejutan yang buruk. Ketelitian yang sama yang anda gunakan untuk sebarang perkhidmatan .NET kritikal mesti dilanjutkan ke lapisan ejen anda, hanya disesuaikan dengan sifat kebarangkalian LLM.

Mulakan dengan menguji alatan dan laluan orkestrasi dengan ujian unit dan integrasi klasik sebelum bimbang tentang tingkah laku model. Setiap fungsi C# yang boleh dipanggil oleh ejen haruslah boleh diuji secara bebas, dengan input dan output deterministik. Kemudian, reka bentuk skrip perbualan terkawal yang menjalankan laluan interaksi penuh, mengesahkan bukan sahaja jawapan akhir tetapi juga alat yang dipanggil dan bagaimana keadaan berkembang.

Kebolehcerapan harus menjejaki kependaman, penggunaan token dan kadar kejayaan merentasi laluan pelaksanaan yang berbeza. Amat berguna untuk mengukur kedua-dua token gesaan dan penyiapan setiap interaksi, dipecahkan mengikut aliran kerja, alat atau jenis pengguna, supaya anda dapat melihat regresi dan lonjakan kos. Perbualan yang lebih panjang amat mahal, jadi laburkan dalam ringkasan automatik dan strategi pemotongan pintar untuk memastikan konteks sentiasa padat.

Keselamatan tidak boleh dirundingkan sebaik sahaja ejen anda menyentuh data sensitif atau pelanggan. Anda harus menguatkuasakan kawalan akses yang ketat ke atas alatan dan set data yang boleh dilihat oleh ejen, merekodkan setiap pemanggilan alatan untuk tujuan audit dan menjalankan semua panggilan luaran melalui lapisan sanitasi. Bukti kelayakan tidak boleh dibenamkan dalam kod; bergantung pada identiti terurus, stor rahsia dan amalan keselamatan awan biasa yang telah anda gunakan pada mikroservis bukan AI.

Keperluan pematuhan juga mempengaruhi cara anda menyimpan dan memproses sejarah perbualan. Oleh kerana sesi dan thread mungkin mengandungi maklumat peribadi atau kandungan sulit, tentukan dasar pengekalan, strategi anonimisasi dan peraturan pengurangan data lebih awal. Keupayaan untuk menyirsikan dan menyahsirikan sesi ejen adalah berkuasa, tetapi ia mesti diseimbangkan dengan kewajipan undang-undang dan kawal selia.

Dari segi kos, jangan memandang rendah impak ketidakcekapan walaupun kecil pada skala besar. Perubahan kecil dalam saiz gesaan, kekerapan panggilan alat atau bilangan ejen serentak boleh diterjemahkan kepada bil bulanan yang besar. Mengendalikan sistem, menyemak gesaan telemetri dan penalaan secara berkala, dasar memori dan pilihan model adalah penting untuk memastikan kos mampan dari semasa ke semasa.

Pelaksanaan dan penskalaan adalah lebih mudah apabila anda memisahkan satah kawalan (tempat anda mengkonfigurasi ejen dan aliran kerja) daripada satah inferens (tempat panggilan model sebenar dijalankan). Orkestrasi berasaskan kontena, barisan mesej untuk operasi jangka panjang dan perkhidmatan awan terurus untuk pengehosan LLM semuanya menyumbang kepada daya tahan. Keputusan kemudiannya boleh mengalir ke papan pemuka atau alatan BI seperti Power BI untuk menutup gelung maklum balas analitik dan menunjukkan nilai perniagaan.

Perkakas bersepadu seperti sambungan AI Toolkit dan Azure AI Foundry untuk Visual Studio Code dapat memperkemas sebahagian besar kitaran hayat ini. Dari dalam editor, anda boleh meneroka katalog model, menggunakan model yang dihoskan oleh GitHub atau model setempat melalui Ollama, membandingkan output secara bersebelahan, membina dan menjalankan penilai, menggambarkan hasil dalam Data Wrangler, mereka bentuk ejen dengan gesaan sistem, melampirkan pelayan MCP untuk penyepaduan alat dan interaksi ejen penyahpepijat. Azure AI Foundry menambah pereka visual, penyegerakan YAML, penjanaan kod untuk akses model Azure dan penyepaduan alat kelas pertama seperti Bing Search dan penterjemah kod.

Apabila anda menggabungkan bahan-bahan ini—seni bina ejen yang kukuh, pengurusan keadaan yang teliti, alatan yang mantap, aliran kerja berasaskan graf di mana diperlukan, kebolehcerapan yang mendalam dan penggunaan awan asli—anda akan mendapat ejen C# AI yang bukan sekadar demo pintar tetapi juga bahagian yang boleh dipercayai bagi sistem perusahaan yang lebih besar. Dengan reka bentuk yang teliti dan penggunaan Azure OpenAI Assistants dan Microsoft Ejen Framework yang betul, ejen-ejen tersebut boleh meningkatkan kecekapan, kualiti maklumat dan automasi secara terukur di seluruh organisasi anda sambil kekal boleh diselenggara dan selamat.

API
Artikel berkaitan:
Evolusi API: Sempadan Baharu dalam Integrasi, Keselamatan dan AI Agentik
Related posts: