SPB Git

spb/uqo_cours

Public
8.5 KB · 95 lines latex
1% ------------------------------------------------------------------------------2\section{Comment ça marche}3\label{sec:fonctionnement}4% ------------------------------------------------------------------------------56\begin{enbref}7La boucle (lire le contexte, décider, appeler un outil, recommencer), les outils dont dispose l'agent, la fenêtre de contexte et sa gestion (compaction, \texttt{/clear}, sous-agents), les points de restauration, les sessions et la mémoire. Comprendre ces cinq mécanismes, c'est savoir pourquoi l'agent « oublie », pourquoi il faut scoper ce qu'il lit et pourquoi ses résumés ne sont pas des preuves.8\end{enbref}910\subsection{La boucle}1112Le \emph{Guide IA} (chapitre 2) détaille la boucle agentique ; en une phrase : à chaque tour, le modèle relit \emph{tout} le contexte accumulé (vos instructions, l'historique, les fichiers lus, les sorties de commandes), puis décide soit de vous répondre, soit d'appeler un outil ; le résultat de l'outil est ajouté au contexte et le tour suivant commence \parencite{cc_bestpractices}. Trois conséquences pratiques : tout ce que l'agent lit occupe de la place ; il ne voit que du texte (une instruction cachée dans un PDF lui ressemble à une instruction de vous) ; il s'arrête quand « ça a l'air fini » si vous ne lui donnez pas un test.1314\subsection{Les outils}1516Claude Code met à la disposition du modèle un petit jeu d'outils ; c'est le nom de l'outil que vous voyez défiler pendant qu'il travaille, et c'est sur ces noms que portent les règles de permission du chapitre~\ref{sec:permissions}.1718{\small\Needspace{9\baselineskip}19\begin{tabularx}{\textwidth}{L{2.6cm}XL{4.4cm}}20\caption{Les outils de Claude Code, ce qu'ils font et ce qu'ils exigent de vous}\label{tab:outils}\\21\rowcolor{uqoBleu} \hc{Outil} & \hc{Ce qu'il fait} & \hc{Permission par défaut} \\22\endfirsthead23\captionsuite{Les outils de Claude Code}24\rowcolor{uqoBleu} \hc{Outil} & \hc{Ce qu'il fait} & \hc{Permission par défaut} \\25\endhead26\suitepage{3}27\endfoot28\finTableau29\endlastfoot30\texttt{Read} & Lit un fichier texte, une image, un PDF, un carnet Jupyter. & Aucune question dans le dossier. \\31\rowcolor{uqoBgClair}32\texttt{Glob}, \texttt{Grep} & Trouve des fichiers par nom ; cherche un motif dans leur contenu. & Aucune question. \\33\texttt{Edit}, \texttt{Write} & Modifie une portion d'un fichier ; crée ou remplace un fichier. & Demande votre accord (montre le diff). \\34\rowcolor{uqoBgClair}35\texttt{Bash} & Exécute une commande shell : \texttt{python3 analyse.py}, \texttt{git commit}, conversions… & Demande votre accord, commande par commande. \\36\texttt{WebFetch}, \texttt{WebSearch} & Lit une page Web ; cherche sur le Web. & Demande votre accord ; à refuser dans une session qui touche des données sensibles. \\37\rowcolor{uqoBgClair}38\texttt{Agent} (sous-agent) & Délègue une sous-tâche à une instance séparée qui ne rapporte qu'un résumé. & Suit les permissions du sous-agent. \\39\texttt{NotebookEdit} & Modifie une cellule d'un carnet Jupyter. & Demande votre accord. \\40\rowcolor{uqoBgClair}41Outils MCP & Tout ce qu'un connecteur ajoute : lire un classeur ouvert, interroger une base, piloter un navigateur (§\ref{sec:mcp}). & Demande votre accord à la première utilisation. \\42\end{tabularx}43}4445Quand vous voyez \texttt{Bash(python3 -c "…")}, lisez la commande avant d'approuver : c'est la seule chose qui s'exécute réellement sur votre machine. Le reste (les phrases de l'agent) n'est que du texte.4647\subsection{La fenêtre de contexte}4849Le contexte est la quantité de texte que le modèle prend en compte d'un coup (de l'ordre de 200\,000 jetons, soit environ 150\,000 mots, davantage sur certains modèles). Tout y entre : \texttt{CLAUDE.md}, vos messages, les fichiers lus, les sorties de commandes. Quand il se remplit, la qualité baisse et vos consignes du début pèsent moins ; la commande \texttt{/context} vous montre à tout moment ce qui l'occupe \parencite{cc_bestpractices}.5051\begin{figure}[!htb]52\centering53\begin{tikzpicture}[node distance=0.35cm and 0.7cm]54  \node[bloc,text width=3.6cm,fill=uqoBleu!10] (s1) {\faIcon{play}~Début de session\\ {\footnotesize \texttt{CLAUDE.md} + énoncé : 6\,\%}};55  \node[bloc,text width=3.6cm,fill=uqoOr!15,right=of s1] (s2) {\faIcon{book-open}~Après exploration\\ {\footnotesize + fichiers lus : 40\,\%}};56  \node[bloc,text width=3.6cm,fill=uqoRouge!12,draw=uqoRouge,right=of s2] (s3) {\faIcon{exclamation-triangle}~Une heure plus tard\\ {\footnotesize + sorties + échanges : 85\,\%}};57  \node[bloc,text width=3.6cm,fill=uqoVert!10,draw=uqoVert,below=0.9cm of s3] (s4) {\faIcon{compress-alt}~Compaction\\ {\footnotesize résumé : retour à 20\,\%}};58  \node[bloc,text width=3.6cm,fill=uqoVert!10,draw=uqoVert,below=0.9cm of s1] (s5) {\faIcon{eraser}~\texttt{/clear}\\ {\footnotesize nouvelle tâche : 6\,\%}};59  \draw[fl] (s1) -- (s2); \draw[fl] (s2) -- (s3);60  \draw[flo] (s3) -- (s4) node[midway,etiq,right] {\texttt{/compact} ou automatique};61  \draw[flo] (s3.south) -- ++(0,-0.35) -| (s5.north) node[pos=0.25,etiq,above] {tâche terminée};62  \draw[fl,dashed] (s4.west) -- (s5.east) node[midway,etiq,above] {on continue, ou on repart};63\end{tikzpicture}64\caption{Cycle de vie du contexte pendant une session de TP et les deux gestes qui le vident}65\label{fig:contexte}66\end{figure}6768Quatre mécanismes vous aident \parencite{cc_bestpractices} :6970\begin{itemize}71  \item \textbf{Compaction automatique.} Quand le contexte approche la limite, Claude Code résume l'historique en gardant décisions et fichiers clés. Forcez-la avec \texttt{/compact}, suivi de ce qu'il faut garder : « \texttt{/compact} garde la liste des cellules modifiées et les deux valeurs de test de $B$ ».72  \item \textbf{\texttt{/clear}} vide tout. Entre deux tâches sans lien (finir la grille, puis préparer l'examen), c'est le bon geste : une conversation encombrée d'échecs produit des résultats de moins en moins bons.73  \item \textbf{Sous-agents.} « Utilise un sous-agent pour explorer les trente fichiers CSV et ne me rapporte que les colonnes communes » : l'exploration se fait dans un contexte séparé, seul le résumé revient (§\ref{sec:sousagents}).74  \item \textbf{Lectures ciblées.} Demandez « lis seulement la feuille Grille » plutôt que « lis le classeur » ; « montre-moi les dix premières lignes » plutôt que tout le fichier.75\end{itemize}7677\subsection{Points de restauration}7879Chaque fois que vous envoyez une requête, Claude Code prend un instantané des fichiers du dossier. \kbd{Échap} \kbd{Échap} ou \texttt{/rewind} affichent la liste de vos messages ; vous choisissez un point et décidez de restaurer la conversation seulement, les fichiers seulement, ou les deux \parencite{cc_checkpointing}. C'est ce qui rend l'essai peu coûteux : tenter une approche, la juger, revenir en arrière proprement au lieu d'empiler des corrections. Ces points ne remplacent pas une sauvegarde : ils couvrent les fichiers modifiés \emph{par l'agent}, pas ceux que vous changez dans Excel, et ils disparaissent au bout d'un mois.8081\subsection{Sessions et mémoire}8283Une \textbf{session} est une conversation dans un dossier. Elle se poursuit d'une fois à l'autre : \texttt{claude --continue} (ou \texttt{-c}) rouvre la dernière, \texttt{claude --resume} (ou \texttt{/resume}) en propose la liste, avec les noms donnés par \texttt{/rename}. Toutes sont stockées dans \texttt{\textasciitilde/.claude/projects/}.8485La \textbf{mémoire}, elle, est ce qui survit aux sessions et se relit à chaque démarrage : le fichier \texttt{CLAUDE.md} du dossier (et son voisin \texttt{CLAUDE.local.md}), le fichier global \texttt{\textasciitilde/.claude/CLAUDE.md}, et une mémoire automatique où Claude Code note de lui-même ce qu'il apprend sur le projet \parencite{cc_memory}. Le chapitre suivant est entièrement consacré au premier, parce que c'est lui qui fait la différence entre un agent qui applique des conventions génériques et un agent qui applique celles du cours.8687\begin{okbox}[Ce que ce chapitre change dans votre pratique]88\begin{itemize}89  \item Vous lisez la commande avant d'approuver un \texttt{Bash} : c'est la seule chose qui agit vraiment.90  \item Vous surveillez \texttt{/context}, vous compactez avec une consigne, vous faites \texttt{/clear} entre deux tâches.91  \item Vous exigez des preuves brutes (valeurs de cellules, sorties de commandes) plutôt que des résumés, surtout ceux d'un sous-agent.92  \item Vous essayez sans crainte : \texttt{/rewind} est là ; mais vous gardez une copie datée du classeur avant toute session qui écrit.93\end{itemize}94\end{okbox}95
Files · c71fcb40713c92e0fe96d7767538023ec09c7b28
Menu

Theme