第12章:知识管理与学习系统
“我们不是缺少信息,而是淹没在信息中。真正的挑战是如何将信息转化为知识,将知识转化为智慧。”
在信息爆炸的时代,每个知识工作者都面临着同样的困境:浏览器里收藏了几百个标签页,笔记软件里有上千条笔记,聊天记录里散落着重要的讨论,邮件里存着关键的文档链接——但当你真正需要某个信息时,却怎么也找不到。
这就是现代知识管理的悖论:我们拥有的信息越多,能有效利用的却越少。
本章将探讨如何使用 OpenClaw 构建一个真正的“第二大脑“系统——不仅仅是存储信息,更重要的是让知识能够自动组织、智能检索,并与你的日常工作流无缝集成。我们会从真实案例出发,展示如何将散落各处的知识碎片串联成一个有机的知识网络。
12.1 个人知识管理的挑战
让我们从一个真实场景开始。
困境:信息的三大陷阱
陷阱1:信息散落
张明是一位产品经理,他的知识分散在:
- Notion 里的产品文档
- Obsidian 里的个人笔记
- 浏览器书签里的行业文章
- Telegram 和 Slack 的团队讨论
- ChatGPT 的对话历史
- 会议录音的转写文本
- 邮件里的需求讨论
当他需要回顾“上个季度关于AI功能的讨论“时,必须在7个地方分别搜索,花费30分钟,还不一定能找全。
陷阱2:检索困难
传统的搜索依赖精确关键词。当张明搜索“用户留存策略“时,那些用了“engagement tactics“、“retention approach“或“降低流失率“的笔记都被遗漏了。
更糟糕的是,很多有价值的内容根本没有明确的关键词——比如一次团队讨论中的灵光一现,或是某篇文章里的一句话带来的启发。
陷阱3:知识孤岛
即使找到了相关信息,它们也是孤立的碎片:
- 三个月前的会议记录
- 两周前读的一篇文章
- 昨天和同事的讨论
这些信息之间可能有隐藏的联系,但张明无法看到全局,也很难发现潜在的洞察。
💡 AI辅助提示
不确定自己的知识管理问题出在哪里?问AI:
“我的信息分散在[列出你的工具],经常找不到需要的内容。这属于什么问题?有什么系统性的解决方案?”
AI可以帮你诊断具体问题,并推荐合适的策略。
传统方案的局限
你可能尝试过一些解决方案:
方案1:All-in-One工具
比如 Notion、Obsidian、Roam Research。问题是:
- 迁移成本高,很多历史内容无法导入
- 强迫所有信息用同一种结构组织(不自然)
- 无法处理外部内容(网页、聊天记录、邮件)
方案2:手工整理
定期花时间整理笔记、给内容打标签。问题是:
- 耗时巨大,难以坚持
- 标签系统很快变得混乱
- 依然无法解决语义检索问题
方案3:全局搜索工具
比如 Alfred、Everything、Raycast。问题是:
- 只能搜索本地文件
- 无法搜索云端服务(Notion、Slack、Gmail)
- 依然是关键词匹配,找不到语义相关的内容
我们需要什么样的系统
一个理想的个人知识管理系统应该具备:
- 全面摄入:自动捕获各种来源的信息,无需手动复制粘贴
- 智能组织:自动提取关键信息、建立关联,无需手工打标签
- 语义检索:理解你的问题意图,找到相关内容(即使用词不同)
- 工作流集成:知识不是静态的档案,而是你工作流的一部分
- 主动发现:系统能主动发现笔记间的隐藏联系,提供新洞察
这就是我们要构建的“第二大脑“系统。
12.2 第二大脑系统设计
核心架构:四层设计
一个完整的第二大脑系统可以分为四层:
┌─────────────────────────────────────────────────────┐
│ 应用层 (Application Layer) │
│ • 自然语言查询 • 关联发现 │
│ • 内容生成辅助 • 研究工作流集成 │
└─────────────────────────────────────────────────────┘
↑
┌─────────────────────────────────────────────────────┐
│ 检索层 (Retrieval Layer) │
│ • 语义搜索 (Vector Search) │
│ • 混合检索 (Keyword + Semantic) │
│ • 重排序 (Re-ranking) │
└─────────────────────────────────────────────────────┘
↑
┌─────────────────────────────────────────────────────┐
│ 存储层 (Storage Layer) │
│ • Markdown 文件 (可读、可编辑、可版本控制) │
│ • Vector DB (语义向量) │
│ • 元数据索引 (来源、时间、类型) │
└─────────────────────────────────────────────────────┘
↑
┌─────────────────────────────────────────────────────┐
│ 摄入层 (Ingestion Layer) │
│ • URL → 内容提取 │
│ • 文件 → 解析 (PDF, DOCX, 图片) │
│ • 对话 → 提取 (Telegram, Slack, ChatGPT history) │
│ • 邮件 → 筛选摄入 │
└─────────────────────────────────────────────────────┘
让我们自底向上,逐层实现。
案例1:Personal Knowledge Base (基础实现)1
我们先从最简单的场景开始:建立一个可以摄入网页内容并进行语义搜索的知识库。
步骤1:安装 Knowledge Base Skill
cd ~/.openclaw/skills
git clone https://github.com/openclaw/skill-knowledge-base knowledge-base
这个 skill 提供了基础的 RAG (Retrieval-Augmented Generation) 能力:
- 文本向量化
- 语义相似度搜索
- 与主 Agent 的集成
步骤2:配置摄入通道
在你的 AGENTS.md 中添加:
## Knowledge Base
### Ingestion Rules
When user sends:
- A URL → Fetch content, extract text, store in knowledge base
- "Save this" + context → Extract from conversation, store
- File attachment (PDF, MD, TXT) → Parse and store
Always confirm: "✅ Saved to knowledge base: [title/topic]"
现在,你可以通过 Telegram 或命令行直接喂内容:
你: https://example.com/article-about-ai
Agent: ✅ Saved to knowledge base: "How AI is Transforming Product Management"
你: 刚才我们讨论的关于用户留存的三个策略,帮我保存一下
Agent: ✅ Saved to knowledge base: "User Retention Strategies - 3 Key Approaches"
步骤3:语义搜索测试
你: 搜索知识库: 如何提升产品的粘性
Agent: 找到 3 条相关内容:
1. **User Retention Strategies** (相关度: 0.89)
"通过构建习惯循环提升用户留存..."
来源: Telegram 讨论, 2024-01-15
2. **Growth Tactics from Reforge** (相关度: 0.84)
"高留存产品的共同特征是找到了 Aha moment..."
来源: https://reforge.com/..., 2024-01-10
3. **Product-Market Fit 的三个阶段** (相关度: 0.78)
"在第二阶段,关键是优化留存和参与度..."
来源: Notion 导入, 2023-12-20
注意:即使你的问题用的是“粘性“,系统也能找到“留存“、“参与度“相关的内容——这就是语义搜索的威力。
🔧 遇到错误?
如果搜索结果不准确,可能是向量模型配置问题。把错误信息发给AI:
“我的知识库搜索结果不相关,使用的是 [你的配置],应该如何调整?”
AI会帮你诊断是模型选择、chunk size,还是相似度阈值的问题。
步骤4:与工作流集成
知识库不应该是孤立的——它应该融入你的日常工作。在 AGENTS.md 中添加:
## Proactive Knowledge Retrieval
When user asks a question, BEFORE answering:
1. Search knowledge base for relevant content
2. If found relevant info (score > 0.75):
- "💡 From your knowledge base: [snippet]"
- Use it to inform your answer
3. If not found, answer normally
When writing content (blog, doc, email):
- Automatically pull relevant notes
- Suggest "You might want to reference: [title]"
现在,Agent 会主动利用你的知识库:
你: 我要写一篇关于产品增长的文章
Agent: 💡 From your knowledge base, 我找到了这些相关内容:
- "Growth Loops vs Funnels" (你在 2024-01-08 保存的)
- "Reforge Growth Series 笔记" (2023-11-15)
- "Airbnb 的增长策略分析" (2023-10-20)
需要我帮你整理这些材料作为写作大纲吗?
案例2:Second Brain (完整系统)2
现在让我们升级到完整的“第二大脑“系统,增加可视化界面和更复杂的功能。
架构概览
Telegram/Slack/CLI
↓
OpenClaw Agent (主Agent)
↓
┌─────────────────┐
│ Knowledge Base │
│ Backend │
│ (Python API) │
└─────────────────┘
↓
┌─────────────────┐
│ Vector DB │
│ (ChromaDB / │
│ Pinecone) │
└─────────────────┘
↑
┌─────────────────┐
│ Dashboard UI │
│ (Next.js) │
└─────────────────┘
实现步骤
1. 安装后端服务
cd ~/openclaw-workspace/projects
git clone https://github.com/yourusername/second-brain-backend
cd second-brain-backend
# 安装依赖
pip install -r requirements.txt
# 配置向量数据库
cp .env.example .env
# 编辑 .env, 填入你的 API keys (OpenAI / Cohere)
# 启动服务
python app.py
# 服务运行在 http://localhost:8000
2. 部署可视化 Dashboard
cd ~/openclaw-workspace/projects
git clone https://github.com/yourusername/second-brain-ui
cd second-brain-ui
# 安装依赖
npm install
# 配置后端地址
echo "NEXT_PUBLIC_API_URL=http://localhost:8000" > .env.local
# 启动开发服务器
npm run dev
# 访问 http://localhost:3000
现在你有了一个 Web 界面,可以:
- 浏览所有保存的内容 (按时间、来源、话题)
- 可视化搜索 (输入问题,看到相关内容高亮)
- 探索关联 (点击一条笔记,看到相关的其他笔记)
3. Agent 集成
在 TOOLS.md 中添加:
## Second Brain API
Base URL: http://localhost:8000
### Endpoints
- POST /ingest - 添加内容
- GET /search?q={query} - 搜索
- GET /related/{id} - 相关内容
- GET /recent?days=7 - 最近内容
在 AGENTS.md 中添加:
## Knowledge Base Integration
### Ingestion
When user shares content (URL, file, "save this"):
```python
import requests
def save_to_knowledge_base(content, metadata):
response = requests.post(
"http://localhost:8000/ingest",
json={
"content": content,
"metadata": {
"source": metadata.get("source", "unknown"),
"timestamp": metadata.get("timestamp"),
"tags": metadata.get("tags", [])
}
}
)
return response.json()
Search Before Answer
Before answering complex questions:
- Search knowledge base
- If relevant results (score > 0.8), include them
- Cite sources: “Based on your note from [date]…”
**4. 批量导入历史内容**
你可能已经有大量历史内容需要导入:
```python
# scripts/import_obsidian.py
import os
import requests
OBSIDIAN_VAULT = "/path/to/your/obsidian/vault"
API_URL = "http://localhost:8000/ingest"
for root, dirs, files in os.walk(OBSIDIAN_VAULT):
for file in files:
if file.endswith(".md"):
path = os.path.join(root, file)
with open(path, 'r') as f:
content = f.read()
requests.post(API_URL, json={
"content": content,
"metadata": {
"source": "obsidian",
"file_path": path,
"imported_at": "2024-01-20"
}
})
print(f"✅ Imported: {file}")
类似地,你可以导入:
- ChatGPT 对话历史 (导出 JSON)
- Notion 笔记 (导出 Markdown)
- 浏览器书签 (导出 HTML,提取 URL)
- 邮件 (通过 IMAP 读取重要邮件)
💡 AI辅助提示
不熟悉 Python 脚本?把上面的代码发给AI,问:
“这段代码做了什么?我想修改它来导入 [你的数据源],应该怎么改?”
AI会解释每一行的作用,并帮你改写成你需要的版本。
Dashboard 使用体验
打开 http://localhost:3000,你会看到:
主页:
┌─────────────────────────────────────────────┐
│ 🧠 My Second Brain │
│ ┌─────────────────────────────────────┐ │
│ │ 🔍 Search: "产品增长策略" │ │
│ └─────────────────────────────────────┘ │
│ │
│ 📊 Stats │
│ • 1,247 notes │
│ • 89 sources │
│ • Last added: 2 hours ago │
│ │
│ 🕒 Recent │
│ • "Reforge Growth Series - Week 3" (2h) │
│ • "Team meeting notes" (5h) │
│ • "AI产品设计思考" (1d) │
└─────────────────────────────────────────────┘
搜索结果:
Search: "如何做用户调研"
🎯 3 results (0.2s)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 用户访谈的10个技巧
相关度: 92% | 来源: Medium | 2024-01-15
"开放式问题比封闭式问题更能挖掘真实需求。
避免诱导性提问..."
🔗 Related: 产品需求挖掘, Jobs-to-be-Done框架
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Customer Development 笔记
相关度: 87% | 来源: Obsidian | 2023-12-10
"Build, Measure, Learn 循环的第一步是
Customer Discovery..."
🔗 Related: Lean Startup, 精益创业实践
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💬 与设计师的讨论
相关度: 81% | 来源: Telegram | 2024-01-08
"@designer: 我们上次调研用户时,发现用户
说的和做的经常不一致..."
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
关联发现:点击任意笔记,右侧显示相关内容:
┌──────────────────────────────────────┐
│ 📝 用户访谈的10个技巧 │
├──────────────────────────────────────┤
│ 来源: https://medium.com/... │
│ 保存于: 2024-01-15 10:30 │
│ │
│ [内容全文...] │
│ │
│ 🔗 Related Notes (5) │
│ │
│ • Customer Development 笔记 │
│ (相关度: 87%) │
│ │
│ • Jobs-to-be-Done 框架解析 │
│ (相关度: 79%) │
│ │
│ • 与设计师的讨论 - 用户研究 │
│ (相关度: 81%) │
│ │
│ • [查看全部相关...] │
└──────────────────────────────────────┘
案例3:Semantic Memory Search (高级检索)3
基础的语义搜索已经很强大,但我们可以做得更好——混合检索 + 重排序。
混合检索策略
单纯的向量搜索有时会错过精确匹配。比如你搜索“GPT-4“,向量搜索可能返回所有关于AI的笔记,但你只想要明确提到“GPT-4“的。
解决方案:混合检索 = 关键词搜索 + 语义搜索,然后融合结果。
# backend/search.py
def hybrid_search(query, top_k=10):
# 1. 关键词搜索 (BM25)
keyword_results = bm25_search(query, top_k=20)
# 2. 语义搜索 (Vector)
vector_results = vector_search(query, top_k=20)
# 3. 融合 (Reciprocal Rank Fusion)
combined = reciprocal_rank_fusion(
keyword_results,
vector_results,
k=60 # RRF 参数
)
# 4. 重排序 (用更强的模型)
reranked = rerank_with_cross_encoder(query, combined, top_k=top_k)
return reranked
def reciprocal_rank_fusion(list1, list2, k=60):
"""
RRF: score = sum(1 / (k + rank))
对每个文档在两个列表中的排名进行融合
"""
scores = {}
for rank, doc in enumerate(list1, start=1):
scores[doc.id] = scores.get(doc.id, 0) + 1 / (k + rank)
for rank, doc in enumerate(list2, start=1):
scores[doc.id] = scores.get(doc.id, 0) + 1 / (k + rank)
# 按分数排序
ranked = sorted(scores.items(), key=lambda x: x[1], reverse=True)
return [doc_id for doc_id, score in ranked]
重排序 (Re-ranking)
初步检索可以用轻量级模型(快),但对 top 20 结果重新排序时,可以用更强的模型(准):
from sentence_transformers import CrossEncoder
reranker = CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')
def rerank_with_cross_encoder(query, doc_ids, top_k=10):
# 获取文档内容
docs = [get_doc(doc_id) for doc_id in doc_ids[:20]]
# 计算 query-doc 相关性
pairs = [[query, doc.content] for doc in docs]
scores = reranker.predict(pairs)
# 排序并返回 top_k
ranked = sorted(zip(docs, scores), key=lambda x: x[1], reverse=True)
return [doc for doc, score in ranked[:top_k]]
实测效果
查询:“我之前看到的那篇讲增长飞轮的文章”
仅向量搜索:
- “Product-Led Growth 策略” (0.82)
- “Flywheel vs Funnel” (0.79) ← 这个才是目标
- “增长黑客案例分析” (0.78)
混合检索 + 重排序:
- “Flywheel vs Funnel” (0.94) ← 正确
- “Product-Led Growth 策略” (0.86)
- “增长黑客案例分析” (0.81)
混合检索通过关键词“飞轮“(Flywheel)提升了第2个结果的排名,重排序进一步确认了它与查询的高相关性。
📚 深入学习
想了解 BM25、RRF、Cross-Encoder 的原理?问AI:
“解释 BM25 算法的原理,为什么它比 TF-IDF 更好?RRF 如何融合多个排序列表?Cross-Encoder 和 Bi-Encoder 有什么区别?”
AI会给你清晰的解释和对比。
高级功能:自动同步与版本控制
让知识库成为你工作流的一部分:
1. 自动同步 Obsidian/Notion
# cron job: 每小时同步一次
0 * * * * ~/scripts/sync-obsidian-to-kb.sh
# scripts/sync-obsidian-to-kb.sh
#!/bin/bash
VAULT="/path/to/obsidian/vault"
API="http://localhost:8000/ingest"
# 找到过去1小时修改的文件
find "$VAULT" -name "*.md" -mmin -60 | while read file; do
echo "Syncing: $file"
content=$(cat "$file")
curl -X POST "$API" \
-H "Content-Type: application/json" \
-d "{
\"content\": \"$content\",
\"metadata\": {
\"source\": \"obsidian\",
\"file_path\": \"$file\",
\"synced_at\": \"$(date -Iseconds)\"
}
}"
done
2. Git 版本控制
知识库本身也应该版本化:
cd ~/openclaw-workspace/knowledge-base
# 每天自动提交
git add data/
git commit -m "Auto-sync: $(date +%Y-%m-%d)"
git push
这样你可以:
- 回溯历史版本
- 查看知识库的演进
- 多设备同步
12.3 知识提取与结构化
有了存储和检索,下一步是自动提取和结构化知识。
案例4:从 ChatGPT 历史提取知识
很多人用 ChatGPT 进行深度思考,但对话记录散落在历史中,无法复用。我们可以系统性地提取这些知识。
步骤1:导出 ChatGPT 历史
ChatGPT 设置 → Data Controls → Export Data
你会收到一个 ZIP 文件,包含所有对话的 JSON。
步骤2:解析并提取关键信息
# scripts/extract_chatgpt_knowledge.py
import json
import requests
from pathlib import Path
def extract_insights_from_conversation(conversation):
"""
从一个对话中提取有价值的内容
"""
messages = conversation.get('messages', [])
# 只看助手的回复 (用户的问题往往不需要保存)
assistant_messages = [
msg['content']
for msg in messages
if msg['role'] == 'assistant' and len(msg['content']) > 200
]
# 用 AI 提取每条回复的核心观点
insights = []
for msg in assistant_messages:
prompt = f"""
从以下文本中提取3-5个关键观点或可复用的知识点。
每个观点用一句话概括,并说明它的应用场景。
文本:
{msg[:1000]} # 截取前1000字符
输出格式:
- [观点]: [应用场景]
"""
# 调用你的 AI API (OpenAI / Claude)
extracted = call_ai_api(prompt)
insights.extend(extracted)
return insights
def process_all_conversations(export_path):
with open(export_path, 'r') as f:
data = json.load(f)
all_insights = []
for conversation in data['conversations']:
title = conversation.get('title', 'Untitled')
insights = extract_insights_from_conversation(conversation)
if insights:
# 保存到知识库
content = f"# {title}\n\n" + "\n".join(insights)
save_to_knowledge_base(content, {
"source": "chatgpt_history",
"conversation_id": conversation['id'],
"extracted_at": "2024-01-20"
})
all_insights.extend(insights)
print(f"✅ Extracted {len(insights)} insights from: {title}")
print(f"\n🎉 Total: {len(all_insights)} insights extracted!")
if __name__ == "__main__":
process_all_conversations("conversations.json")
实测结果
从某用户的 ChatGPT 历史(约300个对话)中:
- 提取了 49,079 个原子事实
- 识别出 127 个主题cluster
- 发现 2,341 个跨对话的知识关联
示例输出:
# 产品设计思考
## 从对话 "如何设计更好的用户onboarding" 提取:
- **渐进式披露**: 不要在首次使用时展示所有功能,而是在用户需要时才揭示。
应用场景: 复杂工具的新手引导
- **快速胜利**: 让用户在5分钟内获得第一个"成功时刻"。
应用场景: SaaS产品的激活策略
- **社会证明**: 在关键决策点展示其他用户的使用数据。
应用场景: 降低新用户的不确定性
## 相关对话:
- "用户激活策略" (2024-01-10)
- "提升留存的设计模式" (2024-01-05)
案例5:会议记录自动结构化
会议记录通常是非结构化的流水账,很难快速查找关键信息。我们可以自动结构化。
工作流
会议录音 → 转写文本 → AI 结构化 → 保存到知识库
实现
# scripts/structure_meeting_notes.py
def structure_meeting_notes(transcript):
"""
将会议转写文本结构化
"""
prompt = f"""
请将以下会议记录结构化,提取:
1. 关键决策 (Decisions)
2. 待办事项 (Action Items) - 包括负责人和截止日期
3. 讨论要点 (Key Points)
4. 悬而未决的问题 (Open Questions)
会议记录:
{transcript}
输出格式:
# 会议总结
## 关键决策
- [决策内容] - 原因/背景
## 待办事项
- [ ] [任务] - @负责人 - 截止日期
## 讨论要点
- [主题]: [讨论内容摘要]
## 悬而未决
- [问题描述]
"""
structured = call_ai_api(prompt)
return structured
# 集成到 Agent
在 AGENTS.md 中添加:
## Meeting Notes Handler
When user sends a message starting with "会议记录:" or a long transcript (>500 words):
1. Auto-detect it's a meeting transcript
2. Call structure_meeting_notes()
3. Save structured version to knowledge base
4. Extract action items and add to Todoist
5. Reply with summary and ask: "需要我帮你跟进这些待办事项吗?"
实际效果
原始转写(2,500字流水账):
张明: 我觉得这个功能可以先做一个MVP版本,不用太复杂
李华: 对,但是我们需要考虑扩展性,不然以后重构成本很高
张明: 那我们先定义一下MVP的范围吧
王芳: 我建议先做用户调研,看看他们真正需要什么功能
...
结构化后:
# 产品功能讨论会议 - 2024-01-20
## 关键决策
- **先做MVP版本**: 在2周内上线基础功能,验证用户需求后再迭代
原因: 避免过度设计,快速获得市场反馈
- **用户调研优先**: 下周进行5-10个用户访谈
负责人: @王芳
## 待办事项
- [ ] 定义MVP功能范围 - @张明 - 2024-01-22
- [ ] 设计技术架构方案(考虑扩展性) - @李华 - 2024-01-25
- [ ] 准备用户调研问卷 - @王芳 - 2024-01-23
- [ ] 评估开发工作量 - @开发团队 - 2024-01-26
## 讨论要点
- **MVP vs 完整版本**: 团队倾向于先做小范围验证,避免浪费资源
- **技术债务担忧**: 李华提醒要在MVP中留出扩展接口,避免后期推倒重来
- **用户需求不确定**: 当前主要是假设,需要实际调研验证
## 悬而未决
- 如果MVP验证失败,是否继续投入? (需要与管理层讨论)
- 技术架构选型: 微服务 vs 单体应用? (李华会提供对比方案)
现在,当你搜索“MVP功能范围“或“用户调研“,这条笔记会被找到,且关键信息一目了然。
🔧 遇到错误?
如果 AI 提取的结构不符合预期,调整 prompt 中的输出格式。把你期望的格式示例发给AI:
“我想让会议记录结构化成这种格式[粘贴示例],现在的输出是[粘贴实际输出],prompt应该怎么改?”
案例6:Nightly Brainstorm (自动关联发现)
知识库最有价值的功能之一是发现隐藏的关联——那些你自己可能没意识到的笔记间的联系。
设计思路
在每天凌晨(比如3点,你在睡觉),让 Agent 探索你的笔记网络:
- 随机选取10-20条最近的笔记
- 对每条笔记,找到相关的其他笔记
- 用 AI 分析这些笔记间是否有非显而易见的联系
- 将发现的关联记录下来,早上汇报
实现
# cron job: 每天凌晨3点
0 3 * * * ~/scripts/nightly-brainstorm.sh
# scripts/nightly_brainstorm.py
import random
from datetime import datetime, timedelta
def nightly_brainstorm():
# 1. 获取最近7天的笔记
recent_notes = get_notes_since(days_ago=7)
# 2. 随机选取15条
sample = random.sample(recent_notes, min(15, len(recent_notes)))
connections_found = []
for note in sample:
# 3. 找到相关笔记
related = search_related(note, top_k=10)
# 4. 让 AI 分析关联
prompt = f"""
我有两条笔记:
笔记A: {note.title}
{note.content[:500]}
相关笔记: {[r.title for r in related]}
请分析:
1. 这些笔记之间有哪些非显而易见的联系?
2. 能否从中提炼出新的洞察?
3. 有没有可以合并或扩展的idea?
如果找到了有价值的关联,请详细说明。
如果没有特别的发现,回复"无明显关联"。
"""
analysis = call_ai_api(prompt)
if "无明显关联" not in analysis:
connections_found.append({
"note": note.title,
"related": [r.title for r in related[:3]],
"insight": analysis
})
# 5. 生成报告
if connections_found:
report = generate_report(connections_found)
save_report(report)
notify_user(report) # 发送到 Telegram
else:
print("No significant connections found tonight.")
def generate_report(connections):
report = f"# 🔗 Nightly Brainstorm - {datetime.now().strftime('%Y-%m-%d')}\n\n"
report += f"发现 {len(connections)} 个潜在关联:\n\n"
for i, conn in enumerate(connections, 1):
report += f"## {i}. {conn['note']}\n"
report += f"**相关笔记**: {', '.join(conn['related'])}\n\n"
report += f"**洞察**:\n{conn['insight']}\n\n"
report += "---\n\n"
return report
if __name__ == "__main__":
nightly_brainstorm()
真实案例
某天早上,你收到的报告:
# 🔗 Nightly Brainstorm - 2024-01-21
发现 3 个潜在关联:
## 1. "产品增长的三个阶段"
**相关笔记**: "用户留存策略", "Aha Moment 设计", "定价策略思考"
**洞察**:
你的笔记中多次提到"用户激活"和"Aha Moment",但它们出现在不同的上下文:
- 在增长框架中,Aha Moment 是激活的关键指标
- 在留存策略中,你提到"强化 Aha Moment 的记忆"
- 在定价策略中,你思考"如何让免费用户快速体验到 Aha Moment"
**建议**: 这三个话题可以整合成一篇"如何设计用户激活流程"的系统性文章,
从增长框架 → Aha Moment 设计 → 留存强化 → 付费转化,形成完整闭环。
你可能想创建一个新笔记: "用户激活完整指南"
---
## 2. "Remote Work 最佳实践"
**相关笔记**: "异步沟通", "时间管理"
**洞察**:
你在"异步沟通"中强调"减少会议,用文档代替",
在"时间管理"中提到"深度工作时间的重要性"。
这两个观点的共同基础是:**远程工作需要更强的自我管理能力**。
你可以进一步探索:
- 如何建立异步优先的团队文化?
- 深度工作时间如何与团队协作平衡?
**潜在文章idea**: "远程团队的生产力系统设计"
---
## 3. "AI 产品设计挑战"
**相关笔记**: "LLM 的不确定性", "用户对 AI 的信任问题"
**洞察**:
你在这两条笔记中都提到了"可预测性"的重要性:
- LLM 输出不稳定 → 产品体验不一致
- 用户不信任 AI → 因为不知道它什么时候会出错
**更深层的洞察**:
AI 产品的核心挑战不是"让 AI 更聪明",而是"让 AI 更可预测、可控、可解释"。
这可能需要在产品设计层面解决,而不是等待模型进步。
**建议**: 研究"确定性包装"设计模式 - 如何在不确定的 AI 能力外包一层确定的产品体验。
这就是“第二大脑“的威力——不仅帮你存储和检索,还能帮你思考。
12.4 与研究工作流集成
知识库的终极应用是融入你的研究和创作工作流。
案例7:Earnings Tracker (完整研究工作流)
假设你是一位关注 AI 行业的分析师,需要追踪主要公司的财报和动态。传统方法是手动订阅、阅读、记笔记——非常耗时。
我们可以构建一个自动化的研究工作流:
信息源 → 自动追踪 → AI 摘要 → 结构化存储 → 主动推送 → 知识库积累
步骤1:定义追踪目标
在 AGENTS.md 中定义:
## Earnings Tracker
### Companies to Track
- OpenAI
- Anthropic
- Google DeepMind
- Microsoft (AI相关部分)
- Meta (LLaMA / AI研究)
- NVIDIA
- Stability AI
- Midjourney
### Information Sources
1. 财报 (Earnings Calls) - 通过 Earnings Whisper API
2. 公司博客 - RSS 订阅
3. 技术论文 - arXiv, company research pages
4. 新闻报道 - Google News, TechCrunch
5. 社交媒体 - Twitter/X accounts of CEOs/CTOs
### Tracking Frequency
- 财报: 季度 (自动检测发布日期)
- 博客: 每日检查
- 论文: 每周检查
- 新闻: 每日检查 (但只摘要重大新闻)
步骤2:自动抓取与摘要
# skills/earnings-tracker/monitor.py
import requests
from datetime import datetime
COMPANIES = [
{"name": "OpenAI", "ticker": None, "blog_rss": "https://openai.com/blog/rss"},
{"name": "Anthropic", "ticker": None, "blog_rss": "https://www.anthropic.com/blog/rss"},
# ...
]
def check_for_updates():
updates = []
for company in COMPANIES:
# 检查财报
earnings = check_earnings(company)
if earnings:
summary = summarize_earnings(earnings)
updates.append({
"type": "earnings",
"company": company["name"],
"content": summary
})
# 检查博客
blog_posts = check_blog_rss(company["blog_rss"])
for post in blog_posts:
if is_significant(post): # 过滤掉不重要的
summary = summarize_blog_post(post)
updates.append({
"type": "blog",
"company": company["name"],
"title": post["title"],
"content": summary
})
# 检查论文
papers = check_papers(company["name"])
for paper in papers:
summary = summarize_paper(paper)
updates.append({
"type": "paper",
"company": company["name"],
"title": paper["title"],
"content": summary
})
return updates
def summarize_earnings(earnings_data):
"""
财报摘要: 提取关键数字和战略方向
"""
transcript = earnings_data["transcript"]
prompt = f"""
请从以下财报电话会议中提取:
1. 关键财务数据 (营收、利润、增长率)
2. AI/ML 相关的业务进展
3. 未来战略重点
4. 管理层对行业趋势的看法
电话会议记录 (节选):
{transcript[:3000]}
输出格式:
# {earnings_data['company']} Q{earnings_data['quarter']} 财报摘要
## 📊 关键数据
- 营收: $X (YoY +X%)
- ...
## 🚀 AI 业务进展
- [具体进展]
## 🎯 战略重点
- [战略方向]
## 💡 行业观点
- [管理层对AI趋势的看法]
"""
return call_ai_api(prompt)
def summarize_blog_post(post):
"""
博客摘要: 三句话概括 + 关键信息提取
"""
content = fetch_url(post["url"])
prompt = f"""
用三句话概括这篇文章的核心内容,然后提取关键技术细节或产品更新。
文章: {post['title']}
{content[:2000]}
输出格式:
**摘要**: [三句话概括]
**关键信息**:
- [关键点1]
- [关键点2]
"""
return call_ai_api(prompt)
步骤3:结构化存储
所有摘要自动保存到知识库,并添加丰富的元数据:
def save_update_to_kb(update):
content = f"""
# {update['company']} - {update['type'].upper()}
**日期**: {datetime.now().strftime('%Y-%m-%d')}
**类型**: {update['type']}
**来源**: {update.get('source_url', 'N/A')}
{update['content']}
"""
metadata = {
"source": "earnings_tracker",
"company": update['company'],
"type": update['type'],
"date": datetime.now().isoformat(),
"tags": ["AI", "industry_tracking", update['company'].lower()]
}
save_to_knowledge_base(content, metadata)
步骤4:定期汇报
每周五下午,Agent 主动发送一周总结:
🔍 **AI 行业追踪 - 本周摘要 (2024-01-15 至 2024-01-21)**
## 📊 财报
• **NVIDIA** 发布 Q4 财报,数据中心营收同比增长217%,主要受AI芯片需求驱动
[查看详情]
## 📝 博客 & 公告
• **OpenAI** 推出 GPT-4 Turbo with Vision API,支持图像理解,定价降低50%
[查看详情]
• **Anthropic** 发布 Claude 3 系列,宣称在多项基准测试中超越 GPT-4
[查看详情]
## 📄 论文
• **Google DeepMind** 发表论文 "Gemini: A Family of Highly Capable Multimodal Models"
核心创新: 原生多模态训练,而非后期拼接
[查看详情]
## 🔗 行业趋势观察
基于本周信息,我注意到:
1. **多模态成为主战场**: OpenAI, Google, Anthropic 都在强化多模态能力
2. **成本下降**: API 定价持续下降,加速应用层创业
3. **企业市场争夺**: 微软、Google 都在财报中强调企业客户增长
是否需要我深入分析某个话题?
步骤5:按需深入研究
当你需要深入研究某个话题时,知识库已经积累了大量素材:
你: 帮我整理 OpenAI 过去一年的产品发布时间线和战略演进
Agent: 正在从知识库检索 OpenAI 相关内容...
找到 47 条相关记录,包括:
• 12 篇博客文章
• 3 次产品发布
• 8 篇行业报道
• 24 条社交媒体动态
生成中...
# OpenAI 2023 产品与战略时间线
## Q1 2023
**3月14日 - GPT-4 发布**
- 多模态能力 (文本+图像输入)
- 推理能力显著提升
- 定价: $0.03/1K input tokens
- 战略意义: 确立技术领先地位,但未公开训练细节
**3月23日 - ChatGPT Plugins**
- 首次允许第三方扩展
- 初始合作伙伴: Expedia, Instacart, Wolfram
- 战略: 构建生态,但后续推进缓慢 (Q3 转向 GPTs)
## Q2 2023
...
## 战略演进分析
1. **从封闭到开放** (但有限度):
- Q1: GPT-4 训练细节不公开
- Q3: 推出 GPT Store,鼓励生态建设
- 但始终保持核心模型闭源
2. **企业市场发力**:
- Q2: 推出 ChatGPT Enterprise
- Q4: 多次强调企业客户数量
- 与微软深度绑定
3. **成本优化与普惠**:
- API 定价持续下降
- 推出 GPT-3.5 Turbo (成本大幅降低)
- 目标: 让更多开发者能负担得起
[完整报告已保存到知识库]
这就是知识库驱动的研究工作流——信息自动流入,随时可以调用。
💡 AI辅助提示
想为自己的行业构建类似的追踪系统?问AI:
“我是 [你的职业],想追踪 [你的行业] 的最新动态。主要信息源有 [列举],应该如何设计自动追踪和摘要系统?给我一个技术方案。”
通用模式:研究工作流模板
从 Earnings Tracker 可以抽象出一个通用的研究工作流模板:
# research-workflow.yaml
name: "My Research Topic"
description: "追踪 [某个领域] 的最新进展"
sources:
- type: rss
urls: [...]
check_frequency: daily
- type: api
service: "Google Scholar"
keywords: [...]
check_frequency: weekly
- type: manual_input
description: "我手动添加的笔记和想法"
processing:
- step: "fetch"
action: "get latest content from sources"
- step: "filter"
action: "remove duplicates and low-quality content"
- step: "summarize"
action: "AI generates summary for each item"
prompt: "summarize_template.txt"
- step: "extract"
action: "extract key insights and data points"
- step: "save"
action: "save to knowledge base with metadata"
outputs:
- type: "weekly_digest"
schedule: "every Friday 5pm"
format: "markdown_report"
- type: "on_demand_research"
trigger: "user asks a question related to this topic"
action: "search knowledge base and synthesize answer"
- type: "connection_discovery"
schedule: "monthly"
action: "find connections between items in this topic"
你可以复制这个模板,修改成任何研究主题:
- 学术研究者追踪某个子领域的论文
- 投资者追踪某个行业的公司动态
- 产品经理追踪竞品的功能更新
- 创作者追踪某个话题的内容趋势
与其他工作流的集成
知识库不是终点,而是其他工作流的燃料:
1. 内容创作 (第9章)
你: 我要写一篇关于"AI Agent 的现状与未来"的文章
Agent:
正在搜索知识库相关内容...
找到 23 条相关笔记:
• "Agent 架构模式演进" (你的思考)
• "OpenAI Assistants API 分析" (行业追踪)
• "ReAct vs ReWOO 对比" (论文笔记)
• ...
我已经为你生成了一个初步大纲:
# AI Agent 的现状与未来
## 1. 当前 Agent 的能力边界
[引用你的笔记 "Agent 能力评估框架"]
- 擅长: 信息检索、结构化任务
- 局限: 长期规划、创造性任务
## 2. 主要技术路线
[引用 "ReAct vs ReWOO 对比"]
- Reasoning + Acting (OpenAI 路线)
- Planning + Execution (Google 路线)
## 3. 商业应用现状
[引用 "企业 AI Agent 案例分析"]
...
需要我展开每个部分吗?
2. 决策支持
你: 我在考虑是否要从 OpenAI 切换到 Claude,能帮我对比一下吗?
Agent:
基于你的知识库,我找到了你之前收集的对比信息:
**成本** (你在 "API 成本对比" 笔记中记录):
• OpenAI GPT-4: $0.03/1K input
• Claude Opus: $0.015/1K input (便宜 50%)
**性能** (你在 "模型评测结果" 中保存):
• 代码生成: GPT-4 略优
• 长文本分析: Claude 更强
• 指令遵循: 相当
**你的历史评价** (从 "模型使用体验" 提取):
• 2024-01-10: "Claude 的思维链更清晰,但偶尔过于冗长"
• 2024-01-15: "GPT-4 对复杂指令的理解更准,但成本是个问题"
**建议**:
如果你的主要用例是长文本处理和分析,Claude 是更好的选择。
如果是代码生成和复杂推理,继续用 GPT-4。
或者,考虑混合策略: 日常任务用 Claude,复杂任务用 GPT-4?
3. 学习与成长
# 每月自动生成的 "学习回顾"
你: 这个月我学到了什么?
Agent:
# 📚 2024年1月 学习回顾
基于你的知识库活动分析:
## 📊 统计
• 新增笔记: 87 条
• 主要话题: AI Agent (32), 产品设计 (21), 增长策略 (15)
• 阅读文章: 43 篇
• 会议记录: 12 次
## 🎯 主要学习主题
### 1. AI Agent 系统设计
你在这个月深入研究了 Agent 架构,特别是:
- ReAct 模式的原理和应用
- 多 Agent 协作机制
- 长期记忆设计
**知识演进**:
月初你还在思考"Agent 是否需要规划能力",
月底你已经在设计 "基于 STATE 文件的多 Agent 协作系统"。
**建议**: 可以写一篇总结文章,巩固这个月的学习成果。
### 2. 产品增长方法论
你连接了之前分散的增长相关笔记,形成了更系统的理解:
- 增长循环 vs 增长漏斗
- 用户激活的关键节点
- 留存的底层逻辑
**关联发现**:
你在 "Reforge Growth Series" 和 "Hooked 模型" 之间建立了连接,
发现它们都强调"习惯养成"的重要性。
## 🔗 跨领域洞察
这个月你同时研究 AI Agent 和产品增长,我注意到一个有趣的相似性:
• Agent 的 "Aha Moment" = 用户第一次看到 Agent 自主完成复杂任务
• 产品的 "Aha Moment" = 用户第一次获得核心价值
它们的设计原则是相通的: **降低到达 Aha Moment 的摩擦**。
这可能是一个值得深入的方向?
## 📖 推荐复习
基于遗忘曲线,这些笔记可能需要复习:
• "ReAct 论文精读" (2周前,复杂概念)
• "增长循环设计模式" (3周前,关键方法论)
这就是“第二大脑“的终极形态——它不仅帮你记住,还帮你思考、创作、决策和成长。
小结
本章我们构建了一个完整的个人知识管理系统,解决了信息散落、检索困难、知识孤岛三大挑战。
核心架构:
- 摄入层: 自动从各种来源捕获信息 (URL、文件、对话、邮件)
- 存储层: Markdown + Vector DB,兼顾可读性和可搜索性
- 检索层: 混合检索 (关键词 + 语义),重排序提升准确性
- 应用层: 与工作流集成,知识成为生产力
关键案例:
- Personal Knowledge Base: 基础的 RAG 系统,语义搜索
- Second Brain: 完整系统,带 Web Dashboard 和可视化
- Semantic Memory Search: 高级检索,混合搜索 + 重排序
- ChatGPT 历史提取: 自动从对话中提取知识点
- 会议记录结构化: 流水账变成可检索的结构化笔记
- Nightly Brainstorm: 自动发现笔记间的隐藏关联
- Earnings Tracker: 完整研究工作流,从追踪到分析
设计原则:
- ✅ 自动化优先: 摄入、组织、关联发现都自动化
- ✅ 文本为王: Markdown 可读、可编辑、可版本控制
- ✅ 语义理解: 不依赖精确关键词,理解意图
- ✅ 工作流集成: 知识不是静态档案,而是创作和决策的燃料
- ✅ 主动发现: 系统主动发现关联,提供洞察
避免的陷阱:
- ❌ 手动整理和打标签 (无法持续)
- ❌ 强制所有内容用统一结构 (不自然)
- ❌ 知识库与工作流割裂 (变成僵尸档案)
- ❌ 只存储不复用 (收集癖而非知识管理)
下一步:
你现在有了一个强大的知识管理系统。在下一章(第13章),我们会探讨性能与成本优化——如何在保持系统强大功能的同时,控制 API 成本和响应延迟。我们会讨论:
- 多模型混合策略 (不同任务用不同模型)
- Token 消耗优化
- 缓存策略
- 成本监控与预算告警
但在那之前,试着构建你自己的“第二大脑“,让知识真正为你工作。
📚 深入学习
想深入理解 RAG 系统的技术细节?问AI:
“RAG (Retrieval-Augmented Generation) 的核心原理是什么?向量数据库如何工作?embedding 模型如何选择?给我一个技术深度的解释。”想了解混合检索的数学原理?问AI:
“解释 BM25 算法和 vector similarity 的区别,以及 Reciprocal Rank Fusion (RRF) 如何融合两者的结果?最好有公式和示例。”想看更多知识管理系统的案例?问AI:
“介绍几个著名的个人知识管理系统(如 Obsidian, Roam Research, Notion)的设计理念和优劣。我想了解它们如何处理知识组织和检索问题。”
关键要点:
- 现代知识管理的挑战不是缺少信息,而是信息过载和散落
- “第二大脑“系统需要四层架构:摄入、存储、检索、应用
- 语义搜索 + 混合检索 > 纯关键词搜索
- 自动提取和结构化知识,而非手工整理
- 最强大的功能是自动发现知识间的隐藏关联
- 知识库的价值在于与工作流集成,而非孤立存在
- 用 Git 版本控制知识库,可追溯演进历史
- Agent 不仅帮你记住,更重要的是帮你思考和发现
现在,你拥有了一个永不遗忘、持续学习、主动思考的“第二大脑“。
参考资料
本章引用的案例均来自 awesome-openclaw-usecases 社区仓库:
-
案例来源:Personal Knowledge Base (RAG),awesome-openclaw-usecases 社区贡献 ↩
-
案例来源:Second Brain,awesome-openclaw-usecases 社区贡献 ↩
-
案例来源:Semantic Memory Search,awesome-openclaw-usecases 社区贡献 ↩