Skip to content

pi RPC agent emits empty final answer under --thinking high (analysis/review deliverables lost) #17

Description

@Hrt-Htk

Filed from the geode project — a pi/proxy issue, not geode-specific.

Symptom

pi_rpc.py dispatches with read-only analysis/review personas (scout, reviewer) reach agent_end
(verdict=DONE) but write a near-empty <out>.answer.txt — only narration stubs like "Now let me write
the report." The actual report/verdict is never produced. Worker (edit/write) dispatches are unaffected
because their deliverable is the on-disk edit (a side effect), not the final message.

Root cause (traced from the raw event stream)

Under --thinking high, the model (qwen3.6-27b-q4-mtp-128k) routes essentially all substantive output
into the thinking channel and emits an almost-empty visible answer:

assistantMessageEvent subtype count chars
thinking_delta 2,385 10,257
text_delta (visible answer) 14 186
  • The models final assistant message in agent_end.messages is empty (reviewer) / a 56-char stub
    (scout). So it is NOT merely a capture bug in pi_rpc.py (which only accumulates text_delta) — the
    content is genuinely never emitted as an answer. The model "thinks" the report and then ends the turn
    without "saying" it.

Proposed fix (upstream in pi / at the proxy — where this issue is tracked)

  1. Empty-output nudge (preferred). At agent_end, if the final assistant visible text is empty/near-
    empty while thinking was substantial, inject a follow-up turn: "You produced no visible output. Emit
    your final answer now as a normal message, not reasoning."
    Re-run one turn, then settle.
  2. Server/proxy-level guard. Detect the same condition at the proxy and re-prompt before returning.

Client-side mitigations already available (geode side, not a fix here)

  • Have analysis/review personas write their report to a file (side-effect deliverable) — mirrors why
    workers never fail.
  • Drop analysis/review dispatches to --thinking medium so budget goes to the visible answer.

Evidence artifacts (geode repo): tmp/scout-audit.events.jsonl, tmp/review229c.events.jsonl.

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