Com crear agents d'IA amb eines a Csharp

Darrera actualització: 05/21/2026
  • Els agents d'IA en C# combinen el raonament LLM amb eines, context i memòria per assolir objectius en lloc de simplement respondre a indicacions.
  • Les API d'OpenAI i Azure OpenAI Assistants proporcionen assistents, fils d'execució, execucions, eines i cerca de fitxers com a primitives bàsiques per als agents .NET.
  • Els agents preparats per a l'empresa requereixen una gestió d'estat sòlida, eines com a funcions C#, observabilitat, controls de seguretat i disseny conscient dels costos.
  • Les eines Microsoft.Extensions.AI, VectorData, Azure AI Foundry i VS Code simplifiquen el desenvolupament, la implementació i l'escalat dels agents d'IA de C#.

Agents d'IA amb eines en C#

Crear agents d'IA amb eines en C# ja no és un somni futurista; és una manera molt pràctica d'automatitzar fluxos de treball, analitzar dades i connectar les vostres aplicacions .NET amb models de llenguatge grans (LLM) . Amb l'arquitectura adequada, podeu passar d'un simple client de xat a agents de nivell de producció que raonen, criden API, orquestren fluxos de treball i respecten les restriccions empresarials com la seguretat, l'observabilitat i el control de costos.

Aquesta guia us explica com els conceptes moderns d'agents d'IA s'assignen a una pila C#, com encaixen l'Azure OpenAI i l'API d'OpenAI Assistants i com integrar-ho tot en pràctiques robustes d'enginyeria de programari .NET . També connectarem aquestes idees amb els marcs d'agents emergents i les eines d'IA de Microsoft a Visual Studio Code, de manera que obtingueu una visió completa des del prototip local fins a la implementació escalable al núvol.

De chatbots a agents d'IA complets en C#

A un nivell general, un agent d'IA és un sistema que persegueix objectius en lloc de simplement respondre a indicacions individuals . Això significa que l'agent necessita una combinació de raonament, eines, consciència del context i memòria per poder decidir què fer a continuació, no només què respondre en el torn actual.

En termes pràctics de C#, podeu pensar en un agent com una capa de coordinació sobre un client LLM més un conjunt d'eines exposades com a mètodes .NET, API o serveis externs . El model contribueix al raonament i a la comprensió del llenguatge, mentre que el vostre codi C# contribueix a la lògica empresarial, l'accés a les dades, la seguretat i les integracions amb els vostres sistemes existents.

Els agents moderns sovint es basen en models de llenguatge grans per a la presa de decisions, els algoritmes de cerca o la lògica de planificació, però només es tornen realment útils quan estan connectats a eines . Les eines poden incloure consultes de bases de dades, API HTTP, microserveis interns, cerca de fitxers o un intèrpret de codi en espai de proves on l'agent pot executar codi d'anàlisi de dades de manera segura.

El coneixement del context és l'última peça crítica, que permet a l'agent utilitzar l'historial de xats, els magatzems vectorials, les dades empresarials o els gràfics de coneixement com a part del seu raonament . Aquest context pot ser tan simple com un breu registre de conversa emmagatzemat a la memòria o tan complex com un estat de flux de treball distribuït que abasta diversos agents i magatzems de dades.

Blocs bàsics dels assistents i agents d'IA

Les API d'OpenAI i Azure OpenAI Assistants us proporcionen un conjunt molt concret de primitives per crear agents en C# . En lloc de crear màquines d'estat manualment, treballeu amb entitats ben definides que coincideixen amb la manera com pensen i operen els agents basats en LLM.

Un assistent representa la persona d'IA configurada: quin model utilitza, quines instruccions segueix i quines eines pot cridar . En C#, això es correspon amb un objecte que creeu amb opcions com ara el nom, les instruccions del sistema i una llista de definicions d'eines que descriuen què pot invocar el model.

Un fil és la sessió de conversa que vincula un usuari amb un assistent al llarg del temps . El fil emmagatzema la llista ordenada de missatges, gestiona automàticament el truncament de context per mantenir-se dins dels límits de les fitxes i actua com a columna vertebral de la memòria de l'agent per a aquesta interacció.

