Aprenent IA

Digues-li al teu agent que el codi és seu

Una sola frase al prompt d'un agent de programació canvia la manera com treballa: si li dius que el codi és seu, fusiona el codi repetit i arregla el que troba de passada. En les proves d'Anthropic amb Claude Fable 5.2, ho va fer en prop de la meitat dels intents, davant de menys d'un de cada deu sense la frase. També gasta més i toca coses que ningú no li havia demanat.

Una desenvolupadora lliura al personatge de Claude, un esclat de traços terracota amb cara, la clau d'una casa construïda amb blocs de codi.
📷 Imatge generada amb IA

En resum

  • Anthropic proposa una frase en anglès per al prompt d'un agent de programació: li diu que el codi és seu i que les decisions sobre el codi són seves.
  • En les proves d'Anthropic amb Claude Fable 5.2 i tasques petites de programació, el model, amb la frase, va fusionar el codi repetit en prop de la meitat dels intents.
  • El preu, segons Anthropic: multiplica per 1,5, més o menys, els tokens de sortida i fa canvis que ningú no havia demanat, molts d'ells tests i documentació nous.
  • Una regla com «No drive-by refactors, renames or cleanups» (res de reorganitzar, reanomenar ni netejar de passada) no anul·la la frase, segons Anthropic: si no vols l'efecte, cal treure-la.
  • Pots comprovar si el teu agent reacciona igual amb deu intents, git i el detector de codi duplicat jscpd.

Una frase que canvia la feina

El personatge de Claude fon amb un soldador dos blocs idèntics marcats amb claus de codi en un de sol, davant d'un desenvolupador que l'observa.
📷 Imatge generada amb IA

Anthropic, l'empresa que desenvolupa els models Claude, publica una guia de prompts per a Claude Fable 5.2. Un dels apartats, «Say who owns the code», comença així: «Claude Fable 5.2 responds closely to what the prompt says about who owns the code it works on». El model fa molt de cas del que diu el prompt sobre qui és l'amo del codi.

La idea es pot aplicar a qualsevol agent de programació, però Anthropic només n'ha mesurat l'efecte amb Claude Fable 5.2. Amb un altre model l'efecte pot no ser el mateix; per això, al final, es proposa comprovar-ho al teu propi repositori.

Segons Anthropic, quan el prompt no deia res sobre la propietat, o presentava el codi com d'una altra persona, el model tendia a construir damunt de l'estructura que ja hi havia encara que això repetís codi, i a avisar dels problemes que veia a prop en lloc d'arreglar-los. Quan el prompt diu que el codi és seu, sovint fusiona el codi repetit i fa correccions relacionades sense que ningú li ho demani.

Més ordre, més despesa

