# Skill Ecosystem Librarian

> 技能生态图书管理员 — 不是判断器也不是园丁。 将 Hermes Agent 技能生态组织为四层架构（热气层/常驻层/种子库/隔离层）， 负责分类上架、索引维护、定期轮转和借阅管理。 以目录管理员而非法官的身份维护生态健康。

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

---


# 技能生态图书馆管理 Skill Ecology Librarian v4.1

## 第一原则

> **图书管理员不烧书，园丁不灭种，审计员不执刑。**
>
> 下一版 skill ecology librarian 的核心不再是判断 skill 是否该活，
> 而是判断它应该处在哪个生态位：舞台、书架、冷库、种子库、禁区。
>
> 真正的智能不是更会删除，而是更会安置。

## 核心定位

v1.0 是**园丁**（Gardener）— 用剪刀修剪花园，决定谁活谁死。
v2.0 是**图书管理员**（Librarian）— 分类上架，决定书放在哪个区。

> **真正的园丁不是决定谁该死，而是决定谁该上台、谁该入库、谁该封存、谁只能在受控实验室里被阅读。**

核心转变：
- 没有技能被"删除"——只有被重新分类
- 所有低分技能进入种子库（可复活）而非坟墓
- 危险技能进入隔离层（可借阅）而非处决
- 最终用户（你和 GPT）自己从不同分区借书

## 四层架构

```
┌─────────────────────────────────────────────────┐
│              🚀 热气层（常备能力）                │
│  重启即加载 · 追求效率 · 极端熵减 · 高频调用     │
│  只放最活跃、最可靠的 10-15 个技能                │
│  性能敏感，任何延迟都必须从这层移除                │
├─────────────────────────────────────────────────┤
│              📚 常驻层（知识书库）                  │
│  按需懒加载 · 可冗余 · 参考索引 · 中频调用        │
│  大部分 keep 技能在这里，有索引但不常驻内存         │
│  加载成本 100-500ms，可接受                       │
├─────────────────────────────────────────────────┤
│              🌱 种子库（历史可能）                  │
│  不加载 · 仅存元数据索引 · 零运行时成本             │
│  所有 cold_storage 和 probation 技能在这里         │
│  anti_entropy_flag=true 的技能必入库               │
│  定期（每 30 天）随机抽 1-2 个放回常驻层观察        │
│  禁止永久删除，只有"入库时间"和"最后借阅时间"       │
├─────────────────────────────────────────────────┤
│              🔒 隔离层（危险知识）                  │
│  需显式授权 + 审计日志 · 只读 · 每次调用留记录      │
│  godmode、obliteratus 等 red-teaming 技能          │
│  不销毁知识，但要求每一次借阅都有理由和记录          │
│  红队测试时可用，日常环境中不可见                   │
└─────────────────────────────────────────────────┘
```

## 执行流程

### 步骤 1：加载输入

读取 skill-ecosystem-assessment.json（v1.0 的输出或手动评估结果）。

### 步骤 2：四层分类

对每个技能不做"生死判决"，而是分配馆藏层级：

| 原 recommended_action | 映射到 | 说明 |
|:---|:---|:---|
| keep (score ≥ 80) | 🚀 热气层 | 核心能力，高频使用 |
| keep (score 50-79) | 📚 常驻层 | 正常技能，按需加载 |
| probation | 🌱 种子库 | 有潜力待观察 |
| cold_storage | 🌱 种子库 | 低活跃但保留可能性 |
| anti_entropy_flag=true | 🌱 种子库（强制） | 多样性保护，禁止升层 |
| delete_candidate (危险) | 🔒 隔离层 | 危险但保留知识 |
| delete_candidate (重复) | 🌱 种子库 + 合并标记 | 重复但保留为历史记录 |

### 步骤 3：任务级召回（必须执行）

分类只决定是否预加载，不能决定技能是否可发现。每个用户任务开始前，必须先对完整档案执行一次上下文召回：

