Skip to content

OpenAI 兼容流式 usage 被适配器重复累加(/cost 与性能门数值不可信) #21

Description

@Lion-1209

发现自 PR #17 的 macOS 真机审计(审计者 KiritoStar / Codex agent,报告全文见该 PR 描述)。状态:待修复。影响 /cost 显示与性能门断言的可信度。

问题

stepfun_api(OpenAI 兼容协议)流式响应下,usage 被逐块重复累加:真实最小请求对照显示服务端末条 usage 为 prompt=16 / completion=28(累计式,末块重复 28),供应商总量 16/28/44,而 ChatOpenAI 聚合得到 208/180/388。冻结的 langchain_openai/chat_models/base.py_convert_chunk_to_generation_chunk 为每个 chunk 生成 usage_metadata,agent/deep_loop.py:1215-1217 将聚合结果交给 stream.add_usage

实测后果:性能测试 tests/agent/test_perf_baseline.py:154 聚合 input_tokens=574422 > 50000 断言失败(该数值不能当作实际计费 token)。

修复方向 [判断]

在明确 provider 协议后,把累计式 usage 规范化为增量再累加;需覆盖 stream / non-stream、重复末块、工具轮次、重试场景。不要全局把所有 provider 的 usage 改成取最后一项,也不要直接放宽性能阈值。

备注

非流式路径未受影响;智谱(Anthropic 协议)行为待验证。审计者已在 PR 中保留透明代理只记录 usage 的复现脚本(usage_probe.py/.json,位于 PR #17 证据附件)。

优先级 P2,建议尽早(来自审计报告 P2-N7)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions