06/Documentation
Durable agents en el teléfono
Aspecto de la sección, las conversaciones, las preguntas y los recibos de un durable agent
Experimental. Lo que un agente duradero muestra en el teléfono puede cambiar, o la funcionalidad puede eliminarse, en una versión menor posterior. Durable agents indica el criterio que decide si se mantiene.
Esta página muestra cada lugar donde aparece un agente duradero en el teléfono: su fila en el dashboard, su lista de conversaciones, sus preguntas, el chat, sus starters y sus pushes. Durable agents asocia primero un agente duradero.
Un agente duradero dibuja un control solo para aquello que declaró poder hacer en su hello. Una fila a continuación que nombre un control asume que el agente duradero lo declaró.
La sección Durable agents en el dashboard
Cada agente duradero es una fila en una sección Durable agents, separada de sus espacios.

| parte de la fila | lo que muestra |
|---|---|
| Línea 1 | El nombre del agente durable desde sources.json, y una insignia Experimental |
| Línea 2 | Su runtime, el nombre que el agente durable se da a sí mismo en su hello, o bien durable. Luego local o remote |
| Borde derecho, listo | El recuento de sus conversaciones abiertas y, en el color de requiere atención, el recuento de las que esperan respuesta. El segundo recuento se oculta si es cero |
| Borde derecho, no listo | La palabra Starting, Unreachable o Version mismatch, y sin recuentos |
Un agente durable al que se accede mediante su socket, o mediante http://127.0.0.1 o http://localhost, es local. Cualquier otra URL es remote.
La sección se ubica debajo de sus espacios. Pasa a ubicarse arriba mientras algún agente durable tenga una conversación que requiera atención, y vuelve abajo cuando se responde la última. Si no hay ningún agente durable conectado, la sección no se muestra.
Con "Mostrar solo paneles que requieren atención" activado, la sección lista únicamente los agentes durables que esperan respuesta. Pulse una fila en cualquier estado para abrir la lista de conversaciones de ese agente durable.
La lista de conversaciones
El inicio de un agente durable lista sus conversaciones del mismo modo que una aplicación de mensajería lista sus chats.

Lo que requiere atención aparece primero, luego las demás conversaciones abiertas, ordenadas de más reciente a más antigua. Las cerradas siguen debajo de la etiqueta Cerradas. Cada fila muestra el título, su marca de estado, la hora de su última actividad y una línea debajo: la pregunta en espera o, en su defecto, el subtítulo del agente durable. Una fila en espera también contabiliza sus preguntas abiertas. Una fila sin título muestra "Conversación sin título".
Pulse una fila abierta para abrirla en Chat. Pulse una fila cerrada para verla en modo de solo lectura. Una conversación cerrada incluye un botón Reabrir si el agente durable puede reabrirla.
Las filas abiertas provienen de los datos propios del panel, por lo que se representan de inmediato. Las cerradas provienen del agente durable, al que Collie consulta una vez por visita y de nuevo cuando una conversación se abre o se cierra, nunca en cada sondeo.
| al pie de la lista | cuando |
|---|---|
| Cargar más | El agente durable tiene más de 100 conversaciones. Cada pulsación lee las 100 siguientes |
| "Este agente durable no mantiene una lista de sus conversaciones." | El agente durable respondió que no mantiene una lista |
| "El agente durable no respondió. Inténtelo de nuevo en un momento." | El agente durable no respondió a la lectura |
| "El agente durable utiliza wire v2, este Collie utiliza v1. Actualice Collie o el SDK del agente." | Collie rechazó el agente durable por su versión de wire (Comprobantes) |
| "No se pudieron cargar las conversaciones. Inténtelo de nuevo." | La lectura falló en el trayecto |
Un agente duradero que no guarda historial muestra solo sus conversaciones abiertas, sin el grupo Cerradas y sin notas. Una lista ya dibujada permanece dibujada si una lectura posterior falla.
Una pregunta en el teléfono
La pregunta de un agente duradero es una tarjeta en el chat, debajo de la llamada a la herramienta a la que corresponde.

