59 lines
3.8 KiB
Markdown
59 lines
3.8 KiB
Markdown
# 决策日志 (Decision Log)
|
||
|
||
记录项目关键设计决策、踩过的坑、经验教训。替代智能体记忆(MEMORY.md),确保换智能体/大模型时知识不丢失。
|
||
|
||
## 架构决策
|
||
|
||
### D-2026-06-14: 卡片系统设计 — 原始素材与AI加工并行保留
|
||
**决策**:每条Memos灵感生成独立`.md`卡片文件(`cards/`),AI分析结果存`ai-insights/`。两条线互不覆盖。
|
||
**原因**:AI分析可能出错或失真,保留原始素材确保失真可追溯。卡片文件支持Obsidian双链引用。
|
||
**替代方案**:只在AI分析中引用原文(被否决,因为原文会被AI改写而丢失原始语境)。
|
||
|
||
### D-2026-06-14: 仓库拆分 — todo/brief/nav独立
|
||
**决策**:将待办系统(todo-system)、每日要闻(daily-brief)、导航页(nav-page)从灵感收集器拆分为独立仓库。
|
||
**原因**:单一仓库职责过重,拆分后各仓库独立部署、独立迭代。
|
||
**教训**:拆分前确保每个子系统的依赖关系和部署脚本同步更新,避免"拆了代码但没拆部署"。
|
||
|
||
### D-2026-06-14: Prompt模板从代码中分离
|
||
**决策**:将硬编码在分析脚本中的LLM Prompt提取到`templates/`目录作为独立配置文件。
|
||
**原因**:换用不同LLM时只需修改模板文件,不需改代码。模板可以独立版本管理和迭代优化。
|
||
**教训**:以后所有AI分析脚本的Prompt都应该从模板文件加载,不要硬编码。
|
||
|
||
### D-2026-06-12: Memos API 数据获取策略
|
||
**决策**:通过Memos REST API获取灵感数据,而非直接读数据库。
|
||
**原因**:Memos可能有数据库迁移,API接口更稳定。不依赖数据库内部结构。
|
||
|
||
## 踩坑记录
|
||
|
||
### P-2026-06-13: 时区混乱
|
||
**问题**:Memos返回UTC时间戳,但分析脚本按北京时间解读,导致"今天的灵感"实际包含昨天下午的内容。
|
||
**解决**:所有时间戳统一加UTC+8转换,在System Prompt中明确告知AI所有时间都是北京时间。
|
||
**预防**:任何涉及时间的系统,必须在文档和Prompt中明确时区约定。
|
||
|
||
### P-2026-06-13: AI分析内容过长被截断
|
||
**问题**:每日灵感较多时,AI返回的分析文章超过token限制被截断。
|
||
**解决**:设置max_tokens=4096,并在Prompt中要求"宁长勿短"的同时,对超长输入做智能截断(保留最近N条+摘要前N条)。
|
||
|
||
### P-2026-06-14: 课程分析模板硬编码在Skill中
|
||
**问题**:课程学习记录的分析模板写在智能体Skill里,不是仓库文件。
|
||
**解决**:待固化到`templates/course_analysis_prompt.txt`。
|
||
**教训**:所有分析模板都应该在仓库里有备份,智能体Skill只是调用入口。
|
||
|
||
## 设计原则
|
||
|
||
1. **原始素材不可篡改** — cards/目录是只增不改的,AI分析出错不影响原始数据
|
||
2. **模板与代码分离** — Prompt模板独立于代码,跨模型迁移
|
||
3. **所有自动化在服务器** — cron/shell脚本,不依赖智能体
|
||
4. **Gitea是唯一真相来源** — 所有产物入仓,不依赖本地文件
|
||
|
||
### D-2026-06-18: 周报格式 - 与日报统一, 素材来源=日报
|
||
**决策**: 周度分析使用与日报完全一致的格式 (私人思考伙伴风格), 素材来源为过去7天的日报全文 (非原始Memos)。
|
||
**原因**:
|
||
- 格式统一降低认知切换成本。日报怎么写周报就怎么写, 不另起炉灶。
|
||
- 日报已经过每日AI分析提炼, 比原始Memos更适合作为周度合成的素材。周报在日报基础上做跨日主题追踪和认知跃迁识别。
|
||
- 第一次手动生成的周报验证了这个方向: 冯总评价"分析深度可以, 比较满意"。
|
||
**替代方案**:
|
||
- 直接分析原始Memos (被否决: 信息密度低, 缺少每日分析的历史纵深)
|
||
- 使用旧weekly_trend.py的简单统计格式 (被否决: 冯总明确要求深度分析)
|
||
**教训**: 已有格式标准 (日报格式) 就是最好的模板。不要凭空造新格式。
|