Els missatges són els elements concrets de contingut que flueixen entre l'usuari i l'assistent . A l'API d'Assistents, un missatge pot contenir text sense format, imatges o altres fitxers. A C#, es consumeixen com a objectes d'una col·lecció, inspeccionant text, anotacions o identificadors de fitxers associats segons el contingut.

Una execució és l'operació que inicia el raonament de l'assistent sobre el contingut d'un fil . Un cop s'inicia una execució, l'assistent aplica la seva configuració, llegeix els missatges, crida les eines segons calgui i després afegeix nous missatges amb els seus resultats al mateix fil.

Els passos d'execució capturen la seqüència detallada d'accions que l'assistent realitza durant una execució . En inspeccionar-los, podeu veure quines eines s'han cridat, quins arguments s'han passat, quins missatges s'han generat i com l'agent ha arribat a la seva resposta final. Això és extremadament valuós per a la depuració, l'observabilitat i l'auditoria en entorns empresarials.

A més d'aquestes primitives, els assistents poden utilitzar diverses eines en paral·lel per completar tasques . Els tipus d'eines integrades típiques inclouen un intèrpret de codi que pot executar fragments en un temps d'execució en espai de proves, crides de funcions personalitzades (les vostres pròpies funcions .NET exposades com a eines) i funcions de cerca de fitxers que amplien el model amb coneixement extern.

Ús d'eines: execució de codi, crides de funcions i cerca de fitxers

Les eines són el que transforma un model de llenguatge passiu en un agent capaç que realment pot fer coses dins de la vostra aplicació .NET . En lloc de retornar només text, el model pot decidir cridar una funció, executar codi o cercar en un magatzem de fitxers quan aquesta és la millor manera de respondre a la sol·licitud de l'usuari.

L'eina d'intèrpret de codi permet a l'agent escriure i executar codi en un entorn aïllat per a tasques com ara l'anàlisi de dades, la visualització o les simulacions bàsiques . Des de C#, no s'executa aquest codi directament; es configura l'assistent amb la capacitat d'intèrpret de codi i després es llegeixen les sortides que produeix, com ara imatges generades o resultats estructurats.

La crida de funcions exposa la vostra pròpia lògica de domini com a eines que el model pot seleccionar i invocar . Descriviu cada funció amb metadades: nom, propòsit i esquema de paràmetres. L'assistent tria quan activar aquestes funcions en funció de l'entrada de l'usuari i el raonament intermedi, mentre que la implementació de C# gestiona la validació, els errors i els temps d'espera.

Les eines de cerca de fitxers permeten a l'agent basar les seves respostes en dades externes, com ara documentació, informes o bases de coneixement . Podeu pujar fitxers, crear magatzems vectorials o índexs i concedir-hi accés a l'assistent. A partir d'aquí, el model pot recuperar fragments de contingut rellevants i incorporar-los a les seves respostes, millorant la precisió factual i la traçabilitat.

Un principi clau del disseny és que les eines han de ser segures i resistents, amb una validació d'entrada sòlida, gestió d'errors i límits de recursos clars . Tot i que l'LLM tria quan cridar-les, el vostre codi C# continua sent totalment responsable d'aplicar les regles de negoci, els límits de velocitat i les polítiques d'accés a les dades.

Creació d'un agent d'aplicació de consola .NET mínim amb Azure OpenAI

Per fer que tot això sigui concret, podeu començar amb una aplicació de consola .NET senzilla que es comuniqui amb l'API d'OpenAI o Azure OpenAI Assistants . Aquest tipus de projecte minimalista és perfecte per a agents de prova de concepte que viuen completament en codi però que ja utilitzen eines, fitxers i fils de conversa.

El primer pas és crear el projecte de consola .NET i afegir els paquets SDK necessaris que us donen accés als clients OpenAI i Azure OpenAI . Amb aquests paquets configurats, podeu instanciar un client OpenAI genèric mitjançant la vostra clau d'API o un client específic d'Azure que apunti al vostre punt final d'Azure OpenAI i mitjançant una credencial com ara DefaultAzureCredential.

