knowledge-base
SKILL.md
个人知识库
基于 SQLite + FTS5 的本地知识库,帮助用户保存、整理、检索知识片段。数据完全本地化。
使用场景
- 用户说「帮我记住这个」「把这个知识点存下来」
- 用户说「我之前保存过关于 XX 的内容吗」「搜索我的知识库」
- 用户说「整理一下我保存的关于 Python 的知识」
- 用户在调研/学习过程中想积累知识卡片
执行方式
数据库结构
知识库存储在 ~/Documents/xiaodazi/knowledge.db:
CREATE TABLE knowledge (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT NOT NULL,
tags TEXT DEFAULT '', -- 逗号分隔的标签
source TEXT DEFAULT '', -- 来源 URL 或文件
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE VIRTUAL TABLE knowledge_fts USING fts5(
title, content, tags,
content='knowledge',
content_rowid='id'
);
核心操作
保存知识:
import sqlite3
db = sqlite3.connect("~/Documents/xiaodazi/knowledge.db")
db.execute(
"INSERT INTO knowledge (title, content, tags, source) VALUES (?, ?, ?, ?)",
["Python 装饰器原理", "装饰器是一个接受函数并返回函数的高阶函数...", "python,编程", ""]
)
db.execute(
"INSERT INTO knowledge_fts (rowid, title, content, tags) VALUES (last_insert_rowid(), ?, ?, ?)",
["Python 装饰器原理", "装饰器是一个接受函数并返回函数的高阶函数...", "python,编程"]
)
db.commit()
搜索知识:
results = db.execute("""
SELECT k.id, k.title, snippet(knowledge_fts, 1, '**', '**', '...', 30) as excerpt,
k.tags, k.created_at
FROM knowledge_fts
JOIN knowledge k ON knowledge_fts.rowid = k.id
WHERE knowledge_fts MATCH ?
ORDER BY rank
LIMIT 10
""", ["Python 装饰器"]).fetchall()
按标签浏览:
results = db.execute("""
SELECT title, substr(content, 1, 100) as preview, created_at
FROM knowledge
WHERE tags LIKE '%python%'
ORDER BY updated_at DESC
""").fetchall()
交互流程
用户:帮我记住——Python 的 GIL 是全局解释器锁,同一时刻只有一个线程执行字节码
→ 保存到知识库,自动提取标签 [python, 并发]
→ 回复:已保存 ✅「Python GIL」— 标签:python, 并发
用户:我之前存过什么关于 Python 的知识?
→ 搜索知识库
→ 找到 3 条记录:
1. Python 装饰器原理(2/20)
2. Python GIL(2/26)
3. Python 异步编程(2/22)
输出规范
- 保存时确认标题和标签,让用户知道怎么找回
- 搜索结果按相关度排序,显示摘要预览
- 标签自动提取,用户也可手动指定
- 支持从其他 Skill 的输出直接存入(如深度调研的结论)
Weekly Installs
1
Repository
malue-ai/dazee-smallGitHub Stars
31
First Seen
10 days ago
Security Audits
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1