Introductie van de Agent SDK

De meest nuttige agents zijn specifiek afgestemd op de manier waarop een bepaald team opereert. Tot nu toe betekende het bouwen van zo'n agent over het algemeen dat men een product moest adopteren dat is ontworpen rond de workflow van iemand anders, of dat men volledig vanaf nul moest beginnen.

Vandaag brengen we de Agent SDK uit, het raamwerk dat we zelf gebruiken om onze beheerde agents te bouwen, zoals Bugbot, Security Reviewer en Rollouts. De Agent SDK stelt je in staat om agents in code te definiëren en ze te beheren als elk ander softwareproject. Je kunt beginnen met een sjabloon of je coding-agent naar onze documentatie laten wijzen. Wanneer de agent klaar is, kun je deze met één commando via agent-sdk deploy implementeren op de infrastructuur van Cursor.

Bouw rondom je workflow

De Agent SDK stelt je in staat om snel agents te bouwen en te implementeren die werken op de manier waarop jouw team dat doet. Ze reageren op de gebeurtenissen die jouw team al afhandelt en volgen beleidsregels die jouw team kan inspecteren en wijzigen.

Code review is één voorbeeld. Elk team heeft zijn eigen standaarden voor wat aandacht vereist en wie dit moet beoordelen. Met de Agent SDK kun je een agent bouwen die reageert op pull request-gebeurtenissen van GitHub, GitLab of Bitbucket. De agent kan het risico van een wijziging inschatten, deze doorsturen naar het juiste team en wijzigingen goedkeuren die aan jullie beleid voldoen.

Als voorbeeld: een team binnen Cursor had een grote, snelgroeiende kennisbank van 'lessons learned' opgebouwd en wilde dat elk pull request hieraan werd getoetst. Op deze manier zouden eerdere beslissingen van het team standhouden, zelfs wanneer de codebase veranderde. Met de Agent SDK bouwden ze kb-reviewer in ongeveer één dag. Deze draait nu op elke PR in hun hoofdcodebase, markeert wijzigingen die in strijd zijn met een geregistreerde les, citeert de notitie achter elke bevinding en moedigt engineers aan om de gerapporteerde inconsistenties op te lossen.

Voor complexer werk kunnen agents een taak overdragen aan een andere gespecialiseerde agent met eigen tools en sessies. Ze kunnen een klus ook verdelen over sub-agents die parallel aan elkaar werken.

De Agent SDK ondersteunt daarnaast standaard 'evals' (evaluaties) en 'event replay', wat een snelle ontwikkeling mogelijk maakt met de zekerheid dat kritieke workflows worden uitgevoerd zoals verwacht. De PGA Tour gebruikt de Agent SDK om hun software development factory aan te sturen; de evals zorgen ervoor dat zij snel kunnen blijven bewegen.

"De Agent SDK heeft het PGA mogelijk gemaakt om elk onderdeel van onze software factory op de infrastructuur van Cursor te bouwen. Het biedt de flexibiliteit die we nodig hebben om agents te bouwen die ons ontwikkelproces aansturen. En de ingebouwde ondersteuning voor evals stelt ons in staat om snel te itereren op nieuwe ideeën en bestaande mogelijkheden betrouwbaar te optimaliseren."
— Michael Gyarmathy, Principal Engineer, PGA America

Definieer alles in code

Een Agent SDK-agent is georganiseerd als een klein softwareproject. De instructies die de agent sturen, staan naast de code voor de tools, de verbindingen met externe diensten en de evals die worden gebruikt om de agent te testen.

Elk bestand vertegenwoordigt iets wat de agent weet of kan doen. Prompts worden geschreven in Markdown, terwijl tools worden gedefinieerd als TypeScript-functies. Omdat alles code is, kunnen wijzigingen via hetzelfde versiebeheer en reviewproces lopen als de rest van je software.

Implementeer agents waar je ze nodig hebt

Wanneer je klaar bent om een agent in gebruik te nemen, kun je deze implementeren in Cursor door agent-sdk deploy uit te voeren vanuit de projectmap. Dit commando bouwt de agent, wijst er een URL aan toe en start deze op onze infrastructuur. Je kunt geheimen (secrets) en integraties beheren via het dashboard, terwijl je lokaal gebruik blijft maken van dezelfde logs, evals en playground.

Je kunt de agent ook op je eigen infrastructuur draaien. Elke agent draait als een enkel Node-proces dat in een container kan worden verpakt.

Aan de slag

Het starten met de Agent SDK lijkt veel op het starten van elk ander softwareproject. Maak een projectmap aan en start vervolgens de lokale playground:

import { homedir } from "node:os";
import { join } from "node:path";
import { defineAgent } from "@cursor/agent-sdk";

export default defineAgent({
  name: "Robo",
  model: {
    id: "composer-2.5",
    params: [
      { id: "effort", value: "high" },
      { id: "fast", value: "true" },
    ],
  },
  local: {
    cwd: join(homedir(), ".cache", "factory", "robo"),
  },
})

Vanaf dat punt kun je lokaal itereren en evals uitvoeren voordat je implementeert met agent-sdk deploy.

De Agent SDK wordt ook geleverd met 'skills' die coding-agents door het ontwikkelproces leiden. Je kunt een agent naar de documentatie laten wijzen, zodat deze je helpt bij het bouwen van de bot.

De Agent SDK is vanaf vandaag algemeen beschikbaar. Lees de documentatie en ga aan de slag.