La mayoría de los tutoriales sobre agentes de Claude terminan en "hola mundo".
Te muestran cómo hacer que Claude llame a una herramienta. Cómo configurar un bucle básico. Cómo obtener una respuesta autónoma para una tarea simple de juguete.
Luego intentas construir algo real y todo se desmorona.
La tarea es demasiado ambigua. El agente se estanca. Los resultados son inconsistentes. La sesión termina y no se guardó nada. Tienes que empezar desde cero la próxima vez.
La brecha entre un agente de Claude que funciona en un tutorial y uno que funciona en producción no es una brecha en la capacidad de Claude.
Es una brecha en cómo se diseñó el agente.
Esta guía cierra esa brecha por completo.
Al finalizar, tendrás un agente de Claude ejecutando un flujo de trabajo real de forma confiable. No una demostración. No una tarea de juguete. Un flujo de trabajo que produce resultados consistentes, maneja casos extremos con elegancia, mejora con el tiempo y se ejecuta sin que tú inicies cada paso.
Qué Hace Diferente a un Agente del Mundo Real
Antes de construir cualquier cosa, entiende qué separa a un agente del mundo real de un agente de tutorial.
Un agente de tutorial ejecuta una tarea limpia con datos de entrada limpios y produce un resultado limpio. La tarea está bien definida. Los datos de entrada se proporcionan en el formato exacto esperado. No ocurre nada inesperado. El éxito es binario y obvio.
Un agente del mundo real ejecuta tareas desordenadas con datos de entrada desordenados y tiene que producir resultados útiles de todas formas. La tarea está parcialmente definida. Los datos de entrada llegan en formatos que varían. Regularmente ocurren cosas inesperadas. El éxito es cuestión de grado y requiere juicio para evaluarlo.
Cuatro propiedades determinan si un agente sobrevive al contacto con el mundo real:
Definición robusta de la tarea. El agente sabe no solo qué hacer, sino cómo manejar las veinte variaciones de la tarea que encontrará en la práctica. Las instrucciones cubren casos extremos, no solo el camino feliz.
Memoria persistente. El agente acumula contexto a través de las sesiones. El trabajo que hizo la semana pasada informa el trabajo que hace hoy. No comienza desde cero cada sesión.
Manejo elegante de fallos. Cuando algo sale mal, el agente se recupera en lugar de detenerse. Registra lo que sucedió, intenta alternativas y alerta a un humano solo cuando la recuperación es imposible.
Autoverificación de calidad. El agente verifica sus propios resultados contra estándares definidos antes de entregarlos. Cierra su propio bucle de retroalimentación en lugar de devolver lo que sea que haya producido primero.
La mayoría de los agentes de tutorial no tienen ninguna de estas propiedades. Esta guía construye las cuatro.
La Arquitectura del Agente
La arquitectura tiene cuatro componentes que trabajan juntos.
La Capa de Definición de la Tarea
Un archivo de habilidad estructurado que define la tarea, el proceso, el manejo de casos extremos y el estándar de calidad. Esto no es un prompt. Es una especificación operativa completa que el agente lee antes de cada ejecución.
La Capa de Memoria
Una base de datos persistente que almacena lo que el agente ha hecho, lo que ha aprendido y lo que necesita recordar entre sesiones. Construida sobre SQLite a través de Hermes Agent o implementada manualmente con registro basado en archivos.
La Capa de Ejecución
Las llamadas reales a la API de Claude que hacen el trabajo. Estructuradas para usar el modelo correcto, el contexto correcto y las herramientas correctas para cada paso del flujo de trabajo.
La Capa de Calidad
El bucle de verificación que revisa los resultados contra estándares definidos antes de entregarlos y reintenta con correcciones específicas cuando los resultados no cumplen con los estándares.
Configurando la Base
Instala las herramientas necesarias:
Instalar Hermes Agent para orquestación y memoria
git clone https://github.com/NousResearch/hermes-agent
cd hermes-agent
npm install
Instalar servidores MCP para acceso a herramientas
npm install -g @modelcontextprotocol/server-filesystem
npm install -g @modelcontextprotocol/server-brave-search
Configura tu entorno:
Configuración principal
MODEL_PROVIDER=anthropic
MODEL_NAME=claude-opus-4-8
ANTHROPIC_API_KEY=tu-api-key-aqui
Configuración de memoria — usar rutas absolutas
MEMORY_BACKEND=sqlite
MEMORY_PATH=/Users/tunombre/datos-agente/memoria.db
Configuración del programador
ENABLE_SCHEDULER=true
SCHEDULER_TIMEZONE=America/New_York
Configuración de salida — dónde terminan los resultados
OUTPUT_PATH=/Users/tunombre/salidas-agente
Recuperación de fallos
SKILL_RETRY_ENABLED=true
SKILL_RETRY_MAX=3
SKILL_RETRY_DELAY=300
Notificaciones
NOTIFICATION_GATEWAY=telegram
TELEGRAM_BOT_TOKEN=tu-token-del-bot
TELEGRAM_CHAT_ID=tu-id-del-chat
Escribe el archivo CLAUDE.md:
Este es el archivo más importante en toda la configuración. Cada sesión del agente comienza leyéndolo. La calidad de cada resultado depende de la especificidad de lo que haya aquí.
Configuración del Agente — CLAUDE.md
Identidad y Propósito
[Describe qué hace este agente en un párrafo específico.
No qué es Claude en general. Qué está configurado para hacer
este agente específico para esta operación específica.]
Contexto Operativo
[Describe el contexto empresarial o personal en el que opera
este agente. ¿Qué hace la persona que configuró este
agente? ¿Cuáles son sus estándares y prioridades?]
Tareas Activas Actuales
[Enumera las tareas recurrentes específicas que ejecuta este agente.
Para cada una: qué hace, cuándo se ejecuta, cómo se ve un buen resultado.]
Permisos de Herramientas
Tienes permiso para usar estas herramientas de forma autónoma:
- Sistema de archivos: leer y escribir en [RUTAS ESPECÍFICAS]
- Búsqueda web: para investigación sobre [TEMAS ESPECÍFICOS]
- [Otras herramientas con alcance específico]
No debes:
- Escribir en ninguna ruta fuera del directorio de salida configurado
- Hacer llamadas a API externas que no estén listadas arriba
- Tomar ninguna acción que afecte sistemas externos sin aprobación explícita
Estándares de Calidad
[Describe cómo se ve un buen resultado para cada tipo de tarea.
Incluye ejemplos cuando sea posible.
Sé lo suficientemente específico para que el agente pueda autoevaluarse.]
Instrucciones de Memoria
Almacena en la memoria:
- Cada resultado significativo con fecha y evaluación de calidad
- Cada caso extremo encontrado y cómo se manejó
- Cada fallo de calidad y qué lo causó
- Cada patrón identificado entre resultados
Manejo de Errores
En fallo de herramienta: reintentar una vez, registrar el fallo, continuar
con las herramientas disponibles.
En fallo de calidad: reintentar con correcciones específicas,
no una reescritura completa. Máximo tres reintentos.
En fallo irrecuperable: guardar trabajo parcial,
registrar el fallo específico, enviar notificación,
detenerse de forma ordenada.
Construyendo la Capa de Definición de la Tarea
La capa de definición de la tarea es donde fallan la mayoría de los agentes del mundo real.
La gente escribe un prompt que describe el camino feliz y se detiene. El agente maneja bien el camino feliz y se rompe en todo lo demás.
Una definición de tarea robusta cubre la realidad operativa completa de la tarea. Aquí está la plantilla:
[NOMBRE DE LA TAREA]
Propósito
[Una oración: ¿qué logra esta habilidad?]
Disparador
[Condiciones exactas que hacen que esto se ejecute:
hora programada, aparición de archivo, comando manual, etc.]
Verificaciones Previas a la Ejecución
Antes de comenzar, verificar:
- [La entrada requerida existe y es accesible]
- [Las herramientas requeridas están conectadas y respondiendo]
- [La ruta de salida se puede escribir]
- [La memoria es accesible y está actualizada]
Si alguna verificación falla: registrar el fallo y detenerse.
No proceder con requisitos previos faltantes.
Proceso Principal
Paso 1: Carga de Contexto
Leer CLAUDE.md para el contexto operativo completo.
Leer la memoria para el historial relevante etiquetado: [ETIQUETA-TAREA]
Anotar cualquier patrón de ejecuciones anteriores
que deba informar esta.
Paso 2: Procesamiento de Entrada
[Describir exactamente qué hacer con la entrada.
Cubrir el formato principal Y los formatos alternativos
que aparecen en la práctica.]
Para el formato de entrada estándar:
[Pasos de procesamiento exactos]
Para el formato de entrada alternativo A:
[Cómo manejarlo]
Para el formato de entrada alternativo B:
[Cómo manejarlo]
Para entrada mal formada o faltante:
[Cómo manejarlo — nunca fallar en silencio]
Paso 3: Ejecución Principal
[El trabajo real de la habilidad.
Dividir en subpasos. Cada subpaso debe ser
lo suficientemente específico para que una nueva instancia
de Claude pueda ejecutarlo sin contexto adicional.]
Paso 4: Verificación de Calidad
Antes de guardar la salida, verificar contra estos estándares:
REQUERIDO: [Propiedades de salida no negociables]
PREFERIDO: [Propiedades de calidad que mejoran la salida]
PROHIBIDO: [Cosas que nunca deben aparecer en la salida]
Si la salida falla las comprobaciones requeridas:
- Identificar específicamente qué falló
- Reintentar con corrección dirigida
- Máximo tres intentos de reintento
- Si aún falla después de tres: guardar con bandera de fallo
Paso 5: Salida y Almacenamiento
Guardar salida en: [RUTA ESPECÍFICA Y FORMATO DE NOMBRE DE ARCHIVO]
Almacenar en memoria etiquetado: [ETIQUETA-TAREA, FECHA]
Actualizar CLAUDE.md si alguna información actual cambió.
Enviar notificación: [QUÉ INCLUIR EN LA NOTIFICACIÓN]
Casos Extremos
[Nombre del Caso Extremo 1]
Condición: [Cuándo ocurre esto]
Detección: [Cómo reconocerlo]
Respuesta: [Qué hacer]
[Nombre del Caso Extremo 2]
Condición: [Cuándo ocurre esto]
Detección: [Cómo reconocerlo]
Respuesta: [Qué hacer]
[Nombre del Caso Extremo 3]
Condición: [Cuándo ocurre esto]
Detección: [Cómo reconocerlo]
Respuesta: [Qué hacer]
Estándar de Calidad
Un gran resultado: [Descripción específica]
Un resultado aceptable: [Mínimo aceptable]
Un resultado inaceptable: [Qué debe activar un reintento]
Instrucciones de Memoria
Después de cada ejecución almacenar:
- Fecha y duración de la ejecución
- Evaluación de calidad del resultado (excelente/aceptable/fallido)
- Cualquier caso extremo encontrado y cómo se manejó
- Cualquier patrón que valga la pena notar para futuras ejecuciones
Tu Primer Agente Real: El Agente de Investigación y Resumen
Aquí hay un agente del mundo real completo construido usando esta arquitectura. Este agente monitorea un conjunto de fuentes diariamente, investiga temas relevantes para tu trabajo y entrega un resumen estructurado cada mañana.
Esta no es una tarea de juguete. Es un flujo de trabajo real que reemplaza cuarenta y cinco minutos de compilación manual de investigación cada día.
Crea skills/research-brief.md:
research-brief
Propósito
Monitorear fuentes configuradas y producir un resumen
estructurado que cubra desarrollos relevantes
para proyectos y prioridades actuales.
Disparador
Programado diariamente a las 6:00 AM.
Manual: "Resumen de investigación" o "Resumen matutino"
Verificaciones Previas a la Ejecución
Antes de comenzar, verificar:
- CLAUDE.md es legible en 07-SYSTEM/CLAUDE.md
- Brave Search MCP está respondiendo
- La ruta de salida se puede escribir en outputs/briefings/
- La base de datos de memoria es accesible
Proceso Principal
Paso 1: Carga de Contexto
Leer CLAUDE.md completamente. Anotar:
- Proyectos activos actuales y su estado
- Temas marcados para monitoreo
- Decisiones pendientes que necesitan inteligencia
- Estándares de calidad para este resumen
Leer memoria etiquetada: research-brief
Anotar: qué se cubrió en resúmenes recientes
para evitar repeticiones.
Paso 2: Investigación de Fuentes
Para cada tema en la lista de monitoreo de CLAUDE.md:
Consulta de búsqueda: "noticias [TEMA] últimas 24 horas"
Recolectar: título, fuente, fecha, afirmación clave
Aplicar filtro de señal:
INCLUIR: Nuevo desarrollo, dato, lanzamiento de producto,
declaración significativa, hallazgo de investigación
EXCLUIR: Repetición de cobertura existente,
opinión sin nueva información,
todo lo cubierto en los últimos 3 resúmenes
Para cada resultado que pase el filtro de señal:
Investigar más a fondo con una búsqueda de seguimiento si
el resultado inicial sugiere un desarrollo significativo.
Paso 3: Síntesis
Agrupar hallazgos por tema.
Para cada grupo de temas identificar:
- El desarrollo más significativo
- Por qué es importante para los proyectos actuales
- Qué acción, si alguna, implica
Síntesis entre temas:
- ¿Hay dos o más hallazgos que se conectan para sugerir un patrón más grande?
- ¿Algún hallazgo impacta directamente un proyecto activo o una decisión pendiente?
Paso 4: Verificación de Calidad
Antes de finalizar, verificar:
REQUERIDO:
- Mínimo 3 elementos de señal (no ruido)
- Cada elemento basado en una fuente específica
- Cada elemento explica su relevancia para el trabajo actual
- Ningún elemento repetido de los últimos 5 resúmenes
PREFERIDO:
- Al menos una conexión entre temas
- Al menos un elemento que implique una acción específica
- Reconocimiento honesto si fue un día de pocas noticias
PROHIBIDO:
- Análisis genérico sin evidencia específica
- Elementos que son interesantes pero no relevantes
- Relleno para hacer que el resumen parezca más completo
Si el resumen falla las comprobaciones requeridas: identificar específicamente
qué falta y buscar fuentes adicionales
antes de reintentar. No rellenar con señales débiles.
Paso 5: Generación de Salida
Generar resumen en este formato exacto:
Resumen de Inteligencia Matutino — [FECHA]
LO MÁS IMPORTANTE HOY
[Desarrollo más significativo y por qué es
importante para el trabajo actual. Específico. Fundamentado.]
ELEMENTOS DE SEÑAL
[Tema 1]
\\Desarrollo:\\ [Qué sucedió]
\\Fuente:\\ [Publicación, fecha]
\\Relevancia:\\ [Por qué esto es importante para los proyectos actuales]
\\Implicación:\\ [Cualquier acción que esto sugiera]
[Tema 2]
[Mismo formato]
[Continuar para cada elemento de señal]
CONEXIÓN
[Si dos o más elementos se conectan para sugerir un patrón
más grande, describirlo aquí. Omitir si no hay conexión genuina.]
RELEVANCIA PARA DECISIONES
[Si algún elemento es directamente relevante para una decisión
pendiente en CLAUDE.md, marcarlo aquí con detalles.]
NOTA DE COBERTURA
[Evaluación honesta: día completo / día de pocas noticias.
Número de fuentes buscadas.]
Paso 6: Almacenamiento y Notificación
Guardar en: outputs/briefings/[FECHA]-resumen-matutino.md
Almacenar en memoria:
- Fecha: [HOY]
- Elementos cubiertos: [LISTA DE TEMAS]
- Calidad: [excelente/aceptable/fallido]
- Notable: [Cualquier caso extremo o patrón] Etiqueta: research-brief
Enviar notificación de Telegram:
"Resumen matutino listo: [N] elementos de señal.
[LO MÁS IMPORTANTE HOY en una línea]"
Casos Extremos
Sin Señal Encontrada para un Tema
Condición: Las búsquedas no devuelven nuevos desarrollos
Detección: Todos los resultados tienen más de 48 horas
Respuesta: Anotar "Sin nuevos desarrollos" para ese tema.
No inventar ni rellenar. Pasar al siguiente tema.
La Fuente Devuelve Información Conflictiva
Condición: Dos fuentes reportan hechos contradictorios
Detección: Contradicción directa sobre una afirmación específica
Respuesta: Reportar ambas versiones, citar ambas fuentes,
marcar como conflictivo. No elegir una sobre la otra.
Herramienta de Búsqueda No Disponible
Condición: Brave Search MCP no responde
Detección: La llamada a la herramienta devuelve error
Respuesta: Registrar el fallo. Notificar vía Telegram.
Guardar resumen parcial con nota: "Búsqueda no disponible —
resumen basado solo en el contexto de la memoria."
No fallar en silencio.
El Resumen Repetiría el Elemento Principal de Ayer
Condición: El desarrollo más significativo es el mismo que ayer
Detección: Referencia cruzada con el resumen de ayer en la memoria
Respuesta: Anotar "Desarrollo en curso desde [FECHA]"
y centrarse en qué es específicamente nuevo hoy.
Estándar de Calidad
Gran resumen: 4-6 elementos de señal. Cada elemento relevante.
Al menos una idea entre temas. Se lee en menos de 5 minutos.
Resumen aceptable: 3 elementos de señal. Todos relevantes.
Sin ideas entre temas. Se lee en menos de 5 minutos.
Resumen inaceptable: Menos de 3 elementos de señal.
Cualquier elemento que sea genérico o no relevante para el trabajo actual.
Cualquier elemento repetido de los últimos 3 resúmenes.
Construyendo la Capa de Verificación de Calidad
La capa de verificación de calidad es lo que separa a los agentes que producen resultados consistentes de los agentes que producen resultados variables.
La mayoría de los agentes se saltan esta capa por completo. Generan una salida y la devuelven. La calidad depende completamente de lo buena que fue la generación. Algunas sesiones son excelentes. Algunas son mediocres. Nunca sabes cuál obtendrás.
Una capa de verificación de calidad hace que la calidad de la salida sea consistente al verificar cada salida contra estándares definidos y reintentar con correcciones específicas cuando los estándares no se cumplen.
Aquí está el patrón de llamada a la API de Claude que implementa la verificación de calidad:
async function executeWithQualityVerification(prompt, qualityStandard, maxRetries = 3) {
let attempt = 0;
let lastOutput = null;
let lastFailure = null;
while (attempt < maxRetries) {
// Generar la salida
const response = await fetch('https://api.anthropic.com/v1/messages', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.ANTHROPIC_API_KEY,
'anthropic-version': '2023-06-01'
},
body: JSON.stringify({
model: 'claude-opus-4-8',
max_tokens: 4096,
messages: [
{
role: 'user',
content: attempt === 0
? prompt
: ${prompt}
El intento anterior falló la verificación de calidad: ${lastFailure}
Corregir específicamente para este fallo. No reescribir todo.
}
]
})
});
const data = await response.json();
lastOutput = data.content[0].text;
// Verificar calidad
const verificationResponse = await fetch('https://api.anthropic.com/v1/messages', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.ANTHROPIC_API_KEY,
'anthropic-version': '2023-06-01'
},
body: JSON.stringify({
model: 'claude-opus-4-8',
max_tokens: 1000,
messages: [
{
role: 'user',
content: `Eres un verificador de calidad. Evalúa esta salida contra estos estándares:
${qualityStandard}
Salida a evaluar:
${lastOutput}
Responde ÚNICAMENTE con:
PASS si la salida cumple con todos los estándares requeridos
FAIL: [descripción específica de lo que falló] si no cumple con los estándares requeridos
No expliques. No sugieras mejoras. Solo PASS o FAIL con una descripción de fallo específica.`
}
]
})
});
const verificationData = await verificationResponse.json();
const verificationResult = verificationData.content[0].text.trim();
if (verificationResult.startsWith('PASS')) {
return { output: lastOutput, attempts: attempt + 1, passed: true };
}
lastFailure = verificationResult.replace('FAIL:', '').trim();
attempt++;
}
// Todos los reintentos agotados
return {
output: lastOutput,
attempts: maxRetries,
passed: false,
failure: lastFailure
};
}
Este patrón genera una salida, la verifica contra estándares definidos y reintenta con correcciones específicas cuando falla. Si todos los reintentos fallan, devuelve la mejor salida con una bandera de fallo en lugar de bloquearse.
El Patrón de Integración de Memoria
La memoria es lo que transforma a un agente capaz en uno que aprende.
Sin memoria, cada sesión comienza desde cero. El agente no sabe lo que ha hecho antes. No puede aplicar aprendizajes de ejecuciones pasadas. No puede evitar errores que ya ha cometido.
Con memoria, cada sesión se basa en la anterior. El agente sabe lo que funcionó y lo que no. Aplica el contexto acumulado para mejorar los resultados actuales. Mejora en la tarea específica con el tiempo.
Aquí está el patrón de integración de memoria para cualquier agente de Claude:
Al inicio de cada ejecución:
Leer entradas de memoria etiquetadas: [ETIQUETA-TAREA]
Límite: 20 entradas más relevantes
Estrategia: relevancia (no solo actualidad)
Aplicar este contexto:
- Anotar patrones de ejecuciones anteriores
- Anotar casos extremos encontrados anteriormente
- Anotar problemas de calidad identificados anteriormente
- Aplicar aprendizajes a la ejecución actual
Al final de cada ejecución:
Almacenar en memoria:
fecha: [HOY]
tarea: [NOMBRE DE LA TAREA]
calidad: [excelente/aceptable/fallido]
notable: [cualquier cosa que valga la pena recordar]
caso_extremo: [cualquier caso extremo encontrado]
patrón: [cualquier patrón observado]
Etiqueta: [ETIQUETA-TAREA], [FECHA]
Consolidación mensual:
Leer todas las entradas de memoria etiquetadas: [ETIQUETA-TAREA]
Identificar:
- Patrones que aparecen en múltiples entradas
- Casos extremos que se repiten
- Problemas de calidad que se repiten
- Qué se correlaciona con resultados excelentes vs aceptables
Consolidar en una única entrada de contexto actualizada
Archivar entradas individuales más antiguas de 90 días
El Sistema de Recuperación de Fallos
Los agentes del mundo real encuentran fallos. Las fuentes se desconectan. Las APIs limitan la tasa. Los archivos no están donde se espera. Las salidas fallan las verificaciones de calidad después de reintentos máximos.
El sistema de recuperación de fallos determina si estos fallos son pequeños contratiempos invisibles o paradas catastróficas.
Tres niveles de manejo de fallos:
Nivel 1: Recuperación Automática
Fallos transitorios que se resuelven con un reintento. Herramienta no disponible. Tiempo de espera de red. Límite de tasa alcanzado.
Protocolo de Recuperación de Nivel 1
Ante cualquier fallo de llamada a herramienta:
- Esperar 60 segundos
- Reintentar la misma llamada exacta
- Si el reintento tiene éxito: continuar normalmente, registrar el contratiempo
- Si el reintento falla: escalar a Nivel 2
Nivel 2: Degradación Elegante
Fallos que no se pueden resolver pero permiten una finalización parcial. Una fuente no disponible. Una herramienta no responde. Una sección de la salida falla las verificaciones de calidad.
Protocolo de Recuperación de Nivel 2
Ante un fallo parcial irresoluble:
- Completar lo que se pueda completar
- Anotar específicamente qué se omitió y por qué
- Marcar la salida como parcial en el nombre del archivo
- Incluir nota explícita en la propia salida
- Enviar notificación: "Salida parcial — [razón específica]"
- NO fallar toda la tarea porque un componente falló
Nivel 3: Parada Elegante
Fallos que hacen que toda la tarea sea imposible. CLAUDE.md no encontrado. Ruta de salida no escribible. Base de datos de memoria inaccesible.
Protocolo de Recuperación de Nivel 3
Ante un fallo completo:
- Identificar el punto de fallo específico
- Guardar cualquier trabajo completado en una ubicación temporal
- Registrar el contexto completo del fallo
- Enviar notificación: "Tarea fallida — [razón específica]"
- Detenerse limpiamente sin corromper ninguna salida existente
- NO reintentar automáticamente — esperar intervención humana
Probando Tu Agente Antes de Desplegar
El error más común en el despliegue de agentes del mundo real es saltarse las pruebas estructuradas.
Tres fases de prueba antes de que cualquier agente entre en funcionamiento:
Fase 1: Pruebas de Componentes
Probar cada componente de forma aislada antes de probar todo el flujo de trabajo.
Probar que la memoria persiste
hermes chat
¿Cuál es la entrada de memoria más antigua que tienes almacenada?
Esperado: Debería reportar una entrada o reportar base de datos vacía
Si devuelve error: la configuración de memoria es incorrecta
Probar acceso a herramientas
Lista los archivos en [RUTA DE SALIDA]
Esperado: Debería listar archivos reales
Si devuelve error: el MCP del sistema de archivos no está configurado correctamente
Probar búsqueda
Busca "noticias IA hoy" y dime el resultado principal
Esperado: Debería devolver resultados de búsqueda reales
Si devuelve error: el MCP de Brave Search no está configurado correctamente
Fase 2: Pruebas del Camino Feliz
Ejecutar la habilidad manualmente en una entrada estándar limpia y verificar que la salida cumple con el estándar de calidad.
Ejecutar la habilidad manualmente
hermes run research-brief
Verificar la salida
cat outputs/briefings/[HOY]-resumen-matutino.md
Verificar contra el estándar de calidad:
- ¿Mínimo 3 elementos de señal?
- ¿Cada elemento relevante para el trabajo actual?
- ¿Sin análisis genérico?
- ¿Se lee en menos de 5 minutos?
Fase 3: Pruebas de Casos Extremos
Activar deliberadamente cada caso extremo documentado y verificar el comportamiento de recuperación.
Probar: sin acceso a internet
Deshabilitar Brave Search en .env
Ejecutar la habilidad
Esperado: Fallo de Nivel 3, parada limpia, notificación enviada
Probar: ruta de salida no escribible
Cambiar OUTPUT_PATH a un directorio inexistente
Ejecutar la habilidad
Esperado: Fallo de Nivel 3, parada limpia, notificación enviada
Probar: día de pocas noticias
Ejecutar en un fin de semana o festivo
Esperado: Salida de Nivel 2 con NOTA DE COBERTURA indicando día lento
Ejecutando Tu Agente en Producción
Una vez que las tres fases de prueba pasen, configurar el programador y pasar a producción.
{
"schedules": [
{
"skill": "research-brief",
"cron": "0 6 *",
"description": "Diariamente a las 6 AM",
"timeout_minutes": 15,
"on_failure": "notify_and_stop"
}
]
}
Iniciar Hermes en modo segundo plano:
npm run start -- --daemon
Verificar la primera ejecución programada:
Verificar registros después de las 6 AM
cat logs/hermes-[FECHA].log
Verificar que se produjo la salida
ls outputs/briefings/
Verificar que la memoria se actualizó
hermes chat
¿Cuántas entradas de memoria de research-brief tienes?
Si la primera ejecución automatizada produce una buena salida, el agente está en producción.
Qué Cambia en el Mes 3
Mes uno: El agente funciona de forma confiable. Las salidas son consistentes. Los fallos se manejan con elegancia. Ahorras cuarenta y cinco minutos cada mañana.
Mes dos: la capa de memoria empieza a mostrar mejoras visibles. El agente ha procesado sesenta días de fuentes y ha acumulado contexto sobre qué fuentes generan contenido de alta calidad frente a ruido. La calidad del filtrado de señales mejora porque el agente ha aprendido qué fuentes realmente valen la pena seguir.
Mes tres: la consolidación de la memoria se ha ejecutado dos veces. El agente ha identificado patrones a lo largo de noventa días de investigación. Los informes hacen referencia al contexto acumulado, lo que los vuelve más sólidos y específicos de lo que cualquier investigación de una sola sesión podría producir.
El agente en el mes tres no está ejecutando el mismo flujo de trabajo que en el mes uno.
Está ejecutando una versión mejorada de ese flujo de trabajo, basada en noventa días de inteligencia operativa acumulada.
Esa es la diferencia entre un agente de tutorial y un agente del mundo real.
El agente de tutorial realiza la tarea.
El agente del mundo real aprende a hacer la tarea mejor.
Construye la base este fin de semana.
Ejecútalo durante una semana. Arregla lo que se rompa.
Ejecútalo durante un mes. Obsérvalo mejorar.
Ejecútalo durante tres meses. Nota lo que sabe que no podrías haberle dicho el primer día.
Así es como se ve construir un agente de Claude que realmente funcione en el mundo real.
Sigue a @cyrilXBT para conocer cada arquitectura de agente, plantilla de habilidad y patrón de despliegue en producción que haga que tus agentes de Claude sobrevivan al contacto con el mundo real.