Del client general deriveu clients especialitzats: un client assistent per gestionar assistents, fils i execucions, i un client de fitxers per carregar i descarregar fitxers . Aquesta separació deixa clar quines operacions són sobre configuració i orquestració enfront de la gestió de fitxers en brut.

A continuació, podeu crear un flux de documents en memòria directament dins del vostre codi C# per simular dades empresarials reals . Per exemple, podeu definir un petit document JSON que contingui mètriques de vendes mensuals per a diferents ID de producte i convertir-lo en un flux que el client de fitxers pugui carregar.

Un cop s'ha carregat el fitxer per a l'ús de l'assistent, la plataforma retorna un identificador de fitxer que podeu enllaçar a un nou magatzem de vectors i adjuntar a l'assistent com a recurs de cerca de fitxers . A la mateixa configuració de l'assistent, també activeu l'intèrpret de codi perquè l'agent no només pugui cercar valors, sinó també generar gràfics o anàlisis més avançades.

Després de preparar les opcions de l'assistent amb un nom, instruccions i definicions d'eines, creeu l'assistent recolzat per un model com ara gpt-4o . També configureu un fil amb un missatge inicial de l'usuari, potser alguna cosa com ara preguntar pel rendiment d'un producte específic al llarg del temps i sol·licitar una visualització.

El client assistent us permet crear el fil i iniciar immediatament una execució en una sola crida, i després sondejar l'estat de l'execució fins que arribi a un estat terminal . Aquest bucle de sondeig és senzill però eficaç per a les eines de línia d'ordres; en un entorn web o de servei en segon pla, podeu canviar a patrons basats en esdeveniments o asíncrons.

Un cop finalitzada l'execució, transmeteu els missatges del fil en ordre ascendent i imprimiu les respostes de l'assistent a la consola . Per a cada contingut, podeu inspeccionar el text, les anotacions que fan referència a fitxers d'entrada o sortida i qualsevol imatge generada per l'intèrpret de codi que després deseu al disc i registreu amb una simple etiqueta de marcador de posició a la sortida de la consola.

Gestió d'estats, memòria i disseny de converses

Tan bon punt es va més enllà dels exemples de joguina, l'estat i la memòria esdevenen preocupacions centrals en el disseny de l'agent C# . El repte és que l'historial de conversacions creix sense límits, mentre que els models tenen límits estrictes de tokens i també cal conservar dades per al compliment normatiu, l'anàlisi o la depuració.

Una estratègia habitual és mantenir fils o sessions separats per usuari o cas d'ús, i resumir periòdicament la conversa per mantenir només el context més rellevant . Els resums poden ser generats pel mateix model i després emmagatzemats juntament amb metadades estructurades en una base de dades o un magatzem vectorial.

Un enfocament més avançat utilitza la importància semàntica a l'hora de decidir què conservar, comprimir o descartar . En comptes de simplement retallar els missatges més antics, etiqueteu o indexeu el contingut per temes, entitats o processos de negoci, i executeu consultes dirigides per reconstruir només el context necessari per a una nova execució.

En C#, normalment s'implementa la memòria com una combinació de memòries cau en procés per a un accés ràpid i emmagatzematges persistents per a la durabilitat i l'auditabilitat . Això podria significar emparellar una base de dades relacional per a metadades estructurades amb una base de dades vectorial per a la cerca semàntica en contingut no estructurat, tot amagat darrere d'interfícies de repositori que els agents poden cridar sense preocupar-se per la tecnologia subjacent.

Un disseny de conversa ben pensat també és important: heu de crear instruccions del sistema, descripcions d'eines i indicacions per a l'usuari perquè l'LLM pugui raonar de manera eficaç mentre es manté dins dels límits del vostre domini . Això inclou aclarir quan l'agent ha de fer preguntes aclaridores, quan ha de cridar una eina i quan ha de rebutjar una sol·licitud que queda fora del seu abast permès.

Eines com a funcions C#, API i serveis externs

