Saltar al contenido

[ 00 / Cómo trabajo con agentes de IA ]

Las reglas con las que trabajan mis agentes de IA, y qué las hace cumplir

Sin atribución a la IABloqueo con flockCopias de trabajo efímerasRedactor de secretos

Un modelo de lenguaje se equivoca de formas que nadie puede prever, así que lo que mantiene a raya a un agente no es el prompt. Las reglas: cada agente trabaja en su propia copia de Git (un worktree), los secretos se borran de su salida antes de guardar nada, un segundo modelo revisa cada pull request y nada de lo que escribe un agente se fusiona sin que yo lo haya leído.

Leer la nota técnica fundacional→fail-closed-agent-harnesses

La prueba

De quién era el problema
El mío. Mis agentes de IA olvidan todo entre una sesión y la siguiente, y se equivocan de formas que nadie puede prever.
Qué lo limitaba
Una regla sin un mecanismo que la haga cumplir acaba rota, así que cada regla es un bloqueo, un filtro, un límite o una revisión, nunca un prompt.
Resultado medido
La cifra de Hive solo se publica junto al método que la respalda, y ese texto aún no ha salido.
Dónde comprobarlo
Las reglas, citadas de sus ficheros

[ 01 / Plano de Ejecución de Agentes Autónomos ]

Despacho de tareas, recuperación de conocimiento vía FastMCP, ejecución aislada en worktrees y revisión adversarial.

Autonomous agent execution within bounded platform harness An architecture diagram generated by Archify. Human Operator · task intent & triage · Architecture component · supervision Human Operator task intent & triage supervision dotf CLI (Go) · pools.deny & semaphores · Control & Knowledge Plane · kernel flock dotf CLI (Go) pools.deny & semaphores kernel flock Knowledge Vault · 1,660+ markdown nodes · Control & Knowledge Plane · frontmatter SSOT Knowledge Vault 1,660+ markdown nodes frontmatter SSOT Iris Engine · Go motor & NATS bus · Architecture component · agent factory Iris Engine Go motor & NATS bus agent factory Safety Brakes · loop breaker & HITL token · Architecture component · dynamic guard Safety Brakes loop breaker & HITL token dynamic guard Hive FastMCP · AST chunker & SQLite FTS5 · Architecture component · hybrid RAG Hive FastMCP AST chunker & SQLite FTS5 hybrid RAG Ephemeral Worktrees · zero-copy git isolation · Architecture component · sandboxed edits Ephemeral Worktrees zero-copy git isolation sandboxed edits Reviewer Pool · cross-model diff audit · Quality & Verification Gate · anti-sycophancy Reviewer Pool cross-model diff audit anti-sycophancy CI Eval Gate · golden dataset & merge · Quality & Verification Gate · regression block CI Eval Gate golden dataset & merge regression block dispatch memlink permit indexes inspect vault_ask provisions PR diff audit pass Control & Knowledge Plane Quality & Verification Gate Legend Frontend Backend Database Cloud Security Message bus External
Cada operación del agente corre en un Git worktree aislado. Las acciones destructivas activan una puerta HITL sincrónica. Las PRs son auditadas por una familia de modelos independiente antes de la revisión humana.

Generado en el build desde src/diagrams/harness.architecture.json

[ 02 / Cuatro reglas, cada una con un mecanismo detrás ]

Ninguna depende de que el modelo se porte bien: cada una es un cerrojo, un filtro, un límite o una revisión.

Aislamiento

Aislamiento y Concurrencia a Nivel de OS

Worktrees efímeros sobre el pool de objetos .git/objects. Semáforos flock a nivel de kernel previenen colisiones de ramas y condiciones de carrera entre agentes concurrentes.

  • ›Aislamiento por pool de objetos compartidos
  • ›Semáforos flock a nivel de kernel
  • ›Límites de tiempo monótonos anti-bloqueo
Seguridad

Redacción de Secretos en Flujo e Inyección JIT

Filtro en tiempo real que purga stdout/stderr antes de persistir transcripciones. Cero secretos en texto plano: descifrado Age/SOPS inyectado estrictamente en memoria.

  • ›Filtro redactWriter en memoria
  • ›Cifrado asimétrico Age/SOPS
  • ›Parada inmediata ante cualquier fuga
Salvaguardas

Frenos de Seguridad y Cap Atómico de PR

Disyuntor dinámico de bucles en AST para frenar recursiones. Puerta HITL criptográfica sincrónica para comandos destructivos y límite estricto de ~300 LOC ejecutables.

  • ›Disyuntor dinámico de bucles en herramientas
  • ›Puerta de aprobación humana sincrónica
  • ›Presupuesto de ~300 LOC ejecutables por PR
Verificación

Auditoría Adversarial Cruzada y Cero Auto-Merge

Familia de modelos independiente auditando cada diff para eliminar condescendencia. Prohibición estricta de auto-merge: todo cambio se fusiona bajo supervisión humana.

  • ›Revisión de diffs por modelos independientes
  • ›Doctrina estricta de cero auto-merge
  • ›Suites de regresión y mutación en CI

[ 03 / Flota Autónoma y Automatizaciones ]

Los agentes en producción, los protocolos que usan, los enrutadores de eventos y los sumideros de telemetría que funcionan en el clúster. La mayoría opera dentro de la malla — lo que ves aquí es el inventario real y los contratos de acceso.

13 entradas · 5 que puedes abrir desde aquí

Agentes

  • Agente curador

    Neural Hive · síntesis de memoria y ADR

    Repo privado
  • Agente de triaje SRE

    Clasificador reactivo de anomalías sobre LogQL

    Públicoabrir ↗
  • Agente de entrega GitOps

    Atestación y promoción de releases automatizadas

    Solo malla

