InkPot - 墨池
砚田勤耕,墨香留痕。让AI陪你沉淀每一份知识。
英文名: InkPot(墨水瓶,寓意知识的源泉)
核心理念
墨池始终在线,在日常对话中:
- 1. 自动识别知识点 - 你问什么,墨池就沉淀什么
- 分析用户行为 - 你让AI做什么,墨池就懂你擅长什么
- 建立用户画像 - 记录你的擅长领域、兴趣点、常用技能
- 智能推荐 - 基于画像推荐相关知识
⚡ 始终在线模式(重要)
墨池在每次对话开始时自动加载,全程监听所有用户输入。
自动触发策略
墨池采用全量监听 + 智能提取模式:
| 用户行为 | 墨池动作 |
|---|
| 询问概念("什么是...") | ✅ 提取知识点,记录学习 |
| 让AI写代码 |
✅ 提取代码技巧,记录实践 |
| 让AI解释代码 | ✅ 提取算法逻辑,记录理解 |
| 纠正AI回答 | ✅ 更新知识点,标记修正 |
| 让AI做题/讲题 | ✅ 提取算法模式,记录解题思路 |
| 日常闲聊 | 📝 记录用户偏好,更新画像 |
| 简单指令 | 📝 记录用户行为模式 |
简单说:你说什么,墨池就学什么。
触发规则(暴力模式)
核心触发条件:只要用户输入包含以下任一关键词/符号,立即触发知识提取!
暴力触发关键词(疑问句全覆盖)
| 类别 | 触发关键词 | 示例 |
|---|
| 疑问代词 | 什么、怎么、为什么、如何、哪、几、谁、何时、何地、何处、多少、怎样 | "什么是差分"、"怎么做"、"为什么报错" |
| 口语疑问词 |
为啥、干嘛、咋 | "为啥不行"、"干嘛要这样"、"咋解决" |
|
疑问句式 | 是不是、对不对、好不好、能不能、可不可以、有没有、行不行 | "是不是这样"、"能不能帮我" |
|
问号 | ?、? | 任何带问号的句子 |
|
请求解释 | 解释、讲一下、说一下、介绍一下、帮我理解 | "解释一下这段代码"、"介绍一下Token" |
触发后的行为
一旦触发,墨池自动执行:
- 1. 提取用户问题中的核心概念
- 创建/更新知识点
- 更新学习日志和用户画像
命令触发
| 命令 | 说明 |
|---|
| INLINECODE0 | 查看用户画像 |
| INLINECODE1 |
智能推荐复习 |
|
/墨池 推荐 | 个性化学习推荐 |
|
/墨池 索引 | 查看知识库索引 |
|
/墨池 搜索 <关键词> | 搜索知识点 |
|
/墨池 统计 | 学习统计报告 |
|
/墨池 导出 | 导出知识库 |
不触发的场景
仅有以下情况不触发:
- - 纯命令执行(如"打开文件"、"运行xx",且不含问号/疑问词)
- 问候语("你好"、"谢谢")
自动执行流程
触发学习后,墨池自动执行:
CODEBLOCK0
数据库结构
CODEBLOCK1
注意:使用简单 KV 文本格式,避免 JSON 中文引号等格式问题。
知识点索引数据库 (knowledge_index.txt)
使用简单 KV 格式,每个知识点一个块:
CODEBLOCK2
格式说明:
- -
=== 名字 === 标记知识点开始 - INLINECODE8 格式存储字段
- 列表用逗号分隔(如 tags, related)
- 多行文本用换行符即可,无需转义
- 完全不用担心 JSON 引号问题!
用户画像数据库 (user_profile.txt)
KV 格式记录用户身份和行为统计(每个 action 作为独立块):
CODEBLOCK3
格式说明:
- -
=== identity === 存储用户身份推断结果 - INLINECODE10 存储各类行为统计(每个行为独立一个块)
- 避免嵌套字典,保持扁平结构
学习日志数据库 (learning_log.txt)
简单行格式,用 | 分隔:
CODEBLOCK4
格式:时间 | 知识点 | 事件类型 | 触发来源
学习卡片格式
CODEBLOCK5 语言
代码
## 元信息
- id: [唯一标识]
- 分类: [领域/子领域]
- 标签: [标签1, 标签2]
- 学习日期: YYYY-MM-DD
- 学习次数: N
- 掌握程度: 了解/理解/熟练/精通
- 来源: 用户提问 / 任务分析 / 主动学习
- 关联: [[相关知识点1]], [[相关知识点2]]
使用方式
🚀 首次使用(重要)
墨池需要在每次对话开始时自动加载。请告诉 AI:
"把每次对话加载墨池这件事记到 MEMORY.md 里"
这样 AI 会在记忆中记住这个偏好,之后每次对话都会自动加载墨池。
方式一:自然对话触发
直接向 AI 提问,墨池会自动识别并记录知识点:
CODEBLOCK7
方式二:命令触发
使用 /墨池 命令查看和管理知识库:
CODEBLOCK8
快速检索功能
1. 关键词搜索
CODEBLOCK9
2. 分类筛选
CODEBLOCK10
3. 标签搜索
CODEBLOCK11
4. 掌握程度筛选
CODEBLOCK12
5. 关联查询
输入: knowledge="差分"
输出: 相关知识点(前缀和、树状数组、线段树)
作者: fslong
更新日期: 2026-03-29
更新说明: 从 JSON 格式改为简单 KV 文本格式,避免中文引号等格式问题,提高稳定性。
技能名称: 墨池
InkPot - 墨池
砚田勤耕,墨香留痕。让AI陪你沉淀每一份知识。
英文名: InkPot(墨水瓶,寓意知识的源泉)
核心理念
墨池始终在线,在日常对话中:
- 1. 自动识别知识点 - 你问什么,墨池就沉淀什么
- 分析用户行为 - 你让AI做什么,墨池就懂你擅长什么
- 建立用户画像 - 记录你的擅长领域、兴趣点、常用技能
- 智能推荐 - 基于画像推荐相关知识
⚡ 始终在线模式(重要)
墨池在每次对话开始时自动加载,全程监听所有用户输入。
自动触发策略
墨池采用全量监听 + 智能提取模式:
| 用户行为 | 墨池动作 |
|---|
| 询问概念(什么是...) | ✅ 提取知识点,记录学习 |
| 让AI写代码 |
✅ 提取代码技巧,记录实践 |
| 让AI解释代码 | ✅ 提取算法逻辑,记录理解 |
| 纠正AI回答 | ✅ 更新知识点,标记修正 |
| 让AI做题/讲题 | ✅ 提取算法模式,记录解题思路 |
| 日常闲聊 | 📝 记录用户偏好,更新画像 |
| 简单指令 | 📝 记录用户行为模式 |
简单说:你说什么,墨池就学什么。
触发规则(暴力模式)
核心触发条件:只要用户输入包含以下任一关键词/符号,立即触发知识提取!
暴力触发关键词(疑问句全覆盖)
| 类别 | 触发关键词 | 示例 |
|---|
| 疑问代词 | 什么、怎么、为什么、如何、哪、几、谁、何时、何地、何处、多少、怎样 | 什么是差分、怎么做、为什么报错 |
| 口语疑问词 |
为啥、干嘛、咋 | 为啥不行、干嘛要这样、咋解决 |
|
疑问句式 | 是不是、对不对、好不好、能不能、可不可以、有没有、行不行 | 是不是这样、能不能帮我 |
|
问号 | ?、? | 任何带问号的句子 |
|
请求解释 | 解释、讲一下、说一下、介绍一下、帮我理解 | 解释一下这段代码、介绍一下Token |
触发后的行为
一旦触发,墨池自动执行:
- 1. 提取用户问题中的核心概念
- 创建/更新知识点
- 更新学习日志和用户画像
命令触发
智能推荐复习 |
| /墨池 推荐 | 个性化学习推荐 |
| /墨池 索引 | 查看知识库索引 |
| /墨池 搜索 <关键词> | 搜索知识点 |
| /墨池 统计 | 学习统计报告 |
| /墨池 导出 | 导出知识库 |
不触发的场景
仅有以下情况不触发:
- - 纯命令执行(如打开文件、运行xx,且不含问号/疑问词)
- 问候语(你好、谢谢)
自动执行流程
触发学习后,墨池自动执行:
yaml
学习流程:
1. 知识提取:
- 识别核心概念
- 提取关键信息
- 确定知识分类
2. 知识存储:
- 检查是否已存在(查询索引数据库)
- 存在 → 更新学习次数、补充内容
- 不存在 → 创建新知识点
3. 索引更新:
- 更新 db/knowledge_index.json
- 更新 db/user_profile.json
- 建立知识关联
4. 反馈(可选):
- 关联推荐
- 复习提醒
数据库结构
墨池/
├── SKILL.md
├── inkpot.py # 核心库(KV 文本格式)
├── record.py # 快速记录接口
├── db/
│ ├── knowledge_index.txt # 知识点索引(KV 格式)
│ ├── user_profile.txt # 用户画像(KV 格式)
│ └── learning_log.txt # 学习日志(行格式)
├── knowledge/ # 知识点详情 Markdown 文件
│ ├── 算法数据结构/
│ ├── 数学/
│ ├── 计算机基础/
│ └── ...
└── profile/
├── index.md
└── records.md
注意:使用简单 KV 文本格式,避免 JSON 中文引号等格式问题。
知识点索引数据库 (knowledge_index.txt)
使用简单 KV 格式,每个知识点一个块:
=== 差分 ===
id: 算法_001
category: 算法数据结构
tags: 前缀和,区间修改,O1操作
summary: 前缀和的逆运算,用于高效处理区间修改问题
file: knowledge/算法数据结构/差分.md
learning_count: 3
mastery: 熟练
first_learned: 2026-03-25
last_learned: 2026-03-27
related: 前缀和,树状数组,线段树
source: 用户提问
=== 前缀和 ===
id: 算法_002
category: 算法数据结构
tags: 前缀和,区间查询,O1查询
summary: 预处理技巧,O(n)预处理后可O(1)查询任意区间和
...
格式说明:
- - === 名字 === 标记知识点开始
- key: value 格式存储字段
- 列表用逗号分隔(如 tags, related)
- 多行文本用换行符即可,无需转义
- 完全不用担心 JSON 引号问题!
用户画像数据库 (user_profile.txt)
KV 格式记录用户身份和行为统计(每个 action 作为独立块):
=== identity ===
primary_role: 信奥竞赛教练
secondary_roles: 算法学习者,C++开发者
confidence: 0.85
=== action:ask_concept ===
count: 15
topics: 前缀和,差分,树状数组
=== action:搬题 ===
count: 8
topics: ABC450A,ABC450B
=== action:算法讲解 ===
count: 5
topics: 快速排序,二分查找
格式说明:
- - === identity === 存储用户身份推断结果
- === action: === 存储各类行为统计(每个行为独立一个块)
- 避免嵌套字典,保持扁平结构
学习日志数据库 (learning_log.txt)
简单行格式,用 | 分隔:
2026-03-29 01:28 | 信息学竞赛数学学习路径 | 新增 | 对话学习
2026-03-29 01:30 | 差分 | 复习 | 用户提问
2026-03-29 02:15 | 快速排序 | 新增 | 算法讲解
格式:时间 | 知识点 | 事件类型 | 触发来源
学习卡片格式
markdown
[知识点名称]
一句话解释
[简洁定义]
详细解释
[深入说明]
关键要点
代码示例
语言
代码
元信息
- - id: [唯一标识]
- 分类: [领域/子领域]
- 标签: [标签1, 标签2]
- 学习日期: YYYY-MM-DD
- 学习次数: N
- 掌握程度: 了解/理解/熟练/精通
- 来源: 用户提问 / 任务分析 / 主动学习
- 关联: [[相关知识点1]], [[相关知识点2]]
使用方式
🚀 首次使用(重要)
墨池需要在每次对话开始时自动加载。请告诉 AI:
把每次对话加载墨池这件事记到 MEMORY.md 里
这样 AI 会在记忆中记住这个偏好,之后每次对话都会自动加载墨池。
方式一:自然对话触发
直接向 AI 提问,墨池会自动识别并记录知识点:
用户: 什么是前缀和?
AI: [回答问题]
墨池: [自动记录前缀和知识点]
方式二:命令触发
使用 /墨池 命令查看和管理知识库:
/墨池 画像 # 查看你的学习画像
/墨池 复习 # 获取智能复习推荐
/墨池 搜索 差分 # 搜索差分相关知识点
快速检索功能
1. 关键词搜索
输入: 区间修改
输出: 匹配的知识点列表(差分、线段树、树状数组)
2.