En aplicacions reals, les eines més potents són les funcions del vostre propi domini, exposades perquè l'agent pugui orquestrar el treball a través dels vostres sistemes interns . Aquestes poden incloure operacions com ara la creació de tiquets, la consulta de registres de clients, l'execució de càlculs financers o l'activació de fluxos de treball als vostres microserveis existents.

Per a cada eina, voleu proporcionar metadades riques que descriguin què fa, quines entrades espera i què retorna, idealment en un esquema llegible per màquina . Això ajuda l'LLM a triar l'eina adequada, construir arguments vàlids i interpretar els resultats correctament, reduint les al·lucinacions i els errors d'encesa.

Pel que fa a la implementació, cada gestor d'eines en C# necessita una programació defensiva: validació estricta d'entrada, gestió robusta d'excepcions i temps d'espera raonables . L'agent pot intentar coses que no tenen sentit comercial; el vostre codi ha d'aplicar polítiques en lloc d'assumir que el model sempre es comporta de manera predictible.

També és aconsellable registrar cada invocació d'eina juntament amb l'usuari que la fa, el segment de la sol·licitud que la desencadena i el resultat . Això us proporciona un registre d'auditoria clar, admet les revisions de seguretat i us permet ajustar quines eines són més efectives o necessiten barreres de seguretat addicionals.

Orquestració multiagent i fluxos de treball a .NET

A mesura que els vostres escenaris es tornen més complexos, és possible que us adoneu que un sol agent no és suficient i que necessiteu diversos agents especialitzats treballant junts . Per exemple, un agent es pot centrar en la recerca i la recopilació de dades, un altre en l'anàlisi i un tercer en la redacció de resultats fàcils d'utilitzar.

Conceptualment, això s'adapta bé als patrons de flux de treball que els desenvolupadors de .NET ja coneixen: passos seqüencials, branques paral·leles, traspassos i rols de supervisor . En lloc d'una lògica codificada, els agents es coordinen mitjançant missatges estructurats i un espai de treball compartit, però els patrons d'orquestració resulten familiars.

Els fluxos de treball seqüencials passen la sortida d'un agent directament al següent, ideals per a tasques lineals com la recopilació de requisits, el disseny, la implementació i la revisió . Els fluxos de treball paral·lels permeten que diversos agents processin diferents aspectes d'un problema alhora i després fusionin els seus resultats en un pas posterior.

Els patrons de traspàs permeten que la responsabilitat es traslladi d'un agent a un altre en funció de condicions, com ara llindars de confiança, categories de contingut o accions de l'usuari . Les configuracions d'estil de xat en grup posen diversos agents en una conversa compartida on poden debatre opcions, intercanviar informació i convergir en una solució en temps real.

Les configuracions supervisades o jeràrquiques introdueixen un agent gestor que revisa els resultats intermedis, assigna tasques i resol conflictes . A .NET, podeu representar aquesta orquestració mitjançant treballadors en segon pla, cues de missatges o motors de flux de treball, mentre que els propis agents es comuniquen a través de l'API d'Assistents o abstraccions relacionades.

Microsoft.Extensions.AI, VectorData i el marc de treball de l'agent

Per fer que la creació d'agents sigui més idiomàtica per als desenvolupadors de .NET, Microsoft està introduint biblioteques fonamentals com ara Microsoft.Extensions.AI i Microsoft.Extensions.VectorData . Aquestes biblioteques estan dissenyades per semblar-se a altres paquets de Microsoft.Extensions que ja feu servir per al registre, la configuració i la injecció de dependències.

Les extensions d'IA proporcionen components modulars per treballar amb models, eines i indicacions de manera connectable . En lloc de codificar un proveïdor LLM específic, podeu registrar proveïdors de models i canviar-los mitjançant la configuració, cosa que és extremadament útil quan necessiteu equilibrar el cost, la latència i la capacitat entre entorns.

Les extensions de dades vectorials se centren en la integració de la cerca semàntica i la generació augmentada per recuperació a les vostres aplicacions . Abstrauen implementacions específiques de bases de dades vectorials i us proporcionen interfícies comunes per emmagatzemar, cercar i gestionar incrustacions que alimenten la memòria a llarg termini del vostre agent.

