Conversation
…ng framework - Updated `pyproject.toml` to restrict Python versions to 3.12 and above. - Redesigned exception classes to include structured error codes and context: - Introduced `StorageError` hierarchy for storage-related exceptions. - Enhanced `GraphError`, `NodeError`, and `GraphRecursionError` with error codes and context. - Implemented comprehensive error handling guidelines in `ERROR_HANDLING_GUIDELINES.md`. - Updated tests to cover new exception structures and ensure 100% coverage for exception modules. - Created detailed documentation for error handling practices and migration guide.
…and add multiagent example
…g, resource limits, and improved shutdown handling - Updated RabbitMQPublisher to support connection pooling, configurable timeouts, and heartbeat settings. - Enhanced RedisPublisher with connection pooling, socket timeouts, and health check intervals. - Improved BackgroundTaskManager to include graceful shutdown with timeout handling and context manager support. - Added comprehensive memory management tests for publishers and task manager. - Updated tests to reflect changes in publisher implementations and ensure proper resource disposal. - Introduced new markers for slow tests in pytest configuration.
…ckpointer functionality - Implemented comprehensive property-based tests for AgentState using Hypothesis to validate state properties, execution metadata, and reducer functions. - Added integration tests for checkpointer functionality, covering scenarios such as checkpointing, resuming, handling interrupts, state persistence, and error recovery. - Ensured tests validate the behavior of multiple agents and workflows, including conditional routing and synchronous execution.
…Agentflow framework - Deleted outdated completion reports for Task 5 and general task completion. - Updated TaskPlan.md to reflect completed tasks and remove obsolete entries. - Improved CompiledGraph and StateGraph classes to support interrupt handling. - Enhanced BackgroundTaskManager with cleanup guarantees and resource disposal in event publishers. - Implemented connection limits and pooling for async operations in Redis, Kafka, and RabbitMQ publishers. - Created comprehensive memory profiling tests with full coverage. - Standardized error handling with structured responses and comprehensive documentation. - Updated tests for exceptions with 100% coverage and ensured all existing tests pass. - Added new testing script for InjectQ factory binding demonstration.
…in InMemoryCheckpointer
…idators - Added BaseValidator abstract class for input validation. - Integrated validation system into CallbackManager for message validation. - Created PromptInjectionValidator and MessageContentValidator for specific validation needs. - Implemented global convenience function for registering validators. - Updated existing validators to extend BaseValidator. - Enhanced validate_message_content function to utilize new validation system. - Developed comprehensive documentation for input validation usage and best practices. - Added unit tests for validators to ensure functionality and reliability.
… input validation registration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request introduces several improvements and new features to the 10xScale Agentflow framework, with a primary focus on input validation, error handling, and codebase organization. The most significant change is the implementation of a robust, extensible input validation system that enhances security and flexibility. Additional changes include updates to error handling in checkpointers, stricter constructor requirements for tool adapters, and the introduction of comprehensive planning and documentation for future development.
Input Validation System:
BaseValidatorabstract class and integrated validator management into theCallbackManager, enabling flexible, per-graph input validation. Default and custom validators are now supported, with strong protection against prompt injection and related attacks. Comprehensive documentation and usage patterns were added.Error Handling Improvements:
pg_checkpointer.pyby adding structured error codes and context toTransientStorageErrorandStorageError, improving traceability and diagnostics for storage-related failures.ResourceNotFoundErrorinin_memory_checkpointer.pywhen attempting to put messages for a non-existent config key, and imported the exception for clarity. [1] [2]API Consistency and Strictness:
ComposioAdapterto require non-optionalapi_key,provider, andfile_download_dirparameters, enforcing stricter usage patterns and reducing ambiguity.Project Planning and Documentation:
TaskPlan.md) outlining future improvements in input validation, file refactoring, testing, audit logging, performance optimization, and more, providing clear development direction for the project.Job.md) specifying fields to extract from job descriptions, supporting future model fine-tuning efforts.