Claude Platform release notes 在 2026 年 6 月 2 日更新了两个运行细节:advisor tool 支持 max_tokens,用来限制 advisor 输出长度;Claude API 对没有生成输出就以 stop_reason 为 refusal 停止的请求不再计费,流式场景需要按 streaming refusals 识别。 这条更新容易被理解成成本利好,但对开发者来说,更重要的是把 refusal 当成一种明确状态处理,而不是把它吞进普通失败。
stop_reason 要进入业务日志
当 Claude API 返回 stop_reason: “refusal”,它表达的是模型没有继续生成正常输出。6 月 2 日的更新说明,如果请求在没有生成输出前就被拒绝,不再计费。这个成本变化有帮助,但前提是系统能识别 refusal。
日志里至少要记录模型、请求类型、是否流式、stop_reason、是否产生输出 token、用户场景和后续处理。否则账单下降了,产品却不知道哪些任务被拒答,客服也解释不清为什么用户没有拿到结果。
不要把拒答直接改写成系统错误
很多应用会把模型拒答包装成“系统繁忙”或“稍后再试”。这会制造误判。用户会重试,运营会催容量,开发会查网络,最后才发现其实是模型按规则拒绝了。
更好的做法是把 refusal 分成内部归因和外部反馈。内部保留足够细节,外部用克制语言说明当前请求无法完成,并给出可调整的输入建议。通过 147AI 做调用观测时,也可以把拒答样本和成功样本放在一起复盘,判断是提示词问题、任务边界问题,还是模型选择问题。
advisor 的 max_tokens 是成本阀门
同一天更新的 advisor tool max_tokens 也值得关注。advisor 常用于给执行模型提供中途建议,如果不限制输出,复杂任务里很容易生成超出需要的建议内容,拖慢响应并增加成本。
开发者可以按任务类型设置不同上限:简单分类不需要长建议,代码重构和多步骤分析可以给更高额度。这里的目标不是压缩一切输出,而是让 advisor 的帮助和任务复杂度匹配。
落到代码层面,可以把 refusal 当作一个枚举状态进入响应协议,而不是直接抛异常。前端拿到这个状态后展示可调整建议,后台把样本写入专门队列,运营定期查看高频触发场景。这样账单规则、用户体验和模型安全边界才会在同一套系统里对齐。

1176

被折叠的 条评论
为什么被折叠?



