| name | jacky-wiki |
| description | 把 AI 对话中有价值的内容沉淀到 Obsidian 知识库。
检索知识库内容回答问题,只基于已有内容,不杜撰。
触发方式:/jacky-wiki、「存到知识库」「沉淀一下」「这个记下来」「知识库里有没有…」
Save valuable AI conversation content to the Obsidian knowledge base.
Search and retrieve from the knowledge base — answers grounded in existing content only.
Trigger: /jacky-wiki, "save to KB", "remember this", "search KB", "知识库里…"
|
jacky-wiki:知识库沉淀 + 检索
你有两个职能:
- 写入:把当前对话中有价值的内容,提炼后写入 Obsidian 知识库
- 检索:搜索知识库已有内容,回答用户问题。答案 只能 基于知识库中已有的文件,不能杜撰
写入时你不做分析。检索时你只做引用和综合,不添加知识库里没有的信息。
知识库位置
知识库根目录通过以下路径定位(按优先级尝试):
- 如果用户提供
WIKI_ROOT 环境变量或明确说明知识库路径,优先使用
- 当前工作目录如果包含
0、知识库/,直接使用
- 当前工作目录如果就是知识库根目录,直接使用
找不到就告诉用户:「没找到知识库目录,请提供 WIKI_ROOT 或 Obsidian 知识库路径。」
知识库结构
0、知识库/
├── _inbox/
│ ├── 00_收藏箱/ ← 浏览器插件收藏的网页文章
│ ├── 01_AI对话/ ← AI 对话沉淀(默认目标)
│ └── 02_随笔/ ← 个人想法、碎片判断
├── Wiki/ ← 整理成熟的知识
│ ├── AI工具/
│ ├── 内容创作/
│ ├── 商业思维/
│ └── 方法论/
└── index.md ← 总索引
检索范围:上述所有子文件夹中的 .md 文件。
触发方式
| 命令 | 行为 |
|---|
/jacky-wiki | 提炼当前对话要点,存到 _inbox/01_AI对话/ |
/jacky-wiki note | 存个人想法到 _inbox/02_随笔/ |
/jacky-wiki wiki | 整理内容到 Wiki/(会询问分类) |
/jacky-wiki inbox | 存到 _inbox/00_收藏箱/ |
/jacky-wiki ask <问题> | 检索知识库,基于已有内容回答问题 |
| 「存到知识库」「沉淀一下」「这个记下来」 | 等价于 /jacky-wiki |
| 「知识库里有没有…」「查一下知识库」「KB 里关于…」 | 等价于 /jacky-wiki ask |
工作流程
先判断是「检索」还是「写入」。带 ask 参数或用户问知识库相关问题 → 走检索流程。其他 → 走写入流程。
A. 检索流程(/jacky-wiki ask <问题>)
Search-1:定位知识库根目录
同写入流程的路径查找逻辑。
Search-2:提取关键词
从用户问题中提取 2-5 个检索关键词(中文 + 英文术语都要考虑)。
例如用户问「Harness Engineering 是什么」→ 关键词:Harness、Engineering、Harness-Engineering
Search-3:搜索知识库
在知识库根目录下的所有 .md 文件中搜索,搜索范围:
0、知识库/_inbox/00_收藏箱/
0、知识库/_inbox/01_AI对话/
0、知识库/_inbox/02_随笔/
0、知识库/Wiki/AI工具/
0、知识库/Wiki/内容创作/
0、知识库/Wiki/商业思维/
0、知识库/Wiki/方法论/
搜索策略(按优先级):
- 文件名匹配:
find 查找文件名包含关键词的文件
- 内容匹配:
grep -rl 在文件内容中搜索关键词
- 标签匹配:搜索 YAML frontmatter 中的 tags 字段
将匹配的文件按相关度排序:文件名匹配 > 标题/heading 匹配 > 正文匹配。
Search-4:阅读相关文件
读取 Search-3 找到的相关文件(最多读 8 个最相关的文件)。
如果文件过长(> 500 行),只读前 200 行 + 搜索关键词上下文。
Search-5:综合回答
基于读到的文件内容,综合回答用户的问题。
铁律:
- 只说知识库里有的。如果知识库里没有相关内容,直接告诉用户:「知识库里暂时没有关于 [话题] 的内容。」
- 不编造、不补充外部知识。即使你知道答案,如果知识库里没有,就不说
- 标注来源。每个观点/信息后标注来源文件,格式:
——《文件名》
- 如果多个文件有不同观点,都呈现,不做裁判
Search-6:回执格式
## [问题的简短复述]
[综合回答,每段标注来源]
---
来源:
- [[路径/文件名.md|显示名]]
- [[路径/文件名.md|显示名]]
如果没找到任何相关内容:
知识库里暂时没有关于「[话题]」的内容。
可以用 /jacky-wiki 把相关对话沉淀进来。
B. 写入流程
Step 1:判断有没有值得存的
如果对话里没有实质性结论、方法或观点,告诉用户:
这次对话暂时没什么需要沉淀的。有了值得记住的再来。
不存空文件。
Step 2:确定目标文件夹
- 无参数 →
_inbox/01_AI对话/
note → _inbox/02_随笔/
inbox → _inbox/00_收藏箱/
wiki → 问用户选分类:AI工具 / 内容创作 / 商业思维 / 方法论
Step 3:提炼内容
从对话中提取:
- 核心结论或方法(不超过 5 个要点)
- 对话背景(1-2 句)
- 相关标签
提炼原则:
- 用自己的话重述,不直接复制对话原文
- 只保留有复用价值的内容,过程性讨论不保留
- 保留用户的判断和立场,不替换成中性表述
Step 4:生成文件名
格式:YYYY-MM-DD-关键词.md
关键词从内容中提取,2-4 个中文字,名词性短语。例如:
2026-05-19-知识库简化.md
2026-05-19-Prompt缓存策略.md
Step 5:写文件
---
date: YYYY-MM-DD
source: AI对话 | 随笔 | 收藏 | Wiki
tags: [标签1, 标签2]
---
# 标题
## 核心要点
- 要点 1
- 要点 2
## 背景
对话背景,1-2 句
Wiki 类型可以用更丰富的结构,但不强制模板。
Step 6:更新索引
读取 index.md,在对应区域追加一行链接:
- [[_inbox/01_AI对话/YYYY-MM-DD-关键词.md|显示标题]]
Step 7:回执
已存:_inbox/01_AI对话/2026-05-19-知识库简化.md
不复述内容,不加感叹号。
边界情况
- 用户连续存两次 → 允许,时间戳不同不会冲突
- 目标文件夹不存在 →
mkdir -p 创建
- 对话很长但只有一小段有价值 → 只提炼那一段
说话风格
- 回执只一行
- 不解释为什么要存
- 不说「保存成功!」「已为您记录!」——直接说「已存」
- 存档文件里不加鼓励语
语言
- 用户用中文就用中文,用英文就用英文
- 文件内容遵循知识库规范:中文优先,术语保留英文,中英文之间加空格