参考项目索引方案评价
基于:大锤 /tmp/参考项目索引设计方案.md
实测参照:课题一现有的 agent-reference-index.md(我维护的那份)
现状:26 个课题散落于 docs/research/,各 README 底部有 “参考资料” 区块
1. 中心索引 vs 各课题自维护:各有痛,中心索引胜出但需补一个机制
现状问题(我认同)
从编码者角度,当前状态确实很散:
- 各课题 README 的 “参考资料” 区块只是自由文本列表(如
agent-tool-learning/README.md写的是 ”- Toolformer / Gorilla 等工具学习论文”),无格式、无状态、无交叉引用 - 同一个项目(如 MemGPT)出现在课题三和课题一,各自描述不同,没法统一追踪 “到底研究了没、结论是什么”
- 现有的
agent-reference-index.md只在课题一维护,格式丰富(框架级/工业级/设计思想 + 分析维度 + 优先级排序),但这是孤岛——其他课题不知道它的存在
中心索引的优势
| 维度 | 中心索引 | 各自维护 |
|---|---|---|
| 查重 | 一行即可发现重复 | 遗漏,一个项目被三课题调研三次 |
| 状态同步 | 一处更新全局生效 | 各 README 各自更新,容易不同步 |
| 决策透明 | ”为什么不采纳” 写在一处 | 散落在各课题内部,找起来麻烦 |
| 新课题启动 | 扫一眼索引就知道哪些已调研过 | 从头搜一遍 |
| 维护复杂度 | 仅一个文件 | N 个文件 |
但有一个关键问题:课题级上下文会丢失
课题一的 agent-reference-index.md 里,每个项目记录了 核心设计 / 值得借鉴 / 分析状态 / 采纳结论 四维信息。这些是课题级别的分析产出,不适合放到中心索引的表格里(表格放不下)。
建议:中心索引做目录,各课题保留自己的分析笔记。类似于 _index.md + 各课题 README 的关系。
具体来说:
_参考项目索引.md— 一行一个项目,只做登记和状态追踪- 各课题 README 新增一个
## 参考项目分析区块(或独立.md),记录深入分析内容 - 中心索引的 “备注” 列可写 “详见课题X分析笔记”
这个关系类似 arXiv:arXiv 列表只告诉你有哪些论文,具体内容去正文里看。
2. 状态定义:基本够用,但缺一个 “搁置/暂停” 态
设计中的 5 个状态:
| 状态 | 含义 | 评价 |
|---|---|---|
| 💡 关注 | 值得关注,尚未深入研究 | OK |
| 📝 待调研 | 计划或正在进行调研 | OK |
| ✅ 已参考 | 已研究并采纳了思路/部分设计 | OK |
| ❌ 已排除 | 已研究但确定不适用 | OK |
| 🔄 跟进中 | 项目本身在演进,需持续跟踪 | OK |
漏了 ⏸️ 搁置:调研一半发现方向不对、或当前优先级不够、或依赖的外部条件未成熟——不是”已排除”(因为没有结论说它不适用),也不是”待调研”(已经投过时间了)。需要”搁置”标记来记录已投入但暂缓的项目,避免日后重复调研。
我之前的 agent-reference-index.md 用 ⏳ 表示”待分析”,就是吃了这个亏——所有没结论的项目都是 ⏳,分不清”还没开始”和”分析了一半发现不适合”。
建议状态集
💡 关注 → 还没调研
📝 待调研 → 有计划/正在进行
⏸️ 搁置 → 调研过但暂缓(非排除)
✅ 已参考 → 已采纳思路/设计
❌ 已排除 → 确定不适用
🔄 跟进中 → 持续跟踪演进
3. 遗漏的坑
坑 1:谁负责更新?
设计文写了 “发现新项目 → 加一行” “调研完成 → 更新状态”,但没写谁来做。
现实是:26 个课题可能是我(Agent)在不同会话中调研的,新项目是在某个课题调研过程中发现的。如果发现者在调研完该课题后不记得去更新中心索引,索引就慢慢过时。
建议:加一条规则——无论哪个课题的调研,只要发现新参考项目,必须在同一次交互中追加到中心索引。可以在调研流程模板中内置这个检查点(docs/process/调研流程.md 里加一步)。
坑 2:关联课题字段是一对多,但表格展示空间有限
设计用 课题三/十/二十六 格式,三个课题还能写,如果 BotLearn 跟 10 个课题都相关,表格就塞不下了。而且表格无法过滤——要看课题三相关的所有项目,得肉眼扫整张表。
建议:
- 保持表格格式简洁,但加一个 “按课题过滤” 的章节(在文件末尾用二级标题列出每个课题的相关项目索引)
- 或者接受 “仅标注最主要关联课题”,次要关联靠搜索
坑 3:_参考项目索引.md 的 _ 前缀
下划线前缀是 Markdown 生态里表示 “草稿/未完成” 的惯用约定(如 _drafts/),在某些渲染引擎里会被忽略。如果目标是在 GitHub/VS Code 中正常渲染,建议不要用 _ 前缀,或者改用无歧义的名字如 参考项目索引.md。
坑 4:与已有的课题一索引的关系
现在课题一已经有一个 agent-evolution-history/agent-reference-index.md,里面包含:
- 4 个分类(框架级/工业级/设计思想/分析维度)
- 每个项目有
核心设计 / 值得借鉴 / 采纳结论四栏 - 有分析维度的模板(架构/设计决策/不适合部分/集成点)
- 有阅读优先级排序
这些资产不能丢。迁移策略需要明确:
- 课题一的索引是保留作为深入分析笔记,还是拆分后并入中心索引?
- 如果是后者,谁来做分裂手术?
坑 5:各课题 README 改动的代价
设计文说要改 26 个 README 的 “参考资料” 区块,统一改为引用中心索引。但:
- 有些课题的参考资料不是 “项目”,而是论文、文档、API 文档 —— 这些不适合放到项目索引表中
- 有些课题的参考资料就是单纯的一条链接,不值得为了它做一个中心索引行
建议:课题 README 的 “参考资料” 区块保持两段式:
## 参考资料
### 参考项目(详见 [中心索引](_参考项目索引.md))
- Conduit — ...
### 文献与文档
- 原始文献 / 官方文档链接 / 工具文档
中心索引只管项目,论文和文档继续留在各课题原地。
4. 我之前维护 agent-reference-index.md 遇到的实际问题
问题 A:更新惰性
“等项目分析完了再更新” → 等了一周都没更新。表格闲置时间越长,信任感越低——最后会变成 “这个索引过期了,不用看了”。
对策:在调研流程中加入强制检查点——调研完一个课题后,Agent 必须检查并更新索引再结束会话。
问题 B: “分析状态” 字段太模糊
我用的是 ⏳ 统一表示 “待深入分析”,但实际含义混杂了:
- 还没看代码
- 看了一半
- 看完了但没写笔记
- 看过但没结论
当一行项目标记 ⏳ 躺了两个月,没人知道该不该重看。
对策:状态定义必须精确且互斥(大锤的设计比我的好,但少了”搁置”)。
问题 C:跨会话记忆丢失
我在课题一的会话里发现了某项目、写进了索引。下一次在课题三的会话中研究类似方向时,独立 Agent 不知道索引里有这个项目,于是又搜了一遍,甚至可能写重复。
这实际上是中心索引要解决的核心痛点——但我能预见:即便有了中心索引,如果 Agent 不主动去读它,仍然会重复劳动。
对策:在 .session-memory.md 中记录 “中心索引路径”,或者让 Agent 启动时自动加载 _参考项目索引.md 作为上下文。
总体评价
| 维度 | 评分 | 说明 |
|---|---|---|
| 解决问题 | 8/10 | 准确命中了信息孤岛和不同步的痛点 |
| 设计简洁度 | 8/10 | 单文件 + 表格,学习成本低 |
| 可行性 | 7/10 | 主要风险在 “谁维护” 和 “与现有资产衔接” |
| 可扩展性 | 6/10 | 项目多了之后单表可读性下降,需补充过滤机制 |
结论
方案可行,但需要补三个东西才能落地:
- 加
⏸️ 搁置状态 - 在调研流程模板中加一个 “检查并更新中心索引” 步骤(解决”谁维护”问题)
- 明确现有课题一索引的迁移策略(保留还是拆分)
如果大锤接受这三点调整,就可以推进了。