Communitygithub.com

Walliiee/agent-harness

Un arnés de memoria y operaciones auto-mejorable para agentes de IA (OpenClaw / Hermes / Claude Code / Codex). Memoria en capas, bucle autónomo de corrección de desviaciones, evaluaciones y recuperación ante desastres con un solo comando. Plantillas y scripts, sin secretos.

¿Qué es agent-harness?

Walliiee/agent-harness es un arnés integral para agentes de IA que proporciona un sistema de memoria en capas auto-mejorable y operaciones robustas. Está diseñado para mejorar el rendimiento de agentes como OpenClaw, Hermes, Claude Code y Codex, permitiéndoles mantener un contexto persistente, corregir automáticamente desviaciones en su comportamiento y ejecutar evaluaciones. El sistema incluye un bucle autónomo de corrección de desviaciones ('drift-fixing loop') que ajusta el comportamiento del agente basándose en resultados de evaluaciones, y una función de recuperación ante desastres con un solo comando. Además, proporciona plantillas y scripts para facilitar la configuración y personalización, sin requerir almacenamiento de secretos. Está basado en el motor de búsqueda local QMD para realizar búsquedas vectoriales y de palabras clave sobre el espacio de trabajo del usuario, optimizando la recuperación de información relevante antes de responder preguntas.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add Walliiee/agent-harness

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

QMD — Motor de Búsqueda de Conocimiento Local

QMD es el motor de búsqueda local de vectores + palabras clave sobre los espacios de trabajo del usuario. Úsalo antes de responder preguntas que ya puedan estar documentadas — especialmente para obtener contexto sobre personas, proyectos, decisiones y trabajo pasado.

Flujo de trabajo

El flujo de trabajo es siempre:

  1. Buscar documentos candidatos.
  2. Recuperar la fuente completa con qmd get o qmd multi-get.
  3. Responder a partir del texto recuperado, citando rutas o identificadores de documentos.

No respondas solo a partir de fragmentos cuando el usuario necesite hechos, decisiones, citas o matices. Los fragmentos son solo pistas.

Al informar lo que recuperaste, una nota compacta es suficiente; no pegues archivos completos a menos que sea necesario:

Recuperado: #abc123 wiki/projects/GenAICategorizer.md, #def432 memory/2026-05-26.md

Elige el modo de búsqueda adecuado

ModoComandoCuándo usarlo
BM25 por palabras claveqmd searchPalabras exactas, títulos, nombres, símbolos de código, frases raras
Híbrido + rerankingqmd queryRedacción indirecta, recuperación conceptual, mejor calidad
Estructuradoqmd query con campos lex:/vec:/hyde:Búsquedas difíciles que necesitan anclajes exactos + recuperación semántica

Búsqueda simple:

qmd search "estado del proyecto challenger crew" -n 10
qmd search '"GenAI Categorizer"' -c wiki-main -n 5

Búsqueda de concepto semántico:

qmd query "la calidad de las decisiones depende de sacar a la luz suposiciones y contexto" -n 10

Consulta estructurada (búsquedas difíciles):

qmd query $'intent: Encontrar la nota conceptual sobre métricas como instrumentos sin dejar que los OKR reemplacen el juicio.
lex: instrumentos de cabina OKR métricas Goodhart juicio
vec: decisiones informadas por datos no impulsadas por métricas juicio del producto
hyde: Una nota conceptual dice que las métricas son útiles como los instrumentos de cabina, pero los líderes deben mantenerse informados por datos en lugar de impulsados por métricas porque los OKR y los paneles pueden afectar el juicio del producto según Goodhart.'

Campos de consulta estructurada:

  • intent: indica qué estás tratando de encontrar y qué evitar.
  • lex: términos exactos, alias, títulos y palabras raras.
  • vec: parafrasea la idea en lenguaje natural.
  • hyde: describe el documento o la respuesta que satisfaría la solicitud.

Recuperar fuentes

qmd get "#abc123"                        # por id de documento de resultados de búsqueda
qmd get "wiki/projects/GenAICategorizer.md" --full  # por ruta
qmd multi-get "#abc123,#def432" --md     # por lotes por ids de documentos
qmd multi-get 'memory/2026-05-*.md' -l 80  # por lotes con glob

Usa multi-get al comparar varios resultados o reunir contexto de varias páginas. Usa --full cuando la fuente exacta sea importante.

Colecciones por agente

Cada agente tiene su propio índice QMD con configuración aislada por XDG. La lista de agentes se encuentra en ${OPENCLAW_HOME}/config/agents.map. Al buscar desde la CLI, usa el envoltorio XDG del agente:

# agente principal
XDG_CONFIG_HOME=${OPENCLAW_HOME}/agents/main/qmd/xdg-config XDG_CACHE_HOME=${OPENCLAW_HOME}/agents/main/qmd/xdg-cache qmd query "..."
# agente de desarrollo y cualquier otro agente — mismo patrón, intercambia el nombre del agente

