Code Velocity
Razvijalska orodja

Razvoj, voden z agenti: Pospeševanje aplikativne znanosti Copilot

·7 min branja·GitHub·Izvirni vir
Deli
Posnetek zaslona, ki prikazuje vmesnik GitHub Copilot za razvoj, voden z agenti, s predlogi kode in sodelovalnimi poteki dela pri kodiranju.

Avtomatizacija intelektualnega dela z AI agenti

V hitro spreminjajočem se svetu programskega inženirstva zasledovanje učinkovitosti pogosto vodi do prelomnih inovacij. Tyler McGoffin, raziskovalec umetne inteligence, je pred kratkim podrobno opisal potovanje, ki pooseblja ta duh: avtomatizacijo svojega intelektualnega dela z razvojem, vodenim z agenti, in GitHub Copilotom. Ne gre zgolj za hitrejše kodiranje; gre za temeljno spremembo vloge razvijalca od ponavljajoče se analize k ustvarjalnemu reševanju problemov in strateškemu nadzoru. McGoffinova izkušnja poudarja znan vzorec med inženirji – izdelovanje orodij za odpravo dolgočasnega dela – vendar jo dvigne na višjo raven z zaupanjem kompleksnih analitičnih nalog AI agentom, ki jih prej ni bilo mogoče ročno obdelati v takšnem obsegu.

McGoffinov navdih je izviral iz kritičnega, a preobremenjujočega aspekta njegovega dela: analiziranja uspešnosti kodirnih agentov glede na referenčne vrednosti, kot sta TerminalBench2 in SWEBench-Pro. To je vključevalo seciranje 'trajektorij' – podrobnih dnevnikov JSON miselnih procesov in dejanj agenta – ki so lahko obsegale stotisoče vrstic kode v številnih nalogah in referenčnih izvedbah. Medtem ko je GitHub Copilot že pomagal pri prepoznavanju vzorcev, je ponavljajoča se narava te analitične zanke klicala po popolni avtomatizaciji. To je privedlo do ustvarjanja 'eval-agents', sistema, zasnovanega za avtomatizacijo tega intelektualnega bremena, kar je njegovi ekipi v Copilot Applied Science omogočilo doseganje podobnih učinkovitosti.

Načrt za razvoj, voden z agenti

Nastanek 'eval-agents' je bil voden z jasnim naborom načel, osredotočenih na sodelovanje in skalabilnost. McGoffin si je prizadeval, da bi bili ti AI agenti enostavni za deljenje, preprosti za avtorstvo in glavno orodje za prispevke ekipe. Ti cilji odražajo temeljne vrednote GitHub, zlasti tiste, izbrušene med njegovo izkušnjo kot vzdrževalec odprtokodne programske opreme za GitHub CLI. Vendar pa je bil tretji cilj – postavitev kodirnih agentov kot primarnega prispevka – tisti, ki je resnično oblikoval smer projekta in odklenil nepričakovane koristi za prva dva.

Agentna nastavitev kodiranja je izkoriščala več zmogljivih orodij za poenostavitev razvojnega procesa:

  • Kodirni agent: Copilot CLI, ki omogoča neposredno interakcijo in nadzor.
  • Uporabljeni model: Claude Opus 4.6, ki ponuja napredne zmožnosti sklepanja in generiranja kode.
  • IDE: VSCode, ki služi kot centralni delovni prostor za razvoj.

Ključno je bil Copilot SDK, ki je omogočal dostop do obstoječih orodij, strežnikov MCP in mehanizmov za registracijo novih orodij in veščin. Ta osnova je odpravila potrebo po ponovnem izumljanju temeljnih agentnih funkcionalnosti, kar je ekipi omogočilo, da se osredotoči na aplikacijsko specifično logiko. To integrirano okolje je spodbudilo hiter razvojni cikel, kar dokazuje, da ob pravilni nastavitvi AI agenti niso mogli samo pomagati, ampak tudi poganjati pomemben del razvojnega dela.

Temeljna načela za učinkovito agentno kodiranje

