A {runtime:"bamboo"} node whose task produces prose (a code review, an analysis, a summary) can fail with model.parse_error: missing JSON object in model response, then run.parse_error_limit_exceeded → the node returns ok=false.
Root cause: bamboo is a tool-using coding agent (pandacode/src/agent.rs). Its loop expects each model turn to be either a native tool call or a single JSON action. When the model instead returns a plain-text final answer (the natural output of a review/analysis prompt), parse_action raises "missing JSON object", the loop nudges the model to emit JSON, and after MAX_MODEL_PARSE_ERROR_STREAK consecutive prose responses it finishes as blocked.
Repro: in a build-a-project workflow, a bamboo review node ("Review the code in this directory… Do NOT edit files") intermittently fails this way (observed 2/3 deepseek+kimi review nodes failing while a qwen one succeeded — it depends on whether the model happens to emit a parseable structure).
Impact: bamboo is unreliable for pure prose/analysis/review nodes.
Workarounds (today): use schema: on bamboo prose nodes to force structured output the loop can parse, or route prose tasks to runtime:"claude" / "codex".
Possible fix (needs a design decision — touches the agent loop): at the message-path give-up, accept the last substantive prose message as a Finish/final answer (status completed) instead of blocked, so a model that is clearly answering (not tool-calling) completes the turn. Deferred to avoid destabilising the primary coding-agent flow without thorough tests.
A
{runtime:"bamboo"}node whose task produces prose (a code review, an analysis, a summary) can fail withmodel.parse_error: missing JSON object in model response, thenrun.parse_error_limit_exceeded→ the node returns ok=false.Root cause: bamboo is a tool-using coding agent (pandacode/src/agent.rs). Its loop expects each model turn to be either a native tool call or a single JSON
action. When the model instead returns a plain-text final answer (the natural output of a review/analysis prompt),parse_actionraises "missing JSON object", the loop nudges the model to emit JSON, and afterMAX_MODEL_PARSE_ERROR_STREAKconsecutive prose responses it finishes asblocked.Repro: in a build-a-project workflow, a
bambooreview node ("Review the code in this directory… Do NOT edit files") intermittently fails this way (observed 2/3 deepseek+kimi review nodes failing while a qwen one succeeded — it depends on whether the model happens to emit a parseable structure).Impact: bamboo is unreliable for pure prose/analysis/review nodes.
Workarounds (today): use
schema:on bamboo prose nodes to force structured output the loop can parse, or route prose tasks toruntime:"claude"/"codex".Possible fix (needs a design decision — touches the agent loop): at the message-path give-up, accept the last substantive prose message as a Finish/final answer (status completed) instead of
blocked, so a model that is clearly answering (not tool-calling) completes the turn. Deferred to avoid destabilising the primary coding-agent flow without thorough tests.