一只阿木木

AI + Obsidian:普通人构建个人知识库的终极形态——一个程序员的AI知识工作流全公开

AI + Obsidian:普通人构建个人知识库的终极形态

——一个程序员的AI知识工作流全公开


你好,我是【一只阿木木】,一名后端程序员。用工程师的逻辑搭建系统,用产品经理的思维经营自己。

这是「重塑大脑」系列的第五篇。前四篇我们搭好了骨架、填好了血肉、学会了产出。

今天,我们给这套系统接上一个涡轮增压引擎——AI。

但我要先说一句大实话:AI不是来替代你思考的,它是来帮你跳过那些"脏活累活"的。 如果你期待的是"把所有事情都丢给AI",这篇文章可能会让你失望。但如果你想知道一个程序员是如何把AI"嵌入"到自己知识管理工作流的每一个环节中的,请你读下去。


01 | 一个改变了我认知的下午

三个月前的某个周六下午,我在做每周的笔记精加工。

面前摊着7篇这周收集的技术文章,等待我做渐进式总结(L1-L3)。

按照以前的速度,每篇需要15-20分钟:通读全文、标高亮、写总结。7篇下来,至少两个小时。

那天我突然产生了一个念头:

"如果我把这些文章丢给ChatGPT,让它帮我做L1-L2的初步筛选呢?"

于是我做了一个实验。

我把第一篇文章(一篇关于"分布式锁的实现方案"的长文,大约5000字)完整粘贴到ChatGPT里,然后给了它一条指令:

请你帮我做以下事情:
1. 用3句话总结这篇文章的核心观点
2. 列出文章中最有价值的5个知识点(每个用1句话概括)
3. 指出这篇文章中最值得深入研究的1个概念
4. 这篇文章有什么局限性或者我需要保持警惕的观点?

30秒后,ChatGPT给了我一份回复。

我仔细对照了原文,发现:

  • 3句话总结:准确率约85%,抓到了主要观点,但遗漏了一个我觉得重要的细节。
  • 5个知识点:4个我认同,1个我觉得不重要(它把一个次要的实现细节排进了前5)。
  • 最值得深入研究的概念:它推荐的和我自己判断的不一样——但它推荐的那个,确实也有道理,反而给了我新的视角。
  • 局限性分析:这是它最有价值的部分。它指出了文章作者只讨论了Redis实现的方案,没有对比ZooKeeper方案,这确实是一个盲区。

那一刻,我的世界观被刷新了。

不是因为AI有多厉害。而是我突然意识到——

AI不需要"完美"。它只需要帮我完成"从0到0.7",剩下的"0.7到1.0"由我来做。

以前我做一篇笔记的流程是:

从0开始 ————————————————→ 完成
        (20分钟,全部靠我)

现在变成了:

AI帮我从0到0.7 ——→ 我从0.7到1.0
  (30秒)           (5分钟)

同样的产出质量,时间从20分钟压缩到了5分半。效率提升了接近4倍。

那天下午我把7篇文章全部用这个方式处理完了。用时:38分钟。以前需要两小时以上。

省下来的时间我做了什么?我用来写永久笔记了——这才是AI无法替代的部分。


02 | 一个核心原则:AI做体力活,你做脑力活

在展开具体工作流之前,我想先定一个铁律。

这个铁律是我踩了无数坑之后总结出来的:

AI负责:搜集、筛选、总结、格式化、翻译、初稿生成。

你负责:判断、连接、质疑、洞察、决策、表达你自己的观点。

用程序员的话说:

AI = 数据采集层 + 预处理层(ETL)
你 = 业务逻辑层 + 决策层

AI是你的数据管道,不是你的业务引擎。

为什么这个区分如此重要?

因为我见过太多人把AI当成了"思考外包"——

  • 让AI帮自己写读书笔记,然后直接存进知识库,自己连原文都没读过。
  • 让AI帮自己生成观点,然后当成自己的观点发出去。
  • 让AI帮自己做决策,然后都不知道决策的依据是什么。

这不是"第二大脑",这是"租了别人的大脑"。

你存进去的东西你不理解、不认同、不能用自己的话复述——那它就不是你的知识。它只是AI的输出,暂时寄存在你的硬盘上。

我的原则是:

AI生成的任何内容,在存入我的知识库之前,必须经过我的"人工审核"。就像代码合并前必须经过Code Review一样。