A més d'aquests components bàsics, Microsoft Agent Framework pretén oferir una abstracció de nivell superior específicament adaptada a escenaris d'agents i fluxos de treball . Tot i que els detalls continuen evolucionant, la intenció és proporcionar una manera coherent de definir agents, eines, fluxos de treball i context, amb una forta integració en l'ecosistema més ampli de .NET i Azure.

Kit d'eines d'IA, Azure AI Foundry i agents de Visual Studio Code

Molts desenvolupadors prefereixen explorar i crear prototips d'agents directament des del seu editor, i aquí és exactament on entren en joc les extensions AI Toolkit i Azure AI Foundry per a Visual Studio Code . Juntes, permeten navegar per models, implementar-los, avaluar la qualitat i connectar-los a agents sense sortir del vostre entorn de codificació.

L'extensió AI Toolkit mostra un catàleg de models on podeu inspeccionar models allotjats al núvol i locals, inclosos els que es serveixen mitjançant eines com Ollama . Podeu iniciar models allotjats a GitHub, comparar els resultats de diferents models i veure ràpidament quin s'adapta al vostre cas d'ús.

La integració amb Azure AI Foundry afegeix una altra capa: podeu implementar models directament a Azure, generar codi de client C# d'exemple per cridar-los i modificar la configuració i les metadades des de VS Code . Això simplifica el camí des de l'experiment fins a la producció, sobretot quan el vostre equip ja viu a l'ecosistema d'Azure.

Aquestes extensions també ajuden amb l'avaluació permetent-vos configurar conjunts de dades de prova, executar avaluacions i inspeccionar els resultats en eines com Data Wrangler . Podeu definir avaluadors personalitzats adaptats al vostre domini, executar-los en lots de resultats de models i visualitzar on els vostres agents tenen un bon rendiment o on tenen dificultats.

Per a la construcció d'agents, les eines permeten crear agents amb indicacions del sistema, generar automàticament missatges del sistema i connectar-se a servidors del Protocol de Context de Model (MCP) que exposen eines externes . Fins i tot podeu crear agents d'estil escape room o específics del domini que cridin servidors MCP a mida que representin els vostres propis serveis.

Dins del mateix Azure AI Foundry, obteniu un dissenyador d'agents visuals a més de sincronització YAML . Això vol dir que podeu configurar agents, adjuntar eines com la cerca del Bing o un intèrpret de codi, provar interaccions en un parc de jocs i, a continuació, exportar o sincronitzar la configuració al control de codi font, mantenint el codi C# i les definicions dels agents alineats.

Proves, observabilitat i control de costos per a agents d'IA C#

Els agents preparats per a la producció exigeixen el mateix rigor que qualsevol altre servei de missió crítica: proves exhaustives, bona telemetria i gestió contínua de costos . La diferència és que els LLM aporten noves variables com ara sortides estocàstiques i ús de tokens que també cal tenir en compte.

Pel que fa a les proves, voleu una barreja de proves unitàries clàssiques per a les vostres eines i converses d'estil d'integració que simulin fluxos d'usuari realistes . Les proves unitàries verifiquen que cada eina es comporta correctament donades determinades entrades, mentre que les proves de conversa comproven que l'agent tria eines sensates, produeix arguments vàlids i es manté dins dels límits de les polítiques.

L'observabilitat hauria de capturar més que només l'èxit o el fracàs; voleu distribucions de latència, consum de tokens, traces de passos d'execució i estadístiques de crides d'eines . Aquestes mètriques faciliten la detecció de regressions quan canvieu models, indicacions o implementacions d'eines, i us ajuden a ajustar el vostre sistema pel rendiment i el cost.

El control de costos està estretament vinculat a la manera com es gestiona la durada de les converses i la freqüència de les crides a les eines . Les converses llargues i sense límits poden fer explotar l'ús de testimonis i alentir les respostes, per la qual cosa estratègies com el resum, les finestres de context i el truncament intel·ligent són essencials en qualsevol implementació seriosa de C#.

