Skip to content

Latest commit

 

History

History
172 lines (130 loc) · 6.68 KB

File metadata and controls

172 lines (130 loc) · 6.68 KB

HomeTask

TypeScript React Hono PostgreSQL LangGraph OpenAI Cloudflare Workers

以群组为核心的任务管理器——用自然语言描述需要做的事,多 Agent AI 系统自动处理,实体墨水屏 24 小时展示待办任务,无需打开手机。

English



✨ 亮点

LangGraph 多 Agent 编排 — Supervisor 将请求分发给四个专责 Agent:任务、日历、天气、通知。一句话"周六早上去机场接人",可以同时触发创建任务、查询天气、安排提醒三个 Agent 协同完成。

群组优先的任务协作 — 任务以群组为单位组织,不只是个人 todo。公开任务实时同步给所有成员,用 4 位邀请码加入群组,无需账号关联。

实体墨水屏展示 (计划中) — ESP32 每 2 分钟轮询 API,将群组待办任务渲染到 7.5 寸墨水屏上。不需要 App,不需要通知,任务始终可见。


技术栈

层级 技术
前端 React 19、Vite、React Router v7、TanStack Query v5
UI Tailwind CSS v4、shadcn/ui
后端 Hono.js(Node.js)
数据库 Neon(Serverless PostgreSQL)、Drizzle ORM
认证 Better Auth —— 邮箱密码 + Google OAuth
AI OpenAI GPT-4o / DeepSeek(经由 AIHubMix)、Whisper STT
AI 编排 LangGraph —— Supervisor + 多 Agent
硬件 ESP32、GxEPD2 墨水屏驱动

功能

群组管理

  • 创建群组,自动生成唯一邀请码
  • 凭 4 位邀请码加入,无需账号关联
  • 角色权限:群主 / 成员

任务管理

  • 个人(私有)与群组(共享)任务合并展示
  • 优先级、截止时间、模糊时间段(上午 / 下午 / 晚上 / 全天)
  • 重复任务:按天、周、月、年自定义规则
  • 群组内任务分配

AI 助手

  • 自然语言输入,直接用中文描述

  • 基于 LangGraph 的多 Agent 系统:

    Agent 职责
    Supervisor 理解意图,分发给对应 Agent
    Task Agent 创建、查询、修改、完成、删除
    Calendar Agent 查看日程、查找空闲时间段
    Weather Agent 户外/出行任务的天气上下文
    Notification Agent 根据任务时间和天气安排提醒

墨水屏展示 (计划中)

  • ESP32 每 2 分钟轮询 /api/devices/{id}/tasks
  • 渲染到 7.5 寸墨水屏(800×480,GxEPD2 驱动)
  • 两次刷新之间 Deep Sleep 省电

架构

┌──────────────────────────────────────────────────┐
│                    客户端                         │
│  React Web(Vite)        移动端(计划中)          │
└──────────────────┬───────────────────────────────┘
                   │ HTTP
┌──────────────────▼───────────────────────────────┐
│             Hono.js API(Node.js)                │
│                                                   │
│  ┌───────────────────────────────────────────┐    │
│  │            多 Agent 系统                  │    │
│  │  Supervisor ──► Task Agent(任务)         │    │
│  │             ──► Calendar Agent(日历)     │    │
│  │             ──► Weather Agent(天气)      │    │
│  │             ──► Notification Agent(提醒) │    │
│  └───────────────────────────────────────────┘    │
└──────────────────┬───────────────────────────────┘
                   │
         ┌─────────▼──────────┐
         │  Neon PostgreSQL   │
         └────────────────────┘

┌──────────────────────────────────────────────────┐
│                硬件层(计划中)                    │
│  ESP32 ──► HTTP GET /api/devices/{id}/tasks       │
│        ──► 7.5 寸墨水屏(GxEPD2)                │
└──────────────────────────────────────────────────┘

本地运行

前置条件

  • Node.js 18+、pnpm
  • Neon PostgreSQL 数据库(免费套餐够用)
  • OpenAI API Key AIHubMix Key(支持 DeepSeek,国内推荐)

环境变量

packages/server/.dev.vars

DATABASE_URL=postgresql://...
BETTER_AUTH_SECRET=随机字符串
BETTER_AUTH_URL=http://localhost:3000
RESEND_API_KEY=re_...

# 二选一:
OPENAI_API_KEY=sk-...
#
AIHUBMIX_API_KEY=...
AIHUBMIX_BASE_URL=https://aihubmix.com/v1
AIHUBMIX_MODEL_NAME=deepseek-v3.2   # 可选,默认值

packages/web/.env

VITE_API_BASE_URL=http://localhost:3000

启动

pnpm install
pnpm -C packages/server db-push
pnpm -C packages/server dev    # 后端 → localhost:3000
pnpm -C packages/web dev       # 前端(新终端)

测试

pnpm -C packages/server test

Roadmap

  • 语音输入 —— Whisper STT(服务端管道已完成,前端 UI 待接入)
  • 移动端 —— Expo / React Native
  • ESP32 墨水屏集成
  • 推送 / 短信通知
  • 生产环境部署

License

MIT