Protocolos

  • Desarrollo guiado por especificaciones

    RFC formales, modelos de amenaza y puertas de archivado

    Repo privado
  • Puertas de revisión

    dotf pr triage-queue y pruebas de mutación

    Públicoabrir ↗
  • Sin deuda silenciosa

    Lecciones en vuelo y ADR registrados en tiempo real

    Públicoabrir ↗
  • Ningún secreto en claro

    Cifrado Age/SOPS e inyección en memoria

    Públicoabrir ↗

Flujos de trabajo

  • Triaje automático de incidentes SRE

    Webhook de Alertmanager → corte de logs → Slack

    Solo malla
  • Caducidad de secretos y copia en R2

    Copia proactiva y rotación de credenciales

    Solo malla
  • Reconciliación de los clústeres satélite

    Corrección de deriva en la topología de spokes K8s

    Solo malla

Telemetría

  • API de telemetría de Loki

    Telemetría del clúster y trazas con LogQL

    Solo malla
  • Monitor de salud y SLO

    Motor de SLO multi-burn-rate en vivo

    Solo malla
  • Actividad del código

    Código de la infraestructura L0

    Públicoabrir ↗

Migrado de mlorentedev/kubelab · 6cd9ab0

[ 04 / Las reglas, citadas de sus ficheros ]

Cuatro extractos, cada uno citado palabra por palabra de un fichero público y enlazado a la versión de la que se tomó.

Doctrinadotfiles/AGENTS.md

Las reglas que carga cada sesión de agente

Las reglas de trabajo que el arnés de dotfiles compila en las instrucciones de cada agente: sin atribución a la IA, sin fusión automática, y todo cambio de entorno escrito como código y comprobado idempotente.

dotfiles/AGENTS.mdmarkdown
- **No AI attribution** in git history or GitHub messages (commits, PRs, issues).
- No `Co-Authored-By` trailers referencing AI agents.
- No bot-style emojis or "Generated with" footers.
- All artifacts must appear human-authored.
[…]
- **Auto-merge is forbidden in every repository.** Never run `gh pr merge --auto`, never enable "Auto-merge" in the GitHub UI, and keep the repo setting `allow_auto_merge=false`. Auto-merge lands a PR the instant CI goes green — bypassing the human review gate in §1.
[…]
- **Zero manual operations:** Never perform ad-hoc manual changes on remote systems, servers, or cloud environments.
- **Strict IaC & Idempotence:** Every configuration or environment change MUST be codified as reproducible IaC (Ansible, Terraform, K8s manifests, dotfiles) and verified idempotent (`changed=0` on re-run).
Verificaciónkubelab/harness/reviewer-pool.json

Qué modelos pueden firmar una revisión adversarial

Una lista ordenada de los modelos que pueden revisar. Ninguno es de Anthropic, porque Claude escribe casi todos los cambios: quien revisa no puede ser quien implementa.

kubelab/harness/reviewer-pool.jsonjson
    "Standing rule: an adversarial review never runs on an Anthropic model. The",
    "reviewer must not be the implementer, and Claude implements nearly every",
    "change in this repo — BUG-074 was reviewed twice by claude-opus-5 before",
    "anyone noticed, which is the incident this file exists to prevent.",
[…]
  "pool": [
    {
      "id": "nan/deepseek-v4-flash",
      "runner": "pi",
      "provider": "nan",
      "model": "deepseek-v4-flash",
      "role": "primary",
[…]
    {
      "id": "agy/gemini-3.1-pro-high",
      "runner": "agy",
      "model": "gemini-3.1-pro-high",
      "role": "fallback",
Gobiernokubelab/harness/review-attestation.json

¿Hubo de verdad una revisión?

La puerta que decide si un cambio fue revisado. No pregunta quién lo revisó, y distingue el aviso de un revisor que no pudo revisar de una revisión.

kubelab/harness/review-attestation.jsonjson
    "The gate asks ONE question: did a review actually happen? It never asks who",
    "performed it or how good it was. A human review attests exactly as well as a",
    "bot's.",
[…]
    {
      "login": "coderabbitai",
      "declined_markers": [
        "rate limited by coderabbit.ai"
      ],
      "review_markers": [
        "No actionable comments were generated in the recent review"
      ],
Arquitecturakubelab/docs/adr/adr-053-platform-product-repos.md

El código en un repositorio, el despliegue en otro (ADR-053)

Cada repositorio de producto construye una imagen inmutable etiquetada con su sha y avisa a kubelab con un repository_dispatch; kubelab la promociona. Sondear el registro se valoró y se descartó.

kubelab/docs/adr/adr-053-platform-product-repos.mdmarkdown
# ADR-053: Platform↔Product Repository Structure & Deployment Topology
[…]
2. **Image promotion is push, event-driven — never polling.**
   - Each product's CI publishes an immutable `sha-<short>` image, then fires a **`repository_dispatch`** to kubelab, whose workflow runs `toolkit deployment promote` (ADR-046).
   - **Rejected — registry polling** (Argo CD Image Updater *or* an n8n registry poller). It reintroduces exactly what ADR-046 descoped (#692): a pull loop and non-git-honest state; for n8n it would also put a non-critical service on the delivery path (n8n down → no deploys). We control the image producers, so push is strictly better than pull.
ANÁLISIS TÉCNICO EN PROFUNDIDAD

Fail-Closed Harnesses for Autonomous Coding Agents

Qué se rompe cuando los LLMs tocan infraestructura real y las fronteras Unix necesarias para contenerlos: aislamiento de worktree, locks en el kernel y colas de triaje mecánico.

Leer la nota técnica→