Prehod na paradigmo, vodeno z agenti, zahteva več kot le orodja; zahteva premik v metodologiji. McGoffin je identificiral tri temeljna načela, ki so se izkazala za ključna pri pospeševanju razvoja in spodbujanju sodelovanja:

  1. Strategije pozivov: Učinkovito interakcija z agenti pomeni biti pogovoren, obširen in dajati prednost načrtovanju.
  2. Arhitekturne strategije: Čista, dobro dokumentirana in refaktorirana kodna baza je izjemno pomembna, da lahko agenti učinkovito krmarijo po njej in prispevajo k njej.
  3. Iteracijske strategije: Sprejemanje miselnosti 'krivi proces, ne agente', podobno kulturi brez krivde, omogoča hitro eksperimentiranje in učenje.

Te strategije so, dosledno uporabljene, privedle do osupljivih rezultatov. V dokaz te učinkovitosti je pet novih sodelavcev v samo treh dneh skupaj dodalo 11 novih agentov, štiri nove veščine in uvedlo koncept 'eval-agent workflows' v projekt. Ta sodelovalni sprint je povzročil izjemno spremembo +28.858/-2.884 vrstic kode v 345 datotekah, kar dokazuje globok vpliv potekov dela, vodenih z GitHub agenti v praksi.

Tukaj je povzetek temeljnih načel:

NačeloOpisKorist za razvoj, voden z agenti
PozivanjeObravnavajte agente kot izkušene inženirje: vodite njihovo razmišljanje, preveč razlagajte predpostavke, izkoriščajte načine načrtovanja (/plan) pred izvedbo. Bodite pogovorni in podrobni.Vodi do natančnejših in relevantnejših rezultatov, kar agentom pomaga učinkovito reševati kompleksne probleme.
ArhitekturnostDajte prednost refaktoriranju, celoviti dokumentaciji in robustnemu testiranju. Ohranite kodno bazo čisto, berljivo in dobro strukturirano. Aktivno odstranjujte mrtvo kodo.Agentom omogoča razumevanje kodne baze, vzorcev in obstoječe funkcionalnosti, kar olajšuje natančne prispevke.
IteracijaSprejmite miselnost 'krivi proces, ne agente'. Implementirajte varovala (strogo tipiziranje, linterji, obsežni testi) za preprečevanje napak. Učite se iz napak agentov z izboljšanjem procesov in varoval.Spodbuja hitro iteracijo, gradi zaupanje v prispevke agentov in nenehno izboljšuje razvojni cevovod.

Pospeševanje razvoja: Strategije v akciji

Uspeh tega pristopa, vodenega z agenti, temelji na praktični uporabi teh načel.

Strategije pozivov: Vodenje AI inženirja

AI kodirni agenti so, čeprav zmogljivi, odlični pri dobro definiranih problemih. Za kompleksnejše naloge potrebujejo vodenje, podobno kot mlajši inženirji. McGoffin je ugotovil, da so pogovorni slog, razlaganje predpostavk in izkoriščanje načinov načrtovanja veliko bolj učinkoviti kot kratki ukazi. Na primer, pri dodajanju robustnih regresijskih testov je poziv, kot je '/plan Pred kratkim sem opazil, da Copilot z veseljem posodablja teste, da se prilagodijo njegovim novim paradigmam, čeprav teh testov ne bi smeli posodabljati. Kako lahko ustvarim rezerviran testni prostor, ki se ga Copilot ne sme dotakniti ali ga mora rezervirati za zaščito pred regresijami?', sprožil produktiven dialog. To izmenjavanje, pogosto z zmogljivim modelom Claude Opus 4.6, je privedlo do sofisticiranih rešitev, kot so varovala za testiranje pogodb, ki so jih lahko posodabljali samo človeški inženirji, s čimer je bila zagotovljena zaščita kritične funkcionalnosti.

Arhitekturne strategije: Temelj kakovosti, podprte z umetno inteligenco

Za človeške inženirje so vzdrževanje čiste kodne baze, pisanje testov in dokumentiranje funkcij pogosto potisnjeni v ozadje zaradi pritiska na funkcije. Pri razvoju, vodenem z agenti, postanejo ti elementi izjemno pomembni. McGoffin je odkril, da je vložitev časa v refaktoriranje, dokumentiranje in dodajanje testnih primerov dramatično izboljšala sposobnost Copilota, da krmari po kodni bazi in prispeva k njej. Repozitorij, ki je najprej agentni, uspeva z jasnostjo. To omogoča razvijalcem, da celo postavijo Copilotu vprašanja, kot so 'Glede na to, kar vem sedaj, kako bi to zasnoval drugače?', s čimer se teoretično refaktoriranje spremeni v dosegljive projekte s pomočjo umetne inteligence. Ta nenehna osredotočenost na arhitekturno zdravje zagotavlja, da je nove funkcije mogoče dostaviti preprosto.

