Revisión GUION-v2 Hermes Agent — Inconsistencias y datos verificados
Revisión GUION-v2 Hermes Agent — Inconsistencias y datos verificados
Sección titulada «Revisión GUION-v2 Hermes Agent — Inconsistencias y datos verificados»Fecha: 2026-05-23 Nivel de verificación: TODO verificado contra fuente primaria (curl/grep sobre HTML crudo, no summaries).
Fuentes consultadas directamente:
- GitHub API: repo metadata, issues #7826, #6320, #496, #17619 (curl raw JSON)
- docs.nousresearch.com:
/architecture,/profiles,/security,/mcp,/docker,/skills,/user-stories,/messaging(curl HTML crudo + parser) - github.com/NousResearch/hermes-agent: git tree recursivo (conteo de tools y skills)
- agentskills.io home + WebSearch (timeline Anthropic)
- rhelmer.org/blog/hermes-aws-lambda (WebFetch)
- repello.ai/blog/hermes-agent-security (WebFetch)
- harness_corregido.sbv del propio canal (verificación de timestamp clip Fowler)
1. DATOS VERIFICADOS LITERAL ✅
Sección titulada «1. DATOS VERIFICADOS LITERAL ✅»| Claim en guion | Fuente real (verificada con curl) | Estado |
|---|---|---|
| ”Más de 160,000 estrellas” | GitHub API: 164,049 stars | ✅ |
| Licencia MIT | GitHub API | ✅ |
| Tagline “The self-improving AI agent” | docs/ raw HTML | ✅ |
| Nunca dice “harness” en doc oficial | 0 ocurrencias en 8 páginas core (architecture/profiles/security/mcp/docker/skills/features-overview/messaging). Solo aparece en user-stories.html como referencia a 3rd party (“Browser Harness”, “custom harness” de usuarios) — NUNCA como auto-descripción | ✅ |
| Progressive Disclosure 3 niveles, ~3K tokens | skills.html confirma | ✅ |
| Self-improving tras 5+ tool calls | skills.html confirma | ✅ |
| 7 capas de defensa | security.html: “The security model has seven layers” (cita literal) | ✅ |
| Hardline blocklist unbypassable | security.html: “regardless of —yolo / approvals.mode: off / Cron jobs / User explicitly clicking ‘allow always’“ | ✅ |
| YOLO mode bypassa approval (excepto hardline) | security.html confirma | ✅ |
| Issue #7826 — 4 críticos, 9 high en v0.8.0 | GitHub API: título exacto “Security Audit: 4 Critical, 9 High severity findings in default configuration” | ✅ |
| Issue #6320 — session contamination | GitHub API: “Bug: Session/Memory contamination between multiple agent instances”, autor jeanjeferson | ✅ |
| Issue #496 — promptware | GitHub API: autor teknium1 (founder Nous Research), título “Promptware Defense — Context Window Hardening Against C2/Brainworm-Style Attacks” | ✅ |
| Issue #17619 — 112/129 sesiones (87%) | GitHub API: título “Behavioral audit: approval gate violated in 87% of sessions (129-session history)”, autor tcollins024, body confirma “112 of 129 sessions contain at least one violation (86.8%). 573 total violations detected” | ✅ |
| “One AIAgent class serves CLI, gateway, ACP, batch, and API server” | architecture.html: cita EXACTA carácter a carácter ✅ + sigue “Platform differences live in the entry point, not the agent” | ✅ |
| Profiles NO aíslan filesystem | profiles.html: cita real es “Profiles do not sandbox the agent. On the default local terminal backend, the agent still has the same filesystem access as your user account.” | ⚠️ semánticamente correcto pero la cita exacta del guion fusiona dos frases |
| Docker recomendado oficialmente “one container per profile” | docker.html confirma textualmente | ✅ |
| “Never run two gateways against same data directory” | docker.html: cita literal | ✅ |
hermes mcp serve expone tools | mcp.html: “The MCP server exposes 10 tools” (10, no todos los 70+) | ✅ pero la frase del guion sugiere más capacidades |
| 237 user stories, 9 enterprise | user-stories.html: header dice “237 stories 15 categories 11 sources”. Categoría “Enterprise 9” en breakdown oficial. 9/237 = 3.79% ≈ 3.8% exacto | ✅ |
| EU AI Act requiere plugin Ombre | user-stories.html: story “EU AI Act compliance via Ombre” by @lauratom | ✅ |
| 20+ plataformas de mensajería | messaging.html: tabla lista 22 plataformas (Telegram, Discord, Slack, Google Chat, WhatsApp, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, WeCom Callback, Weixin, BlueBubbles, QQ, Yuanbao, Microsoft Teams, LINE, browser) | ✅ |
| 70+ herramientas integradas | NO está afirmado textualmente en docs. Conteo real: 24 *_tool.py files en el repo, cada uno con múltiples sub-tools (browser_tool=10, mcp=10, etc.). Total agregado plausible ~70 pero no oficial | ⚠️ defensible numéricamente, sin fuente literal |
| Múltiples backends serverless | README oficial línea 25 (verificado raw): “Seven terminal backends — local, Docker, SSH, Singularity, Modal, Daytona, and Vercel Sandbox. Daytona and Modal offer serverless persistence”. También línea 15: “serverless infrastructure that costs nearly nothing when idle” | ✅ FUENTE OFICIAL |
| 40% más rápido tareas repetitivas | user-stories.html: story de @denis_skripnik “Telegram → Modal serverless. 40% faster on research tasks.” con benchmark TokenMix de Krzysztof Słomka | ✅ con fuente primaria real |
| SKILL.md adoptado “en 12 semanas” cross-vendor | Anthropic publicó 18-dic-2025. 32 herramientas adoptaron para marzo 2026 (≈12 semanas). Hoy mayo 2026: agentskills.io lista ~40 adopters. Marco temporal correcto pero “12 semanas” es momentum inicial, no fecha de cierre | ⚠️ defensible pero impreciso |
| Skills auto-creados verdict “ask” no “block” | Confirmado en body del issue #7826 (Anic888) — NO en repello.ai que solo habla de governance general | ⚠️ atribución incorrecta a repello.ai |
2. INCONSISTENCIAS / ERRORES — ACCIÓN REQUERIDA
Sección titulada «2. INCONSISTENCIAS / ERRORES — ACCIÓN REQUERIDA»🟡 IMPORTANTE 1 — Sección [20:00-22:00] “POR QUÉ NO CLOUD RUN” — el argumento práctico es correcto, el lenguaje absoluto es atacable
Sección titulada «🟡 IMPORTANTE 1 — Sección [20:00-22:00] “POR QUÉ NO CLOUD RUN” — el argumento práctico es correcto, el lenguaje absoluto es atacable»Revisión de esta crítica: Inicialmente la marqué como CRÍTICO contradiciendo el README oficial. Tras análisis más profundo, el guion está más cerca de la verdad práctica de lo que parecía. El problema NO es el argumento, es el lenguaje absoluto.
Lo que dice el README oficial (verificado):
- Línea 15: “Run it on a $5 VPS, a GPU cluster, or serverless infrastructure that costs nearly nothing when idle.”
- Línea 25: “Seven terminal backends — local, Docker, SSH, Singularity, Modal, Daytona, and Vercel Sandbox. Daytona and Modal offer serverless persistence — your agent’s environment hibernates when idle and wakes on demand.”
Lo que el README NO te dice — la verdad técnica:
El “serverless persistence” de Modal/Daytona aporta ahorro real SOLO si los usas como SaaS gestionados (modal.com / daytona.io) Y tu carga es bursty o tienes muchas sesiones paralelas.
| Escenario | VPS + Docker | Daytona/Modal SaaS | Daytona/Modal self-host en GCP/AWS |
|---|---|---|---|
| 1 usuario, agente personal | $5/mes | Pagas por minuto activo | $5/mes VPS igual |
| 100 sesiones paralelas | VM grande 24/7 | Pagas solo lo activo | VM grande 24/7 igual |
| 90% idle | Pagas 100% | Pagas ~10% | Pagas 100% igual |
Para un agente personal (el caso típico de Hermes), self-hostear Daytona en una VM de GCE es funcionalmente idéntico a Docker en un VPS — porque la VM sigue corriendo 24/7. El ahorro “serverless” solo aparece en SaaS gestionados con carga bursty.
Conclusión: El guion tiene razón en el caso práctico. El VPS de $5 sigue siendo el camino real para 9 de cada 10 casos. Pero el lenguaje absoluto “no es serverless / no es stateless / no escala a cero” sí es atacable porque contradice literalmente el README.
(Nota: rhelmer.org/blog/hermes-aws-lambda — citado en la tabla de verificación — NO es oficial. Es Robert Helmer, dev individual con un experimento Lambda. No te apoyes en él como fuente.)
Fix recomendado — suavizar el lenguaje, mantener el argumento:
“Su README destaca opciones serverless con Modal y Daytona — pero eso aplica cuando los usas como plataformas gestionadas y tu carga es bursty o tienes muchas sesiones paralelas. Para un agente personal con una sola sesión, ahorrar idle no significa nada — la VM cuesta lo mismo si corres Docker o si self-hosteas Daytona encima. Por eso en la práctica, el VPS de $5 sigue siendo el camino real para 9 de cada 10 casos. Cloud Run específicamente sí queda fuera, porque su modelo request/response stateless con /tmp efímero no es compatible con un agente que acumula estado — necesitarías migrar sessions a Firestore, skills a GCS, cron a Cloud Scheduler, y a ese punto ya no es Hermes nativo.”
Eso es honesto, técnicamente correcto, y no te deja expuesto al “pero el README dice serverless”.
🔴 CRÍTICO 2 — Fuente equivocada para “ask vs block” skills verdict
Sección titulada «🔴 CRÍTICO 2 — Fuente equivocada para “ask vs block” skills verdict»Verificación final: Leí repello.ai/blog/hermes-agent-security completo (vía WebFetch). NO menciona skills guard regex-only ni “ask vs block” para agent-created skills. Habla de governance general, manifest validation, capability deny-by-default.
La frase del guion es real, pero viene del issue #7826 body, donde Anic888 escribió textualmente:
“The skills guard is regex-only and agent-created skills get ‘ask’ verdict instead of ‘block’ for dangerous findings.”
Fix: Cambiar fuente de repello.ai/blog/hermes-agent-security a github.com/NousResearch/hermes-agent/issues/7826.
🟡 IMPORTANTE 3 — Cita literal de profiles está incompleta
Sección titulada «🟡 IMPORTANTE 3 — Cita literal de profiles está incompleta»Cita exacta verificada en HTML crudo de profiles.html:
“A
sandboxis what limits filesystem access. Profiles do not sandbox the agent. On the defaultlocalterminal backend, the agent still has the same filesystem access as your user account. A profile does not stop it from accessing folders outside the profile directory.”
El guion fusiona “Profiles do NOT isolate filesystem access” (paráfrasis) + cita parcial. La doc oficial usa “sandbox” no “isolate filesystem”. Y el matiz “On the default local terminal backend” es importante porque cuando usas Modal/Docker/Daytona como backend SÍ hay aislamiento. Omitirlo debilita tu propio argumento sobre Docker en la sección siguiente.
Fix: Usar la cita exacta:
“Profiles do not sandbox the agent. On the default local terminal backend, the agent still has the same filesystem access as your user account.”
🟡 IMPORTANTE 4 — “20 interfaces” en tabla arquitectura es inexacto
Sección titulada «🟡 IMPORTANTE 4 — “20 interfaces” en tabla arquitectura es inexacto»Verificación: architecture.html confirma 5 interfaces (CLI, gateway, ACP, batch, API server). Los 22 plataformas son lo que el gateway expone, no interfaces de AIAgent.
Fix tabla:
Hermes: 1 AIAgent → 5 interfaces (CLI/gateway/ACP/batch/API) → 22 plataformas vía gateway → 1 proceso🟡 IMPORTANTE 5 — Timestamp clip Harness Engineering
Sección titulada «🟡 IMPORTANTE 5 — Timestamp clip Harness Engineering»Verificación final en harness_corregido.sbv:
- El quote del guion termina en “Controles que observan después de que el agente actúa” → corresponde a 0:08:17.920 exactamente
- De 8:17–8:40 viene contenido sobre frenos y tipos computacional/inferencial que NO está en el quote
Fix: Cambiar [CLIP: Harness Engineering — 7:49 a 8:40] a [CLIP: Harness Engineering — 7:49 a 8:17]. Texto del clip queda igual.
🟡 IMPORTANTE 6 — MCP serve expone messaging, no “las herramientas de Hermes”
Sección titulada «🟡 IMPORTANTE 6 — MCP serve expone messaging, no “las herramientas de Hermes”»Verificación: mcp.html dice literal:
“The MCP server exposes 10 tools, matching OpenClaw’s channel bridge surface plus a Hermes-specific channel browser” “use Hermes’s messaging capabilities — list conversations, read message history, and send messages across all your connected platforms”
Fix: “Eso significa que Claude Code podría usar las capacidades de messaging de Hermes — Telegram, Discord, Slack — a través de MCP.”
🟡 IMPORTANTE 7 — “70+ herramientas integradas” sin fuente literal
Sección titulada «🟡 IMPORTANTE 7 — “70+ herramientas integradas” sin fuente literal»Verificación: Counted 24 *_tool.py files en repo. Cada uno con sub-tools. Total agregado plausiblemente ~70 (browser=10 + MCP=10 + 22 messaging adapters + 24 tools base = ~66+). Pero ningún doc page dice “70+ tools” literalmente.
Fix opcional: Si quieres dejarlo, agrega “~70 herramientas entre tools y adapters según conteo del repo”. O cambia a algo verificable: “24 herramientas core + 22 adapters de mensajería + browser/MCP/web (70+ totales sumando subtools)”.
🟢 MENOR 8 — “Más de 160,000 estrellas en pocos meses”
Sección titulada «🟢 MENOR 8 — “Más de 160,000 estrellas en pocos meses”»Verificación: Repo creado 22-jul-2025. Hoy 23-may-2026 = 10 meses. 164,049 stars.
Fix opcional: “Más de 164,000 estrellas en menos de un año” (más preciso, más impacto).
🟢 MENOR 9 — Hook “87% tenían violaciones”
Sección titulada «🟢 MENOR 9 — Hook “87% tenían violaciones”»Verificación FINAL del issue #17619: El TÍTULO real es:
“Behavioral audit: approval gate violated in 87% of sessions (129-session history)”
Mi observación anterior sobre “92% vs 87%” era INCORRECTA — había sido alucinación de WebSearch. El issue dice 87% en título Y body. ✅ El guion está correcto. Retiro este menor.
🟢 MENOR 10 — “casi todos los YouTubers tienen afiliado”
Sección titulada «🟢 MENOR 10 — “casi todos los YouTubers tienen afiliado”»Estado: Sin fuente. NetworkChuck usa Linode/Hostinger. Benji usa Hostinger. Pero “casi todos” es fuerte.
Fix opcional: “varios YouTubers que lo recomiendan tienen link de afiliado” o nombrar 2-3 ejemplos.
🟢 MENOR 11 — “Soria Parra presentó en su keynote”
Sección titulada «🟢 MENOR 11 — “Soria Parra presentó en su keynote”»David Soria Parra es co-creador MCP en Anthropic. Sin link/contexto deja al viewer colgado.
Fix opcional: “como Soria Parra explicó en la keynote de Code with Claude” o eliminar.
🟢 MENOR 12 — “auditoría independiente” suena a Trail of Bits
Sección titulada «🟢 MENOR 12 — “auditoría independiente” suena a Trail of Bits»Anic888 es un usuario individual con análisis estático con agentes paralelos sobre 812 archivos Python. Es independiente del proyecto, pero no es auditoría comercial certificada.
Fix opcional: “Un usuario hizo un análisis estático del código” en vez de “auditoría independiente”.
🟢 MENOR 13 — “SKILL.md adoptado en 12 semanas”
Sección titulada «🟢 MENOR 13 — “SKILL.md adoptado en 12 semanas”»Verificación: Anthropic publicó 18-dic-2025. Para marzo 2026 (~12 sem) había 32 adopters. Hoy (mayo 2026) agentskills.io muestra ~40 adopters. Hermes Agent NO está en el showcase oficial de agentskills.io — aunque su doc dice compatible con el estándar.
Fix opcional: “adoptado por más de 40 herramientas en 5 meses” (más preciso y más impresionante).
3. AGUJEROS NARRATIVOS / FLUJO
Sección titulada «3. AGUJEROS NARRATIVOS / FLUJO»A) Falta puente entre [10:00-15:00] Seguridad y [15:00-20:00] Arquitectura
Sección titulada «A) Falta puente entre [10:00-15:00] Seguridad y [15:00-20:00] Arquitectura»Saltas de “Promptware” directo a “la arquitectura de Hermes”. Sugerencia: “Y esta memoria envenenada conecta con algo aún más profundo: cómo está construida la arquitectura misma.”
B) Demo Parte 4 “self-improving loop” sin plan de contingencia
Sección titulada «B) Demo Parte 4 “self-improving loop” sin plan de contingencia»“Voy a darle una tarea que requiera 5+ llamadas a herramientas. Debería auto-generar un skill.”
Si no auto-genera en vivo te quedas sin demo. Pre-grabar al menos un take exitoso como backup. La doc oficial dice que se dispara después de tareas “complejas (5+ tool calls)” más “non-trivial workflows” — los criterios exactos no están públicos.
C) Cloud Run vs el puzzle final
Sección titulada «C) Cloud Run vs el puzzle final»En el puzzle final dices “Cloud Run + A2A → INFRAESTRUCTURA”. Pero la sección 20:00-22:00 (reescrita) debería aclarar que tus 7 agentes son stateless por diseño y persisten estado en Firestore/GCS externos. Si no aclaras esto, queda confuso: “¿entonces tus agentes en Cloud Run no tienen memoria?“
4. CHECKLIST PRE-GRABACIÓN
Sección titulada «4. CHECKLIST PRE-GRABACIÓN»Crítico (no grabar sin esto)
Sección titulada «Crítico (no grabar sin esto)»- Cambiar fuente del verdict “ask vs block” a issue #7826 en la tabla de verificación (atribución a repello.ai es incorrecta)
Importante (afecta credibilidad)
Sección titulada «Importante (afecta credibilidad)»1b. [ ] Suavizar sección [20:00-22:00]: NO digas “Hermes no es serverless” — di “para un agente personal el ahorro serverless no aplica, VPS sigue siendo el camino real, Cloud Run específicamente no encaja por su modelo stateless con /tmp efímero”
Importante (afecta credibilidad)
Sección titulada «Importante (afecta credibilidad)»- Corregir cita literal de profiles (usar “sandbox”, incluir “On the default local terminal backend”)
- Corregir tabla arquitectura: “5 interfaces sirviendo 22 plataformas vía gateway”
- Cambiar timestamp clip Harness: 7:49 a 8:17 (no 8:40)
- Frase MCP: “capacidades de messaging de Hermes” (no “las herramientas”)
- Aclarar “70+ tools” o sustituir por números verificables (24 tools core + 22 adapters)
- Sección 22:00-24:00: suavizar “casi todos los YouTubers” → “varios”
Menor (opcional)
Sección titulada «Menor (opcional)»- “Más de 164,000 estrellas en menos de un año”
- “Adoptado por más de 40 herramientas en 5 meses”
- Quitar referencia a Soria Parra o agregar contexto
- “análisis estático” en vez de “auditoría independiente”
- Agregar puente narrativo entre [10-15] y [15-20]
- Pre-grabar demo self-improving loop como backup
- Aclarar en puzzle final que tus agentes Cloud Run persisten en Firestore/GCS
5. CONCLUSIÓN
Sección titulada «5. CONCLUSIÓN»Veredicto: El guion tiene datos sólidos en su mayoría. Las 23 afirmaciones verificables se confirman con fuente primaria en 18 casos, con 1 error crítico (atribución repello.ai), 6 imprecisiones importantes y 6 menores opcionales.
El único error crítico (fuente repello.ai → debe ser issue #7826) se arregla en 30 segundos editando una línea de la tabla.
El resto es pulido. Si arreglas crítico 1 + importantes 1b (suavizar lenguaje serverless), 5 (timestamp Fowler) y 6 (MCP messaging), el video está al 95% de credibilidad técnica.
El argumento práctico del guion sobre “VPS como camino real para Hermes” es técnicamente correcto una vez que entiendes que el ahorro serverless de Modal/Daytona aplica solo en SaaS con carga bursty, no en self-host para un usuario personal.