mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-17 18:21:46 -05:00
### Changes 🏗️ This PR fixes an issue where LLM blocks (particularly AITextSummarizerBlock) were not properly tracking `llm_call_count` in their execution statistics, despite correctly tracking token counts. **Root Cause**: The `finally` block in `AIStructuredResponseGeneratorBlock.run()` that sets `llm_call_count` was executing after the generator returned, meaning the stats weren't available when `merge_llm_stats()` was called by dependent blocks. **Changes made**: - **Fixed stats tracking timing**: Moved `llm_call_count` and `llm_retry_count` tracking to execute before successful return statements in `AIStructuredResponseGeneratorBlock.run()` - **Removed problematic finally block**: Eliminated the finally block that was setting stats after function return - **Added comprehensive tests**: Created extensive test suite for LLM stats tracking across all AI blocks - **Added SmartDecisionMaker stats tracking**: Fixed missing LLM stats tracking in SmartDecisionMakerBlock - **Fixed type errors**: Added appropriate type ignore comments for test mock objects **Files affected**: - `backend/blocks/llm.py`: Fixed stats tracking timing in AIStructuredResponseGeneratorBlock - `backend/blocks/smart_decision_maker.py`: Added missing LLM stats tracking - `backend/blocks/test/test_llm.py`: Added comprehensive LLM stats tracking tests - `backend/blocks/test/test_smart_decision_maker.py`: Added LLM stats tracking test and fixed circular imports ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] Created comprehensive unit tests for all LLM blocks stats tracking - [x] Verified AITextSummarizerBlock now correctly tracks llm_call_count (was 0, now shows actual call count) - [x] Verified AIStructuredResponseGeneratorBlock properly tracks stats with retries - [x] Verified SmartDecisionMakerBlock now tracks LLM usage stats - [x] Verified all existing tests still pass - [x] Ran `poetry run format` to ensure code formatting - [x] All 11 LLM and SmartDecisionMaker tests pass #### For configuration changes: - [x] `.env.example` is updated or already compatible with my changes - [x] `docker-compose.yml` is updated or already compatible with my changes - [x] I have included a list of my configuration changes in the PR description (under **Changes**) **Note**: No configuration changes were needed for this fix. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: Claude <noreply@anthropic.com>