Strategije iteracije: Zaupanje procesu, ne le agentu

Razvoj AI modelov je spremenil miselnost iz 'zaupaj, a preveri' v bolj zaupljiv odnos, podobno kot učinkovite ekipe delujejo po filozofiji 'krivi proces, ne ljudi'. Ta 'kultura brez krivde' pri razvoju, vodenem z agenti, pomeni, da ko AI agent naredi napako, je odziv izboljšanje temeljnih procesov in varoval, namesto krivljenja samega agenta. To vključuje implementacijo strogih praks CI/CD: strogo tipiziranje za zagotovitev skladnosti vmesnikov, robustne linterje za kakovost kode ter obsežne integracijske, end-to-end in pogodbene teste. Medtem ko je ročno gradnja teh testov lahko draga, jih pomoč agentov bistveno poceni, kar zagotavlja ključno zaupanje v nove spremembe. Z vzpostavitvijo teh sistemov razvijalci omogočijo Copilotu, da preverja svoje lastno delo, kar odraža, kako se mlajši inženir pripravi na uspeh.

Obvladovanje razvojnega cikla, vodenega z agenti

Integracija teh načel v praktičen potek dela ustvarja zmogljiv, pospešen razvojni cikel:

  1. Načrtujte s Copilotom: Začnite z novimi funkcijami z uporabo /plan. Iterativno delajte na načrtu, zagotovite, da so testi in posodobitve dokumentacije vključeni in dokončani pred implementacijo kode. Dokumentacija lahko služi kot dodaten nabor smernic za agenta.
  2. Implementirajte z Autopilotom: Dovolite Copilotu, da implementira funkcijo z uporabo /autopilot, izkoriščajoč njegove zmožnosti generiranja kode.
  3. Pregled s Copilot Code Review: Pozovite Copilota, da začne pregledni cikel. To vključuje zahtevo po agentu Copilot Code Review, obravnavanje njegovih komentarjev in ponovno zahtevanje pregledov, dokler problemi niso rešeni.
  4. Človeški pregled: Izvedite končni človeški pregled, da zagotovite, da so vzorci uveljavljeni in da so kompleksne odločitve usklajene s strateškim namenom.

Poleg cikla funkcij je ključna nenehna optimizacija. McGoffin redno poziva Copilota z ukazi, kot sta '/plan Preglej kodo za morebitne manjkajoče teste, morebitne pokvarjene teste in mrtvo kodo' ali '/plan Preglej dokumentacijo in kodo, da prepoznaš morebitne vrzeli v dokumentaciji.' Ti pregledi, ki se izvajajo tedensko ali ob integraciji novih funkcij, zagotavljajo, da okolje za razvoj, voden z agenti, ostaja zdravo in učinkovito.

Prihodnost programskega inženirstva z umetno inteligenco

Kar se je začelo kot osebno iskanje avtomatizacije frustrirajoče analitične naloge, se je razvilo v novo paradigmo za razvoj programske opreme. Razvoj, voden z agenti, ki ga poganjajo orodja, kot sta GitHub Copilot in napredni modeli, kot je Claude Opus, ne gre le za pospeševanje dela razvijalcev; gre za temeljno spreminjanje narave dela tako za raziskovalce umetne inteligence kot tudi za programere. Z prenosom intelektualnega dela na inteligentne agente lahko ekipe dosežejo izjemne ravni produktivnosti, sodelovanja in inovacij, s čimer se končno osredotočijo na ustvarjalne in strateške izzive, ki resnično poganjajo napredek. Ta pristop napoveduje vznemirljivo prihodnost, kjer AI agenti niso le orodja, temveč sestavni člani razvojne ekipe, ki spreminjajo način, kako gradimo in vzdržujemo programsko opremo.

Pogosta vprašanja