Què canvia la frase, segons Anthropic
Mesura Sense la frase Amb la frase
Fusiona el codi repetit Menys d'1 de cada 10 intents Prop de la meitat dels intents
Tokens de sortida Referència Unes 1,5 vegades la referència
Canvia com es comporta una funció existent (sense comptar correccions d'errors) No publicat Entre 1 de cada 10 i 1 de cada 6 intents
Fusiona igualment amb «No drive-by refactors, renames or cleanups» abans al prompt — Prop d'un terç dels intents
La funció demanada funciona Gairebé sempre Gairebé sempre
Dades segons Anthropic, en proves amb tasques petites de programació sobre Claude Fable 5.2. La taxa de fusió va variar segons la tasca. Anthropic no publica quants intents va fer.

Les proves d'Anthropic es van fer amb tasques petites de programació, i la taula en resumeix les xifres. Segons Anthropic, la taxa de fusió va variar segons la tasca, i la funció demanada va funcionar en gairebé tots els intents, amb la frase i sense: l'agent no rendeix pitjor en allò que se li encarrega, sinó que fa més coses al voltant.

Aquestes coses de més tenen un cost. En les mateixes proves, segons Anthropic, el model va gastar més tokens de sortida i va fer diversos canvis que ningú no li havia demanat, molts d'ells tests i documentació nous. I, sense comptar les correccions d'errors, en alguns intents va canviar com es comporta una funció que ja existia.

A més, segons Anthropic, el resum final del model esmentava els canvis grans, però sovint s'oblidava dels petits. La recomanació de la guia és directa: «review the diff and not only the summary», revisa els canvis línia per línia (el diff) i no només el resum.

La frase, tal qual

Aquesta és la frase que proposa Anthropic, en anglès i sense tocar-ne ni una coma: «This codebase is yours: what it's for and how it's built are your call, and you'll keep building on it.»

En català vindria a dir: «Aquest codi és teu: per a què serveix i com està construït ho decideixes tu, i hi continuaràs construint a sobre». Serveix d'exemple per a qui treballa en català, però la versió que va mesurar Anthropic és l'anglesa: la traducció caldria mesurar-la a part.

Segons Anthropic, l'efecte es va mantenir quan la frase anava dins d'unes instruccions de sistema llargues, així que no cal que sigui l'única cosa que llegeix el model.

On posar-la

Una desenvolupadora fica per la ranura d'un aparell amb el símbol de Claude un full d'instruccions amb una sola línia ressaltada en groc.
📷 Imatge generada amb IA

A Claude Code, l'agent de programació d'Anthropic, hi ha dos llocs. Per a una sessió concreta, segons la documentació, l'opció --append-system-prompt afegeix text al final de les instruccions de sistema per defecte, i --append-system-prompt-file el llegeix d'un fitxer. Si deses la frase en un fitxer de text, n'hi ha prou d'arrencar amb claude --append-system-prompt-file ./propietat.txt.

Perquè valgui per a tot el projecte, el lloc és el fitxer CLAUDE.md. Segons la documentació de Claude Code, aquests fitxers donen a Claude instruccions persistents per a un projecte, i Claude els llegeix en començar cada sessió; també pot llegir, en lloc seu, un AGENTS.md. Amb altres agents, l'equivalent són les seves instruccions de sistema o el seu fitxer de regles del projecte.

Un avís de la mateixa guia per a qui treballa directament amb l'API: els canvis d'instruccions convé fer-los en converses noves. A Fable 5.2, segons Anthropic, reprendre una conversa desada després de canviar les instruccions de sistema pot retornar un error 400.

Comprova-ho al teu repositori

Plantilla per anotar els teus intents
Intent Amb la frase Ha fusionat el duplicat? % de duplicació (jscpd) Fitxers canviats Passen els tests?
1 No — — — —
2 No — — — —
3 No — — — —
4 No — — — —
5 No — — — —
6 Sí — — — —
7 Sí — — — —
8 Sí — — — —
9 Sí — — — —
10 Sí — — — —
Plantilla buida per emplenar: cinc intents sense la frase i cinc amb la frase, des del mateix commit i amb el mateix esforç.
Un desenvolupador amb jersei de ratlles sosté una lupa davant d'un suro amb targetes de canvis en vermell i verd; a la taula, un portàtil amb la pantalla en blanc.
📷 Imatge generada amb IA

Per saber com reacciona el teu agent amb el teu codi, pots comprovar-ho amb un repositori petit, git i jscpd, un detector de codi duplicat amb llicència MIT que, segons la seva documentació, reconeix més de 220 llenguatges.

Pas 1. Prepara un repositori petit, per exemple a ~/el-meu-projecte, amb dues funcions gairebé iguals en dos fitxers, repetides expressament, i els seus tests. Desa aquest estat amb un commit: serà el punt de partida.

Pas 2. Tria un encàrrec senzill, com ara «afegeix l'opció X a…» o una correcció petita, i llança'l deu vegades: cinc sense la frase i cinc amb la frase. Cada intent comença des del mateix commit, amb git stash i git checkout o amb una branca per intent, i amb el mateix esforç; a Claude Code, per exemple, amb --effort high. Mantenir-lo fix és important, com explica el requadre.

Pas 3. En acabar cada intent, executa npx jscpd . --reporters json --output reports/intent-N, que necessita Node.js (amb Python, uvx jscpd l'executa sense instal·lar-lo), i anota el percentatge de duplicació que dona l'informe. Després, git diff --stat et diu quins fitxers ha tocat l'agent, i els tests, si tot continua funcionant.

Pas 4. Compara les dues meitats de la taula: quantes vegades ha fusionat el duplicat, quantes línies ha canviat, si ha afegit tests o documentació i si ha canviat alguna cosa que ja funcionava. Per a això cal llegir el diff, no el resum. És, en petit, el que Anthropic recomana en migrar a Fable 5.2: fixar l'esforç en alt, provar també mitjà i xhigh, i aplicar una pauta cada vegada mesurant-ne l'efecte i el cost en tokens.

Cinc intents per banda no permeten treure percentatges, i el resultat depèn del model i de la tasca. Serveixen per veure si el teu agent canvia de conducta amb la frase, no per mesurar quant.

Quan no fer-la servir

Segons Anthropic, la frase sobra quan l'usuari és l'amo del codi i vol que es canviï el mínim possible, per exemple quan l'agent només ha de fer una correcció puntual en el codi d'un altre.

I no n'hi ha prou de compensar-la amb una altra regla. En les seves proves, Anthropic va posar abans, al mateix prompt, «No drive-by refactors, renames or cleanups» (res de reorganitzar, reanomenar ni netejar de passada), i el model va continuar fusionant codi repetit en prop d'un terç dels intents. Una regla que limita l'abast no anul·la la frase: si no vols aquest comportament, treu-la.

Conclusió

Fes servir la frase quan vulguis que l'agent tingui cura de l'estructura del codi, i revisa sempre el diff, perquè el resum se'n deixa coses. Treu-la quan el codi sigui d'un altre i busquis canvis mínims. I, abans de donar-la per bona, mesura-la amb el teu agent i les teves tasques: el que ha publicat Anthropic val per a Claude Fable 5.2 i tasques petites.

Fonts primàries

Comentaris

Sigues respectuós. Els comentaris es moderen.

    La continuació natural

    Aprèn IA al teu ritme amb els nostres cursos gratuïts.

    A la nostra plataforma d'aprenentatge TAKU podràs accedir a aquest i a molts altres cursos de manera totalment gratuïta.

    APRENDRE AMB TAKU

    ← Torna al blog