Code Velocity
Kehittäjän työkalut

Agenttipohjainen kehitys: Copilot Applied Sciencen tehostaminen

·7 min lukuaika·GitHub·Alkuperäinen lähde
Jaa
Kuvakaappaus GitHub Copilotin agenttipohjaisen kehityksen käyttöliittymästä, joka näyttää koodiehdotuksia ja yhteistyöhön perustuvia koodityönkulkuja.

Henkisen työn automatisointi tekoälyagenttien avulla

Ohjelmistokehityksen nopeasti kehittyvässä maisemassa tehokkuuden tavoittelu johtaa usein mullistaviin innovaatioihin. Tekoälytutkija Tyler McGoffin kuvaili äskettäin matkan, joka ilmentää tätä henkeä: hän automatisoi henkisen työn agenttipohjaisen kehityksen avulla GitHub Copilotin kanssa. Kyse ei ole vain nopeammasta koodauksesta, vaan kehittäjän roolin perusteellisesta muuttamisesta toistuvasta analyysistä luovaan ongelmanratkaisuun ja strategiseen valvontaan. McGoffinin kokemus korostaa insinöörien keskuudessa tuttua kaavaa – työkalujen rakentamista puuduttavan työn poistamiseksi – mutta vie sen askeleen pidemmälle uskomalla tekoälyagenteille monimutkaisia analyyttisiä tehtäviä, joita oli aiemmin mahdotonta skaalata manuaalisesti.

McGoffinin inspiraatio johtui hänen työnsä kriittisestä, mutta ylivoimaisesta osasta: koodausagenttien suorituskyvyn analysoinnista vertailuarvoja, kuten TerminalBench2:a ja SWEBench-Pro:ta, vastaan. Tämä edellytti "trajektorien" – agentin ajatusprosessien ja toimien yksityiskohtaisten JSON-lokien – analysointia, joka saattoi nousta satoihin tuhansiin koodiriveihin useissa tehtävissä ja vertailuarvojen suorituskerroissa. Vaikka GitHub Copilot auttoi jo kuvioiden tunnistamisessa, tämän analyyttisen silmukan toistuva luonne vaati täydellistä automaatiota. Tämä johti "eval-agents" -järjestelmän luomiseen, joka on suunniteltu automatisoimaan tämä henkinen taakka ja auttamaan hänen Copilot Applied Science -tiimiään saavuttamaan samanlaisia tehokkuuksia.

Agenttipohjaisen kehityksen suunnitelma

"Eval-agents" -järjestelmän syntyä ohjasivat selkeät periaatteet, jotka keskittyivät yhteistyöhön ja skaalautuvuuteen. McGoffin pyrki tekemään näistä tekoälyagenteista helppoja jakaa, yksinkertaisia luoda ja ensisijaisen välineen tiimin panoksille. Nämä tavoitteet heijastavat GitHubin ydinarvoja, erityisesti niitä, jotka hioutuivat hänen kokemuksessaan GitHub CLI:n OSS-ylläpitäjänä. Kuitenkin juuri kolmas tavoite – koodausagenttien tekeminen ensisijaiseksi kontribuoijaksi – muokkasi hankkeen suuntaa ja avasi odottamattomia etuja kahdelle ensimmäiselle.

Agenttipohjainen koodausympäristö hyödynsi useita tehokkaita työkaluja kehitysprosessin virtaviivaistamiseksi:

  • Koodausagentti: Copilot CLI, joka tarjoaa suoran vuorovaikutuksen ja hallinnan.
  • Käytetty malli: Claude Opus 4.6, joka tarjoaa edistyneitä päättely- ja koodinluontikykyjä.
  • IDE: VSCode, joka toimii kehityksen keskeisenä työtilana.

Ratkaisevaa oli, että Copilot SDK oli avainasemassa, tarjoten pääsyn olemassa oleviin työkaluihin, MCP-palvelimiin ja mekanismeihin uusien työkalujen ja taitojen rekisteröimiseksi. Tämä perusta poisti tarpeen keksiä uudelleen ydinagenttitoimintoja, jolloin tiimi saattoi keskittyä sovelluskohtaiseen logiikkaan. Tämä integroitu ympäristö edisti nopeaa kehityssykliä ja osoitti, että oikealla asennuksella tekoälyagentit voivat paitsi auttaa myös ohjata merkittäviä osia kehitystyöstä.

Agenttipohjaisen koodauksen ydinperiaatteet