What is agent-driven development in the context of GitHub Copilot?
Agent-driven development refers to a software engineering paradigm where AI agents, such as those powered by GitHub Copilot, become primary contributors and collaborators in the development process. Instead of merely suggesting code, these agents actively participate in planning, implementing, refactoring, testing, and documenting software. This approach leverages the AI's ability to automate repetitive intellectual tasks, allowing human engineers to focus on higher-level problem-solving, strategic design, and creative work, thereby accelerating development cycles and improving code quality through structured AI assistance and rigorous guardrails.
How did the 'eval-agents' project originate?
The 'eval-agents' project was born out of a common challenge faced by AI researchers: analyzing vast quantities of data. Tyler McGoffin, an AI researcher, found himself repeatedly poring over hundreds of thousands of lines of 'trajectories'—detailed logs of AI agent thought processes and actions during benchmark evaluations. Recognizing this as an intellectually toilsome and repetitive task, he sought to automate it. By applying agent-driven development principles with GitHub Copilot, he created 'eval-agents' to analyze these trajectories, significantly reducing the manual effort required and transforming a tedious analytical chore into an automated process.
What are the key components of an agentic coding setup for this approach?
An effective agentic coding setup, as demonstrated in this approach, typically includes a powerful AI coding agent like Copilot CLI, a robust underlying large language model such as Claude Opus 4.6, and a feature-rich Integrated Development Environment (IDE) like VSCode. Crucially, leveraging an SDK, such as the Copilot SDK, provides access to essential tools, servers, and mechanisms for registering new tools and skills, offering a foundational infrastructure for building and deploying agents without reinventing core functionalities. This integrated environment enables seamless interaction between the developer and the AI agent throughout the development lifecycle.
What prompting strategies are most effective when working with AI coding agents?
Effective prompting strategies for AI coding agents emphasize conversational, verbose, and planning-oriented interactions. Rather than terse problem statements, developers achieve better results by engaging agents in a dialogue, over-explaining assumptions, and leveraging the AI's speed for initial planning before committing to code changes. This involves using planning modes (e.g., '/plan') to collaboratively brainstorm solutions and refine ideas. Treating the AI agent like a junior engineer who benefits from clear guidance, context, and iterative feedback helps it to produce more accurate and relevant outputs, leading to superior problem-solving and feature implementation.
Why are architectural strategies like refactoring and documentation crucial for agent-driven development?
Architectural strategies like frequent refactoring, comprehensive documentation, and robust testing are paramount in agent-driven development because they create a clean, navigable codebase that AI agents can effectively understand and interact with. A well-maintained codebase, much like for human engineers, allows AI agents to contribute features more accurately and efficiently. By prioritizing readability, consistent patterns, and up-to-date documentation, developers ensure that Copilot can interpret the codebase's intent, identify opportunities for improvement, and implement changes with minimal errors, making feature delivery trivial and facilitating continuous re-architecture.
How does a 'blameless culture' apply to iteration strategies in agent-driven development?
Applying a 'blameless culture' to agent-driven development means shifting from a 'trust but verify' mindset to one that prioritizes 'blame process, not agents.' This philosophy acknowledges that AI agents, like human engineers, can make mistakes. The focus then shifts to implementing robust processes and guardrails—such as strict typing, comprehensive linters, and extensive integration and end-to-end tests—to prevent errors. When an agent does make a mistake, the response is to learn from it and introduce additional guardrails, refining the processes and prompts to ensure the same error isn't repeated, fostering a rapid and psychologically safe iteration pipeline.
What is the typical development loop when using agent-driven development?
The typical development loop in agent-driven development begins with planning a new feature collaboratively with Copilot using a '/plan' prompt, ensuring testing and documentation updates are integrated early. Next, Copilot implements the feature, often using an '/autopilot' command. Following implementation, a review loop is initiated with a Copilot Code Review agent, addressing comments iteratively. The final stage involves a human review to enforce patterns and standards. Outside this feature loop, Copilot is periodically prompted to review for missing tests, code duplication, or documentation gaps, maintaining a continuously optimized agent-driven environment.
What kind of impact did agent-driven development have on team productivity and collaboration?
The impact of agent-driven development on team productivity and collaboration was transformative, leading to an incredibly rapid iteration pipeline. In one instance, a team of five new contributors, using this methodology, created 11 new agents, four new skills, and implemented complex workflows in less than three days. This amounted to a staggering change of +28,858/-2,884 lines of code across 345 files. This dramatic increase in output highlights how agent-driven development, by automating routine tasks and providing intelligent assistance, significantly accelerates feature delivery, fosters deeper collaboration, and enables teams to achieve unprecedented levels of innovation and efficiency.

Bodite na tekočem

Prejemajte najnovejše AI novice po e-pošti.

Deli