DeepSeek Superagent: el permiso para trabajar forma parte de la arquitectura
La pregunta difícil sobre un agente de programación proactivo es qué permite convertir un mensaje en trabajo.
Un comentario de GitHub puede contener un informe de error, una cita, una sugerencia o una petición de alguien que no puede autorizar cambios. Si los cuatro llegan al mismo bucle de programación, un modelo mejor no resuelve automáticamente el problema de permisos.
El prototipo dsh-superagent de DeepSeek hace visible ese problema en su arquitectura. Escucha un repositorio de GitHub y, opcionalmente, Feishu; evalúa la actividad entrante, crea unidades de trabajo autorizadas y asigna a cada una una sesión de ejecución y un directorio. Los resultados vuelven a la conversación original, posiblemente mediante un pull request.
Para mí, lo interesante es el mecanismo entre recibir un mensaje y empezar a ejecutar comandos.
Un prototipo que conviene leer con cuidado
El repositorio está publicado en la organización de DeepSeek en GitHub, pero su README lo presenta expresamente como un prototipo de investigación, no como un producto oficial de DeepSeek ni software preparado para producción. También indica que la implementación pública difiere de la interna y no implementa todas las direcciones descritas en el artículo de diseño.
Esa distinción debe mantenerse también en el titular. Es código útil para estudiar; su existencia no constituye una evaluación de fiabilidad o seguridad. No lo he desplegado ni he medido su comportamiento.
Contexto, permiso y ejecución cumplen funciones distintas
El modelo de dominio separa varios conceptos que resultan fáciles de mezclar en una demostración.
| Concepto | Función en el diseño documentado |
|---|---|
| Trigger | Evento entrante inmutable con metadatos de su fuente |
| Eval | Filtro y evaluación que deciden qué trabajo nuevo puede comenzar |
| Mandate | Alcance y contexto de política concedidos al aceptar el trabajo |
| Ticket | Unidad de trabajo autorizado que controla su ejecución e informes |
| Assignment | Vínculo entre un ticket y una instancia de ejecución |
Un ticket no es simplemente la conversación actual del modelo. Su estado es distinto del estado del ejecutor, y puede tener varias asignaciones a lo largo del tiempo. Eso permite mantener la continuidad cuando el trabajador que realizó el último paso ya ha terminado.
Simplificación editorial del modelo de dominio. La miniatura contiene una representación sin cambios del código Mermaid original, no una captura del producto. Fragmento: DeepSeek Harness Team, MIT; original y licencia.
El documento de autorización establece una distinción especialmente útil: los mensajes de una conversación suscrita pueden llegar como contexto sin conceder nueva autoridad. Un trabajador puede necesitar un resultado de CI u otra discusión para entender su tarea. Recibir esa información no debería ampliar sus permisos.
Los mensajes posteriores tienen reglas de propiedad y enrutamiento más detalladas que este resumen. La idea arquitectónica es representar por separado la entrega, la admisión y el alcance, en vez de deducirlos del hecho de que un modelo haya visto un texto.
Observar antes de aceptar trabajo inferido
Para el trabajo inferido a partir de la actividad, los modos documentados son off, observe y auto. En observe, el modo predeterminado, una evaluación positiva se registra como «would accept», sin aceptar la propuesta. En auto, una evaluación positiva puede aceptar trabajo inferido. Las peticiones explícitas siguen funcionando en todos los modos.
La última frase importa: observe no es un interruptor universal de solo lectura. Cambia el tratamiento del trabajo inferido, no el de cualquier petición posible.
Yo utilizaría esa diferencia para evaluar un despliegue: examinar qué eventos crearían tickets, quién los originó y qué alcance concedería el sistema. Un periodo de observación útil debería producir decisiones que el equipo pueda revisar antes de automatizar más la admisión.
Un directorio separado no es un sandbox
La documentación de despliegue señala un límite de forma muy directa: los dos presets gestionados se ejecutan con danger-full-access como el usuario del sistema operativo que opera el servicio. El trabajador puede ejecutar programas por ruta y leer su directorio personal. Los wrappers de credenciales eligen valores predeterminados; no aíslan el proceso. Para obtener aislamiento, la documentación recomienda una cuenta de sistema dedicada que solo contenga las credenciales del agente.
El documento de ejecución también indica que el auto-merge depende del prompt Delivery requirements; el host no contiene lógica de decisión específica para merges.
Son límites diferentes. Un mandato describe el trabajo autorizado dentro de la aplicación. Los permisos del sistema determinan a qué puede acceder el proceso. Y un prompt sobre la entrega no equivale a una regla del repositorio aplicada al intentar hacer merge.
Mi primer experimento sería un repositorio desechable, una cuenta dedicada, solicitantes seleccionados de forma restrictiva y protecciones explícitas del repositorio. Es un plan de evaluación, no una afirmación de que esos ajustes permitan ejecutar con seguridad cualquier código no confiable.
Leer el plano de control, además de la demostración
En mi nota sobre Lightpanda examiné qué puede quitar de la arquitectura un navegador construido para máquinas. Superagent plantea una pregunta complementaria: ¿qué estructura hay que añadir cuando un trabajador empieza a recibir tareas de un equipo?
Para mí, la aportación útil es la cadena explícita desde el evento de origen hasta la decisión, el mandato, el ticket y la ejecución. Ofrece lugares concretos donde revisar quién pidió un cambio, qué se aceptó y qué ocurrió cuando continuó la conversación.
Antes de pedir a un agente que haga más, querría poder inspeccionar esa cadena.
Fuentes
- Repositorio y límites del prototipo de investigación.
- Modelo de dominio y autorización.
- Ejecución y comportamiento de merge.
- Permisos de despliegue y límites de aislamiento.
Fuentes revisadas el 3 de noviembre de 2026, fijadas al commit 6337fc8. Sigue jpalanco.com para más notas sobre IA, ingeniería e investigación de seguridad.