huggingface/smolagents · error · AgentParsingError
Error in code parsing: {e} Make sure to provide correct code
Error message
Error in code parsing:
{e}
Make sure to provide correct code blobs. What it means
After generation, CodeAgent._step_stream extracts executable Python from the model output — via json.loads for structured outputs or parse_code_blobs for tagged code blocks — and wraps any failure in AgentParsingError with guidance to provide correct code blobs. It means the model's textual output was not in the expected code format.
Source
Thrown at src/smolagents/agents.py:1713
memory_step.model_output_message.content = output_text
memory_step.token_usage = chat_message.token_usage
memory_step.model_output = output_text
except Exception as e:
raise AgentGenerationError(f"Error in generating model output:\n{e}", self.logger) from e
### Parse output ###
try:
if self._use_structured_outputs_internally:
code_action = json.loads(output_text)["code"]
code_action = extract_code_from_text(code_action, self.code_block_tags) or code_action
else:
code_action = parse_code_blobs(output_text, self.code_block_tags)
code_action = fix_final_answer_code(code_action)
memory_step.code_action = code_action
except Exception as e:
error_msg = f"Error in code parsing:\n{e}\nMake sure to provide correct code blobs."
raise AgentParsingError(error_msg, self.logger)
tool_call = ToolCall(
name="python_interpreter",
arguments=code_action,
id=f"call_{len(self.memory.steps)}",
)
yield tool_call
memory_step.tool_calls = [tool_call]
### Execute action ###
self.logger.log_code(title="Executing parsed code:", content=code_action, level=LogLevel.INFO)
try:
code_output = self.python_executor(code_action)
execution_outputs_console = []
if len(code_output.logs) > 0:
execution_outputs_console += [
Text("Execution logs:", style="bold"),
Text(code_output.logs),View on GitHub (pinned to 30bb116109)
Solutions
- Ensure your prompt templates instruct code in the same tags configured via code_block_tags (use 'markdown' with the default code-agent.yaml templates).
- Retry the run — the parsing error is fed back and models usually correct the format.
- Use a stronger model or enable structured outputs so the code field is guaranteed.
Example fix
# before
agent = CodeAgent(model=weak_model, tools=[], code_block_tags='markdown')
# weak model outputs plain prose -> AgentParsingError
# after
agent = CodeAgent(model=stronger_model, tools=[], code_block_tags='markdown')
# or retry loop:
from smolagents.exceptions import AgentParsingError
for _ in range(3):
try:
result = agent.run(task); break
except AgentParsingError:
continue Defensive patterns
Strategy: retry
Try / catch
from smolagents.exceptions import AgentParsingError
for attempt in range(3):
try:
result = agent.run(task)
break
except AgentParsingError as e:
if 'code parsing' not in str(e):
raise
if attempt == 2:
raise Prevention
- Keep code_block_tags consistent with your prompt template's code fencing instructions.
- Use 'markdown' tags with the stock code_agent.yaml templates.
- Prefer stronger models or structured outputs for reliable code formatting.
When it happens
Trigger: The model returns prose or malformed code blocks so parse_code_blobs finds no valid code between the configured tags; or with structured outputs, output_text is not valid JSON with a 'code' key.
Common situations: Small/local models ignoring the code-format prompt; code_block_tags mismatch between what the prompt tells the model and what the parser looks for; custom prompt templates that don't instruct ```python fencing when tags are 'markdown'.
Related errors
- No '{split_token}' token provided in your output. Your outpu
- Only 'markdown' is supported for a string argument to `code_
- Unsupported executor type: {self.executor_type}
- Managed agents are not yet supported with remote code execut
- Error in generating model output: {e}
AI-assisted analysis of huggingface/smolagents@30bb116109 (2026-08-28).
Data as JSON: /api/errors/3595bac98adf6e1b.
Report an issue: GitHub.