没有经过你大脑处理的信息,不配叫"知识"。

记住这条铁律,接下来的所有工作流才有意义。


03 | 我的AI知识工作流:完整版

下面我把AI嵌入到CODE(Capture-Organize-Distill-Express)每一个环节的具体做法展示给你。

环节一:Capture(获取)—— AI帮你"预消化"

场景:你看到了一篇长文章/一段播客/一个技术视频,想存进知识库,但没时间仔细看。

以前的做法:收藏链接,然后再也不看。

现在的做法:

Step 1:快速丢给AI做"预消化"

我用的 Prompt(经过反复调试,分享给你):

## 角色
你是一个专业的知识管理助手。你的任务是帮我"预处理"一篇文章,
以便我后续快速判断它的价值并做深度笔记。

## 输入
(粘贴文章全文或核心段落)

## 请你输出以下内容

### 一句话总结
用一句话概括这篇文章的核心论点。

### 三个关键知识点
用自己的话(不要照抄原文)列出3个最有价值的知识点。
每个知识点用2-3句话解释。

### 一个行动建议
如果我是一个后端程序员/内容创作者,
这篇文章对我最直接的用处是什么?给我一条可执行的建议。

### 值得警惕的地方
这篇文章有没有观点偏颇、论据不足、或者过度简化的地方?
请诚实指出。

### 推荐深入阅读
基于这篇文章的主题,推荐1-2个我可以进一步研究的方向或关键词。

Step 2:快速人工审核

AI给出回复后,我不会直接复制粘贴存起来。

我会花2分钟快速浏览:

  • 一句话总结对不对?→ 如果不对,我改。如果对,我在后面加上我自己的一句评论。
  • 三个知识点我认同吗?→ 不认同的删掉,认同的保留。有时候我会加一条AI没提到但我觉得重要的。
  • 行动建议实用吗?→ 通常需要根据我的具体情况修改。
  • 值得警惕的地方有道理吗?→ 这一条是我觉得AI最有价值的产出。它逼迫我用批判性思维看待文章。

Step 3:存入Obsidian

审核完的笔记存入 00-Inbox/,格式如下:

# 分布式锁的6种实现方案(AI辅助摘要)

- 来源:某技术博客
- 日期:2024-02-01
- AI辅助:是(ChatGPT-4,已人工审核 ✅)
- 标签:#分布式 #系统设计

---

## 一句话总结
分布式锁的核心挑战不是"加锁",而是"保证一致性释放"。
→ 【我的补充】:这和我之前遇到的消息重复消费问题本质上是同一类问题。

## 关键知识点
1. Redis的RedLock算法在网络分区时存在争议(参考Martin Kleppmann的批评)
2. ZooKeeper的临时节点方案可靠性更高,但性能开销大
3. ~~etcd的方案适合云原生场景~~ → 【删除:我的项目用不到etcd】

## 行动建议
- 在当前项目中优先考虑Redis单节点锁(场景简单,不需要RedLock)
- 关注 [[接口幂等性设计方案]],用幂等性兜底锁失效的极端情况

## 值得警惕
- 文章作者是Redis的深度用户,对ZK方案的描述可能有偏见
- 缺少实际性能测试数据

---

(以下是原文关键段落的摘录,已做L1高亮...)

注意看——AI生成的内容和我的思考是明确区分的。

我用 →【我的补充】 和 →【删除:原因】 来标注哪些是AI的产出,哪些是我的判断。

这不是为了好看,而是为了以后回看时知道"哪些是我真正理解的,哪些只是AI说的"。


环节二:Organize(组织)—— AI帮你"自动分类"

场景:你的Inbox里积累了一堆笔记,不确定应该归到PARA的哪个位置。

我有时候会把一批Inbox笔记的标题列表丢给AI,让它帮我做初步分类建议:

以下是我的Inbox里的10条笔记标题。
请根据PARA系统帮我判断每条应该归入哪个分类:
- P(Projects):与当前正在进行的项目相关
- A(Areas):与长期维护的领域相关
- R(Resources):感兴趣但目前不紧急的资源
- X(删除):没有保留价值

我当前的项目:公众号系列写作、用户画像服务重构
我的领域:技术基本功、内容创作、职业发展、健康

