Fix log analysis agent: Addressed Parsing crash and model incompatibility issues #411
+16
β8
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.
π οΈ Fix Log Analysis Agent: Robust Parsing & Bug Fixes
π Summary
This PR addresses critical stability issues in the log analysis agent caused by model incompatibility and output parsing failures. It specifically fixes the
AttributeError: 'NoneType'crash, handles reasoning models (likellama-3.3-nemotron) gracefully, and resolves Pydantic deprecation warnings.π Issues Fixed
AttributeError: 'NoneType' object has no attribute 'binary_score'occurring when the model output parser failed.<think>blocks (reasoning traces) broke the standard JSON parser.- Deprecation Warnings: Resolved
LangChainDeprecationWarningrelated topydantic_v1.π Changes
| Component | Change Description |
|-----------|--------------------|
| utils.py | Implemented a robust regex-based parsing pipeline. It now aggressively strips
<think>reasoning tags before parsing JSON, ensuring stability even with "chatty" or reasoning-heavy models. Restored missingimport json. || graphnodes.py | Added defensive coding with
.get()access and null checks to handle graceful degradation if a grader returnsNone. || graphedges.py | Updated logic to correctly handle dictionary outputs instead of expecting Pydantic objects. |
| binary_score_models.py | Migrated to direct
pydantic(v2) imports. || .gitignore | Added ignore rules for .env, debug_log.txt, and
.venv/. |