El encabezado indica el agente duradero: "Needs your answer · desk". Si el agente duradero configuró una expiración, la línea bajo el título muestra la cuenta regresiva: "Expires in 4 min", luego "Expires in 40 s" y después "Expired". Pasada la expiración, los botones permanecen y el agente duradero responde por sí mismo si se pulsa tarde.
| tipo | lo que muestra la tarjeta | límites |
|---|---|---|
permission | Un botón por opción, según la terminología de Collie: Allow, Always allow, Deny o Cancel. La etiqueta propia del agente duradero aparece como una segunda línea tenue | Hasta 6 opciones |
choice | Una fila por opción. Una pulsación envía la selección. Con multiple, las filas se alternan bajo "Pick any number" y Send envía el conjunto | Hasta 8 opciones |
text | Una línea para escribir, un contador como "12 of 500" y Send | 500 caracteres, o el límite del agente duradero hasta 2000 |
form | Sus campos apilados bajo un solo Send: una línea de texto, una selección de una lista o un interruptor. Los campos obligatorios indican Required | Hasta 6 campos |
"Always allow" requiere dos pulsaciones. La primera cambia el botón a "Tap again to always allow" y el nombre de la herramienta. La segunda lo envía. Collie no lo ofrece si la pregunta no especifica ninguna herramienta.
Si Collie tuvo que recortar o limpiar el texto del agente duradero, la tarjeta indica "Text shortened" y no ofrece "Always allow", ya que no se mostró el texto completo.
Una tarjeta de un tipo que este Collie no reconoce muestra su texto e indica "This ask cannot be answered from the phone." Una conversación dibuja sus primeras 5 preguntas como tarjetas, y una fila "Show N more" abre el resto.
Qué ocurre tras una pulsación
Cada pulsación lleva un ID de solicitud, y solo una pulsación envía una respuesta.
| qué ocurrió | qué indica la tarjeta | qué hacer |
|---|---|---|
| El agente duradero tomó la respuesta | Nada: la tarjeta se cierra | Nada |
| El agente duradero decidió primero | "Decided in the durable agent." | Nada. El chat conserva una línea para ello |
| La pregunta expiró primero | "Expiró antes de recibir respuesta." | Nada. El chat conserva una línea para ello |
| Otra respuesta llegó primero | "Ya respondida. Esta tarjeta desaparece en la próxima actualización." | Nada |
| La pregunta no estaba abierta y el durable agent no indicó el motivo | "No aceptada. La pregunta puede volver a aparecer en un momento." | Espere. Un durable agent que se reinició vuelve a preguntar |
| La pregunta cambió mientras respondía | "Esta consulta cambió. Léala de nuevo y pulse una respuesta." | Lea el nuevo formulario y vuelva a pulsar |
| Es posible que la respuesta no haya llegado | "No hay certeza de que la respuesta haya llegado. Reintentar la envía una vez más." | Pulse Reintentar. Envía el mismo id de solicitud, por lo que el durable agent recibe el aviso una sola vez |
| Un reintento encontró la pregunta cerrada o modificada | "Puede que ya esté aplicada. Revise el chat." | Revise el chat |
| Collie rechazó la respuesta | El motivo de Collie, o bien "La respuesta fue rechazada." | Lea el motivo |
| La máquina del durable agent ejecuta una versión anterior de Collie | "Esta máquina ejecuta una versión anterior de Collie y no puede recibir respuestas aquí. Actualícela o responda en el durable agent." | Actualice esa máquina |
Comprobantes
Collie indica cómo finalizó una pregunta cuando no se respondió, y por qué se rechaza un durable agent.

| caso | lo que se ve |
|---|---|
| La pregunta tiene un plazo de expiración | La tarjeta muestra el tiempo restante debajo de su título |
| Se pulsó después de que el durable agent decidiera o tras la expiración | La tarjeta se bloquea y muestra "Resuelto en el durable agent." o "Expiró antes de recibir respuesta." |
| Una pregunta expiró o el durable agent la resolvió, sin interacción por su parte | Una línea en el chat: "Timed out before an answer:" o "Decided in the durable agent:", seguida del título de la pregunta |
| Collie rechazó el durable agent por su versión de protocolo (wire) | Un cuadro de advertencia en el inicio del durable agent y el texto Version mismatch en su fila del panel |
Una pregunta respondida desde el teléfono, o que finalizó porque se detuvo el turno, no genera dicha línea. Su interacción ya tenía su tarjeta.

El cuadro de advertencia indica la versión de protocolo que utiliza cada extremo, por ejemplo "Program speaks wire v2, this Collie speaks v1. Update Collie, or the durable agent's SDK." Actualice el extremo desactualizado. Versiones contiene la regla.
El chat
La conversación de un durable agent se abre en Chat, su única vista.
| elemento del durable agent | lo que dibuja Chat |
|---|---|
user | Su propia línea |
reply | La respuesta del agente |
thinking | El razonamiento del agente |
notice | Una nota breve en el hilo |
markdown | Markdown renderizado: encabezados, listas, énfasis, código y enlaces. El HTML sin procesar se muestra como texto |
code | Un bloque de código, con su lenguaje si el durable agent especificó uno |
link | Una línea de enlace con su etiqueta o, en su defecto, la dirección. Solo enlaces https:// |
tool | Una llamada a herramienta: en ejecución, completada con su salida, fallida o denegada |
Un elemento reply, thinking, notice o markdown que todavía está creciendo muestra un cursor al final y ninguna marca de tiempo. El cursor desaparece al llegar el texto final. Un turno detenido muestra la nota "stopped".
Su propia línea
Su línea aparece en el hilo en el instante en que se pulsa Enviar, junto a un pequeño reloj. Cuando llega la copia propia del durable agent, esta sustituye a la línea.
| estado | lo que muestra la línea |
|---|---|
| Enviando o enviado | El reloj. El editor muestra "Sent" una vez recibido por el durable agent |
| La respuesta nunca llegó | "Sending, not confirmed". Volver a enviar reintenta con el mismo identificador de solicitud |
| Rechazado, o el turno avanzó | "Not sent", y el texto vuelve al campo de entrada |
Si un durable agent no devuelve el identificador de solicitud, se empareja mediante el mismo texto en un plazo de 30 segundos. Una línea que el durable agent nunca devuelve deja de mostrarse tras 10 minutos.
Mientras su línea sea el elemento más reciente del hilo y el durable agent no haya respondido, una fila de tres puntos indica que está procesando.
El encabezado
El encabezado tiene dos líneas. La línea 1 muestra el título de la conversación y la insignia Experimental.
| la línea 2 muestra | cuando |
|---|---|
| "Paso 2 de 3: Guardar una nota" | El agente duradero reporta pasos y hay uno en ejecución |
| "42%: subiendo" | El agente duradero reporta un porcentaje, junto con su etiqueta |
| El subtítulo del agente duradero | Sin progreso, o todos los pasos han finalizado |
| El espacio de trabajo | El agente duradero no define ninguno de estos valores |
El progreso se muestra solo mientras la conversación trabaja o espera una acción del usuario.
La barra de acciones
La barra contiene Steer y Stop, además de hasta 4 botones propios del agente duradero.
Steer envía el texto al turno en ejecución en lugar de iniciar uno nuevo. Stop finaliza el turno en ejecución. Los botones que no pueden operar en ese momento se atenúan en su lugar, evitando desplazamientos.
| botón del agente duradero | la regla |
|---|---|
| Etiqueta | 16 caracteres como máximo |
| Icono | Uno de 12: play, pause, check, x, refresh, archive, flag, star, send, note, search, more. Cualquier otro nombre no dibuja ningún icono |
| Ocupado | Un indicador de carga y sin respuesta al toque |
| Desactivado | Atenuado y sin respuesta al toque |
Al tocarlo, se designa el turno más reciente registrado por el teléfono. Si la conversación ha avanzado, no se ejecuta nada y el teléfono lo indica: "The conversation moved on, so the action did not run." Verifíquelo y toque el botón de nuevo si aún lo requiere.
Elementos ausentes en el panel de un agente duradero
Un agente duradero no tiene pantalla, por lo que su panel carece de vista de Terminal, barras de pestañas o paneles, y botones Keys, Type o Quick. Su menú no incluye History, Pane settings ni Pin to top row. La opción Close en el menú figura como "Close conversation".
Nueva conversación e iniciadores
La página New de un agente duradero se titula New conversation y enumera los iniciadores del agente duradero.
Un iniciador no recibe carpetas ni texto: el agente duradero decide dónde operar. Al tocar uno, el agente duradero abre una nueva conversación. La página no ofrece agentes, shells ni comandos de la máquina. Un agente duradero sin iniciadores muestra el mensaje "This machine's durable agent offers no starters yet."
Push
Una pregunta puede enviar una notificación push al teléfono, dentro de los límites de cada agente duradero.
| límite | límite | superado |
|---|---|---|
| Un panel | 3 notificaciones push por minuto | La pregunta se muestra en el teléfono y no envía notificación push |
| Un agente duradero en una máquina | 10 notificaciones push por minuto | Lo mismo |
| Un agente duradero en una máquina | 30 notificaciones push por hora | Una notificación push, "A durable agent on {host} is raising many asks", y luego ninguna notificación push de ese agente duradero durante una hora |
La notificación push indica "Permission needed in" y el nombre del panel. Un agente duradero puede agregar su propio título, de 60 caracteres como máximo, y una línea, de 120 como máximo. Collie envía una notificación push por pregunta una sola vez por máquina, agente duradero y llamada a herramienta, de modo que una pregunta repetida tras reiniciar se muestra y no envía notificación push. Notificaciones push de un agente duradero contiene el resto.
Enmascaramiento
Con el enmascaramiento de secretos activado (COLLIE_REDACT, activado por defecto), Collie enmascara secretos en los títulos y subtítulos de la lista de conversaciones de un agente duradero.
En una crew
El panel del lead tiene una sección Durable agents por cada máquina de la crew. El agente duradero de un miembro añade el nombre del miembro a la línea 2, por ejemplo pi-durable, local, workshop, y los propios agentes duraderos del lead no nombran ninguna máquina. Una pregunta en cualquier máquina mueve esa única sección por encima de los espacios. Agentes duraderos en una crew indica quién responde de qué.