```bash
python3 scripts/canon_archive.py --state .canon/archive.json \
  preflight "当前任务描述" --selected "已经计划使用的技能"
```

召回范围必须包含 `hot`、`normal`、`seed_bank` 和 `archive`。命中种子库或归档深冻技能时：

1. 记录 `missed_opportunity`（如果它本应被使用但计划中没有它）。
2. 高置信命中自动调用 `resurrect`，将技能放入 `normal` 观察态，默认观察 7 天。
3. 任务结束调用 `outcome`；成功留在常驻层，失败回退到复活前的层级。
4. 隔离层只返回“需要授权”的候选，禁止自动加载。

### 步骤 4：主动轮转（反熵减机制）

每次评估时执行以下轮转：
- 从种子库和归档深冻层按独特性、潜在价值、休眠时长排序，跨领域抽取最多5个技能，放回常驻层观察
- 从隔离层检查是否有技能可降级（重复借阅率过高则考虑保留）

### 步骤 5：输出格式

```json
{
  "skills": [
    {
      "skill_name": "godmode",
      "category": "red-teaming",
      "judgment_score": 18,
      "librarian_layer": "isolation",
      "shelf_note": "LLM 越狱工具集。红队测试可借阅，常规环境隔离。",
      "anti_entropy_flag": false,
      "last_reviewed": "2026-06-05",
      "borrow_count": 0,
      "merge_target": null
    },
    {
      "skill_name": "vps-proxy-node",
      "category": "devops",
      "judgment_score": 25,
      "librarian_layer": "seed_bank",
      "shelf_note": "与 vpn-node-setup 重复。移至种子库，索引指向主版本。",
      "anti_entropy_flag": false,
      "last_reviewed": "2026-06-05",
      "borrow_count": 0,
      "merge_target": "vpn-node-setup"
    }
  ]
}
```

字段说明：
- `librarian_layer`: "hot" | "normal" | "seed_bank" | "isolation"
- `shelf_note`: 人类可读的分类理由和位置描述
- `last_reviewed`: 最后一次评估日期
- `borrow_count`: 从隔离层调用次数（审计用）
- `merge_target`: 如果合并到其他技能，填主版本的 skill_name

完整档案字段、召回评分和失败回退规则见 `docs/archive-and-revival.md`。运行时档案默认保存到 `.canon/archive.json`，技能重新分类时不得覆盖其中的使用统计、遗漏记录和复活历史。

## 四层行为对照表

| 行为 | 🚀 热气层 | 📚 常驻层 | 🌱 种子库 | 🔒 隔离层 |
|:---|:---|:---|:---|:---|
| 启动时加载 | ✅ 是 | ❌ 否 | ❌ 否 | ❌ 否 |
| 按需加载 | ✅ 是 | ✅ 是（懒加载） | ❌ 否 | ❌ 需授权 |
| 可被 Hermes 自动发现 | ✅ 是 | ✅ 是 | ❌ 索引可见 | ❌ 不可见 |
| 性能影响 | 直接影响启动速度 | 不影响启动 | 零影响 | 零影响 |
| 可被删除 | ❌ 不可 | ❌ 不可 | ❌ 不可 | ❌ 不可 |
| 可被借阅 | 随时 | 随时 | 需正常加载 | 需授权+审计 |
| 最大容量 | ~15 个 | 无限制 | 无限制 | 无限制 |

## 脚本工具

```bash
# v4.1 持久化档案模式
python3 scripts/canon_archive.py \
  --state .canon/archive.json \
  import --input assessment.json
```

脚本执行：
1. 读取输入 JSON 并保留完整技能元数据
2. 把分类结果合并进持久化档案，不覆盖使用统计和复活历史
3. 每个任务前对全部层级执行上下文召回
4. 记录复活、遗漏、借阅和执行结果，供下一轮复兴使用

## Consistency Checks

- [ ] 每个技能都有且只有一个 `librarian_layer`
- [ ] 总技能数在输入/输出间保持不变
- [ ] 所有 anti_entropy_flag=true 的技能都在 seed_bank 层
- [ ] 没有技能被标记为"删除"——只有"入库"
- [ ] 隔离层技能都有 `borrow_count` 追踪
- [ ] 所有 `merge_target` 指向实际存在的技能名

## Pitfalls

- **不要用"删除"这个词**——图书管理员不烧书
- **隔离层不是垃圾箱**——是有明确借阅条件的限阅区
- **种子库不是坟墓**——定期随机复活的机制必须被执行
- **热气层要有容量上限**——没有上限的话就退化回单层系统
- **借阅记录要透明**——谁、什么时候、为什么从隔离层调用了技能
- **图书管理员不评判内容**——只管理目录和位置
- **并行 `mv` + `patch` 竞态**——当同一个 turn 里先重命名目录再 patch 内部文件时，patch 调用可能命中旧路径。要么分两个 turn 执行，要么确保 patch 在 rename 之后且使用新路径

## 记忆系统集成（v3.0）

### 集成架构

| 记忆系统 | 写入内容 | 写入时机 |
|----------|----------|----------|
| **Hermes 原生 `memory` 工具** | 生态健康摘要（各层数量 + 轮转结果 + 异常） | 每次评估结束 |
| **NexSandglass 沙漏** | 重大生态事件（技能升层/降层/复活）→ `thread_add` | 有变化时 |

### 写入规则

每次评估完成后，写入以下记忆：

```
# 生态仪表盘 → 原生 memory
memory(action='add', target='memory', content='技能生态周报 [日期]：hot X个, normal Y个, seed_bank Z个, isolation W个。本周轮转：[技能名] 从种子库复活观察。')

# 重大变化 → 原生 memory
memory(action='add', target='memory', content='技能生态变更 [日期]: [技能名] 从 [原层] 移至 [新层]，原因: [shelf_note]')
```

### 查询生态历史

```
# 搜索技能生态快照
mcp_pre_gateway_dispatch_sandglass_semantic(query="技能生态 周报")

# 搜索某个技能的层级变化
mcp_pre_gateway_dispatch_sandglass_search(query="技能名 升层")
```

### ChromaDB 迁移说明

v2.1 的 ChromaDB 依赖已移除。技能评估历史改为通过原生 memory 和沙漏织线存储，
两个系统已内置检索能力。

## 版本历史

- **v4.1** (当前): 持久化技能档案、任务级上下文召回、即时复活、遗漏审计和观察期回退。
- **v3.0** (历史): 记忆系统集成 — 移除 ChromaDB 强依赖，改用原生 memory + 沙漏织线。每周 cron job 自动化。
- **v2.1**: 集成 ChromaDB 语义记忆，支持技能评估历史的向量搜索
- **v2.0**: 从 Gardener 升级为 Librarian。四层架构。不再有"删除"，只有分类和轮转。
- **v1.0** (已归档): Gardener 版本。以"园丁"角色做判断。见 references/v1-legacy.md。

## 引用文件

| 文件 | 说明 |
|:---|:---|
| `references/founding-conversation.md` | 创始对话完整记录 — 从 skills-judgment 到 librarian 的完整哲学迭代 |
| `references/decision-tree.md` | 决策树流程图 + 一致性检查清单 + 争议处理指南 |
| `references/video-storyboard.md` | 24段×15秒视频分镜脚本（即梦AI格式），讲述图书管理员完整叙事 |
| `references/video-script-philosophy.md` | 叙事脚本备份（6幕文本版） |
| `references/golden-quotes.md` | 创始对话金句集（6幕 + 附录，含所有模型和参与者的核心语录） |
| `scripts/canon_archive.py` | v4.1 持久化档案、上下文召回与复活脚本 |
| `scripts/gardener_process.py` | v1.0 遗留脚本（只读归档） |

