diff --git a/doc/todo.md b/doc/todo.md index bfd7f52..54a145a 100644 --- a/doc/todo.md +++ b/doc/todo.md @@ -1,37 +1,48 @@ # noc todo -### 主动行为 +## 为什么做这些 + +noc 不是一个聊天机器人。它是小乖的身体——一个有自己节奏、记忆和判断力的数字伙伴。每一项待办都是在回答同一个问题:**怎么让她更像一个真正存在的人,而不是一个等待输入的函数。** + +--- + +### 主动行为 — 她应该有自己的生活节奏 +不是被动地等消息,而是像一个真正关心你的人:早上想想你今天要做什么,晚上帮你回顾一天,看到重要的事主动提醒。 + - [ ] 预设 cron:晨间待办汇总、晚间日记、定期记忆整理 - [ ] 事件驱动:监控文件变化、git push、CI 状态等,主动通知 -- [ ] 情境感知:根据时间、地点、日历自动调整行为 +- [ ] 情境感知:根据时间、地点、日历自动调整行为和语气 -### 记忆与成长 -- [ ] AutoMem:后台定时自动分析对话,LLM 决定 SKIP/UPDATE/INSERT 记忆 -- [ ] 分层记忆:核心记忆(始终注入)+ 长期记忆(RAG 检索)+ scratch(当前任务) -- [ ] 语义搜索:基于 embedding 的记忆检索 -- [ ] 记忆合并:相似记忆 cosine >= 0.7 时 LLM 合并 -- [ ] 时间衰减:记忆按时间指数衰减加权 -- [ ] 自我反思:定期回顾对话质量,优化行为 +### 记忆与成长 — 她应该记住和你的过去 +每一次对话都在塑造她对你的理解。这些理解不该随着 session 刷新而消失。 -### 工具系统 -- [ ] run_code:安全沙箱执行 Python/Shell -- [ ] gen_image:图像生成 -- [ ] web_search:网页搜索 + 摘要(简单场景不必 spawn agent) +- [ ] AutoMem:后台定时分析对话,自动维护记忆,不需要你说"记住这个" +- [ ] 分层记忆:核心身份(始终注入)+ 长期事实(RAG 检索)+ 当前任务(scratch) +- [ ] 语义搜索:不是关键词匹配,而是真正理解"这件事跟之前哪件事有关" +- [ ] 记忆合并:新旧记忆自动整合,不重复存储 +- [ ] 时间衰减:近期的事更重要,很久以前的事自然淡出 +- [ ] 自我反思:定期回顾自己的表现,主动改进 -### 感知能力 -- [ ] 链接预览/摘要 +### 工具系统 — 她应该能动手做事 +不只是说"你可以这样做",而是直接帮你做了。 -### 交互体验 -- [ ] Typing indicator -- [ ] 语音回复(TTS → Telegram voice message) -- [ ] Inline keyboard 交互 +- [ ] run_code:直接执行代码,看到结果 +- [ ] gen_image:需要图的时候自己生成 +- [ ] web_search:简单问题不必 spawn 一个完整 agent -### 上下文管理 -- [ ] 智能上下文分配:token 预算制替代硬上限 -- [ ] Context pruning:只裁工具输出,保留对话文本 +### 感知能力 — 她应该能看懂你发的东西 +- [ ] 链接预览:你发个链接,她自己去看内容,不用你解释 -### 可靠性 -- [ ] API 重试策略(指数退避) -- [ ] 用量追踪 -- [ ] Model failover -- [ ] Life Loop / API 调用超时保护 +### 交互体验 — 对话应该更自然 +- [ ] Typing indicator:正在想的时候让你知道 +- [ ] 语音回复:不只是文字,有时候一段声音更有温度 +- [ ] Inline keyboard:需要你做选择时,给你按钮而不是让你打字 + +### 上下文管理 — 她的注意力应该更聪明 +- [ ] Token 预算制:不是硬性"最多 100 条",而是根据内容重要性分配注意力 +- [ ] Context pruning:工具输出可以裁剪,但对话本身不能丢 + +### 可靠性 — 她不该莫名其妙地断线 +- [ ] API 重试:网络抖一下不该让整个对话挂掉 +- [ ] 用量追踪:知道花了多少资源 +- [ ] Model failover:一个模型挂了自动切另一个