pagent
Aperçu
Trouve un agent paseo et lit sa conversation, sans avoir à redécouvrir à chaque fois où paseo stocke les choses. pagent ne fait que lire : il ne démarre, n'arrête, ne dirige ou ne relance jamais un agent, et il ne demande jamais au démon de recharger un agent fermé.
Invocation
SKILL=<répertoire de base de cette compétence>/pagent.py # le harnais imprime le répertoire de base ci-dessus
python3 $SKILL 11111111-1111-4111-8111-111111111111 # en-tête : statut, répertoire de travail, modèle, chemin de transcription
python3 $SKILL 11111111 --task # + chaque instruction donnée par l'utilisateur
python3 $SKILL 11111111 -t -n 20 # + les 20 derniers tours
python3 $SKILL 11111111 -t --full # tours sans troncature
python3 $SKILL "export de factures" # recherche par titre
python3 $SKILL # tous les agents, du plus récent au plus ancien
Une requête est un ID, un préfixe d'ID ou une sous-chaîne (insensible à la casse) du titre. Plusieurs
correspondances s'affichent sous forme de liste ; une seule correspondance affiche la vue détaillée.
python3 $SKILL --help imprime l'utilisation.
Étapes
- Identifier l'agent. Exécutez la requête sans indicateur : l'en-tête montre le statut, le répertoire de travail, le modèle et le chemin de transcription. Une liste signifie que la requête était ambiguë ; précisez-la avec un ID ou un fragment de titre plus long.
- Lire ce qui lui a été demandé.
--taskimprime chaque instruction donnée par l'utilisateur, pas seulement la première. La première ligne nomme le sujet ; les corrections deux messages plus tard portent les décisions (« utilise l'option B, mais garde la limite de tentatives à trois »). Les deux sont imprimées ; le préambule du harnais et les corps de compétences injectés ne le sont pas. Ceci est particulièrement important lorsque l'on reprend le travail d'un agent — voir la compétenceptakeover. - Lire jusqu'où il est allé.
-t -n <nombre_tours>imprime la fin de la conversation ; ajoutez--fulllorsqu'un tour a été tronqué. La lecture est sans risque pendant que l'agent s'exécute car la transcription est en mode ajout seulement. - Vérifier les voisins. Un agent dont le
cwdcorrespond au vôtre peut être en train de modifier les mêmes fichiers. Exécutezgit statusavant de supposer qu'une différence inattendue est la vôtre.
Avec -t ou --task, une transcription manquante se termine avec un code non nul. Un 0 silencieux serait
interprété comme « l'agent n'a rien dit », ce qui est la mauvaise conclusion à donner à quiconque
reconstruit une affectation.
Où se trouvent les données
- Métadonnées de l'agent :
~/.paseo/agents/<espace_de_travail>/<id>.json— titre,lastStatus(running/idle/ …),cwd, modèle,requiresAttention, horodatages. - Conversation : pas dans ce fichier. Elle se trouve avec le harnais qui l'a écrite, indexée par
persistence.sessionId:- Claude Code —
<config>/projects/<cwd_échappé>/<sessionId>.jsonl. claude-rotate garde un répertoire de configuration par compte, il peut donc se trouver sous~/.claudeou sous n'importe quel~/.config/claude-rotate/configs/*/— le script parcourt tous les globs au lieu de deviner le chemin échappé. - Codex —
~/.codex/sessions/<a>/<m>/<j>/rollout-<estampille>-<sessionId>.jsonl, une forme d'enregistrement différente (payload.type) que l'analyseur traite en parallèle de celle de Claude. L'archivage d'un agent déplace lerolloutdans le répertoire plat~/.codex/archived_sessions/. - Antigravity —
sessionIdest un wrapperplugin:{…"conversationId":…}; l'historique est~/.gemini/antigravity-cli/brain/<conversationId>/.system_generated/logs/transcript_full.jsonl(enregistrements indexés parstep_index). Pasconversations/<id>.db, celui-ci est en protobuf. Les agents de l'ancien fournisseurantigravity-acpn'ont jamais écrit ce journal, donc ils n'ont pas d'historique lisible.
- Claude Code —
Parler à un agent, attendre un agent
Cette compétence ne fait que lire. Pour le reste :
- Parler :
paseo send <id> "<texte>" --behavior steer --no-wait. La CLI au niveau de l'agent et les appelssend_agent_promptutilisent par défaut le pilotage (steer) ; un comportement explicite fonctionne également en dehors d'un agent. Le pilotage peut basculer en interruption lorsque le fournisseur ne peut pas l'accepter (par exemple, pendant une compaction).--no-waitretourne après l'envoi ; il ne met pas le message en file d'attente derrière le tour. - Ne relancez rien par accident :
paseo sendrelance un agent archivé, vérifiez doncArchivedAtdanspaseo inspect <id> --jsond'abord. Ne relancez jamais un agent archivé uniquement pour lui remettre un rapport ; laissez l'information avec son travail (un TODO, un protocole ou un commit), ou informez l'utilisateur. - Attendre :
paseo-notify <id>, puis terminez votre tour — un message arrive lorsqu'il s'arrête. En dehors de paseo :paseo wait <id> --json, en arrière-plan ; lisezstatus(idle,permission,error,timeout) depuis le JSON — le code de sortie est 0 pour tous. N'attendez jamais avecsleep, Monitor,/loopou une scrutation depaseo ls/logs/inspect.
Erreurs courantes
| Erreur | Correction |
|---|---|
| Reprendre le travail sur la seule demande initiale | --task imprime aussi toutes les corrections ultérieures ; elles portent les décisions |
paseo logs pour lire un agent fermé ou archivé | Cela force le démon à recharger la session de l'agent juste pour la lire ; utilisez cette compétence, qui ne fait que lire les fichiers |
| Interpréter une sortie silencieuse comme « l'agent n'a rien dit » | Une transcription manquante se termine avec un code non nul ; vérifiez le code de sortie et le chemin de transcription dans l'en-tête |
| Envoyer un rapport à un agent archivé | paseo send le relance ; vérifiez d'abord ArchivedAt et laissez le rapport avec son travail à la place |
Attendre un agent avec sleep, Monitor, /loop ou des appels répétés à paseo ls/logs/inspect | paseo-notify <id> et terminez votre tour |
Considérer une différence inattendue comme vôtre alors que l'agent partage votre cwd | Vérifiez git status ; l'agent peut être en train de modifier les mêmes fichiers |