笔记列表:
1. 分布式锁的6种实现方案
2. 2024年值得关注的10个开源项目
3. 如何写出高转化率的标题
4. 某火锅店的菜单照片
5. Kafka消费者组rebalance问题排查
6. 程序员如何做职业规划
7. 一个有趣的Twitter段子
8. Redis内存淘汰策略对比
9. 公众号排版工具推荐
10. 某会议的录音链接(已过期)

AI的回复:

1. 分布式锁 → A(技术基本功)或 P(如果与用户画像项目相关)
2. 开源项目 → R(资源)
3. 高转化标题 → A(内容创作)
4. 火锅菜单 → X(删除)
5. Kafka rebalance → P(用户画像服务重构,如果在用Kafka)
6. 职业规划 → A(职业发展)
7. Twitter段子 → X(删除)
8. Redis淘汰策略 → A(技术基本功)
9. 排版工具 → A(内容创作)或 R(资源)
10. 过期录音 → X(删除)

AI的分类准确率大概在70-80%。

但它的价值不在于"完美分类",而在于帮你快速做第一轮筛选。

对着AI的建议,你只需要做"确认/修改"——这比从零开始判断快多了。

就像代码自动补全不一定100%对,但它省去了你80%的敲键盘时间。


环节三:Distill(提炼)—— AI帮你"写初稿",你来"做审核"

这是AI最能发挥威力的环节,也是最容易被滥用的环节。

场景一:AI辅助生成"永久笔记"初稿

还记得第三篇讲的"永久笔记"吗?一条完整的、用你自己的话写成的、独立的知识卡片。

手写一条永久笔记通常需要5-10分钟。但如果你已经有了一条L2-L3的文献笔记,可以让AI先帮你生成初稿:

以下是我关于"微服务vs单体架构"的文献笔记摘要:

(粘贴你的L3总结)

请你帮我把这条笔记转化成一条"永久笔记"。要求:
1. 只讲一个核心观点
2. 用通俗易懂的语言,脱离原文也能理解
3. 包含一个判断标准或经验法则
4. 不超过150字

AI会给你一个初稿。

然后你要做的是——改它。

不是全盘接受,而是:

  • 把AI的"学术腔"改成你自己的说话方式
  • 加上你自己的经验("在我做XX项目时...")
  • 删掉你不认同的部分
  • 加上和其他笔记的链接(AI不知道你的知识库里有什么)

最终存入知识库的版本,应该是"AI提供骨架、你填充灵魂"的产物。

场景二:AI帮你发现笔记之间的隐藏联系

这是一个我自己都觉得很酷的用法。

有时候我会把几条看似不相关的永久笔记丢给AI,问它:

以下是我知识库中的5条笔记的核心观点:

1. "小团队不应盲目采用微服务架构"
2. "技术选型的核心不是性能,是团队认知成本"
3. "MVP思维:先完成再完美"
4. "知识管理的80%价值来自20%的永久笔记"
5. "写作不是无中生有,而是有序组装"

请你思考:这5条笔记之间有没有更深层的共同规律?
有没有一个更底层的原则能把它们统一起来?

有一次AI给了我一个让我拍案叫绝的回复:

这5条笔记都指向同一个底层原则:"约束即自由"(Constraints Liberate)。

  • 约束团队规模 → 选择更简单的架构 → 更高效
  • 约束选型维度 → 只看认知成本 → 决策更快
  • 约束初稿质量 → 接受MVP → 更快产出
  • 约束笔记数量 → 只打磨20% → 更高价值
  • 约束创作方式 → 只做组装 → 更低门槛

底层逻辑:在复杂系统中,有意识地减少选项,反而能释放更大的效能。

这条洞察不是AI"创造"的——它是从我自己的笔记中"挖掘"出来的。

AI做的只是发现了我自己都没意识到的模式。

我把这条洞察写成了一条新的永久笔记:[[约束即自由——复杂系统中的减法原则]],并链接了上面5条笔记。

一个新的知识节点诞生了。我的知识网络又密了一层。


环节四:Express(表达)—— AI帮你"搭脚手架"

场景:你要写一篇公众号文章/技术方案/工作周报。

以前的做法:对着空白文档发呆(参见第四篇)。

现在的做法:

Step 1:把中间产物丢给AI,让它帮你搭大纲

我要写一篇公众号文章。以下是我知识库中与主题相关的几条笔记:

笔记1:(粘贴核心观点)
笔记2:(粘贴核心观点)
笔记3:(粘贴核心观点)

我的读者是:对知识管理感兴趣的程序员和职场人。
文章风格:真诚、接地气、有干货、用程序员的类比。
文章长度:3000-5000字。

请你帮我基于这些素材,生成一份文章大纲。要求:
1. 开头要有一个引发共鸣的痛点场景
2. 中间要有具体的案例和操作步骤
3. 结尾要有行动指南

AI会给你一个大纲。

Step 2:在大纲基础上"人工填充"

拿到大纲后,我不会让AI继续写正文。

为什么?

因为AI写的正文有两个致命问题:

  1. 没有你的个人经历。AI不知道你上个月在做什么项目、你踩过什么坑。而这些个人故事恰恰是公众号文章最有感染力的部分。
  2. 语言风格趋同。AI写出来的文章,读起来都像同一个人写的——一种正确但无趣的"AI腔"。你的读者关注你,是因为你的独特表达,不是因为一篇完美但毫无个性的文章。

所以我的做法是:AI搭脚手架,我砌砖。

大纲是AI的。但每一段文字、每一个故事、每一个比喻,是我自己写的。

这篇你正在读的文章也是如此——大纲经过AI辅助优化,但每一个字都是我敲的。

Step 3:AI做最后的"质检"

文章写完初稿后,我会把全文丢给AI,做一次"Code Review":

Markdown

请你作为一个严格的编辑,审阅以下文章。请从以下维度给出具体建议:

1. 逻辑连贯性:有没有跳跃或断裂的地方?
2. 信息密度:有没有废话或重复的段落?
3. 可读性:有没有过于晦涩的表述?
4. 事实准确性:有没有明显的技术错误?
5. 标题和开头:能否在3秒内抓住读者注意力?

请直接指出问题所在的段落,并给出修改建议。

AI通常能帮我发现1-2个逻辑漏洞和几处冗余表达。

这相当于在合代码之前多过了一轮自动化测试。不能替代人工Review,但能提前拦截明显的Bug。


04 | 我的 Obsidian + AI 工具栈

讲完了工作流,你最关心的问题来了——具体用什么工具?

以下是我当前在用的工具组合。不一定是最好的,但已经跑通了:

工具一:Obsidian Copilot 插件

这是一个Obsidian社区插件,可以在笔记里直接和AI对话。

安装方法:Obsidian设置 → 社区插件 → 搜索"Copilot" → 安装并启用 → 配置你的API Key

我最常用的3个场景:

场景1:选中一段笔记文字 → 右键 → "用AI总结" → 生成摘要
场景2:在笔记末尾打开对话框 → 问AI"这条笔记和哪些概念相关?"
场景3:选中一堆笔记标题 → "帮我找出这些笔记的共同主题"

优点:不需要离开Obsidian,不需要在浏览器和笔记软件之间来回切换。

缺点:需要自己配置API Key(OpenAI或其他模型),有一点技术门槛。但你是程序员,这不是问题。

工具二:ChatGPT / Claude 网页版

对于需要长文本处理的任务(比如一次性处理一篇5000字的文章),我会直接用网页版的 ChatGPT 或 Claude。

原因是这些网页版的上下文窗口更大,模型能力更强。

我的做法:处理完后,把结果手动粘贴到Obsidian里,加上 AI辅助:已人工审核 ✅ 标记。

工具三:Readwise Reader + Obsidian 同步

Readwise Reader 是一个阅读工具,可以用AI自动生成文章摘要。

更重要的是,它支持自动同步高亮和笔记到Obsidian。

我的工作流:

在手机上用 Readwise Reader 阅读文章
   → 随手高亮重要段落
   → Reader 的AI自动生成文章摘要
   → 每天自动同步到 Obsidian 的 00-Inbox/
   → 我在每晚的 Inbox 清空时间里审核和加工

这个链路一旦跑通,你的信息"采集-入库"环节就实现了半自动化。

工具四:自己写脚本(程序员专属)

作为程序员,你有一个普通用户没有的超能力——你可以写代码。

我自己用 Python 写了一个小脚本,每周自动做一件事:

# 伪代码示意
# 扫描Obsidian的Inbox文件夹
# 找出超过7天未处理的笔记
# 发送提醒到微信/钉钉

