Sí, esta nueva respuesta de golpe acota el alcance: ahora se parece más a un “problema de umbral de tamaño”, y menos a “que directamente no reciba imágenes”.
Primero, la conclusión:
Creo que por ahora no conviene sospechar primero de Nginx
La razón es simple:
- En el enlace que pegó el OP,
openclaw.qq.wsUrl = ws://127.0.0.1:3001
- Eso indica que OpenClaw se conecta a NapCat por WebSocket local
- En condiciones normales, esa parte no pasa por Nginx
Además, lo típico de client_max_body_size sobre todo bloquea cuerpos de solicitud de subida.
Y el escenario del OP se parece más a:
Imagen de QQ → NapCat la recibe → evento OneBot → OpenClaw obtiene la imagen / alimenta la imagen
Esto no suena a que Nginx salga primero a “pegarle” a nadie.
La última respuesta del OP, en cambio, se parece más a estas posibilidades
1) Límite de tamaño de OpenClaw / procesamiento de medios
Esto es lo que más sospecho ahora.
Porque acabo de revisar los docs locales de OpenClaw y por defecto hay:
agents.defaults.mediaMaxMb: 5
Es decir, si la imagen es grande, puede que la cadena de procesamiento de medios la omita/rechace directamente.
Y el OP dice:
- imágenes pequeñas sí
- unas cuantas MB no
Esto huele mucho a choque con un umbral, como un guardia en la entrada:
“Al 1.º piso sí se puede entrar, pero las maletas para el 6.º no se permiten.”
2) Si va en Base64, el tamaño se infla
Esto también es clave.
Si después realmente, como en el FAQ, convierten la imagen a Base64:
- imagen original 4 MB
- en Base64 probablemente se inflará a unos 5,3 MB
Entonces es aún más fácil pisar el límite de tamaño de arriba.
Así que “la imagen original se ve de apenas unas MB” no significa que en la cadena siga siendo esas mismas MB.
3) Límite de tamaño o timeout del modelo/proveedor
Si con imágenes pequeñas ya funciona, eso indica:
- el plugin no es que no reciba imágenes en absoluto
- el modelo probablemente no es que no soporte visión en absoluto
Entonces lo que queda puede ser:
- la descarga de imágenes grandes es lenta / timeout
- el provider tiene un umbral de tamaño para imágenes
- OpenClaw queda limitado antes de rutear al modelo de visión
¿Cuándo sí volver a sospechar de Nginx?
Solo en un caso pondría a Nginx al frente:
el OP añade que la URL de la imagen no es conexión local directa, sino que pasa por su propio dominio de reverse proxy / CDN / algún proxy HTTP de medios
Ahí sí valdría la pena revisar:
- 413
- proxy buffering
- read timeout
- truncamiento de respuesta del upstream
Pero con la config que ha pegado ahora, aún no hay evidencia de eso.
Así que sugiero que en el hilo le preguntes directo estos puntos
@瑞瑞哥 ahora lo más valioso no es volver a pegar Nginx, sino pegar esto:
Que haga una prueba en 4 niveles
Con la misma imagen, comprimirla gradualmente y probar:
Ver a partir de cuál nivel empieza a fallar de forma estable.
Si el resultado se acerca a:
Entonces parece muchísimo un límite de tamaño, no “misterios”.
Y que mire palabras clave en los logs del lado de OpenClaw
Enfocarse en buscar si aparece:
too large
maxBytes
media
fetch failed
image
MediaUrls
Si hay cosas como “excede el tamaño / fallo al obtener / medios omitidos”, básicamente queda confirmado.
Ahora mismo, mi lista de sospechosos en orden sería
- Límite de tamaño de medios de OpenClaw
- Exceso por inflación Base64
- Límite o timeout del provider / visión
- Nginx
Así que por ahora no le echaría la culpa a Nginx: parece más un espectador que el primer sospechoso.
Si quieres, en mi siguiente mensaje puedo ayudarte a escribir una versión de plantilla de preguntas para el OP, para que por el camino más corto pegue el umbral y los logs.