---
name: style-transfer
description: >-
  文案风格迁移：把一段文案从一种风格改写成另一种风格（严肃→搞笑、书面→口语、文艺→直白、正式→社交媒体感），
  支持风格参考（给一段目标风格的示例文本）。
  使用时机：用户说"改成搞笑风格"、"换个风格"、"风格迁移"、"改成口语化"、"改成文艺风"、
  "像 XX 那样写"、"风格改写"、"换个腔调"。
  和 text-polisher 的区别：polisher 提升质量不改风格，style-transfer 改变风格不做质量评估。
layer: produce
---

# 文案风格迁移

> 把文案从一种风格改写成另一种风格，保留核心语义，只改表达方式。

## 输入

| 字段 | 必填 | 说明 |
|------|------|------|
| `text` | 是 | 待改写的原文 |
| `target_style` | 是 | 目标风格（见预设风格列表，或自由描述） |
| `style_reference` | 否 | 一段目标风格的示例文本，用于学习风格特征 |
| `preserve_keywords` | 否 | 必须保留的关键词/术语列表 |
| `intensity` | 否 | 迁移强度：`light`（微调语气）/ `medium`（默认）/ `full`（彻底改写） |

### 预设风格

> 详见 `references/style-rules.md`，含完整执行清单。

| 风格 key | 名称 | 核心规则 | 句式特征 | 禁止事项 |
|----------|------|---------|---------|---------|
| `humorous` | 搞笑 | 每 3-4 句至少一个梗点/夸张/自嘲 | 短句为主，反转节奏 | 不用"哈哈哈"、不解释梗 |
| `colloquial` | 口语 | 去掉所有书面连词，用"嗯""就是""反正" | ≤15字/句，多用问句和感叹 | 不用"综上""此外""因此" |
| `literary` | 文艺 | 意象化表达，用比喻代替直述 | 长短交替，有留白 | 不堆砌形容词 |
| `sharp` | 犀利 | 直接下判断，不留余地 | 短促有力，多用句号 | 不用"可能""也许""个人觉得" |
| `professional` | 专业 | 术语准确，逻辑链完整 | 并列/递进结构清晰 | 不用口语化表达 |
| `healing` | 治愈 | 温暖共情，"你"开头的句子多 | 中等句长，节奏舒缓 | 不用反讽/批判 |
| `sarcastic` | 毒舌 | 一针见血指出问题，不留面子 | 极短句+反问 | 不人身攻击 |
| `social_media` | 社交媒体感 | emoji+口语+互动句式 | 分行多，每行≤20字 | 不写长段落 |
| `custom` | 自定义 | 需提供 `style_reference` | — | — |

## 输出

- 改写后的文案（纯文本）
- 风格变更摘要（改了哪些维度：用词、句式、语气、修辞、节奏）
- 写入 `outputs/` 目录，文件名含原风格和目标风格标识

## 执行步骤

### Step 1 — 风格分析

分析原文的风格特征，识别以下维度：
- **用词层**：正式/口语、抽象/具体、术语密度
- **句式层**：长短句比例、主被动、复句/简单句
- **语气层**：客观/主观、冷峻/热情、距离感
- **修辞层**：比喻、排比、反问、夸张等手法的使用频率
- **节奏层**：段落长度、停顿感、信息密度

### Step 2 — 目标风格建模

如果提供了 `style_reference`：
- 用同样维度分析参考文本，提取风格特征向量
- 识别参考文本的标志性手法（如特定句式、口头禅、节奏模式）

如果使用预设风格：
- 加载预设风格的特征定义

### Step 3 — 迁移改写

按迁移强度执行改写：
1. 逐段处理，保证语义完整性
2. 按优先级调整：语气 → 用词 → 句式 → 修辞 → 节奏
3. 保留 `preserve_keywords` 中指定的关键词不变
4. 保持原文的信息完整度（不增不减核心信息）

### Step 4 — 一致性校验

- 检查全文风格是否统一（避免前后风格不一致）
- 检查核心信息是否保留完整
- 检查 `preserve_keywords` 是否全部保留
- 如果迁移后文意偏移超过阈值，回退该段重写

### Step 5 — 输出变更摘要

列出改写涉及的风格维度变化，让用户了解改了什么：
```
风格迁移: 正式 → 口语化
- 用词: 书面语替换为日常用词 (12处)
- 句式: 长复句拆为短句 (8处)
- 语气: 增加语气词和互动感 (6处)
- 修辞: 移除排比，增加口语化比喻 (3处)
```

## Profile 感知

- **有 Profile**：从 `style.md` 读取账号的惯用风格偏好，作为目标风格的微调参考；从 `identity.md` 读取品牌调性，确保改写后仍符合品牌边界
- **无 Profile**：直接按用户指定的目标风格改写，不做品牌约束

> 自研溯源与参考项目见同目录 `EASEL-META.md`。
