Coze 插件为什么传不过对象参数?这个问题很像“接口没收到”,但公开 issue 里更常见的真相是:Coze 传给插件的那一层,已经把对象参数丢掉或扁平化了。也就是说,插件本身不一定有问题,问题可能出在工作流输入、节点映射,或者参数结构的表达方式上。
一个很典型的公开案例里,插件最终收到的请求体只剩 model_name,而你明明在工作流里还准备了 extra_params。这就说明对象参数在链路某一段被截断了,不是后端没接,而是前面没传过去。
为什么对象参数最容易丢
对象参数比字符串、数字这些简单类型更容易在工作流里出问题,因为它依赖嵌套结构。只要有一步把对象转成了字符串,或者把子字段拆散了,插件节点收到的内容就会和你预期不同。很多人以为自己已经“映射好了”,其实只是映射了外层字段,里面的子属性根本没过去。
先看这几个地方
- 工作流开始节点输出的是对象,还是已经字符串化的 JSON。
- 插件输入参数是否明确声明了对象类型,而不是只写了一个扁平字段。
- 插件执行日志里,实际发出去的 body 到底长什么样。
社区里更稳的处理方法
如果对象结构比较复杂,先把它压平,拆成几个明确字段,确认能正常传递后再考虑恢复嵌套对象。很多时候,先让链路跑通,比一上来坚持保留原始对象结构更省时间。要是你必须保留对象,那就一定要看最终请求体,而不是只看工作流画布上的字段名。
换句话说,插件传不过对象参数,大概率不是插件“不会收”,而是工作流“没按它想要的方式发”。
一句话结论
Coze 插件传不过对象参数,通常先查工作流输入映射,再查参数是不是被字符串化或扁平化了。对象一旦在中途变形,插件端就只会看到残缺数据。