Idea

Un agente di servizio eredita le istruzioni della directory da cui lo si chiama

Info

Scritto originalmente in francese. Tradotto dall'IA — il significato è stato preservato, non la prosa.

Idea principale

Uno script che chiama un assistente per fargli svolgere un compito meccanico — estrarre da uno scambio le decisioni da registrare e restituirle in JSON — ottiene una risposta corretta o meno a seconda della directory da cui è stato lanciato. Lanciato dal progetto, l'assistente carica il CLAUDE.md di quel progetto e si mette a obbedire alle regole di scrittura che contiene, invece di restituire la struttura richiesta. Lanciato da /tmp, non trova nulla e fa ciò che gli si chiede.

La directory corrente non è quindi un dettaglio dell'invocazione: è una parte del prompt, invisibile nel prompt. Le stesse istruzioni che rendono utile un agente conversazionale — convenzioni, tono, divieti, formati dei deliverable — sono rumore per un agente che si usa come una funzione.

Da qui una regola di isolamento: un agente di servizio si chiama da un posto neutro, scelto per ciò che non contiene. La neutralità è una proprietà del luogo di esecuzione, non del prompt.

Perché è importante

Il guasto è difficile da diagnosticare perché non sembra un guasto. Il modello risponde, la risposta è plausibile, è semplicemente mal formata o troppo prolissa — e si sospetta il prompt, la dimensione del modello, la temperatura, tutto tranne il percorso.

Più in generale: due usi dello stesso agente non hanno lo stesso bisogno di contesto, e il contesto che serve all'uno peggiora l'altro.

Sfumature e limiti

L'isolamento taglia fuori anche ciò che sarebbe stato utile. Un agente lanciato fuori dal progetto non sa nulla delle sue convenzioni di denominazione, e se deve scrivere nei file del progetto bisognerà ripeterglielo esplicitamente.

E il meccanismo di ereditarietà dipende dallo strumento: ciò che si carica automaticamente, e da quale radice, non è uguale ovunque.

Domande aperte

  • Che cosa, in un insieme di regole di progetto, si riconosce come destinato all'agente conversazionale piuttosto che a qualsiasi agente si trovi a passare di lì?