Coze 工作流里如果报 invalid character '<' looking for beginning of value,很多人第一反应是模型坏了,其实大概率不是。公开 issue 里,这种错误通常意味着接口本来应该返回 JSON,结果却返回了一个网页,比如 404 页面、登录页,或者反向代理吐出来的 HTML。换句话说,程序在等数据,却收到了网页。
如果你看的是官方开源版,仓库地址还是 coze-dev/coze-studio。官方 README 和开发说明里都强调过,模型配置、API 入口和工作流执行环境需要先对齐,不然最容易在运行时才炸出来。
为什么这个报错很像“模型问题”
因为它经常出现在工作流节点运行的时候,而节点里刚好又在调用模型或外部接口。可真正的报错关键词是 '<',这说明返回内容开头是 HTML 标签而不是 JSON。也就是说,你要查的不是“模型会不会说话”,而是“接口到底回了什么”。
最常见的几个原因
- Base URL 配错了,接口其实打到了网页而不是 API。
- 路径少了 `/v1` 或者多了一层代理,导致请求被转发到错误地址。
- 网关或 Nginx 返回了错误页,但前端把它当成接口响应去解析。
社区里常用的排查办法
最有效的方法不是猜,而是直接看真实响应。你可以先用 curl 或浏览器网络面板确认接口返回的是不是 JSON;如果一上来就是 HTML,问题基本就锁定在地址、代理、鉴权跳转这几层。公开 issue 里也有人遇到过类似情况,最后排查出来是第三方 OpenAPI 的请求路径配错了,或者代理层返回了网页内容。
如果你是一步步搭工作流,建议先拿一个确认没问题的接口做最小测试,再把其他节点慢慢加回来。这样一旦报错,你能很快知道是哪一层把 JSON 变成了 HTML。
一句话结论
invalid character '<' 不是“模型语法错误”,而是接口响应不对。先查地址、代理和返回内容,往往比改工作流节点更快。