# Biorag

> 生信知识库检索技能。覆盖生物信息学/R代码/机器学习/Python数据分析。 触发词：生信问题、R代码、DESeq2、ggplot2、差异表达、富集分析、 单细胞、转录组、基因组、pandas、tidyverse、clusterProfiler、 Seurat、dplyr、火山图、热图、PCA、GO、KEGG、GSEA、 RNA-seq、ChIP-seq、WGS、变异检测、进化树、机器学习、 随机森林、SVM、特征选择、降维、聚类、代码调试、报错

- Skill: `elephenman/biorag` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add elephenman/biorag`
- Raw SKILL.md: https://api.skillmd.com/api/skills/elephenman/biorag/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: elephenman (https://skillmd.com/u/elephenman)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/elephenman/biorag

---


# BioRAG 知识库检索技能

## 何时激活

当用户的问题涉及以下领域时，**必须先检索知识库再回答**，不要跳过检索直接用自身知识：

- 生物信息学（差异表达、富集分析、单细胞、多组学、基因组、转录组...）
- R 语言与可视化（ggplot2、pheatmap、火山图、热图、箱线图...）
- Python 数据分析（pandas、numpy、matplotlib...）
- 机器学习（随机森林、SVM、特征选择、降维、聚类...）
- 任何生信代码调试或报错问题

## 渐进式检索策略

### Level 1：轻量检索（默认，大多数情况够用）

检测到生信相关问题时，**立即执行**：

```bash
python "{SKILL_DIR}/scripts/search.py" "用户问题的核心关键词" --level 1
```

- 返回 **3 个**最相关片段，每个 ~200 字
- 总上下文占用 < 600 字
- 耗时 < 2 秒
- **大多数情况下 Level 1 就够了**

### Level 2：深度检索（Level 1 结果不足时）

如果 Level 1 的结果**不足以完整回答**问题，执行：

```bash
python "{SKILL_DIR}/scripts/search.py" "更精确的查询词" --level 2 --category bioinfo
```

- 返回 **8 个**片段，每个 ~300 字
- 总上下文占用 < 2500 字
- 可按 category 过滤：`bioinfo` / `r_code` / `ml` / `other`

### Level 3：全文检索（需要看完整文档时）

用户明确要求看完整内容，或 Level 2 仍不够时：

```bash
python "{SKILL_DIR}/scripts/search.py" "查询" --level 3 --full-doc
```

- 返回匹配文档的完整内容
- 上下文占用较大，**仅在必要时使用**

## category 参数说明

| category | 覆盖内容 | 适用场景 |
|----------|----------|----------|
| `bioinfo` | 生物信息学笔记、转录组、蛋白组、进化... | 原理/流程/概念问题 |
| `r_code` | R 绘图模板、SCI 图表代码、Seurat... | R 代码生成/调试 |
| `ml` | 机器学习笔记 | ML 相关问题 |
| `other` | 其他所有内容 | 一般问题 |
| 不传 | 搜索全部分类 | 不确定分类时 |

## 回答规范

1. **优先使用检索到的知识库内容**，不要用自身知识覆盖
2. **标注来源**：回答中注明 `（来源：DESeq2.md / 转录组学）`
3. **代码完整可运行**，不要省略号或"..."，不要跳步
4. **像教初学者一样解释原理**，每个函数/参数都要说明用途
5. 如果知识库没有相关信息，明确说"知识库中暂无相关内容"，然后用自身知识补充并标注
6. 检索结果中有多个相关片段时，**整合**成连贯的回答，不要逐条罗列

## 知识库状态查询

用户说"知识库状态"或"检查知识库"时：

```bash
python "{SKILL_DIR}/scripts/status.py"
```

## 知识库更新

用户说"更新知识库"时：

```bash
python "{SKILL_DIR}/scripts/update.py"
```

## 重要提醒

- 每次只执行一次检索，不要连续多次 Level 1
- 如果查询返回 0 结果，尝试换一个关键词重试
- 检索结果中的 score 表示相似度，> 0.7 为高度相关，0.5-0.7 为中度相关，< 0.5 为弱相关
