Knowledge Manager Skill
智能知识管理助手,自动分析和优化知识库结构。
功能概述
Knowledge Manager 是一个自动触发的智能助手,帮助用户:
- •自动标签建议: 基于内容智能推荐标签
- •自动关联建议: 识别相关条目并建议链接
- •分类检测: 自动判断条目应该属于哪个分类
- •智能组织: 识别重复、孤立和需要整合的条目
- •质量评估: 评估条目的完整性和质量
触发条件
自动触发
- •
添加知识后 (
on_add: true)- •用户执行
/kb-add后自动触发 - •分析新添加的条目
- •建议标签、分类和关联
- •用户执行
- •
编辑知识后 (
on_edit: true)- •用户执行
/kb-edit后自动触发 - •检查编辑后的内容
- •更新建议和关联
- •用户执行
手动触发
用户可以通过以下方式手动触发:
- •"帮我整理知识"
- •"优化知识库"
- •"分析标签使用情况"
- •"查找重复条目"
- •"建议知识关联"
执行流程
1. 内容分析
markdown
## 分析新添加的条目 当用户添加知识时: 1. **提取关键词** - 从标题中提取核心概念 - 从正文中识别技术术语 - 提取专有名词和缩写 2. **主题识别** - 判断讨论的主要主题 - 识别技术栈和工具 - 检测应用场景 3. **质量评估** - 检查内容完整性 - 评估是否有代码示例 - 判断是否需要补充信息
2. 标签建议
markdown
## 智能标签推荐 基于内容分析推荐标签: 1. **现有标签匹配** - 查找 tags.json 中相似的标签 - 推荐使用现有标签体系 2. **新标签建议** - 识别内容中的关键概念 - 建议新的标签名称 - 避免标签冗余 3. **标签层级** - 建议主标签和副标签 - 保持标签体系的一致性 输出格式:
建议标签: 主标签: react, hooks 相关标签: frontend, javascript, useState
说明:
- •react: React 框架相关内容
- •hooks: React Hooks 特性
- •frontend: 前端开发通用
- •javascript: JavaScript 语言
是否应用这些标签? (yes/no/edit)
code
3. 分类建议
markdown
## 分类推荐 分析内容并建议分类: **code 分类特征**: - 代码片段 - API 文档 - 技术实现细节 **projects 分类特征**: - 项目文档 - 开发日志 - 技术决策记录 **learning 分类特征**: - 学习笔记 - 概念解释 - 教程和指南 **personal 分类特征**: - 个人思考 - 经验总结 - 反思和感悟 输出格式:
建议分类: learning
置信度: 高 (85%)
理由:
- •包含概念解释
- •有学习笔记特征
- •包含理解过程
是否应用此分类? (yes/no)
code
4. 关联建议
markdown
## 智能关联推荐 识别可能相关的知识条目: 1. **标题相似度** - 计算与现有条目标题的相似度 - 识别同义词和相关词 2. **标签重叠度** - Jaccard 相似系数 - 标签重叠越多,关联性越强 3. **内容引用** - 检测是否提及了其他条目的 ID - 识别标题或内容中提到的其他概念 4. **时间邻近性** - 近期创建的相关条目 - 同一时期学习的内容 输出格式:
发现 3 个可能相关的条目:
- •
[2025-01-03-102015] React 基础概念 相关度: 95% (高) 关联类型: references 理由: 标题和内容都有 "React" 关键词
- •
[2025-01-02-084530] 函数组件 相关度: 82% (中高) 关联类型: builds-on 理由: Hooks 是在函数组件基础上构建的
- •
[2025-01-01-120000] JavaScript 闭包 相关度: 45% (低) 关联类型: related 理由: 都涉及前端开发
是否创建这些关联? (all/select/none)
code
5. 知识组织分析
markdown
## 组织结构分析 定期分析知识库的组织状况: 1. **重复检测** - 查找标题或内容相似的条目 - 建议合并或建立关联 2. **孤立条目检测** - 没有链接的条目 - 没有反向链接的条目 - 建议创建关联 3. **标签分析** - 统计标签使用频率 - 识别过度使用或很少使用的标签 - 建议标签优化 4. **分类分布** - 分析各分类的条目数量 - 识别不平衡的分类 输出格式:
知识库组织分析报告:
📊 总体统计 总条目: 45 个 总标签: 32 个 总链接: 23 个
🔍 重复检测 发现 2 对相似条目:
- •[2025-01-01-100000] React Hooks [2025-01-03-150000] React Hooks 详解 相似度: 78% 建议: 建立关联或合并
🏝️ 孤立条目 5 个条目没有链接:
- •[2025-01-02-120000] CSS Grid
- •[2025-01-04-090000] TypeScript 基础 ...
🏷️ 标签分析 最常用标签:
- •react (12 次)
- •javascript (8 次)
- •hooks (6 次)
很少使用的标签:
- •debugging (1 次)
- •optimization (1 次)
📁 分类分布 code: 15 个 (33%) learning: 18 个 (40%) projects: 8 个 (18%) personal: 4 个 (9%)
💡 优化建议
- •为孤立条目创建关联
- •合并相似的 React Hooks 条目
- •考虑合并 debugging 和 optimization 标签
code
智能建议示例
场景 1: 用户添加 React Hooks 笔记
markdown
用户执行: /kb-add --type=learning-note
标题: React Hooks 学习笔记
[用户输入内容后]
Knowledge Manager 自动触发:
✨ 内容分析完成!
建议标签:
主标签: react, hooks
相关标签: frontend, functional-components
理由: 内容主要讨论 React Hooks 和函数组件
建议分类: learning
置信度: 高 (92%)
理由: 学习笔记格式,包含概念解释
发现相关条目:
1. [2025-01-03-102015] React 基础概念 (相关度: 88%)
建议: references - 引用了 React 基础概念
2. [2025-01-02-084530] 函数组件 (相关度: 75%)
建议: builds-on - 在函数组件基础上讨论
是否应用这些建议?
输入选项:
- apply all: 应用所有建议
- select: 选择性应用
- skip: 跳过,稍后手动处理
用户选择: apply all
✅ 已应用所有建议!
标签已更新: react, hooks, frontend, functional-components
分类已更新: learning
关联已创建:
→ references: 2025-01-03-102015
→ builds-on: 2025-01-02-084530
场景 2: 用户请求知识库分析
markdown
用户输入: 帮我分析知识库的组织情况
Knowledge Manager 执行:
📊 知识库组织分析报告
=== 总体概况 ===
总条目数: 45 个
总标签数: 32 个
总链接数: 23 个
平均每个条目链接数: 0.51 个
=== 重复检测 ===
发现 3 对可能重复的条目:
1. React Hooks 相关 (相似度: 82%)
[2025-01-01-100000] React Hooks 入门
[2025-01-03-150000] React Hooks 详解
建议: 建立关联 (builds-on)
2. JavaScript 异步 (相似度: 75%)
[2025-01-02-110000] Promise 和 async/await
[2025-01-04-120000] JavaScript 异步编程
建议: 合并为一个条目
3. CSS Flexbox (相似度: 68%)
[2025-01-05-090000] Flexbox 布局
[2025-01-06-100000] Flexbox 完整指南
建议: 保留较新的版本
=== 孤立条目 ===
8 个条目没有任何链接:
1. [2025-01-02-120000] CSS Grid 布局
建议关联: [2025-01-05-090000] Flexbox 布局 (related)
2. [2025-01-04-090000] TypeScript 基础
建议关联: [2025-01-01-100000] React Hooks (related)
... (其余 6 个)
=== 标签分析 ===
使用频率分布:
高频 (>10次): react (12), javascript (8)
中频 (5-10次): hooks (6), async (5)
低频 (<5次): 其余 28 个标签
标签优化建议:
1. 合并相似标签:
- js → javascript
- ts → typescript
2. 拆分宽泛标签:
- frontend → react, vue, angular
=== 分类分布 ===
code: 15 个 (33%) ⚖️ 平衡
learning: 18 个 (40%) ⚖️ 平衡
projects: 8 个 (18%) ⚖️ 偏低
personal: 4 个 (9%) ⚠️ 过低
建议: 增加项目和反思类内容的记录
=== 质量评估 ===
高质量条目 (>500字): 12 个 (27%)
中等质量 (200-500字): 23 个 (51%)
低质量条目 (<200字): 10 个 (22%)
建议: 丰富低质量条目的内容
💡 行动建议:
1. 立即处理: 合并重复的 JavaScript 异步条目
2. 本周完成: 为孤立条目创建关联
3. 持续优化: 增加项目和反思类内容
4. 标签整理: 统一 js 和 javascript 标签
是否需要我帮你执行这些建议?
技术实现
1. 相似度计算
javascript
// Jaccard 相似系数 (标签重叠度)
function jaccardSimilarity(tags1, tags2) {
const intersection = tags1.filter(tag => tags2.includes(tag));
const union = [...new Set([...tags1, ...tags2])];
return intersection.length / union.length;
}
// 文本相似度 (简单的词频统计)
function textSimilarity(text1, text2) {
const words1 = tokenize(text1);
const words2 = tokenize(text2);
const common = words1.filter(word => words2.includes(word));
return common.length / Math.max(words1.length, words2.length);
}
2. 标签推荐算法
code
1. 提取内容中的关键词 2. 与 tags.json 中的现有标签匹配 3. 计算每个相关标签的权重 4. 推荐权重最高的 3-5 个标签
3. 分类判断
code
1. 统计内容中的特征词 2. 每个分类有对应的特征词列表 3. 计算内容与每个分类的匹配度 4. 选择匹配度最高的分类
配置选项
自动应用阈值
json
{
"autoApply": {
"tags": {
"confidence": 0.9,
"minMatches": 2
},
"category": {
"confidence": 0.85
},
"links": {
"minSimilarity": 0.8
}
}
}
分析频率
json
{
"analysis": {
"onAdd": true,
"onEdit": true,
"scheduled": "weekly"
}
}
注意事项
- •用户控制: 所有建议都需要用户确认,不自动修改
- •性能优化: 大量条目时使用缓存和增量分析
- •隐私保护: 分析过程仅在本地进行,不上传数据
- •可配置性: 允许用户自定义分析规则和阈值
未来扩展
- •语义分析: 使用 NLP 技术进行更深入的语义理解
- •自动摘要: 为长内容生成简洁的摘要
- •知识图谱: 可视化知识网络
- •智能问答: 基于知识库内容回答问题
- •学习路径: 自动推荐学习顺序和关联内容