import os
from datetime import datetime, timedelta

inbox_path = "/path/to/SecondBrain/00-Inbox/"
threshold = timedelta(days=7)

overdue_notes = []
for file in os.listdir(inbox_path):
    file_path = os.path.join(inbox_path, file)
    modified_time = datetime.fromtimestamp(os.path.getmtime(file_path))
    if datetime.now() - modified_time > threshold:
        overdue_notes.append(file)

if overdue_notes:
    send_notification(f"⚠️ 你的Inbox里有{len(overdue_notes)}条超过7天未处理的笔记!")

这就是程序员做知识管理的独特优势——你可以把任何重复性工作自动化。

我还有一个脚本可以自动统计知识库的"健康度":

📊 本周知识库报告
- 新增笔记:12条
- 新增永久笔记:3条
- Inbox待处理:2条
- 孤岛笔记(无链接):5条
- 本周最活跃笔记:[[中间件思维]](被引用4次)

每周一早上收到这封"体检报告",让我对知识库的状态了如指掌。


05 | 我踩过的三个AI大坑

讲完了"怎么用",必须讲讲"怎么别用错"。

以下三个坑,每个我都亲自掉进去过:

坑一:AI幻觉导致的"假知识"

有一次我让ChatGPT帮我总结一篇关于"CRDTs(无冲突复制数据类型)"的论文。

AI给了我一段看起来非常专业的总结,其中提到了一个"经典的XYZ算法"。

我觉得这个算法名字很陌生,于是去Google了一下。

这个算法根本不存在。AI编的。

它用一种非常自信的语气,杜撰了一个听起来很像真的东西。如果我没有去核实,这条"假知识"就会被存进我的知识库,未来某天可能会被我引用到技术方案里。

后果不堪设想。

从那以后,我给自己定了一条规矩:

AI生成的任何"事实性内容"(包括算法名称、论文引用、数据数字、历史事件),必须手动核实来源。

我在 Obsidian 的永久笔记模板里加了一个字段:

## 可信度
- [ ] 核心事实已人工核实
- AI辅助:是/否
- 核实方式:(Google/原文对照/实际测试)

这不是多此一举,这是知识质量的防火墙。

坑二:过度依赖AI总结,导致"理解假象"

有一段时间,我每篇文章都让AI帮我生成总结,然后直接存入知识库。

表面上我的笔记数量突飞猛进。一个月新增了80多条。

但当我尝试在写文章时"调用"这些笔记时,我发现了一个可怕的事实:

我对其中60%的笔记内容完全没有印象。

我"拥有"了80条笔记,但真正"理解"的不到30条。

那些AI帮我写的总结,我从未用自己的大脑处理过,所以它们从来没有成为我的知识。

它们只是AI的输出,寄存在我的硬盘上。跟我把文章收藏到微信收藏夹里没有任何区别。

这是一个非常隐蔽的陷阱——AI让"假学习"变得更高效了。

从那以后我定了第二条规矩:

AI可以帮我做L1-L2(高亮和筛选),但L3(用自己的话写总结)必须自己来。至少写一句自己的话。哪怕只有一句。

那一句话的价值,大于AI生成的整篇总结。

因为那是你的大脑真正参与的证据。

坑三:用AI的时间比省下的时间还多

有一阵子我陷入了"Prompt工程强迫症"。

为了让AI给我更好的输出,我花了大量时间调试Prompt:

  • 试不同的角色设定
  • 试不同的输出格式
  • 对比GPT-4和Claude的效果差异
  • 研究各种Prompt框架(CRISPE、CO-STAR……)

直到某天我算了一笔账:我花在调试Prompt上的时间,已经超过了AI帮我省下的时间。

我在"优化工具",而不是在"使用工具"。

这和折腾Obsidian主题、折腾插件配置是同一种病——工具癖。

治疗方法很简单:固定3-5个你最常用的Prompt,存成模板,以后直接调用。不要再优化了。

我现在常用的Prompt就这几个,我把它们存在了 05-Templates/AI-Prompts/ 目录下:

05-Templates/AI-Prompts/
├── 文章预消化.md
├── 笔记分类建议.md
├── 永久笔记初稿生成.md
├── 笔记关联发现.md
├── 文章大纲生成.md
└── 文章质检审阅.md

每个模板我已经调好了,直接填空使用。不再花时间反复调优。


