diff --git a/researchers/web/agent.py b/researchers/web/agent.py index e2944fc..391e106 100644 --- a/researchers/web/agent.py +++ b/researchers/web/agent.py @@ -448,7 +448,7 @@ class WebResearcher: response = self.client.messages.create( model=self.model_id, - max_tokens=4096, + max_tokens=16384, messages=[{"role": "user", "content": prompt}], ) @@ -457,6 +457,7 @@ class WebResearcher: # Parse the JSON response raw_text = response.content[0].text.strip() + stop_reason = response.stop_reason # Strip markdown fences if the model added them despite instructions if raw_text.startswith("```"): raw_text = raw_text.split("\n", 1)[1] if "\n" in raw_text else raw_text[3:] @@ -465,11 +466,16 @@ class WebResearcher: try: data = json.loads(raw_text) - except json.JSONDecodeError: + except json.JSONDecodeError as parse_err: trace.log_step( "synthesis_error", - decision="Failed to parse synthesis JSON, returning fallback", - raw_response=raw_text[:1000], + decision=( + f"Failed to parse synthesis JSON ({parse_err}); " + f"stop_reason={stop_reason}" + ), + stop_reason=stop_reason, + parse_error=str(parse_err), + raw_response=raw_text, ) return self._fallback_result( question, evidence, trace, total_tokens, iterations,