fix: handle 'Action: None' in parser to prevent OutputParserError #4187
+124
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #4186 - When LLMs output
Action: None(or variations likeAction: N/A,Action: no action), the parser now correctly treats this as a signal for a direct response instead of raising anOutputParserError.Previously, the ReAct parser would fail when an LLM indicated it couldn't/shouldn't use a tool by outputting
Action: None, causing the error handler to leak internal "Thought:" text to users.Changes:
ACTION_NONE_REGEXconstant to match non-action values (none, n/a, na, no action, no_action)parse()to detect Action: None patterns and convert them toAgentFinishReview & Testing Checklist for Human
none|n/a|na|no action|no_actioncase-insensitively. Confirm no legitimate tools could be named this way.allow_delegation=Truebut no other agents to trigger the original issue scenario and verify the fix works end-to-end.Action: None (reason)has some complexity that may have edge cases.Suggested test plan:
Notes