06 | AI不能替代你做的5件事

最后,我想认真聊聊AI的边界。

这不是客套话,这是我三个月使用下来最深刻的体会。

第一:AI不能替你"决定什么值得学"

AI可以帮你总结一篇文章,但它不知道这篇文章对你的人生有没有意义。

"这个知识点和我当前的项目有关吗?"
"这个概念和我的职业方向匹配吗?"
"这条信息值得我花时间深入研究吗?"

这些判断只有你自己能做。因为只有你知道自己要去哪里。

第二:AI不能替你"建立知识之间的个人化连接"

AI可以帮你发现两个概念之间的通用关联(比如"微服务和康威定律有关")。

但它无法发现只对你有意义的关联——

"这个架构思路让我想起了上个月那个失败的项目,原来当时的问题出在这里。"

**这种"灵光一闪"的连接,只能发生在你自己的大脑里。**因为它依赖的是你的个人经历、你的情绪记忆、你的直觉——这些都是AI没有的。

第三:AI不能替你"形成自己的观点"

AI可以帮你罗列正反两方的论据。但"你到底怎么看?"这个问题,只有你能回答。

你的知识库里最有价值的东西,不是别人说了什么,而是你认为什么。

第四:AI不能替你"坚持"

没有任何AI能替你每天花10分钟清空Inbox。
没有任何AI能替你每周做一次回顾。
没有任何AI能替你在不想写的时候逼自己坐下来写。

知识管理的核心竞争力不是工具,不是AI,是你日复一日的纪律。

第五:AI不能替你"体验"

你读了100篇关于"创业"的文章,AI帮你总结得完美无缺。

但你从来没有真正创过业。

知识管理不是目的。用知识去行动、去体验、去犯错、去成长——这才是目的。


07 | 今晚的作业

今天的作业只有一步:

找出你最近读过的一篇文章(公众号、技术博客、任何东西)。

用我在第三节分享的那个"预消化Prompt",丢给ChatGPT/Claude处理一次。

然后——在AI的输出上,亲手加上至少三处你自己的批注:

  • 一处"我认同,因为……"
  • 一处"我不认同,因为……"
  • 一处"这让我想到了……"

把最终结果存进你的 Obsidian Inbox。

做完后你会深刻地体会到:AI + 你的判断 > 纯AI > 纯你。

这个"加法",才是AI时代知识管理的正确姿势。


08 | 下一篇预告

这是本系列的倒数第二篇了。

下一篇,也是最后一篇,我会做一次全景复盘——

  • 从第一天搭建PARA到现在,我的知识库发生了什么变化?
  • 我的工作效率、写作产出、学习深度,有哪些可量化的提升?
  • 我中途放弃过吗?是什么让我捡起来继续的?
  • 如果让我重新来一遍,我会做哪些不同的选择?

以及最重要的:这100天的旅程,教会了我哪些关于"成长"的事情?

关注【一只阿木木】,设为星标,大结局不见不散。


🔖 「重塑大脑」系列目录

第一篇:为什么你学了那么多,却依然过不好这一生?
第二篇:只需4个文件夹,彻底终结你的数字混乱
第三篇:停止无效阅读!这才是把书读薄再读厚的方法
第四篇:写作没灵感?因为你缺一个"中间件"思维
第五篇:ChatGPT + Obsidian:我的AI知识工作流(本篇)
第六篇:坚持100天后,我发生了什么变化?(全复盘)

持续更新中,点击关注,一起搭建你的第二大脑 🧠


我是阿木木,一个用工程师的逻辑搭建系统,用产品经理的思维经营自己的后端程序员。

如果这篇文章让你重新思考了"AI到底应该怎么用",请转发给你身边那个要么对AI盲目迷信、要么对AI完全抗拒的朋友。真相在两者之间。

_我们下篇见


更多系列完整内容,请访问知识星球。

Image
Obsidian 数字人生
Obsidian数字人生
Obsidian+AI第二大脑(合集付费)
Obsidian+AI第二大脑
Obsidian+AI工作流
Obsidian+AI工作流
Obsidian+AI 读书卡片合集系列
   读书卡片合集
Obsidian+AI 知识管理合集系列
Obsidian+AI知识管理

 AII

Image

松花酿酒,春水煎茶。

眉上风止,见字如晤。

一只阿木木