-
User Interface (UI): JavaScript (React, Vue) for the front end, and HTML/CSS.
-
MVP Capabilities:
- Simple form for user input handling (used for reminder, weather, to-do tasks, chatbot questions, and sensitive data access requests)
- Basic rendering of static and dynamic content
- Minimal responsive design
- Basic state management
- Simple integration with a backend API
-
-
UI Designer (UID): Python or JavaScript for adjusting interface elements dynamically.
-
MVP Capabilities:
- Basic UI adjustment (e.g., form field visibility based on program requirements)
- Simple component customization
- Integration with a basic design system
-
-
Planner: Python for NLP tasks and plan evaluation.
-
MVP Capabilities:
- Simple natural language command parsing (used for identifying tasks such as reminders, weather checks, to-do list operations, chatbot questions, and sensitive data access requests)
- Basic task decomposition
- Simple execution plan creation
-
-
Evaluator: Python for evaluation tasks, ensuring plans meet objectives and constraints.
-
MVP Capabilities:
- Basic validation of execution plans (e.g., verifying parsed reminder time, weather request validity, chatbot input, or sensitive data request)
- Simple feedback generation (e.g., notifying if input commands are not understood, or if access requests require further approval)
-
-
Executor: Python for executing planned tasks with concurrency support.
-
MVP Capabilities:
- Basic task execution (e.g., scheduling reminders, fetching weather data, managing to-do list items, handling chatbot requests, processing sensitive data access)
- Simple concurrency with threading (e.g., handling multiple user requests simultaneously)
- Basic error handling
-
-
Capabilities (Side Effects): Python, integrated for specific system commands.
-
MVP Capabilities:
- Execute simple system-level commands (e.g., sending notifications for reminders, approving sensitive data access)
- Security checks for command execution (e.g., verifying user identity for database access requests)
-
-
Insights (Intelligence): Python with AI models (like PyTorch).
-
MVP Capabilities:
- Integrate a pre-trained model for basic insights (e.g., analyzing user input patterns, responding to chatbot queries, and assessing data access requests)
- Simple data analysis from user inputs (e.g., identifying frequently requested reminders, questions, or sensitive data requests)
-
-
HitL Terminal: WebSocket-based terminal, using Python’s Flask-SocketIO.
-
MVP Capabilities:
- Basic command-line interface for user input (e.g., manually entering reminder, weather, to-do commands, sensitive data requests, or chatbot queries)
- Simple WebSocket communication
- Human-in-the-loop approval interface (e.g., approve or deny access to sensitive databases and monitor chatbot-generated information)
-
-
Info Layer, Queries, Commands, Data: SQLite for local prototyping.
-
MVP Capabilities:
- Store and retrieve basic data (e.g., to-do list items, reminder schedules, sensitive database records, chatbot conversations)
- Simple command processing (e.g., CRUD operations for to-do list, handling sensitive data access requests, storing chatbot interactions)
-
-
Execution Agent: Central component responsible for managing program execution.
-
MVP Capabilities:
- Basic worker provisioning (e.g., assigning tasks such as fetching weather data, scheduling reminders, handling chatbot queries, processing sensitive data access)
- Simple task assignment
- Basic error detection
-
-
API for UI Interaction: REST API to facilitate communication between the UI and backend components.
-
MVP Capabilities:
- Basic RESTful endpoints for CRUD operations (e.g., create, read, update, delete tasks in to-do list, handle chatbot queries, approve sensitive data access)
- Integration with Planner, Evaluator, and Executor
- Simple JSON response handling
- Authentication for basic security
-
-
Infrastructure: The underlying system and technologies needed to support the components for a local prototype.
-
MVP Capabilities:
- Local Server: Host services on a local machine.
- Containerization: Docker for packaging services.
- Orchestration: Docker Compose for managing services locally.
- Logging: Basic logging with Python’s logging module.
- Networking: Simple localhost communication.
- Security: Basic authentication for local access.
-
-
Event-Driven Architecture (EDA) Components: Simplified for local processing and testing.
-
MVP Capabilities:
- Basic event producer and consumer setup (e.g., generating events for reminders)
- Lightweight message broker (e.g., RabbitMQ) for local message passing
-
Libraries and Tools for EDA:
- Event Broker: RabbitMQ for local message queuing.
- Asynchronous Task Management: Celery (Python) for simple task queues.
- Integration: Flask for basic REST APIs.
- Monitoring: Simple logging with Python’s logging module.
-
-
Basic English Language Programs for Prototype:
-
Program 1: “Remind Me”
- Users can input a simple reminder (e.g., “Remind me to take a break in 30 minutes”).
- The system parses the input, schedules a task, and uses the Execution Agent to trigger a notification after the specified time.
-
Program 2: “Weather Check”
- Users can ask for the current weather (e.g., “What’s the weather like today?”).
- The system queries a mock weather API or local data source and returns a basic weather update to the user interface.
-
Program 3: “To-Do List Manager”
- Users can add, view, and delete tasks in a simple to-do list (e.g., “Add ‘buy groceries’ to my to-do list”).
- The system manages tasks in a local SQLite database and interacts with the UI through the API for CRUD operations.
-
Program 4: “Sensitive Database Access via HitL Terminal”
- Users can request access to a sensitive database (e.g., “Access customer data records”).
- The system processes the request, but requires a human-in-the-loop (HitL) to approve the access before any sensitive data is retrieved.
- The HitL Terminal allows a designated user to manually approve or deny the database access request, ensuring secure handling of sensitive information.
-
Program 5: “Ask a Chat Model”
- Users can ask a general question (e.g., “What is the capital of France?”).
- The system forwards the question to a pre-trained chat model, which processes the input and generates an appropriate response.
- The response is returned to the user interface for display.
-