Colecciones del agente principal

ColecciónContenido
identity-mainDocumentos principales — SOUL, IDENTITY, TOOLS, AGENTS, NETWORK, índice de MEMORY
wiki-mainCorteza de conocimiento duradero. Wiki — comportamientos de agente (reglas entre agentes), proyectos, herramientas, conceptos, personas. Hogar principal de la memoria duradera a partir del 28 de mayo de 2026.
memory-mainArchivos de memoria diarios (YYYY-MM-DD.md) — capa de captura de 7 días que promueve contenido a wiki-main
workspace-docs-mainMarkdown completo del espacio de trabajo (referencia, tareas, transferencias, aprendizajes)
skills-mainDefiniciones de habilidades (archivos SKILL.md)
agents-*-identityDocumentos de identidad/configuración raíz de otros agentes (espacios de trabajo por agente)
agents-*-memoryArchivos de memoria diarios de otros agentes (espacios de trabajo por agente)
agents-*-wikiWikipedias duraderas de otros agentes (espacios de trabajo por agente) — el agente principal puede consultar directamente el conocimiento duradero especializado.
handoffs-*Archivos de transferencia por agente (principal, desarrollo y cualquier otro agente)

Pistas de colecciones especializadas

Los nombres de colecciones a continuación provienen de la configuración QMD de cada agente especializado. Desde el agente principal, usa los equivalentes entre agentes (agents-<agent>-wiki, agents-<agent>-memory).

Lo que buscasAgenteColecciones clave (dentro de ese agente)Desde el agente principal
Proyectos de código, configuraciones de compilación, decisiones de ingenieríadevprojects-dev, identity-dev, wiki-devagents-dev-wiki, agents-dev-memory

Contexto y ámbito de colección

El metadato context: de QMD (establecido en index.yml o mediante qmd context add) mejora la relevancia de la búsqueda al describir lo que contiene cada colección. Se devuelve junto con los resultados.

Limita las búsquedas con -c cuando las consultas amplias se desvíen hacia el corpus incorrecto:

qmd search "notas de reunión esta semana" -c agents-dev-memory -n 10
qmd query "estado del proyecto GenAI" -c wiki-main -c projects-dev -n 10

Omite -c para buscar en todo.

Diagnósticos

qmd status     # conteos de colecciones y embeddings pendientes
qmd update     # reindexar (usar después de agregar/editar archivos en rutas indexadas)
qmd embed      # generar/reconstruir vectores después de la actualización

Si qmd query o qmd vsearch falla (modelo/GPU no disponible), recurre a qmd search con términos léxicos más fuertes.

Nota: documentos antiguos hacían referencia a qmd doctor — ese subcomando no está presente en la versión actual de la CLI. Usa qmd status para salud, y qmd update/qmd embed para reparación.

Herramientas MCP

Al usar MCP (el predeterminado para agentes OpenClaw), prefiere consultas estructuradas:

{
  "searches": [
    { "type": "lex", "query": "estado del proyecto challenger crew" },
    { "type": "vec", "query": "¿cuál es el estado actual del proyecto challenger crew?" }
  ],
  "intent": "Encontrar el estado del proyecto, no conceptos generales sobre el equipo.",
  "limit": 10
}

Errores comunes

  • No te detengas en fragmentos. Recupera documentos antes de hacer afirmaciones.
  • No abuses de la búsqueda semántica. Si conoces títulos o términos exactos, BM25 es más rápido y a menudo mejor.
  • No mutaciones los índices a la ligera. qmd collection add, qmd update y qmd embed cambian el estado local y pueden ser costosos.
  • Los comandos basados en modelos pueden ser sensibles al entorno. Si qmd query o el reranking fallan, recurre a qmd search con términos léxicos más fuertes.
  • Las redacciones ambiguas del usuario necesitan intención. Añade intent: en lugar de esperar que la expansión de consultas adivine el dominio correcto.
  • Los nombres de colecciones importan. Limita con -c cuando la consulta pueda coincidir con múltiples dominios.
  • Actualidad: QMD no degrada resultados antiguos. Para memoria sensible al tiempo, verifica los nombres de archivo — YYYY-MM-DD más cercano a hoy es más actual.

Configuración y mantenimiento

Ejecuta solo estos comandos cuando se te pida. Buscar y recuperar es seguro; la mutación del índice no es casual.

qmd collection add ~/notas --name notas   # alternativa CLI a editar index.yml
qmd context add qmd://notas "Descripción"  # alternativa CLI a context: en index.yml
qmd update                                # reindexar colecciones
qmd embed                                 # generar/reconstruir vectores
qmd status                                # verificación de salud después de cambios

Skills relacionados