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.
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
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
| 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 |
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
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
| 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í | — | — | — | — |
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
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
Comentaris