# 🎯 Taskr 实际上是如何运行的？

## 3.4 笔记 (Notes) - 你的 AI 的记忆系统

### 笔记到底是什么

笔记不仅仅是随机的文字 —— 它们是结构化的记忆，能帮助你的 AI 理解以前发生了什么事。你可以把它们想象成：

  - 贴在重要页面上的**便利贴**
  - 教科书里的**批注**
  - 实验过程的**实验室日志**

### 五种笔记类型

**FILE\_LIST (文件列表)** 📁

  - “我修改了这 5 个文件”
  - 列出修改了什么以及为什么修改
  - 有助于追踪更改的范围

**PROGRESS (进度)** 📈

  - “我完成了登录系统！”
  - 重要的里程碑与成就
  - 只用于重大进展，而不是每个微小的任务

**CONTEXT (上下文)** 📚

  - “我们使用 JWT token 是因为...”
  - 背景信息与决策过程
  - 每个选择背后的“为什么”

**FINDING (发现)** 🔍

  - “在验证逻辑中发现了一个 Bug”
  - “API 返回的数据格式与预期不同”
  - 各种发现、问题以及解决方案

**OTHER (其他)** 📝

  - 其他所有事物
  - 一般的观察
  - 最后的分类选项

### 笔记如何与任务关联

每一条笔记都可以通过 `task_id`“附加”到任务上。这会建立一个时间轴：

```
任务 1.2: “创建登录表单”
  └─ 笔记 (FILE_LIST): 修改了 login.tsx, auth.css
  └─ 笔记 (FINDING): 表单组件有内置的验证功能
  └─ 笔记 (PROGRESS): 登录表单已完成且可正常运行
```

未来的 Agent 可以清楚看到在每个任务期间究竟发生了什么事！

### 笔记 ID

每条笔记都会获得一个类似 `NT_ABC123XYZ...` 的专属 ID（NT = Note）。你会在网页界面的笔记卡片角落看到这些 ID。你可以这样引用它们：“正如笔记 NT\_ABC123 中提到的...”

### 数据库实现

笔记存储在 `notes` 数据表中，具备以下特性：

  - 通过 PostgreSQL enum 确保笔记类型的强类型 (Strong typing)
  - 为 `search_notes` 函数建立的全文搜索索引 (Full-text search indexing)
  - 软删除 (Soft deletion, `deleted_at` 字段) 以保留历史记录
  - 通过外键 (foreign key) 关联至任务

-----
