graph LR
Human_Input_Handler["Human Input Handler"]
Human_Input_Data_Models["Human Input Data Models"]
Progress_Display["Progress Display"]
Console_Interface["Console Interface"]
Human_Input_Handler -- "uses" --> Human_Input_Data_Models
Human_Input_Handler -- "uses" --> Console_Interface
Human_Input_Handler -- "uses" --> Progress_Display
Progress_Display -- "uses" --> Console_Interface
The Human Interaction Layer is a critical subsystem designed to facilitate seamless human-in-the-loop workflows within the AI agent framework. Its primary purpose is to enable agents to request information, receive feedback, and process responses from human users, thereby integrating human intelligence and decision-making into automated processes. This layer adheres to the project's architectural biases by promoting modularity, clear separation of concerns, and an asynchronous design, ensuring that human interactions do not block core agent operations.
This is the central orchestrator for managing human input. It's responsible for presenting prompts to the user, capturing their input (distinguishing between simple text and structured commands), and then parsing that input to determine the appropriate action for the agent. It also coordinates with the display mechanism to manage the visual state during input.
Related Classes/Methods:
This component defines the standardized data structures (e.g., HumanInputRequest) for all human-related input and output within the system. It ensures type safety, consistency, and a clear contract for information exchange between the agent framework and the human interaction components.
Related Classes/Methods:
This component, specifically RichProgressDisplay, is responsible for providing visual feedback to the user during agent operations. It manages the display of progress indicators, status messages, and other interactive elements, crucially pausing them when human input is pending and resuming them afterward to maintain a coherent user experience.
Related Classes/Methods:
This foundational component provides the low-level interface for interacting with the console. It handles the actual reading of input from stdin and writing output to stdout/stderr. While not exclusively part of the human_input package, it serves as the underlying I/O mechanism for any console-based human interaction.
Related Classes/Methods: