Repository navigation
Replies: 2 comments
|
补充:由于组织权限限制,当前账号执行
|
0 replies
|
补充(同一处修复的延伸):除 HTTP/2 流重置外,网关的两类瞬时错误同样会落到兜底
两者都在 分支已更新为 head |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
现象
@deepseek-ai/dsh-llm-pi-ai在网关返回如下终止错误时:会落到
classifyPiAiError的兜底分支PI_AI_ERROR。该码不在 providerretryPolicy的默认可重试集合(EMPTY_RESPONSE/RATE_LIMIT/SERVER/TIMEOUT/TRANSPORT)中,所以这类瞬时的上游流中断不会进入自动重试,而是直接以turn/end { kind: "error" }结束整轮,必须由人重新发消息才能继续。复现
让一条
openai-responses路由的端点先返回终态错误事件:{"type":"error","code":"upstream_http2_stream_error","message":"Upstream HTTP/2 stream failed"}再返回正常 SSE 完成事件。观察会话日志:
turn/end直接是kind: "error",且没有llm/retry事件。实际观测(
codex/gpt-6.1-sol路由,网关sub2api.a2d2.dev):同一故障窗口内,TRANSPORT类失败会各自记录 5/5 次重试;而该条upstream_http2_stream_error一次都不重试,轮次直接失败。期望
upstream_http2_stream_error与Upstream HTTP/2 stream failed表示上游连接在流式返回过程中被重置,属于传输类故障,应与既有的other side closed/HTTP2 request did not get a response/terminated同等对待,归类为TRANSPORT,由 provider 的retryPolicy决定重试次数。补丁
fork 分支:
imneov/deepseek-harness→fix/http2-stream-recovery-release,基线master(639ed01539),2 个提交:fix(llm-pi-ai): classify upstream HTTP2 resets as transport failures——src/stream.ts增加一条传输类匹配;tests/convert.spec.ts(+34)与tests/loader-composition.spec.ts(+39)覆盖分类结果,以及真实 Loader 组合下经 Responses SSE 的重试路径;README 双语与README.i18n.yaml同步。test(llm): record bounded HTTP2 stream recovery without partial history—— 新增录制会话snapshots/session/gateway-http2-stream-retry/,经dsh --profile headless回放,确认失败尝试不进入消息历史且恢复后同轮完成。本地证据:
CONTRIBUTING 说明当前不接受外部 PR,因此按该文件指引在 Discussions 报障,并保留一个从 fork 发起的 PR 作为公开记录。若维护者认为该改动本身合适、或有更合适的提交方式,请告知。
All reactions