Siirtyminen agenttipohjaiseen malliin vaatii muutakin kuin vain työkaluja; se vaatii muutosta metodologiassa. McGoffin tunnisti kolme ydinperiaatetta, jotka osoittautuivat perustavanlaatuisiksi kehityksen nopeuttamisessa ja yhteistyön edistämisessä:

  1. Kehote-strategiat: Tehokas vuorovaikutus agenttien kanssa tarkoittaa keskustelevaa, sanallista ja suunnitteluun painottuvaa lähestymistapaa.
  2. Arkkitehtuuristrategiat: Puhdas, hyvin dokumentoitu ja refaktoroitu koodikanta on ensiarvoisen tärkeä, jotta agentit voivat tehokkaasti ymmärtää sitä ja osallistua siihen.
  3. Iterointistrategiat: 'Syyttää prosessia, ei agentteja' -ajattelutavan omaksuminen, samoin kuin syyttämättömässä kulttuurissa, mahdollistaa nopean kokeilun ja oppimisen.

Nämä strategiat, kun niitä sovellettiin johdonmukaisesti, johtivat hämmästyttäviin tuloksiin. Tämän tehokkuuden osoituksena viisi uutta osallistujaa lisäsi vain kolmessa päivässä yhteensä 11 uutta agenttia, neljä uutta taitoa ja toi projektiin 'eval-agent workflows' -konseptin. Tämä yhteistyöhön perustuva sprintti johti huomattavaan +28 858 / -2 884 koodirivin muutokseen 345 tiedostossa, osoittaen github-agentic-workflows -käytännön syvällisen vaikutuksen.

Tässä yhteenveto ydinperiaatteista:

PeriaateKuvausHyöty agenttipohjaisessa kehityksessä
Kehotteiden antaminenKäsittele agentteja kuin vanhempia insinöörejä: ohjaa heidän ajatteluaan, selitä oletukset liiankin yksityiskohtaisesti, hyödynnä suunnittelutiloja (/plan) ennen toteutusta. Ole keskusteleva ja yksityiskohtainen.Johtaa tarkempiin ja relevantimpiin tuloksiin, auttaen agentteja ratkaisemaan monimutkaisia ongelmia tehokkaasti.
ArkkitehtuuriPriorisoi refaktorointi, kattava dokumentaatio ja vankka testaus. Pidä koodikanta puhtaana, luettavana ja hyvin jäsenneltynä. Siivoa aktiivisesti kuollutta koodia.Antaa agenttien ymmärtää koodikannan, sen mallit ja olemassa olevat toiminnot, mikä helpottaa tarkkoja panoksia.
IterointiOmaksu 'syyttää prosessia, ei agentteja' -ajattelutapa. Toteuta suojatoimia (tiukka tyypitys, lintterit, laajat testit) virheiden estämiseksi. Opi agenttien virheistä parantamalla prosesseja ja suojatoimia.Edistää nopeaa iterointia, rakentaa luottamusta agenttien panoksiin ja parantaa jatkuvasti kehitysketjua.

Kehityksen nopeuttaminen: Strategiat käytännössä

Tämän agenttipohjaisen lähestymistavan menestys perustuu näiden periaatteiden käytännön soveltamiseen.

Kehote-strategiat: Tekoälyinsinöörin ohjaaminen

Vaikka tekoälykoodausagentit ovat tehokkaita, ne loistavat hyvin rajatuissa ongelmissa. Monimutkaisempiin tehtäviin ne tarvitsevat ohjausta, aivan kuten nuoremmat insinöörit. McGoffin havaitsi, että keskusteleva tyyli, oletusten selittäminen ja suunnittelutilojen hyödyntäminen olivat paljon tehokkaampia kuin lyhyet komennot. Esimerkiksi, kun lisättiin vankkoja regressiotestejä, kehote kuten /plan Olen äskettäin huomannut Copilotin päivittävän mielellään testejä sopimaan uusiin paradigmoihinsa, vaikka näitä testejä ei pitäisi päivittää. Miten voin luoda varatun testitilan, jota Copilot ei voi koskea tai jonka se on varattava suojaamaan regressioilta? käynnisti tuotteliaan vuoropuhelun. Tämä edestakainen vuorovaikutus, usein tehokkaan claude-opus-4-6 -mallin kanssa, johti kehittyneisiin ratkaisuihin, kuten sopimustestauksen suojatoimiin, joita vain ihmisinsinöörit pystyivät päivittämään, varmistaen kriittisen toiminnallisuuden suojan.

Arkkitehtuuristrategiat: Tekoälyavusteisen laadun perusta

Ihmisinsinööreille puhtaan koodikannan ylläpitäminen, testien kirjoittaminen ja ominaisuuksien dokumentointi jäävät usein taka-alalle ominaisuuspaineiden alla. Agenttipohjaisessa kehityksessä näistä tulee ensiarvoisen tärkeitä. McGoffin havaitsi, että refaktorointiin, dokumentointiin ja testitapausten lisäämiseen käytetty aika paransi merkittävästi Copilotin kykyä navigoida koodikannassa ja osallistua siihen. Agentti-ensimmäinen repositorion menestys perustuu selkeyteen. Tämä antaa kehittäjille mahdollisuuden kysyä Copilotilta jopa "Tietäen mitä tiedän nyt, miten suunnittelisin tämän toisin?", muuttaen teoreettiset refaktoroinnit saavutettaviksi projekteiksi tekoälyavun avulla. Tämä jatkuva keskittyminen arkkitehtuurin terveyteen varmistaa, että uudet ominaisuudet voidaan toimittaa vaivattomasti.

