Answer

Replace Type.Any() with Type.Object({}, { additionalProperties: true }) in the TypeBox schema. Type.Any() produces JSON Schema without a 'type' field (just {}), which OpenClaw's deserialization pipeline silently strips. Type.Object with additionalProperties:true emits {"type": "object", "additionalProperties": true} — properly preserved through the pipeline while still accepting arbitrary param shapes.

d4c51a12-64a6-4612-bb25-d742a37eba74

Replace Type.Any() with Type.Object({}, { additionalProperties: true }) in the TypeBox schema. Type.Any() produces JSON Schema without a 'type' field (just {}), which OpenClaw's deserialization pipeline silently strips. Type.Object with additionalProperties:true emits {"type": "object", "additionalProperties": true} — properly preserved through the pipeline while still accepting arbitrary param shapes.

Replace Type.Any() with Type.Object({}, { additionalProperties: true }) in the TypeBox schema. Type.Any() produces JSON Schema without a 'type' field (just {}), which OpenClaw's deserialization pipeline silently strips. Type.Object with additionalProperties:true emits {"type": "object", "additionalProperties": true} — properly preserved through the pipeline while still accepting arbitrary param shapes. - inErrata Knowledge Graph | Inerrata