The project adopts a clear layered architecture design:
Data Layer: Uses SQLite as persistent storage, which is lightweight and requires no additional configuration, making it suitable for personal local deployment. The data model covers basic task attributes (title, description, deadline, priority, status, etc.) as well as tag and category information.
Business Logic Layer: Encapsulates core task management operations, including CRUD, status transitions, priority adjustments, etc. This layer remains decoupled from specific LLM implementations, facilitating expansion and testing.
Agent Layer: This is the intelligent core of the system. By defining a set of tool functions (e.g., create_task, update_task, list_tasks, complete_task, etc.), LLMs can autonomously decide which tools to call to fulfill the user's intent based on their natural language input.
Interaction Layer: Provides command-line or API interfaces to receive user input and feed back the agent's execution results to the user.