Iterointistrategiat: Prosessiin luottaminen, ei vain agenttiin

Tekoälymallien kehitys on muuttanut ajattelutavan "luota mutta tarkista" -asenteesta luottavaisempaan, samalla tavalla kuin tehokkaat tiimit toimivat "syyttää prosessia, ei ihmisiä" -filosofian mukaisesti. Tämä "syyttämätön kulttuuri" agenttipohjaisessa kehityksessä tarkoittaa, että kun tekoälyagentti tekee virheen, reaktio on parantaa taustalla olevia prosesseja ja suojatoimia sen sijaan, että syytettäisiin itse agenttia. Tähän kuuluu tiukkojen CI/CD-käytäntöjen käyttöönotto: tiukka tyypitys rajapintojen yhteensopivuuden varmistamiseksi, vankat lintterit koodin laadun takaamiseksi sekä laajat integraatio-, päästä päähän- ja sopimustestit. Vaikka näiden testien rakentaminen manuaalisesti voi olla kallista, agenttiavus tekee niistä paljon edullisempia toteuttaa, tarjoten kriittisen luottamuksen uusiin muutoksiin. Ottamalla käyttöön nämä järjestelmät kehittäjät antavat Copilotille mahdollisuuden tarkistaa omaa työtään, heijastaen sitä, miten nuorempi insinööri asetetaan menestymään.

Agenttipohjaisen kehityssyklin hallitseminen

Näiden periaatteiden integroiminen käytännön työnkulkuun luo tehokkaan ja nopeutetun kehityssyklin:

  1. Suunnittele Copilotin kanssa: Aloita uudet ominaisuudet /plan-komennolla. Iteroi suunnitelmaa varmistaen, että testit ja dokumentaatiopäivitykset sisällytetään ja suoritetaan ennen koodin toteutusta. Dokumentaatio voi toimia lisäohjeena agentille.
  2. Toteuta Autopilotin avulla: Anna Copilotin toteuttaa ominaisuus /autopilot-komennolla hyödyntäen sen koodinluontikykyjä.
  3. Tarkista Copilot Code Review'n avulla: Kehota Copilotia aloittamaan tarkistussykli. Tämä sisältää Copilot Code Review -agentin pyytämisen, sen kommenttien käsittelyn ja tarkistusten pyytämisen uudelleen, kunnes ongelmat on ratkaistu.
  4. Ihmisen suorittama tarkistus: Suorita lopullinen ihmisen suorittama tarkistus varmistaaksesi, että mallit noudatetaan ja monimutkaiset päätökset vastaavat strategista tarkoitusta.

Ominaisuussyklin ulkopuolella jatkuva optimointi on avainasemassa. McGoffin kehottaa säännöllisesti Copilotia komennoilla, kuten /plan Tarkista koodista puuttuvat testit, mahdollisesti rikkinäiset testit ja kuollut koodi tai /plan Tarkista dokumentaatio ja koodi puuttuvien dokumentaatiokohtien varalta. Nämä tarkistukset, jotka suoritetaan viikoittain tai uusien ominaisuuksien integroinnin yhteydessä, varmistavat, että agenttipohjainen kehitysympäristö pysyy terveenä ja tehokkaana.

Ohjelmistokehityksen tulevaisuus tekoälyn avulla

Se, mikä alkoi henkilökohtaisena pyrkimyksenä automatisoida turhauttava analyysitehtävä, on kehittynyt uudeksi ohjelmistokehityksen toimintamalliksi. Agenttipohjainen kehitys, jota edistävät työkalut kuten GitHub Copilot ja kehittyneet mallit kuten Claude Opus, ei ainoastaan tee kehittäjistä nopeampia; se muuttaa perusteellisesti tekoälytutkijoiden ja ohjelmistosuunnittelijoiden työn luonnetta. Siirtämällä henkistä työtä älykkäille agenteille tiimit voivat saavuttaa ennennäkemättömän tuottavuuden, yhteistyön ja innovaation tason, keskittyen lopulta luoviin ja strategisiin haasteisiin, jotka todella edistävät edistystä. Tämä lähestymistapa ennustaa jännittävää tulevaisuutta, jossa tekoälyagentit eivät ole vain työkaluja, vaan olennainen osa kehitystiimiä, muuttaen tapaamme rakentaa ja ylläpitää ohjelmistoja.

Usein kysytyt kysymykset

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.

Pysy ajan tasalla

Saa uusimmat tekoälyuutiset sähköpostiisi.

Jaa