Replies: 2 comments 1 reply
|
Good write-up — I traced this against current master ( Version drift first. Your citations are all from Does 0.84.4 support Responses Lite? No. I grepped the pi-ai tree at tag
Upstream status of your related request (#6516). Auto-closed by What this means for your two options:
On error classification: I agree with your framing — classifying "overloaded" as retryable Net recommendation: a catalog capability gate (option 2) is the DSH-side-safe move today, with the gate's failure message naming the unsupported dialect explicitly — so users see a compatibility error instead of an apparent capacity failure. I can sketch that diff if it helps. |
|
Resolution update: the failure no longer reproduces, and the new evidence changes the diagnosis. The durable session log shows that the failed turn was not rejected merely because tools were present: After continuing the exact same session later: Controls checked after success:
I am withdrawing the deterministic Responses Lite/tool-rejection hypothesis and the capability-gate suggestion. The official Responses Lite source difference remains true, but this incident does not establish it as causal. Closing as no longer reproducible; it can be reopened if a controlled stock reproduction returns. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Note
Resolution update (2026-09-03): this no longer reproduces and is being closed as a transient incident. The same DSH session was continued without any User-Agent or request-body shim and completed further
gpt-5.6-soltool steps successfully. DSH is still0.1.1-rc.2,dsh-llm-pi-aiis still0.1.1-rc.2, and pi-ai is still0.82.1; the installed LLM package files match their npm tarballs byte-for-byte, and the OAuth grant did not rotate between failure and success. The failed turn had already completed two tool steps (create_goal, thentodo_write) before a later model step returned overloaded; the resumed turn completedget_goalandupdate_goal. This falsifies the deterministic “legacy tools are rejected” interpretation. The Responses Lite wire difference below is real but was not the established cause. Most likely this was transient provider capacity/routing behavior. The original hypothesis is retained below only as investigation history.Important
Correction after follow-up: Pi Coding Agent
0.84.4, with its embedded@earendil-works/pi-ai@0.84.4, is currently working normally withopenai-codex / gpt-5.6-sol, including multi-step tool calls. Therefore this is not evidence that Pi or pi-ai 0.84.4 is generally broken for Sol. This report is now scoped to the DSH0.1.1-rc.2integration path. The Responses Lite source difference is real, but its causal connection to the DSH failure is unproven; a capability gate would be premature without reproducing on stock DSH alpha.4 / pi-ai 0.84.4.Summary
openai-codex / gpt-5.6-solagent turns on DSH0.1.1-rc.2can terminate with:In the observed DSH session, the model first produced a normal response and a
create_goaltool call. After the tool result was recorded, the next model request failed before generation with input/output usage both zero. The same account and model complete tool calls in the official Codex CLI0.146.1.This has the same visible symptom as #3306 and #3407, but those discussions focus on error classification and retries. There is also a separate request-dialect mismatch: official Codex marks
gpt-5.6-solas a Responses Lite model, while the pi-ai version resolved by this DSH release still emits the legacy top-levelinstructionsandtoolsrequest shape.I am not proposing a User-Agent/header workaround. Local compatibility experiments were removed. After verifying current Pi Coding Agent behavior, Responses Lite should be treated as a diagnostic difference to investigate—not as an established fix or a reason by itself to withhold Sol.
Versions
0.1.1-rc.2@deepseek-ai/dsh-llm-pi-ai:0.1.1-rc.2@earendil-works/pi-ai:0.82.1openai-codex / gpt-5.6-solhigh0.146.1Request-format difference
DSH maps assembled tools to pi-ai
Context.tools. pi-ai0.82.1then sends top-levelinstructionsand top-leveltools, withparallel_tool_calls: true.Official Codex CLI
0.146.1marksgpt-5.6-solwithuse_responses_lite: true. Its Responses Lite branch instead:inputitem withtype: "additional_tools"androle: "developer";input;instructionsandtools;reasoning.context: "all_turns".A loopback capture of the official CLI request, sent only to a local HTTP server, confirmed this structure without recording credentials, prompt content, tool descriptions, schemas, IDs, or full payloads.
Source references
deepseek-harness/packages/llm/llm-pi-ai/package.json
Lines 45 to 47 in b150a55
0.82.1:deepseek-harness/pnpm-lock.yaml
Lines 5540 to 5542 in b150a55
deepseek-harness/packages/llm/llm-pi-ai/src/context.ts
Lines 116 to 133 in b150a55
0.82.1request builder: https://github.com/earendil-works/pi/blob/v0.82.1/packages/ai/src/api/openai-codex-responses.ts#L516-L567Reproduction
0.1.1-rc.2with an existing validopenai-codexOAuth grant.openai-codex / gpt-5.6-sol, reasoning efforthigh.PI_AI_ERROR, and zero token usage.Please do not include authorization headers, OAuth grants, request IDs, full system prompts, message content, or complete payloads when reproducing.
Expected behavior
DSH
0.1.1-rc.2should complete the same Sol tool loop that current Pi Coding Agent0.84.4completes. Before proposing a wire change or model gate, the request and behavior should be re-captured on stock DSH alpha.4, which resolves pi-ai0.84.4.Questions / suggested direction
0.84.4and the failing DSH0.1.1-rc.2integration path (adapter headers, transport options, context/replay conversion, or resolved pi-ai behavior)?0.84.4before changing the wire format or adding a capability gate?SERVER(pi-ai adapter: third-party "server_error"/overload responses are not classified as SERVER and never retried #3407) helps real transient overloads, but retries alone cannot correct an incompatible request shape.The source comparison proves the dialect difference. It strongly matches the tool-dependent failure, but I cannot claim knowledge of the provider's internal routing; a maintainer-owned wire fixture or integration test would make the causal link conclusive.
All reactions