Back to Works

Task mAIstro

2026

A personalized AI task management assistant built with LangGraph. It maintains a persistent memory of your profile, to-do list, and custom preferences — deployed as a production service backed by Postgres and Redis via Docker Compose.

How It Works

The agent runs a continuous conversation loop. On every message it decides what (if anything) to remember, then responds naturally.

Memory Namespaces (per user)

  • Profile — name, location, job, connections, interests
  • ToDo list — tasks with deadlines, estimated time, solutions, and status
  • Instructions — user-defined preferences for how the to-do list should be managed

On Each Turn

  1. The task_mAIstro node loads all three memory namespaces and calls gpt-4o-mini
  2. The model decides whether to call the UpdateMemory tool (user, todo, or instructions)
  3. A conditional edge routes to the appropriate update node
  4. Trustcall performs structured, patch-based extraction — updates existing records rather than overwriting
  5. After the update, control returns for a natural-language reply

Deployment Architecture

Three containers orchestrated via Docker Compose:

Container Purpose
langgraph-api Serves the graph over HTTP via LangGraph Server
langgraph-postgres Persists threads, checkpoints, store items, and assistants
langgraph-redis Token streaming via pub/sub during graph execution

Key Features

Repository
GitHub
Stack
LangGraph, LangChain, OpenAI (gpt-4o-mini), Trustcall, Docker Compose, Postgres, Redis, LangSmith
Platform
Docker Compose (LangGraph Server + Postgres + Redis)
flowchart LR START([START]) --> task_mAIstro task_mAIstro -->|no tool call| END([END]) task_mAIstro -->|update_type=user| update_profile task_mAIstro -->|update_type=todo| update_todos task_mAIstro -->|update_type=instructions| update_instructions update_profile --> task_mAIstro update_todos --> task_mAIstro update_instructions --> task_mAIstro
flowchart TD %% Boundary for Docker Compose subgraph DockerCompose [docker-compose env] direction TB %% Internal Services Server[LangGraph Server
API :8123] subgraph Infrastructure [Data & Messaging Layer] direction LR Postgres[(Postgres
state + store)] Redis[(Redis
stream pub/sub)] end end %% Internal Connections Server <--> Postgres Server <--> Redis %% External Interface Clients([SDK Client / Remote Graph
LangSmith Studio / REST API]) %% External Connection Server <== " HTTP / REST "==> Clients %% Styling classDef docker fill:transparent,stroke:#2496ed,stroke-width:2px,stroke-dasharray: 5 5 classDef server fill:#f8fafc,stroke:#1e293b,stroke-width:2px,color:#1e293b classDef db fill:#f1f5f9,stroke:#475569,stroke-width:1px,color:#334155 classDef ext fill:#3b82f6,stroke:#1d4ed8,stroke-width:2px,color:#fff class DockerCompose docker class Server server class Postgres,Redis db class Clients ext