pagent
Resumen
Encuentra un agente de paseo y lee su conversación, sin tener que rediscover cada vez dónde guarda paseo las cosas. pagent solo lee: nunca inicia, detiene, dirige ni revive un agente, y nunca le pide al daemon que recargue uno cerrado.
Invocación
SKILL=<directorio base de esta skill>/pagent.py # el harness imprime el directorio base arriba
python3 $SKILL 11111111-1111-4111-8111-111111111111 # cabecera: estado, cwd, modelo, ruta de transcripción
python3 $SKILL 11111111 --task # + cada instrucción que el usuario le dio
python3 $SKILL 11111111 -t -n 20 # + los últimos 20 turnos
python3 $SKILL 11111111 -t --full # turnos sin truncar
python3 $SKILL "invoice export" # búsqueda por título
python3 $SKILL # todos los agentes, del más reciente al más antiguo
Una consulta es un id, un prefijo de id o una subcadena del título (sin distinción de mayúsculas). Múltiples coincidencias se muestran como una
lista; exactamente una muestra la vista detallada. python3 $SKILL --help imprime el uso.
Pasos
- Resolver el agente. Ejecuta la consulta sin banderas: la cabecera muestra el estado, el directorio de trabajo, el modelo y la ruta de la transcripción. Una lista significa que la consulta era ambigua; ajústala con un id o un fragmento de título más largo.
- Leer qué se le pidió.
--taskimprime cada instrucción que el usuario le dio, no solo la primera. La línea de apertura nombra el tema; las correcciones dos mensajes después llevan las decisiones ("usa la opción B, pero mantén el límite de reintentos en tres"). Se imprimen ambas; el preámbulo del harness y los cuerpos de skills inyectados no se imprimen. Esto es más importante al tomar el trabajo de un agente — ve la skillptakeover. - Leer hasta dónde llegó.
-t -n <turnos>imprime el final de la conversación; añade--fullcuando un turno fue truncado. Leer es seguro mientras el agente se ejecuta, porque la transcripción solo se añade al final. - Revisar los vecinos. Un agente cuyo
cwdcoincida con el tuyo puede estar editando los mismos archivos. Ejecutagit statusantes de asumir que un diff inesperado es tuyo.
Con -t o --task, una transcripción faltante sale con código distinto de cero. Un 0 silencioso se leería como "el agente no dijo nada",
que es la conclusión equivocada para quien reconstruye una asignación.
Dónde viven los datos
- Metadatos del agente:
~/.paseo/agents/<workspace>/<id>.json— título,lastStatus(running/idle/ …),cwd, modelo,requiresAttention, marcas de tiempo. - Conversación: no en ese archivo. Vive con el harness que la escribió, indexada por
persistence.sessionId:- Claude Code —
<config>/projects/<cwd-escapado>/<sessionId>.jsonl. claude-rotate mantiene un directorio de config por cuenta, por lo que puede estar bajo~/.claudeo bajo cualquier~/.config/claude-rotate/configs/*/— el script explora todos en lugar de adivinar la ruta escapada. - Codex —
~/.codex/sessions/<a>/<m>/<d>/rollout-<stamp>-<sessionId>.jsonl, una forma de registro diferente (payload.type) que el parser maneja junto con la de Claude. Archivar un agente mueve el rollout a~/.codex/archived_sessions/plano. - Antigravity —
sessionIdes un contenedorplugin:{…"conversationId":…}; el historial está en~/.gemini/antigravity-cli/brain/<conversationId>/.system_generated/logs/transcript_full.jsonl(registros indexados porstep_index). No enconversations/<id>.db, ese es protobuf. Los agentes del proveedorantigravity-acpanterior nunca escribieron ese registro, por lo que no tienen historial legible.
- Claude Code —
Hablar con un agente, esperar a uno
Esta skill solo lee. Para lo demás:
- Hablar:
paseo send <id> "<texto>" --behavior steer --no-wait. La CLI con ámbito de agente y las llamadas asend_agent_promptpor defecto dirigen; un comportamiento explícito también funciona fuera de un agente. La dirección puede caer en interrupción cuando el proveedor no puede aceptarla (por ejemplo, durante la compactación).--no-waitretorna después del envío; no encola el mensaje detrás del turno. - No revivir nada por accidente:
paseo sendrevive un agente archivado, así que revisaArchivedAtenpaseo inspect <id> --jsonprimero. Nunca revivas un agente archivado solo para entregar un informe; deja la información con su trabajo (un TODO, protocolo o commit), o informa al usuario. - Esperar:
paseo-notify <id>, luego finaliza tu turno — llega un mensaje cuando se detenga. Fuera de paseo:paseo wait <id> --json, en segundo plano; leestatus(idle,permission,error,timeout) del JSON — el código de salida es 0 para todos. Nunca esperes consleep, Monitor,/loopo un sondeo depaseo ls/logs/inspect.
Errores comunes
| Error | Solución |
|---|---|
| Tomar el control solo con la solicitud inicial | --task imprime también todas las correcciones posteriores; ellas llevan las decisiones |
paseo logs para leer un agente cerrado o archivado | Hace que el daemon recargue la sesión del agente solo para leerla; usa esta skill, que solo lee archivos |
| Leer una salida silenciosa como "el agente no dijo nada" | Una transcripción faltante sale con código distinto de cero; revisa el código de salida y la ruta de la transcripción en la cabecera |
| Enviar un informe a un agente archivado | paseo send lo revive; revisa ArchivedAt primero y deja el informe con su trabajo en su lugar |
Esperar a un agente con sleep, Monitor, /loop o paseo ls/logs/inspect repetidos | paseo-notify <id> y finaliza tu turno |
Tratar un diff inesperado como tuyo cuando el agente comparte tu cwd | Revisa git status; el agente puede estar editando los mismos archivos |