Task Memory — 任务遗忘防护系统
核心原则
做 A 的同时必须完成 B,不能分开两步。
AI Agent 的记忆是每次重新初始化,但任务必须是持续的。"发消息给用户说会做 X" ≠ "任务被追踪"。必须写入 todo.json 才能被系统自动管理。
触发场景
当以下场景发生时,必须使用本技能:
- 1. 提出或承诺了某项计划 → 立刻调用 INLINECODE0
- 用户交代了任务 → 立即登记,设置 deadline
- 任务状态变更(完成/废弃/遇到障碍)→ 调用
--done 或 INLINECODE2 - 会话开场(晨间) → 运行
--check,报告过期/即将到期的任务 - 心跳检查 → 运行
--check,有过期项推送到 QQ/IM - 设置 cron/自动化任务 → 自动化执行的同时必须登记 todo
快速命令
CODEBLOCK0
工作流
工作流1:主动提出计划
CODEBLOCK1
工作流2:用户交代任务
CODEBLOCK2
工作流3:晨间检查
CODEBLOCK3
工作流4:任务完成
CODEBLOCK4
文件结构
CODEBLOCK5
todo.json 结构
CODEBLOCK6
字段说明:
- -
id: 唯一标识(8位 UUID) - INLINECODE6 : 任务描述
- INLINECODE7 : ISO 格式截止日期(YYYY-MM-DD)
- INLINECODE8 : pending / in_progress / completed / cancelled
- INLINECODE9 : 分类标签(见下表)
- INLINECODE10 : true = agent 主动提出,false = 用户交代
- INLINECODE11 : 额外备注
- INLINECODE12 : 完成时间(自动填充)
标签使用
| 标签 | 用途 |
|---|
| papertrading | 模拟交易相关 |
| btcmonitor |
加密货币监控相关 |
| research | 研究调研任务 |
| other | 其他 |
知识库
详细版本历史、设计决策、已知局限、未来计划:
→ INLINECODE13
重要规则
- 1. deadline 格式:必须是 ISO 格式(YYYY-MM-DD),否则
--check 无法识别过期 - 过期不过期只看 deadline:
status 字段不影响过期判断 - todo.json 路径:默认保存在当前目录
references/todo.json,部署时可调整 - system 标记:区分"agent 主动提出的"和"用户交代的"
- 承诺即登记:任何计划在告诉用户的同时,必须完成 --add 登记
AGENTS.md 集成
在会话开场规则中加入 Todo 扫描:
CODEBLOCK7
在 HEARTBEAT.md 中加入心跳检查:
CODEBLOCK8
Task Memory — 任务遗忘防护系统
核心原则
做 A 的同时必须完成 B,不能分开两步。
AI Agent 的记忆是每次重新初始化,但任务必须是持续的。发消息给用户说会做 X ≠ 任务被追踪。必须写入 todo.json 才能被系统自动管理。
触发场景
当以下场景发生时,必须使用本技能:
- 1. 提出或承诺了某项计划 → 立刻调用 todo_manager.py --add
- 用户交代了任务 → 立即登记,设置 deadline
- 任务状态变更(完成/废弃/遇到障碍)→ 调用 --done 或 --remove
- 会话开场(晨间) → 运行 --check,报告过期/即将到期的任务
- 心跳检查 → 运行 --check,有过期项推送到 QQ/IM
- 设置 cron/自动化任务 → 自动化执行的同时必须登记 todo
快速命令
bash
登记任务(每次承诺后必须执行)
python3 scripts/todo_manager.py --add 任务描述 --tag <标签> --system --deadline YYYY-MM-DD
注意:deadline 格式必须为 YYYY-MM-DD,不合法会报错拒绝
会话开场 / 心跳检查(自动运行)
python3 scripts/todo_manager.py --check
列出所有任务
python3 scripts/todo_manager.py --list
任务完成(自动归档,保留30天)
python3 scripts/todo_manager.py --done
删除任务
python3 scripts/todo_manager.py --remove
查看归档(30天内)
python3 scripts/todo_manager.py --archive
清理30天前归档
python3 scripts/todo_manager.py --purge
更新任务
python3 scripts/todo_manager.py --update --title 新描述
工作流
工作流1:主动提出计划
用户:我们来做 BTC 监控自动化吧
→ 思考:这是一个持续性任务,需要登记
→ 调用 --add BTC MACD实盘监控自动化 --tag btc_monitor --system --deadline 今天
→ 写监控脚本
→ 设置 cron
→ --done
工作流2:用户交代任务
用户:帮我验证 ETH 回测策略
→ 调用 --add 验证ETH回测策略 --tag research --deadline YYYY-MM-DD
→ 执行
→ --done
→ 告知用户完成
工作流3:晨间检查
会话开场
→ python3 scripts/todo_manager.py --check
→ 输出:
⚠️ 已过期:
[id] A股模拟账户持仓5只 (截止: 昨天)
📅 即将到期:
[id] 策略验证 (截止: 今天)
→ 主动报告给用户
工作流4:任务完成
任务完成后
→ --done
→ 同时更新相关状态文件
→ 告知用户已完成
文件结构
task-memory/
├── SKILL.md ← 本文件
├── scripts/
│ └── todo_manager.py ← 任务管理工具(Python)
└── references/
└── todo.json ← 任务数据库(运行时会创建)
todo.json 结构
json
{
version: 1.0,
updated: 2026-04-01T00:00:00+08:00,
items: [
{
id: c3436d4d,
title: A股模拟账户 - 持仓5只,
created: 2026-04-01T00:00:00+08:00,
deadline: 2026-04-01,
status: pending,
tag: paper_trading,
system: true,
notes: 每只10万,09:25买入,
completed_at: null
}
]
}
字段说明:
- - id: 唯一标识(8位 UUID)
- title: 任务描述
- deadline: ISO 格式截止日期(YYYY-MM-DD)
- status: pending / inprogress / completed / cancelled
- tag: 分类标签(见下表)
- system: true = agent 主动提出,false = 用户交代
- notes: 额外备注
- completedat: 完成时间(自动填充)
标签使用
| 标签 | 用途 |
|---|
| papertrading | 模拟交易相关 |
| btcmonitor |
加密货币监控相关 |
| research | 研究调研任务 |
| other | 其他 |
知识库
详细版本历史、设计决策、已知局限、未来计划:
→ references/CHANGELOG.md
重要规则
- 1. deadline 格式:必须是 ISO 格式(YYYY-MM-DD),否则 --check 无法识别过期
- 过期不过期只看 deadline:status 字段不影响过期判断
- todo.json 路径:默认保存在当前目录 references/todo.json,部署时可调整
- system 标记:区分agent 主动提出的和用户交代的
- 承诺即登记:任何计划在告诉用户的同时,必须完成 --add 登记
AGENTS.md 集成
在会话开场规则中加入 Todo 扫描:
markdown
- 6. Todo 扫描: 运行 python3 scripts/todo_manager.py --check
有过期/即将到期的系统任务 → 在晨间汇报里报告
在 HEARTBEAT.md 中加入心跳检查:
markdown
Todo 过期检查
每次心跳运行 python3 scripts/todo_manager.py --check
有过期项 → 推送提醒到 QQ/IM