Tratar a los Subagentes de OpenClaw como Funciones sin Estado en lugar de como Miembros Persistentes del Equipo

Un desarrollador en r/openclaw describe su cambio de modelo mental al trabajar con equipos multiagente en OpenClaw. Inicialmente, tratar a los subagentes como empleados junior con nombres, historias de fondo y expectativas de memoria llevó a semanas de confusión y flujos de trabajo rotos.
La Analogía de la Función
El avance llegó al reconocer que los subagentes no son mini-yos o miembros persistentes del equipo—son funciones. Específicamente:
- Los subagentes son llamadas de funciones sin estado, no miembros persistentes del equipo
- Son herramientas especializadas, no versiones junior del desarrollador
- Operan con entrada pura → salida, sin recordar contexto
- Devuelven valores al llamador en lugar de hablar entre ellos
La fuente proporciona ejemplos de código contrastando enfoques erróneos y correctos:
# ERRÓNEO: Tratar al subagente como objeto persistente
frank = Agent("Frank")
frank.build_feature()
frank.fix_it() # Asume que Frank recuerda
CORRECTO: Tratar al subagente como llamada de función
result = frank_task(
instructions="Build login page",
context={"requirements": reqs, "design": mockup}
)
frank_task ejecuta, devuelve salida, termina
Implicaciones Prácticas
Este cambio de modelo mental tiene varias implicaciones concretas:
1. SOUL.md como Docstring de Función: En lugar de perfiles de personalidad, SOUL.md se convierte en un documento de especificación:
# frank_task()Propósito: Construir características de Next.js Entradas: requisitos (dict), diseño (opcional) Salidas: {código, pruebas, notas} Restricciones: Sin llamadas a API externas sin aprobación
2. Paso Explícito de Estado para Iteración: Dado que los subagentes no recuerdan contexto, debes pasar toda la información necesaria en parámetros:
# ERRÓNEO
frank_fix("fix the bug") # genera, intenta, muere
frank_fix("still broken") # nueva generación, sin contexto
CORRECTO
result = frank_fix({
"code": previous_output,
"issues": ["login validation fails", "mobile CSS broken"],
"test_cases": failing_tests
}) # Contexto completo en parámetros
3. El Coordinador como Programa Principal: El desarrollador se convierte en una función orquestadora en lugar de un gerente de equipo:
def build_feature(spec):Llama funciones en secuencia
code = frank_build(spec) tests = quinn_audit(code)
if tests["passed"]: return deploy(code) else: # Itera con contexto explícito fixed = frank_fix({ "code": code, "failures": tests["failures"] }) return deploy(fixed)
Paralelismos con Diseño de Software
Este enfoque se alinea con principios establecidos de diseño de software:
- Responsabilidad Única: Cada subagente hace una cosa
- Funciones Puras: Misma entrada → misma salida
- Probable por Unidades: Probar la salida de cada subagente independientemente
- Componible: Encadenar subagentes como quinn_test(frank_code(spec))
- Sin Estado: Sin dependencias ocultas
El desarrollador señala que el valor no es "más agentes = más inteligencia" sino "funciones especializadas = arquitectura más limpia".
Resultados Después del Cambio
Después de adoptar este modelo, el desarrollador construyó:
- Una base de datos de 11,249 gimnasios en 2 semanas
- 5 agentes especializados (no 5 generalistas)
- Un CRM con flujos de trabajo de suscripción
- Compromiso diario con Moltbook
Todo usando subagentes sin estado y un coordinador que mantiene el contexto.
📖 Read the full source: r/openclaw
👀 Ver también

Análisis de Costos del Agente OpenClaw: De $340 a $112 Mensuales con Cinco Optimizaciones
Un desarrollador rastreó 18,000 llamadas API en cuatro agentes de OpenClaw durante 30 días, encontrando que el 70% de las tareas no necesitaban GPT-4.1. Al implementar caché de prompts, acortar prompts del sistema, agrupar análisis, cambiar a modelos más baratos y agregar límites máximos de tokens, los costos bajaron de $340 a $112 mensuales.

Claude Code Hoja de Trucos con 140 Consejos y Archivo LLMs.txt
Un repositorio de GitHub contiene una hoja de trucos de Claude Code con 140 consejos organizados en 14 secciones, etiquetados por dificultad. El repositorio incluye un archivo llms.txt que puede alimentarse directamente a Claude para aprender o aplicar los consejos.

DeepSeek-V4-Flash W4A16+FP8 con autospeculación MTP: 85 tok/s en 2x RTX PRO 6000 Max-Q
DeepSeek-V4-Flash cuantizado a W4A16+FP8 alcanza 85.52 tok/s en contexto de 524k en 2× RTX PRO 6000 Max-Q usando un vLLM modificado con cabezal MTP adaptado, frente a 52.85 tok/s de referencia.

Actualización de OpenClaw Fix: Resolviendo errores de "allowlist miss" en la ejecución de Telegram
Una actualización reciente de OpenClaw provocó que los comandos exec de Telegram fallaran con errores 'exec denied: allowlist miss' incluso después de deshabilitar las aprobaciones. La solución requiere habilitar acceso elevado, configurar explícitamente la seguridad de exec y actualizar tanto los archivos openclaw.json como exec-approvals.json.