També és una bona idea fer un seguiment de les taxes d'èxit a nivell de rutes d'execució o fluxos de treball específics, no només a nivell general de l'agent . D'aquesta manera, podeu veure quines rutes a través del vostre sistema multiagent són fiables i quines necessiten millors indicacions, noves eines o barreres de seguretat addicionals.

Seguretat, compliment i integració empresarial

Quan els vostres agents comencen a tocar dades sensibles o a automatitzar operacions crítiques per al negoci, la seguretat i el compliment normatiu no poden ser una idea de segon pla . La combinació de la flexibilitat de l'LLM i les restriccions empresarials requereix una postura de seguretat molt deliberada.

En primer lloc, no codificar mai credencials ni secrets al codi C# . Utilitzar mecanismes estàndard de gestió de secrets a la plataforma de núvol, variables d'entorn o identitats gestionades, i assegurar-se que el procés de l'agent només tingui els privilegis que realment necessita.

En segon lloc, totes les trucades externes realitzades en nom de l'agent han de passar per capes de sanejament i validació . Això inclou tant les entrades de l'usuari com els arguments generats pel model a les eines, ja que tots dos poden contenir contingut inesperat, mal format o maliciós.

En tercer lloc, heu de registrar i auditar cada invocació d'eina, incloent-hi el context clau com l'usuari, l'agent que fa la trucada, el sistema de destinació i el resultat . En indústries regulades, aquesta pista d'auditoria pot ser obligatòria; fins i tot fora d'aquests entorns, és inestimable per a la resposta a incidents i la governança.

Finalment, alineeu l'arquitectura de desplegament amb patrons empresarials com ara separar els plans de control i d'inferència . Això significa aïllar l'orquestració, la configuració i la supervisió dels processos d'inferència més complexos, cosa que millora l'escalabilitat, la seguretat i la resiliència operativa.

Implementació, escalabilitat i connexió a l'analítica

Un cop els vostres agents de C# es comportin bé a les proves, necessiteu una estratègia de desplegament que s'escali correctament i s'integri amb la resta de la vostra pila . Els contenidors, els orquestradors i els serveis d'IA gestionats són els vostres aliats aquí.

Un patró comú és empaquetar la capa d'orquestració d'agents en contenidors i executar-los sota Kubernetes o un altre orquestrador, alhora que delegueu la inferència LLM a serveis gestionats com l'Azure OpenAI . Això us permet escalar el pla de control i el pla d'inferència de manera independent a mesura que la demanda fluctua.

Les interaccions llargues o intenses amb agents sovint es beneficien del processament asíncron i les cues . En lloc de bloquejar les sol·licituds HTTP mentre es completa una execució complexa de diversos passos, poseu els elements de treball a la cua, deixeu que els treballadors en segon pla els gestionin i notifiqueu als clients quan els resultats estiguin a punt.

Des d'una perspectiva empresarial, el valor real sovint apareix quan s'introdueixen els resultats dels agents en eines d'anàlisi i intel·ligència empresarial . Això podria significar introduir resums estructurats, decisions o mètriques en magatzems de dades i exposar-los a través de quadres de comandament de Power BI o altres plataformes de BI.

Aquest bucle tancat (agents que generen informació o accions, anàlisis que mesuren l'impacte i equips que iterent sobre indicacions i eines) converteix la IA de ser una novetat en una capacitat operativa sostenible . Amb el temps, podeu refinar quins agents ofereixen el retorn de la inversió més alt, quins fluxos de treball s'han d'automatitzar encara més i on la supervisió humana ha de romandre al bucle.

En combinar totes aquestes peces, s'acaba amb un ecosistema centrat en C# on els assistents, les eines, els fluxos de treball i els serveis al núvol cooperen: l'API dels assistents proporciona raonament conversacional, el codi .NET proporciona eines i estats robustos, les biblioteques Microsoft.Extensions ofereixen abstraccions netes i l'Azure AI Foundry més l'AI Toolkit simplifiquen l'experimentació i la implementació . Amb una atenció acurada a la memòria, l'observabilitat, la seguretat i l'arquitectura, aquests agents poden oferir millores reals i mesurables en l'eficiència, la qualitat de les decisions i l'automatització a tota l'organització.

Articles Relacionats: