免疫式内容扫描

作者:鹿Sir通用技能v1

混合自适应记忆系统,包含「速查表」(正向策略,生成前注入)与「免疫」(负向抗体,生成后扫描)两层记忆,支持冷热分级、多领域识别与自动学习,可检测已知错误模式并发现新威胁。当用户要求「扫描错误」「质量扫描」「检查输出质量」「模式检测」「内容体检」时触发。不适用于常规代码审查或仓库安全审计。

下载量
430
点赞
105
价格
免费

技能文档

---
name: mathews-tom-immune
title: 免疫式内容扫描
description: 混合自适应记忆系统,包含「速查表」(正向策略,生成前注入)与「免疫」(负向抗体,生成后扫描)两层记忆,支持冷热分级、多领域识别与自动学习,可检测已知错误模式并发现新威胁。当用户要求「扫描错误」「质量扫描」「检查输出质量」「模式检测」「内容体检」时触发。不适用于常规代码审查或仓库安全审计。
category: 通用技能
---

# 免疫系统 v3 —— 速查表 + 免疫混合记忆

本技能运行一套混合自适应系统,包含两层互补记忆:

- **速查表(Cheatsheet,正向模式)**:领域专属策略,在生成**之前**注入以提升输出质量
- **免疫(Immune,负向模式)**:抗体,在生成**之后**检测已知错误并发现新威胁

两层记忆均采用冷/热(Hot/Cold)分级,保持上下文精简。

## 输入解析

用户发起扫描时,解析以下参数:

- **input**:要扫描的文本/代码/内容(必填,可内联提供或取自上下文)
- **domain**:可选 fitness、code、writing、research、strategy、webdesign、`_global`(默认自动识别)
- **domains**:领域数组,覆盖单个 domain。示例:`domains=fitness,code`
- **constraints**:输出需满足的特定要求(可选)
- **mode**:`full`(速查表 + 扫描,默认)| `scan-only`(跳过速查表)| `cheatsheet-only`(只返回速查表)

<examples>
<example>
检查这个函数有没有常见坑
→ domains=["code"](自动识别),mode=full
</example>
<example>
domain=fitness 检查这份力量训练计划
→ domains=["fitness"](显式指定)
</example>
<example>
domains=fitness,code 检查这个训练计划生成接口
→ 多领域扫描
</example>
<example>
不带内容直接发起扫描
→ 扫描对话中最近一次实质性输出
</example>
</examples>

未提供内联文本时,扫描对话中最近一次实质性输出。

**领域自动识别:** 读取 `config.yaml`,将内容与 `domain_keywords` 匹配;无强匹配时使用 `["_global"]`。传入单个 `domain` 字符串时包装为数组:`domains = [domain]`。

## 技能工作流

### 步骤 0:注入速查表(正向模式)

`mode == "scan-only"` 时跳过本步。

1. **加载速查表**:读取本技能目录下的 `cheatsheet_memory.json`
2. **按领域过滤**:保留策略的 `domains` 与检测到的领域有交集、或包含 `_global` 的策略
3. **冷热分级**(与抗体同逻辑):满足任一条件即为 HOT:`effectiveness >= 0.7`;`seen_count >= 3`;`last_seen` 距今不足 30 天
4. **限制 HOT 数量**:按 effectiveness 降序、seen_count 降序排序,最多保留 **15** 条(`config.yaml` → `cheatsheet.max_hot`)
5. **组装速查表块**:将 HOT 策略格式化为:

```xml
<cheatsheet domain="{domains}">
  <strategy id="{id}" effectiveness="{effectiveness}">
    {pattern}
    示例:{example}
  </strategy>
  ...
</cheatsheet>
```

存在 COLD 策略时追加一行:

```xml
<cheatsheet_cold>另可考虑:{逗号分隔的 COLD 策略关键词}</cheatsheet_cold>
```

`mode == "cheatsheet-only"` 时输出速查表块后即结束。

日志:`[IMMUNE] Cheatsheet: {n_hot} 条 HOT + {n_cold} 条 COLD(领域:{domains})`

### 步骤 1:加载抗体并分级(冷/热)

读取 `immune_memory.json` 与 `config.yaml`。

1. **按领域过滤**:保留与检测领域有交集或含 `_global` 的抗体。兼容旧格式:字段为字符串 `domain` 时视为 `domains = [domain]`
2. **分级**:满足任一条件即为 HOT:`severity == "critical"`;`seen_count >= 3`;`last_seen` 距今不足 30 天
3. **限制 HOT 数量**:按严重度(critical > warning > info)、seen_count 降序排序,最多保留 **15** 条(`config.yaml` → `tiers.hot.max_per_scan`),溢出归入 COLD
4. **生成 COLD 摘要**:为每条 COLD 抗体从 `pattern` 提取一个短语关键词,逗号连接。示例:`"SQL 事务、肌腱炎、debug 开关、同义反复"`

日志:`[IMMUNE] Tier split: {n_hot} HOT + {n_cold} COLD / 共 {total} 条(领域:{domains})`

### 步骤 2:执行扫描

使用 `agents/immune-scan.md` 中定义的扫描提示词执行扫描,请求使用以下 XML 结构:

```xml
<scan_request>
  <domains>{检测到的领域 JSON 数组}</domains>
  <task>{任务描述,或「扫描以下内容中的错误与威胁」}</task>
  <constraints>{constraints 或 "none"}</constraints>

  <content>
{待扫描的文本/代码/内容}
  </content>

  <hot_antibodies>
{HOT 抗体 JSON 数组——完整对象,含 id、domains、pattern、severity、correction}
  </hot_antibodies>

  <cold_summary>
休眠模式(仅作知晓,不给详情):{逗号分隔的 COLD 关键词}
  </cold_summary>

  <cheatsheet_applied>
{步骤 0 注入的策略 ID 与 pattern 列表;scan-only 模式为 "none"}
  </cheatsheet_applied>
</scan_request>
```

日志:`[IMMUNE] Scanning...({n_hot} 条活跃抗体)`,等待扫描结果。

- 应用修正时记录:`[IMMUNE] Match {antibody_id}: {original} → {corrected}`
- 发现新威胁时记录:`[IMMUNE] New threat: {pattern}`
- 发现新策略时记录:`[IMMUNE] New strategy: {pattern}`

### 步骤 3:更新免疫记忆(含 COLD 去重)

读取当前 `immune_memory.json`。

1. **命中的 HOT 抗体**:`seen_count` 加 1,`last_seen` 更新为今天
2. **新威胁与 COLD 去重**:对扫描结果中每个新威胁:
   - 与全部 COLD 抗体做模糊匹配(同领域 + 关键词相近)
   - **命中 COLD 抗体** → 复活:该抗体 `seen_count` 加 1、`last_seen` 更新为今天,记录 `[IMMUNE] Reactivated COLD antibody {id}: {pattern}`,**不新建抗体**(防重复)
   - **无匹配** 且 `auto_add_threats` 为 true → 新建抗体:id 为 `AB-{下一序号}`;domains 取自威胁的 `recommended_antibody.domains`(数组);pattern、severity、correction 取自 `recommended_antibody`;seen_count 为 1;first_seen、last_seen 为今天;记录 `[IMMUNE] + New antibody {id}: {pattern}`
3. **更新统计**:`stats.outputs_checked` 加 1;`stats.issues_caught` 加上修正数 + 新威胁数;`stats.antibodies_total` 更新为当前抗体总数

写回 `immune_memory.json`。

### 步骤 3b:更新速查表记忆(正向模式)

`mode == "scan-only"` 或扫描结果无 `new_strategies_detected` 时跳过。

1. **去重强化**:新策略与全部既有策略模糊匹配(领域重叠 + pattern 相近):
   - **命中** → 强化:`seen_count` 加 1、`last_seen` 更新为今天,效果值按指数移动平均调整:`new_eff = old_eff × 0.8 + reported_eff × 0.2`
   - **无匹配** 且 `auto_add_strategies` 为 true → 新建策略:id 为 `{prefix}-{下一序号}`(prefix 取自 `config.yaml` → `cheatsheet.id_prefix.{domain}`);效果值缺省用 `cheatsheet.default_effectiveness`
2. **清理低效策略**:`effectiveness < cheatsheet.min_effectiveness` 且 `seen_count >= 5` 的策略删除
3. **更新统计**:`stats.outputs_assisted` 加 1;`stats.strategies_applied` 加上实际使用的策略数;`stats.strategies_total` 更新

写回 `cheatsheet_memory.json`。

### 步骤 4:输出结果

**无问题时:**

```
───
IMMUNE v3 | 领域={domains} | 状态:CLEAN
   速查表:应用 {n_strategies} 条策略 | 抗体:{n_hot}/{max} 条 HOT,{n_cold} 条 COLD
   未发现问题
───
```

**有修正或威胁时:**

```
───
IMMUNE v3 | 领域={domains} | 状态:{CORRECTED|FLAGGED}

已应用修正:
  [AB-XXX] {pattern} → {correction}

发现新威胁:
  [{severity}] {pattern} —— {suggested_correction}

复活抗体:
  [AB-XXX] {pattern}(原 COLD,现转 HOT)

新学到的策略:
  [CS-XXX] {pattern}(效果值:{effectiveness})

───
修正后输出:
{修正后的内容,按领域适当排版}
───
记忆:{total_ab} 条抗体 + {total_cs} 条策略 | +{new_ab} AB | +{new_cs} CS
───
```

随后以适合该领域的易读格式呈现修正后的输出。

## 异常处理

- `immune_memory.json` 不存在:创建 `{"version": 3, "antibodies": [], "stats": {"outputs_checked": 0, "issues_caught": 0, "antibodies_total": 0}}`
- `cheatsheet_memory.json` 不存在:创建 `{"version": 3, "strategies": [], "stats": {"outputs_assisted": 0, "strategies_applied": 0, "strategies_total": 0}}`
- `immune_memory.json` 为 `"version": 2`:自动迁移——把每个抗体的 `"domain"` 转为 `"domains": ["原值"]`,版本号置 3,立即写回
- 扫描返回非法 JSON:重试一次;仍失败则带警告输出原始结果
- 无输入且无最近输出:询问用户要扫描什么
- 全部抗体均为 COLD:仍发送扫描,`hot_antibodies` 为空数组并附完整 `cold_summary`,扫描流程仍可发现新威胁

使用说明

# 免疫式内容扫描

混合自适应记忆系统:生成前注入「速查表」正向策略,生成后用「免疫抗体」扫描已知错误并发现新威胁。支持冷热分级记忆、多领域自动识别与自动学习,越用越准。

## 使用场景

- 发布前检查文案、代码、研究内容的已知错误模式
- 积累各领域的优质策略与踩坑经验
- 对输出质量做例行体检

## 用法示例

```text
扫描这段输出有没有已知问题
检查这个函数有没有常见坑
domains=fitness,code 体检这份训练计划生成接口
```

记忆保存在 immune_memory.json(负向)与 cheatsheet_memory.json(正向),可跨会话复用。

## 配置

config.yaml 支持调整冷热分级阈值、HOT 上限、领域关键词与自动学习开关。

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手