技术知识多源智能采集与知识库构建系统
核心定位
摄入层 — 技术认知循环的起点。负责从多源渠道持续收集、整理、沉淀技术知识,形成结构化知识条目,为 decision-record(决策记录系统)的技术决策提供背景素材和事实依据。
与 decision-record 形成互补闭环:
tech-knowledge-collector(摄入层) decision-record(决策层)
广撒网、沉淀素材 →→→ 基于素材做决策、记录结论
知识条目被引用为"背景素材" ←←← 决策发布后自动反向关联知识点
决策验证结果反馈知识可信度 ←←← 复审时更新知识条目时效性标记
v3.0.0 核心增强
| 增强能力 | 说明 |
|---|---|
| 知识源订阅管理 | RSS、GitHub Trending、技术周刊、内部频道,支持手动提交和自动抓取 |
| 3D 智能分类 | 技术领域 × 知识类型 × 成熟度 三维分类,自动打标签 |
| TL;DR 知识摘要 | 3-5 句核心要点 + 关键数据提取 + 团队技术栈关联度标记 |
| decision-record 联动 | 知识条目可被决策引用为背景素材,决策后反向关联,形成闭环 |
| 时效性自动复审 | 三级时效标记(永久有效/定期复审/已过时),与决策复审周期联动 |
| 检索与主动推送 | 多维检索 + 新知识匹配当前决策议题时主动通知 |
v2.0.0 已有能力保持:语义分析、知识图谱、增量更新、结构化输出。
触发条件
当用户发出以下指令时激活本 Skill:
技术知识采集/知识库构建/安全采集- 要求从多个技术论坛采集某主题的知识
- 要求构建某个技术领域的结构化知识库
知识图谱/语义分析/关联推荐- 要求对已采集内容进行智能分类或去重
- 使用标准启动指令格式(见下文"启动指令"章节)
主题配置
采集前首先确定:
- 采集主题:从用户指令中提取,如为空则询问主题范围
- 采集深度:基础 / 常规 / 深度(默认常规)
- 匹配渠道:根据主题类型自动匹配(详见"多源渠道矩阵")
- 输出格式:JSON / Markdown / CSV(默认 Markdown + JSON)
多源渠道矩阵
来源类型
| 来源类型 | 说明 | 渠道示例 | 采集策略 |
|---|---|---|---|
| S级:核心权威 | 官方文档、标准规范 | 官方文档站、Stack Overflow 高赞、Reddit 精华 | 全量采集,置信度≥60 |
| A级:优质垂直 | 技术博客社区 | 掘金、思否、Dev.to、Hashnode、InfoQ | 精华帖/高赞回答,置信度≥70 |
| B级:普通合规 | 中小规模技术论坛 | V2EX、开源中国 | 置顶帖/官方推荐,置信度≥80 |
| C级:学术/论文 | 学术搜索引擎 | Google Scholar、arXiv、Semantic Scholar | 高引用论文,置信度≥75 |
| D级:开源社区 | 开源项目仓库 | GitHub、GitLab 官方文档/README/Wiki | 官方文档 + 高 Star 项目,置信度≥65 |
按主题自动匹配规则
| 主题类型 | S级首选 | A级补充 | C级学术 | D级开源 |
|---|---|---|---|---|
| Web前端 | SO/Reddit + 官方框架文档 | 掘金/Dev.to/思否 | - | GitHub 框架文档 |
| 后端开发 | SO/Reddit + 官方框架文档 | 掘金/CSDN/思否 | - | GitHub 框架文档 |
| Python/数据 | SO/Reddit + Python.org | 掘金/思否 | arXiv (ML) | GitHub 库文档 |
| DevOps/工具 | SO/Reddit + 官方工具文档 | Dev.to/InfoQ | - | GitHub 工具文档 |
| AI/ML | SO/Reddit + 官方框架文档 | InfoQ/掘金 | arXiv/Scholar | GitHub 框架文档 |
| 系统架构 | SO/Reddit | InfoQ/掘金 | IEEE/Scholar | GitHub 架构范例 |
| 通用技术 | SO/Reddit | 掘金/Dev.to/思否 | - | GitHub |
执行工作流
阶段 0:知识源配置与订阅管理(v3.0 新增)
在每次采集前,先检查知识源配置。详见 references/knowledge-source-management.md。
三类知识源:
| 源类型 | 示例 | 抓取方式 | 可信度权重 |
|---|---|---|---|
| 订阅源 | RSS 摘要、GitHub Trending、技术周刊(阮一峰/JS Weekly/Ruby Weekly) | 自动定时抓取 | 0.7-0.9 |
| 发现源 | 技术博客、官方文档更新、arXiv 新论文 | 关键词触发采集 | 0.5-0.8 |
| 提交源 | 团队内部 Slack/飞书精华、代码库 README/Wiki、内部分享文档 | 手动提交 + 自动索引 | 0.8-1.0 |
源配置模板:
{
"source_id": "SRC-001",
"name": "阮一峰科技周刊",
"type": "订阅源",
"url": "https://www.ruanyifeng.com/blog/atom.xml",
"credibility": 0.85,
"topics": ["通用技术", "前端开发"],
"refresh_interval_hours": 168,
"last_fetched": "2026-06-13T00:00:00Z",
"status": "active"
}
阶段 1:指令解析与渠道匹配
- 解析采集指令,提取:主题范围、采集深度(基础/常规/深度,默认常规)、输出格式
- 根据主题类型加载搜索渠道(详见
references/forum-registry.md) - 按优先级排序采集队列:S级 → A级 → C级 → D级 → B级,置信度门槛递增
- 检查是否有该主题的历史采集记录(用于增量更新,见阶段 6)
阶段 2:新论坛安全准入(遇到未收录论坛时)
对采集过程中遇到的未收录技术论坛,自动执行四级安全准入核验。全部通过才可纳入采集池。
执行流程(详见 references/admission-system.md):
- 主体资质核验:运营主体、ICP备案/合法公司归属、成立时间≥1年、公开用户协议
- 爬虫合规核验:robots.txt、反爬机制、禁止转载声明
- 社区质量核验:内容审核机制、技术内容占比≥70%、专业可信度
- 安全风险核验:恶意弹窗、病毒下载、钓鱼跳转、灰色内容
核验通过后按信任分级纳入对应采集池。不通过的站点移入永久黑名单。
阶段 3:安全合规采集
使用 WebSearch / tavily / WebFetch 等工具执行实际采集:
- 按搜索关键词逐渠道采集目标主题内容
- 严格遵守安全合规红线(详见
references/security-redlines.md):
- 不访问 robots.txt 禁止的页面
- 不破解验证码、不绕过反爬、不伪造身份
- 不采集个人隐私信息,发现自动脱敏并剔除
- 单站点请求间隔≥5秒,单次单站点抓取≤30页
- 遇到 429 限流立即降频停止 - 不访问:无备案个人站、自动采集聚合站、营销号站点、贴吧/泛娱乐论坛、资源下载站、破解站
阶段 4:三层垃圾信息过滤
所有采集内容必须经过三层筛选,任意一层不达标直接淘汰。整体入库率严格控制在采集总量 20% 以内。
第一层:初筛(批量快速淘汰)——详见 references/filtering-system.md
淘汰条件(满足任意一条即丢弃):
- 标题党、夸大制造焦虑
- 含广告引流、付费推广、社群导流
- 全文少于 200 字
- 工具/平台类发布超过 2 年且无更新标注
- 与已收录内容重合度≥70%(v2.0 增强:使用语义相似度检测,而非简单文本匹配)
第二层:精筛(内容质量深度校验)
淘汰条件(满足任意一条即淘汰):
- 无实操价值:无可执行命令、代码示例
- 纯搬运无增量:照搬官方文档无补充
- 存在错误风险:与官方文档矛盾
- 逻辑混乱:步骤残缺、参数错误
- 水文凑数:核心知识点占比不足 30%
第三层:终审(置信度打分入库)
百分制打分,低于对应等级门槛直接淘汰:
| 评分维度 | 权重 | 评分规则 |
|---|---|---|
| 来源权威性 | 40分 | S级40分,A级30分,C级35分,D级35分,B级20分 |
| 内容实操性 | 30分 | 完整步骤+可运行代码30分,有步骤无示例20分,纯理论0分 |
| 内容正确性 | 20分 | 与官方文档完全一致20分,合理拓展无错误10分,有偏差0分 |
| 内容时效性 | 10分 | 1年内10分,2年内7分,2年以上且有效3分 |
阶段 5:智能语义分析(v3.0 升级)
通过三层过滤的内容,进入语义分析流水线。详见 references/semantic-analysis.md。
5.1 3D 自动分类(v3.0 升级)
三维分类模型:
| 维度 | 类别 | 判定方式 |
|---|---|---|
| 技术领域(必选) | 前端 / 后端 / 基础设施 / AI/ML / 安全 / 通用 | 关键词 + 标签匹配 |
| 知识类型(必选) | 原理剖析 / 实操指南 / 工具对比 / 避坑经验 / 行业趋势 / 版本资讯 | 内容结构分析 |
| 成熟度(必选) | 实验性(个人验证) / 生产验证(团队实践) / 行业共识(广泛认可) | 来源权威度 + 引用数 + 社区认可 |
v2.0 一级/二级分类体系完整保留,v3.0 在其上叠加成熟度维度。
5.2 TL;DR 知识摘要(v3.0 新增)
每条入库知识生成标准摘要:
【TL;DR】{1 句话核心结论}
【关键数据】{性能指标/适用场景/局限性,如有}
【与团队技术栈关联】{高/中/低} — {匹配的具体技术}
【建议决策方向】{若与当前决策议题相关,给出建议}
5.3 智能去重
三层去重策略:
| 层级 | 方法 | 阈值 | 说明 |
|---|---|---|---|
| 第一层:精确去重 | URL 完全匹配 | 100% | 相同 URL 直接跳过 |
| 第二层:标题相似度 | 标题关键词 Jaccard 相似度 | ≥80% | 标题高度相似则标记为疑似重复 |
| 第三层:语义去重 | 正文核心观点比对 | ≥85% | 核心知识点重合度高的内容仅保留置信度最高的一条 |
去重处理规则:
- 疑似重复内容不直接删除,而是标记 duplicate_of 字段指向原始内容 ID
- 用户可在输出中查看疑似重复列表,手动决定是否保留
5.4 摘要提炼
摘要生成规则:
- 提取正文中的核心操作步骤(包含命令、代码块的内容)
- 提取关键结论(文章末尾的总结段落)
- 提取适用条件("适用于"、"前提条件"等引导的内容)
- 合并为 ≤200 字的结构化摘要
摘要格式:
【核心操作】{1-3 句话概括主要操作}
【关键结论】{1-2 句话概括结论}
【适用条件】{1 句话说明适用场景}
5.5 标签标注
标签来源:
| 标签类型 | 提取方式 | 示例 |
|---|---|---|
| 技术栈标签 | 从正文代码块、命令行中提取技术名称 | React, Docker, PostgreSQL |
| 主题标签 | 从一级/二级分类映射 | 教程指南, Web前端 |
| 难度标签 | 根据内容深度自动判断 | 入门, 进阶, 专家 |
| 版本标签 | 从正文中提取版本号 | v18, Python 3.12 |
| 状态标签 | 根据时效性判断 | 最新, 需验证, 已过时 |
阶段 6:增量更新与版本追踪(v2.0 新增)
详见 references/incremental-update.md。
6.1 增量采集
目的:避免重复采集已入库内容,仅采集新增或变更的内容。
增量采集流程:
- 加载历史采集清单:读取
~/.tech-knowledge-collector/history/{topic}/manifest.json - 对比新搜索结果:将本次搜索到的内容 URL 与历史清单对比
- 过滤已采集:URL 已在历史清单中的内容直接跳过
- 检查内容变更:URL 不在清单中但标题高度相似的,检查正文是否有实质性更新
- 仅采集增量:仅对"新增"或"已更新"的内容执行完整采集流程
6.2 版本追踪
目的:追踪同一知识点在不同时间的版本演进。
版本追踪机制:
- 知识点版本号:格式
v{major}.{minor}(如v1.0)
-major:核心操作步骤发生变更(如命令参数变化)
-minor:补充说明、新增注意事项等非核心变更 - 版本历史记录:每个知识点维护一个版本历史列表
{
"knowledge_id": "TECH-20260620-0001",
"title": "Docker 多阶段构建最佳实践",
"current_version": "v2.1",
"version_history": [
{
"version": "v1.0",
"captured_at": "2026-03-15T10:00:00Z",
"source_url": "https://example.com/docker-best-practices",
"change_summary": "初始采集"
},
{
"version": "v2.0",
"captured_at": "2026-05-20T14:00:00Z",
"source_url": "https://example.com/docker-best-practices",
"change_summary": "核心步骤变更:新增 BuildKit 缓存挂载"
},
{
"version": "v2.1",
"captured_at": "2026-06-20T08:00:00Z",
"source_url": "https://example.com/docker-best-practices",
"change_summary": "补充说明:新增 Docker 25.0 兼容性提示"
}
]
}
6.3 过期内容巡检
定期巡检(每次采集任务结束后自动执行):
- 遍历已入库的知识点
- 对每个知识点,检查其来源 URL 是否仍可访问
- 如果 URL 返回 404 / 410 → 标记为
status: link_dead - 如果 URL 可访问但内容已变更 → 触发增量采集流程
- 对标记为
已过时的知识点,在报告中提醒用户
阶段 7:知识图谱构建与关联推荐(v2.0 新增)
详见 references/knowledge-graph.md。
7.1 知识图谱构建
目的:将零散的知识点组织为有结构的知识网络,支持关联发现和可视化。
图谱节点:每个入库的知识点是一个节点
图谱边(关系类型):
| 关系类型 | 判定规则 | 示例 |
|---|---|---|
prerequisite(前置知识) |
A 的内容中明确引用了 B 作为基础 | "Docker 多阶段构建" → 前置 → "Dockerfile 基础语法" |
related_to(相关) |
A 和 B 共享 ≥3 个标签,且分类不同 | "React Hooks 教程" → 相关 → "React 性能优化" |
extends(延伸) |
A 在 B 的基础上做了拓展或深化 | "K8s 滚动更新深入" → 延伸 → "K8s 滚动更新基础" |
contradicts(矛盾) |
A 的观点与 B 矛盾 | "使用 var 声明变量" → 矛盾 → "ES6 let/const 最佳实践" |
version_of(版本) |
A 是 B 的不同版本 | "Docker 构建指南 v2.0" → 版本 → "Docker 构建指南 v1.0" |
图谱存储格式(JSON):
{
"nodes": [
{"id": "TECH-20260620-0001", "title": "Docker 多阶段构建", "tags": ["Docker", "教程指南"]},
{"id": "TECH-20260620-0002", "title": "Dockerfile 基础语法", "tags": ["Docker", "教程指南"]}
],
"edges": [
{"source": "TECH-20260620-0001", "target": "TECH-20260620-0002", "type": "prerequisite"}
]
}
7.2 个性化关联推荐
推荐算法:
- 基于标签的推荐:找到与用户最近浏览的知识点共享 ≥3 个标签的其他知识点
- 基于图谱关系的推荐:沿着
related_to/extends边推荐关联知识点 - 基于主题深度的推荐:如果用户浏览的是"入门"级别内容,推荐对应的"进阶"内容
推荐输出格式:
{
"current_knowledge_id": "TECH-20260620-0001",
"recommendations": [
{
"knowledge_id": "TECH-20260620-0003",
"title": "Docker BuildKit 缓存优化",
"reason": "延伸阅读:在多阶段构建基础上进一步优化构建速度",
"recommendation_type": "extends",
"confidence": 0.85
},
{
"knowledge_id": "TECH-20260620-0002",
"title": "Dockerfile 基础语法",
"reason": "前置知识:建议先了解 Dockerfile 基础语法",
"recommendation_type": "prerequisite",
"confidence": 0.92
}
]
}
7.3 知识图谱可视化(可选)
如果安装了 minimax-pdf 技能,可生成知识图谱的 PDF 可视化报告:
- 力导向图布局
- 按分类着色节点
- 按关系类型区分边样式
阶段 8:结构化输出
详见 references/structured-output.md。
8.1 结构化加工与归档
对通过校验的内容做结构化加工,每条入库知识必须包含完整字段:
| 字段 | 说明 | v2.0 新增 |
|---|---|---|
| 知识点ID | 唯一标识,格式:TECH-YYYYMMDD-NNNN | |
| 标题 | 精炼概括核心知识点 | |
| 核心原理 | 技术原理说明 | |
| 实操步骤/命令示例 | 可执行的命令或操作步骤 | |
| 适用场景 | 什么情况下使用 | |
| 版本限制 | 适用版本/环境要求 | |
| 风险提示 | 操作风险、注意事项 | |
| 来源站点 | 采集来源论坛名称 | |
| 原文链接 | 原始文章完整 URL | |
| 原作者 | 作者署名 | |
| 收录时间 | ISO 8601 格式 | |
| 知识标签 | 逗号分隔的标签列表 | |
| 置信度得分 | 百分制得分 | |
| 自动分类 | 3D 分类(领域×类型×成熟度) | ✅ v3.0 升级 |
| TL;DR 摘要 | ≤100 字核心结论 + 关键数据 | ✅ v3.0 新增 |
| 技术栈关联 | 与团队技术栈匹配度(高/中/低) | ✅ v3.0 新增 |
| 智能摘要 | ≤200 字结构化摘要 | ✅ v2.0 |
| 版本号 | 当前版本(如 v1.0) | ✅ |
| 版本历史 | 版本变更记录列表 | ✅ |
| 重复标记 | duplicate_of 字段(如有) | ✅ |
| 图谱关系 | 与其他知识点的关系列表 | ✅ |
| 推荐列表 | 关联推荐知识点列表 | ✅ |
| 决策关联 | used_by_decisions 数组 + decision_outcome | ✅ v3.0 新增 |
| 时效标记 | permanent / review_needed / outdated | ✅ v3.0 新增 |
8.2 输出格式
支持三种输出格式,可同时生成:
格式 1:Markdown 知识库(默认)
归档位置:{workspace}/knowledge-base/{主题名}/knowledge-base.md
## TECH-20260620-0001: Docker 多阶段构建最佳实践
- **分类**:教程指南 / DevOps
- **摘要**:【核心操作】使用多阶段FROM指令分离构建与运行环境【关键结论】镜像体积可减少60-80%【适用条件】Docker 17.05+
- **标签**:Docker, DevOps, 入门, Dockerfile
- **版本**:v2.1
- **置信度**:95/100
- **来源**:[Docker 官方文档](https://docs.docker.com/...)
- **关联推荐**:
- → [Dockerfile 基础语法](#TECH-20260620-0002)(前置知识)
- → [Docker BuildKit 缓存优化](#TECH-20260620-0003)(延伸阅读)
### 核心原理
...
### 实操步骤
...
格式 2:JSON 结构化数据
归档位置:{workspace}/knowledge-base/{主题名}/knowledge-base.json
{
"topic": "Docker",
"collected_at": "2026-06-20T20:00:00Z",
"total_knowledge": 15,
"knowledge_items": [...]
}
格式 3:知识图谱
归档位置:{workspace}/knowledge-base/{主题名}/knowledge-graph.json
{
"topic": "Docker",
"nodes": [...],
"edges": [...]
}
格式 4:CSV 表格(便于导入 Excel / Notion)
归档位置:{workspace}/knowledge-base/{主题名}/knowledge-base.csv
阶段 9:decision-record 联动(v3.0 新增)
详见 references/decision-record-integration.md。
9.1 知识条目作为决策背景素材
采集入库的知识条目可被 decision-record 引用为决策的"背景素材":
- 决策记录通过
knowledge_id引用相关知识条目 - 引用关系存储在知识条目的
used_by_decisions字段中 - 被多次引用的知识条目自动提升可信度权重
9.2 决策后反向关联
当 decision-record 发布决策后,自动执行:
- 扫描决策中引用的知识点 ID
- 在知识点记录中添加
used_by_decisions数组 - 根据决策结论更新知识点的
decision_outcome字段(采纳/否决/搁置) - 形成"知识 → 决策 → 验证 → 反馈"闭环
9.3 闭环数据流
采集知识 → 分类标注 → 入库存储
↓
decision-record 引用为背景素材
↓
决策发布 → 反向关联知识点
↓
决策复审 → 更新知识点时效性/可信度
↓
反馈回 tech-knowledge-collector 调整采集策略
阶段 10:时效性管理(v3.0 新增)
详见 references/timeliness-management.md。
10.1 三级时效标记
| 级别 | 标记 | 含义 | 复审周期 |
|---|---|---|---|
| 永久有效 | permanent |
基础知识、原理性内容 | 12 个月 |
| 定期复审 | review_needed |
实践性内容、版本相关 | 6 个月 |
| 已过时 | outdated |
已被新版本替代或失效 | 标记即提醒 |
10.2 与 decision-record 复审联动
- 当 decision-record 的某个决策进入复审周期时,自动触发关联知识点的时效性检查
- 如果决策结论为"已过时",关联的知识点同步标记为
outdated - 如果决策结论为"继续有效",关联知识点复审周期重置
10.3 过期自动提醒
每次采集结束后,自动检查所有标记为 review_needed 的知识点:
- 超过复审周期的 → 提醒用户复审
- URL 已失效(404/410)→ 自动标记为 outdated
- 内容已不适用于当前版本 → 标记为 outdated 并注明原因
阶段 11:检索与主动推送(v3.0 新增)
详见 references/search-and-push.md。
11.1 多维检索
支持以下检索维度:
| 维度 | 示例 |
|---|---|
| 标签精确匹配 | tags: Docker AND tags: 最佳实践 |
| 时间范围 | collected_after: 2026-01-01 |
| 技术领域 | domain: 后端 |
| 成熟度 | maturity: 生产验证 |
| 关联决策 | linked_to_decision: DEC-2026-001 |
| 可信度 | credibility: >=80 |
11.2 主动推送
当满足以下条件时,主动推送通知:
- 新入库知识点的技术领域与当前活跃的 decision-record 决策议题高度匹配(≥2 个共同标签)
- 新入库知识点的可信度 ≥ 80
- 新知识被标记为"与我司技术栈关联:高"
推送格式:
📚 新知识匹配当前决策议题
决策:DEC-2026-003「是否迁移到 Docker BuildKit」
匹配知识点:TECH-20260620-0042「Docker BuildKit 缓存挂载实战」
匹配原因:技术栈关联:高 | 标签:Docker, CI/CD, 性能优化
建议:可作为决策背景素材,提供具体性能数据支撑
阶段 12:动态风控与黑名单更新
每轮采集后执行(详见 references/security-redlines.md):
- 黑名单动态更新:复盘本轮采集,将不符合准入标准、垃圾内容占比高的论坛移入永久黑名单
- 访问异常熔断复核:对触发熔断的可疑站点进行复核
- 内容安全扫描:扫描违规关键词、隐私信息、恶意代码片段
- 全链路溯源留痕:记录站点域名、访问页面、收录内容、淘汰原因
- 增量巡检:同步巡检已收录内容,清理过期、失效知识点
阶段 13:输出采集质量报告
输出《知识采集质量报告》,包含:
- 采集站点清单(含信任等级)
- 采集总量、淘汰数量及原因分布
- 新增知识点清单(含置信度得分、3D 分类、TL;DR 摘要)
- 语义分析统计(分类分布、去重统计、摘要示例)
- 知识图谱统计(节点数、边数、关系类型分布)
- 增量更新统计(新增数、更新数、过期数)
- v3.0 新增:decision-record 联动统计(被引用知识点数、关联决策数)
- v3.0 新增:时效性统计(permanent/review_needed/outdated 分布)
- 站点安全评估摘要
- 黑名单更新情况
报告模板参见 references/report-template.md。
统一配置管理
配置文件位置
~/.tech-knowledge-collector/config.json
配置项说明
{
"version": "3.0.0",
"collection": {
"default_depth": "normal",
"max_pages_per_site": 30,
"request_interval_seconds": 5,
"confidence_threshold": {
"S": 60,
"A": 70,
"B": 80,
"C": 75,
"D": 65
}
},
"semantic_analysis": {
"enabled": true,
"auto_classification": true,
"deduplication": {
"title_similarity_threshold": 0.8,
"semantic_similarity_threshold": 0.85
},
"summary_max_length": 200,
"tag_extraction": true
},
"knowledge_graph": {
"enabled": true,
"auto_build": true,
"recommendation_enabled": true,
"max_recommendations": 5
},
"incremental_update": {
"enabled": true,
"version_tracking": true,
"stale_check_interval_days": 30
},
"output": {
"formats": ["markdown", "json", "csv"],
"knowledge_graph_output": true,
"output_dir": "{workspace}/knowledge-base"
},
"scheduling": {
"max_concurrent_collections": 2,
"retry": {
"max_attempts": 3,
"backoff_factor": 2
}
},
"logging": {
"level": "info",
"retention_days": 30
}
}
异常自动重试与告警机制
重试策略
| 异常类型 | 重试次数 | 退避策略 | 告警阈值 |
|---|---|---|---|
| 网络超时 | 3 次 | 指数退避(2^n 秒) | 连续失败 5 次 |
| API 限流(429) | 自动读取 Retry-After |
等待指定时间后重试 | 限流持续 > 10 分钟 |
| 语义分析失败 | 2 次 | 固定 5 秒 | 连续失败 3 次 |
| 内容解析失败 | 不重试 | - | 记录日志 |
告警机制
- 告警渠道:stdout 日志 / 配置文件指定的 webhook_url
- 告警级别:
critical:配置文件损坏、无法初始化high:采集任务失败、语义分析模块异常medium:部分内容解析失败、去重模块降级low:配置文件缺失某些可选字段
日志记录与执行状态可视化
日志文件位置
- 采集日志:
~/.tech-knowledge-collector/logs/collect-{YYYYMMDD}.log - 语义分析日志:
~/.tech-knowledge-collector/logs/semantic-{YYYYMMDD}.log - 增量更新日志:
~/.tech-knowledge-collector/logs/incremental-{YYYYMMDD}.log - 错误日志:
~/.tech-knowledge-collector/logs/error-{YYYYMMDD}.log
日志格式(JSON Lines)
{"timestamp":"2026-06-20T20:00:00Z","level":"info","phase":"collection","message":"Started collecting topic: Docker, depth: normal"}
{"timestamp":"2026-06-20T20:00:15Z","level":"info","phase":"semantic_analysis","message":"Auto-classified 15 items, deduplicated 3 items"}
{"timestamp":"2026-06-20T20:00:30Z","level":"info","phase":"knowledge_graph","message":"Built graph: 12 nodes, 18 edges"}
{"timestamp":"2026-06-20T20:00:45Z","level":"warn","phase":"incremental_update","message":"3 knowledge items have dead links, marked as link_dead"}
模块化扩展架构
扩展点
| 扩展点 | 说明 | 如何扩展 |
|---|---|---|
| 采集渠道 | 添加新的技术论坛/来源 | 运行采集工作流,触发"新论坛安全准入"阶段,通过核验后自动加入 references/forum-registry.md |
| 分类规则 | 添加新的一级/二级分类 | 编辑 references/semantic-analysis.md,在分类表中添加新分类及其关键词特征 |
| 图谱关系 | 添加新的知识图谱关系类型 | 编辑 references/knowledge-graph.md,在关系类型表中添加新关系及其判定规则 |
| 输出格式 | 添加新的输出格式(如 YAML、XML) | 在 config.json 的 output.formats 中添加格式名,并在 references/structured-output.md 中定义格式规范 |
| 推荐算法 | 添加新的推荐策略 | 编辑 references/knowledge-graph.md,在推荐算法部分添加新策略 |
安全合规红线(绝对禁止,一票否决)
法律合规
- 绝不采集个人隐私信息(手机号、邮箱、住址、企业涉密数据)
- 绝不破解验证码、绕过反爬机制、伪造身份
- 违反 robots.txt 协议的页面一律不访问
- 绝不采集有明确版权声明、禁止转载的商业内容
- 单站点请求间隔不低于 5 秒,单次单站点抓取不超过 30 页
站点安全
- 绝不访问无正规运营主体、存在恶意代码、钓鱼跳转的风险站点
- 绝不访问内容以违规、灰色、营销引流为主的站点
- 绝不访问需要登录、付费、关注才可查看的非公开内容
内容安全
- 绝不收录破解、盗版、攻击脚本、违规工具类内容
- 绝不收录无实操依据、可能导致数据损坏的内容
- 绝不收录政治敏感、低俗引流、广告营销类垃圾内容
永久禁止类站点
- 无备案个人站、自动采集聚合站、营销号站点
- 贴吧、泛娱乐论坛等非专业技术社区
- 资源下载站、破解站、灰色工具站
启动指令
标准启动格式
启动技术知识安全采集 Skill
采集主题:【填写具体技术主题,例如"Skill开发"、"Python异步编程"】
采集深度:【基础 / 常规 / 深度,默认常规】
输出格式:【Markdown / JSON / CSV / 全部,默认 Markdown + JSON】
增量模式:【是 / 否,默认是(仅采集新增/变更内容)】
知识图谱查询格式
查询知识图谱
主题:【填写主题,例如"Docker"】
操作:【查看图谱 / 关联推荐 / 版本历史】
与 git-secure-collector 的互补关系
| 特性 | git-secure-collector | tech-knowledge-collector |
|---|---|---|
| 主题范围 | Git/版本控制 + 代码安全扫描 | 任意可配置技术主题 |
| 渠道预设 | Git 专用论坛 | 多源渠道(博客/文档/论文/社区) |
| 知识ID前缀 | GIT- | TECH- |
| 语义分析 | ❌ | ✅ 自动分类/去重/摘要/标签 |
| 知识图谱 | ❌ | ✅ 图谱构建/关联推荐 |
| 增量更新 | ❌ | ✅ 版本追踪/过期巡检 |
| 安全框架 | ✅ 相同 | ✅ 相同 |
| 过滤体系 | ✅ 相同 | ✅ 相同 |
两个 Skill 可共存:Git 安全扫描用 git-secure-collector,其他技术主题知识采集用 tech-knowledge-collector。
参考资源
references/security-redlines.md— 完整安全合规红线细则references/admission-system.md— 四级安全准入核验详细流程references/filtering-system.md— 三层垃圾信息过滤详细规则references/report-template.md— 采集质量报告输出模板references/forum-registry.md— 技术论坛信任分级注册表references/semantic-analysis.md— v2.0 新增 智能语义分析详细规则references/knowledge-graph.md— v2.0 新增 知识图谱构建与关联推荐references/incremental-update.md— v2.0 新增 增量更新与版本追踪references/structured-output.md— v2.0 新增 结构化输出格式规范