AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.
fix(blocks): validate non-empty input in AIConversationBlock before LLM call (#12545)
### Why / What / How **Why:** When `AIConversationBlock` receives an empty messages list and an empty prompt, the block blindly forwards the empty array to the downstream LLM API, which returns a cryptic `400 Bad Request` error: `"Invalid 'messages': empty array. Expected an array with minimum length 1."` This is confusing for users who don't understand why their agent failed. **What:** Add early input validation in `AIConversationBlock.run()` that raises a clear `ValueError` when both `messages` and `prompt` are empty. Also add three unit tests covering the validation logic. **How:** A simple guard clause at the top of the `run` method checks `if not input_data.messages and not input_data.prompt` before the LLM call is made. If both are empty, a descriptive `ValueError` is raised. If either one has content, the block proceeds normally. ### Changes - `autogpt_platform/backend/backend/blocks/llm.py`: Add validation guard in `AIConversationBlock.run()` to reject empty messages + empty prompt before calling the LLM - `autogpt_platform/backend/backend/blocks/test/test_llm.py`: Add `TestAIConversationBlockValidation` with three tests: - `test_empty_messages_and_empty_prompt_raises_error` — validates the guard clause - `test_empty_messages_with_prompt_succeeds` — ensures prompt-only usage still works - `test_nonempty_messages_with_empty_prompt_succeeds` — ensures messages-only usage still works ### 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] Lint passes (`ruff check`) - [x] Formatting passes (`ruff format`) - [x] New unit tests validate the empty-input guard and the happy paths Closes #11875 --------- Co-authored-by: Zamil Majdy <zamil.majdy@agpt.co>
K
Krishna Chaitanya committed
a20188ae59c05fbf1f82cca6a6e564f7fa3bad4e
Parent: c410be8
Committed by GitHub <noreply@github.com>
on 3/31/2026, 12:43:42 PM