# Skills 编写最佳实践 本指南深入介绍如何编写高质量的 Agent Skills,帮助您创建有效、易维护、可复用的知识模块。 ## 目录 - [核心原则](#核心原则) - [Skill 结构设计](#skill-结构设计) - [元数据编写](#元数据编写) - [内容组织](#内容组织) - [示例和模板](#示例和模板) - [测试和验证](#测试和验证) - [版本管理](#版本管理) - [性能优化](#性能优化) - [常见陷阱](#常见陷阱) ## 核心原则 ### 1. 单一职责 每个 Skill 应该专注于一个明确的知识领域。 **好的示例**: - `romance-dialogue` - 专注于言情小说对话技巧 - `scene-pacing` - 专注于场景节奏控制 - `character-consistency` - 专注于角色一致性检查 **避免的示例**: - `novel-writing-everything` - 试图涵盖所有写作知识 - `tips-and-tricks` - 主题不明确 ### 2. 可发现性 AI 需要能够轻松找到和选择正确的 Skill。 **关键要素**: - 清晰的名称(描述性强,一目了然) - 详细的 description(说明用途) - 准确的 keywords(覆盖相关术语) - 明确的 whenToUse(说明使用场景) ### 3. 可操作性 Skill 内容应该提供具体、可执行的指导,而不是抽象理论。 **可操作的内容**: ```markdown ## 对话标签使用 ### 什么时候省略标签 - 只有两个人对话时 - 说话者通过上下文明确时 - 快速的对话交锋 ### 什么时候必须使用标签 - 三人或以上对话 - 说话者身份可能混淆时 - 需要强调说话者的情绪或动作时 ``` **避免过于抽象**: ```markdown ## 对话技巧 对话是小说的重要组成部分,好的对话能够推动情节发展。 ``` ### 4. 适度的范围 Skill 内容应该详细但不冗长。 **合适的长度**: - 元数据:简洁明了 - 主要内容:500-2000 行 Markdown - 复杂 Skill:可以拆分为多个相关 Skills **信号表明应该拆分**: - 内容超过 3000 行 - 包含多个不相关的主题 - 目录层级超过 4 层 - AI 激活后难以快速定位关键信息 ## Skill 结构设计 ### 标准目录结构 ``` .agent/skills/romance-writing/ ├── SKILL.md # 主 Skill 文件(必需) ├── examples/ # 示例文件(推荐) │ ├── dialogue.md │ └── scene.md ├── templates/ # 模板文件(可选) │ └── chapter-outline.md └── assets/ # 其他资源(可选) └── character-worksheet.pdf ``` ### SKILL.md 基本结构 ```markdown --- # === YAML Frontmatter (元数据) === name: skill-name description: 简短描述(1-2 句话) version: 1.0.0 keywords: - keyword1 - keyword2 whenToUse: 详细的使用场景说明 requiredModes: - mode1 - mode2 --- # Skill 标题 ## 概述 简要介绍这个 Skill 的目的和价值。 ## 核心概念 ### 概念 1 详细说明 ### 概念 2 详细说明 ## 实践指南 ### 步骤 1 具体操作 ### 步骤 2 具体操作 ## 示例 实际应用示例 ## 常见问题 Q&A 格式的常见问题 ## 参考资料 相关链接和扩展阅读 ``` ## 元数据编写 ### name **规范**: - 使用 kebab-case(小写字母,连字符分隔) - 3-5 个单词为佳 - 描述性强,避免缩写 **好的示例**: ```yaml name: romance-dialogue-techniques name: character-arc-design name: plot-twist-strategies ``` **避免**: ```yaml name: RomanceDialogue # 使用了大写 name: rd # 过于简短 name: very-long-name-that-describes-everything # 过长 ``` ### description **规范**: - 1-2 句话 - 说明 Skill 的核心价值 - 包含关键术语 **模板**: ``` [动词] + [对象] + [目的/方法] ``` **示例**: ```yaml # 好 description: 提供言情小说对话创作的技巧和规范,包括情感表达、潜台词运用和节奏控制 # 避免过于简短 description: 对话技巧 # 避免过于冗长 description: 这个 Skill 提供了全面的言情小说对话创作指南,涵盖了从基础的对话标签使用到高级的潜台词技巧,还包括情感表达、节奏控制、人物语言风格塑造等多个方面的详细说明和大量实例 ``` ### version 遵循语义化版本规范(Semantic Versioning): ```yaml version: MAJOR.MINOR.PATCH ``` **版本更新规则**: - `MAJOR`: 重大变更,不兼容的修改 - `MINOR`: 新增功能,向后兼容 - `PATCH`: 错误修复,小改进 **示例变更日志**: ```markdown ## v2.0.0 (2025-11-15) - 重构:完全重写对话技巧章节 - 破坏性变更:移除旧的分类体系 ## v1.2.0 (2025-10-20) - 新增:潜台词技巧章节 - 新增:10 个新示例 ## v1.1.1 (2025-10-10) - 修复:修正示例中的错误 - 改进:澄清模糊的说明 ``` ### keywords **规范**: - 5-15 个关键词 - 包含同义词和相关术语 - 涵盖不同抽象层次 **策略**: ```yaml keywords: # 核心术语 - romance - dialogue # 同义词 - conversation - speech # 相关概念 - emotion - subtext - character voice # 使用场景 - love scene - conflict dialogue # 技术术语 - dialogue tag - beat ``` **避免**: ```yaml keywords: - the # 无意义词 - writing # 过于宽泛 - good # 主观形容词 ``` ### whenToUse **规范**: - 明确说明使用时机 - 使用"当...时使用"格式 - 提供具体场景 **模板**: ```yaml whenToUse: | 当[场景1]时使用; 当[场景2]时使用; 适用于[用例1]、[用例2]和[用例3] ``` **示例**: ```yaml # 好 whenToUse: | 当创作言情小说对话场景时使用; 当需要改进对话的情感表达时使用; 当审查对话的真实性和节奏时使用; 适用于初稿创作、修改润色和一致性检查 # 避免过于模糊 whenToUse: 写对话的时候用 # 避免过于具体限制 whenToUse: 仅在写都市言情小说第三章男女主角初次见面的咖啡厅对话时使用 ``` ### requiredModes **规范**: - 只在确实需要 Mode 限制时使用 - 不设置则在所有 Mode 下可用 - 考虑 Skill 的适用范围 **示例**: ```yaml # 言情写作专用 requiredModes: - novelist # 编辑和审校工具 requiredModes: - editor - proofreader # 通用 Skill - 不设置 requiredModes # (省略此字段) ``` ### mcpResources (实验性) **用途**: - 声明 Skill 需要的外部资源 - 当 Skill 激活时自动加载 **示例**: ```yaml mcpResources: - database://tropes/romance - reference://character-archetypes - examples://dialogue-samples ``` ### allowedToolGroups (高级) **用途**: - 限制 Skill 激活时 AI 可以使用的工具 - 用于安全或专注控制 **示例**: ```yaml # 只读分析 Skill allowedToolGroups: - read - search # 完整创作 Skill allowedToolGroups: - read - write - edit - search ``` ## 内容组织 ### 层次结构 **推荐的标题层级**: ```markdown # Skill 主标题(H1 - 仅一个) ## 主要章节(H2 - 3-7 个) ### 子章节(H3 - 按需使用) #### 细节点(H4 - 谨慎使用) ``` **避免**: - 超过 4 层标题嵌套 - H1 级别标题多于一个 - 跳过层级(H2 → H4) ### 内容模式 #### 1. 概念 + 解释 + 示例 ```markdown ## 潜台词技巧 ### 什么是潜台词 潜台词是对话表面之下的真实含义... ### 为什么重要 潜台词能够: - 增加对话深度 - 制造戏剧张力 - 展示角色性格 ### 如何使用 #### 技巧 1:对比表层和内心 **表层**:"我很好。" **内心**:我糟透了,但不想让你担心。 **示例**: 「"我很好。"她转过身,避开他关切的目光。」 ``` #### 2. 检查清单模式 ```markdown ## 对话审查清单 ### 真实性检查 - [ ] 每个角色的说话方式是否符合其性格? - [ ] 是否避免了过于书面化的语言? - [ ] 方言和口头禅是否使用一致? ### 节奏检查 - [ ] 对话是否有快慢变化? - [ ] 是否有适当的停顿和沉默? - [ ] 长句和短句是否交替使用? ``` #### 3. 对比表格模式 ```markdown ## 对话标签选择 | 场景 | 推荐 | 避免 | 原因 | | ---------- | ----------------- | ----------------- | ------------------ | | 快节奏冲突 | "说" "道" | "咆哮道" "怒吼道" | 让内容本身传达情绪 | | 情感高潮 | "低声说" "颤声道" | "说" | 需要强调说话方式 | | 日常对话 | 省略标签 | 频繁使用 | 保持流畅性 | ``` #### 4. 分步指南模式 ```markdown ## 创作冲突对话的步骤 ### 步骤 1:明确冲突核心 确定双方的真正分歧点... ### 步骤 2:设计升级路径 冲突应该逐步升级: 1. 礼貌的分歧 2. 直接的对抗 3. 情绪化的爆发 4. 关键的突破 ### 步骤 3:安排节奏 ... ``` ### 代码和示例 #### Markdown 示例 使用代码块区分示例: ````markdown **好的示例**: ``` "我不是故意的。"她低下头,声音几不可闻。 他沉默了很久,最终只是说:"我知道。" ``` **需要改进**: ``` "我不是故意的!"她大声说道,表情很内疚。 "我知道。"他平静地回答,但是心里其实很生气。 ``` ```` #### 对比展示 ```markdown ## 信息量控制 ### ❌ 信息过载 "嗨,我是李明,今年28岁,在一家科技公司当程序员,平时喜欢看书和跑步,最近刚搬到这个城市..." ### ✅ 自然展开 "嗨,我是李明。" 他的握手很有力,手上有茧,不像典型的程序员。 "刚搬来的?" "上个月。还在适应这里的节奏。" ``` ### 支持文件引用 ```markdown ## 示例参考 详细的对话示例请参阅: - [爱情告白场景](./examples/confession-scene.md) - [冲突对话场景](./examples/conflict-scene.md) 角色对话工作表: - [角色语言风格表](./assets/character-voice-worksheet.md) ``` ## 示例和模板 ### 完整 Skill 示例:言情对话技巧 ```markdown --- name: romance-dialogue-techniques description: 言情小说对话创作的技巧和规范,包括情感表达、潜台词运用和节奏控制 version: 1.0.0 keywords: - romance - dialogue - conversation - emotion - subtext - character voice whenToUse: | 当创作言情小说对话场景时使用; 当需要改进对话的情感表达时使用; 当审查对话的真实性和节奏时使用 requiredModes: - novelist --- # 言情对话技巧 ## 概述 对话是言情小说的核心,承载着情感交流、关系发展和性格展示的重要功能。 本 Skill 提供系统的对话创作指导,帮助创作真实、动人、有节奏感的对话。 ## 核心原则 ### 1. 真实性优先 对话应该符合角色性格和社会背景。 **要点**: - 考虑角色的教育程度、职业、年龄 - 注意时代背景和地域特色 - 避免所有角色说话方式一样 ### 2. 少即是多 精简的对话往往更有力量。 **对比**: ❌ **冗长**: "我真的非常非常喜欢你,从第一次见面开始就这样,我一直在想你,每天都在想..." ✅ **精炼**: "我想你。"他顿了顿,"每天都想。" ### 3. 潜台词的力量 最好的对话在表面之下有更深的含义。 ## 技巧详解 ### 情感表达 #### 直接 vs 间接 **直接表达**:适用于情感爆发时刻 ``` "我爱你。" ``` **间接表达**:适用于日常互动,更细腻 ``` "我煮了你爱吃的粥。" "今天下雨,记得带伞。" ``` ### 冲突对话 #### 升级模式 1. **礼貌分歧** ``` "我觉得这样不太好。" "可是我们说好的..." ``` 2. **直接对抗** ``` "你从来不听我说话!" "因为你说的根本不合理!" ``` 3. **情绪爆发** ``` "够了!我受够了!" ``` 4. **冷静转折** ``` "..." 他深吸一口气:"我们冷静点。" ``` ### 对话节奏 #### 快慢结合 **快节奏**(冲突、紧张): ``` "走!" "等等——" "来不及了!" ``` **慢节奏**(情感、亲密): ``` 他看着她,良久才开口:"还记得我们第一次见面吗?" 她点点头,没有说话。 "那时候下着雨。"他轻声说,"你的裙子湿了一大片。" ``` ## 常见问题 ### Q: 如何避免对话标签单调? A: 1. 适当省略标签(上下文明确时) 2. 用动作代替标签 3. 变化标签动词(但不要过度) ### Q: 对话中的方言如何处理? A: 1. 轻微暗示而非完全模仿 2. 使用特定词汇而非拼写变化 3. 保持可读性 ## 参考资源 - [对话示例集](./examples/dialogue-samples.md) - [角色语言风格表](./templates/character-voice.md) ``` ### Skill 模板 快速开始的基础模板: ```markdown --- name: your-skill-name description: 简短描述(1-2句话) version: 1.0.0 keywords: - keyword1 - keyword2 - keyword3 whenToUse: 何时使用这个 Skill --- # Skill 名称 ## 概述 简要说明这个 Skill 的目的。 ## 核心概念 ### 概念 1 说明 ### 概念 2 说明 ## 实践指南 ### 步骤 1 详细说明 ### 步骤 2 详细说明 ## 示例 **示例 1**: ... **示例 2**: ... ## 常见问题 ### Q: 问题 1? A: 回答 ### Q: 问题 2? A: 回答 ## 参考资料 - 链接 1 - 链接 2 ``` ## 测试和验证 ### 自我检查清单 创建 Skill 后,进行以下检查: #### 元数据检查 - [ ] name 使用 kebab-case - [ ] description 清晰简洁(1-2 句话) - [ ] version 符合语义化版本规范 - [ ] keywords 包含 5-15 个相关术语 - [ ] whenToUse 明确说明使用场景 - [ ] requiredModes 设置合理(如需要) #### 内容检查 - [ ] 有明确的概述章节 - [ ] 内容组织有逻辑层次 - [ ] 包含具体、可操作的指导 - [ ] 有实际示例说明要点 - [ ] 标题层级不超过 4 层 - [ ] Markdown 格式正确 - [ ] 没有错别字和语法错误 #### 质量检查 - [ ] 内容长度适中(500-2000 行) - [ ] 每个章节聚焦单一主题 - [ ] 示例真实、相关 - [ ] 避免过于抽象的理论 - [ ] 语言清晰、易懂 #### 可用性检查 - [ ] AI 能否根据 description 和 keywords 找到这个 Skill? - [ ] whenToUse 是否准确描述了使用时机? - [ ] 内容是否真正回答了用户的需求? - [ ] 是否容易快速定位关键信息? ### 实际测试 #### 1. 手动测试 与 AI 对话,测试 Skill 是否被正确激活: **测试场景**: ``` 用户:帮我写一段言情小说的对话 AI:[USING SKILL: romance-dialogue-techniques] 根据言情对话技巧... ``` **检查项**: - AI 是否正确识别使用场景 - AI 是否应用了 Skill 中的指导 - 生成的内容是否符合 Skill 规范 #### 2. 关键词测试 使用不同的关键词提问,验证 Skill 的可发现性: ``` 测试 1:"写对话" → 应该激活 测试 2:"角色对话" → 应该激活 测试 3:"情感表达" → 应该激活 测试 4:"场景描写" → 不应该激活(不相关) ``` #### 3. 边界测试 测试 requiredModes 是否正确工作: ``` 当前 Mode: novelist → 应该可用 当前 Mode: coder → 应该不可用(如果设置了 requiredModes) ``` ### 同行审查 如果在团队中使用: 1. **请同事审查**: - 元数据是否清晰 - 内容是否准确、有用 - 示例是否恰当 2. **收集反馈**: - 是否满足了预期需求 - 有哪些需要改进的地方 - 是否有遗漏的内容 3. **迭代改进**: - 根据反馈更新内容 - 增加版本号 - 记录变更日志 ## 版本管理 ### 变更日志 在 SKILL.md 底部添加变更日志: ```markdown --- ## 变更日志 ### v1.2.0 (2025-11-15) - 新增:潜台词技巧章节 - 新增:10 个新对话示例 - 改进:重组"情感表达"章节 ### v1.1.0 (2025-10-20) - 新增:对话节奏控制章节 - 修复:修正示例中的标点错误 ### v1.0.0 (2025-10-01) - 初始版本发布 ``` ### Git 提交规范 ```bash # 新 Skill git commit -m "feat(skills): add romance-dialogue-techniques skill" # 更新 Skill git commit -m "docs(skills): update romance-dialogue - add subtext section" # 修复错误 git commit -m "fix(skills): correct examples in romance-dialogue skill" ``` ### 版本升级指南 **何时升级 MAJOR 版本 (x.0.0)**: - 重大重构,改变 Skill 的核心结构 - 移除或大幅修改重要章节 - 不兼容的变更 **何时升级 MINOR 版本 (1.x.0)**: - 添加新章节或内容 - 增强现有功能 - 向后兼容的改进 **何时升级 PATCH 版本 (1.0.x)**: - 修复错误 - 更正错别字 - 小的澄清和改进 ## 性能优化 ### 控制文件大小 **目标**: - 单个 SKILL.md:< 100KB - 包含支持文件的完整 Skill:< 500KB **优化方法**: 1. **拆分过大的 Skill**: ``` # 拆分前 novel-writing-complete/ └── SKILL.md (5000 行) # 拆分后 novel-writing-dialogue/ ├── SKILL.md (800 行) novel-writing-description/ ├── SKILL.md (900 行) novel-writing-plot/ └── SKILL.md (1000 行) ``` 2. **外部化大型示例**: ```markdown # 不好:内联大量示例 ## 示例 [5000 行的示例内容] # 好:引用外部文件 ## 示例 详细示例请参阅: - [对话示例 1](./examples/dialogue-01.md) - [对话示例 2](./examples/dialogue-02.md) ``` 3. **避免重复内容**: 使用内部链接引用已说明的概念: ```markdown 关于角色一致性,参见[角色设定章节](#角色设定) ``` ### 优化加载速度 **策略**: 1. **元数据优先**:确保 frontmatter 简洁明了 2. **关键内容前置**:把最重要的信息放在前面 3. **延迟加载**:大型资源使用外部文件 ## 常见陷阱 ### 1. 过于宽泛 **问题**: ```yaml name: writing-tips description: 各种写作技巧 keywords: [writing, tips, novel] ``` **解决**: ```yaml name: romance-dialogue-techniques description: 言情小说对话创作的技巧和规范 keywords: [romance, dialogue, emotion, subtext] ``` ### 2. 缺乏具体性 **问题**: ```markdown ## 对话技巧 对话要写得好,要注意真实性和情感表达。 ``` **解决**: ```markdown ## 对话技巧 ### 真实性检查清单 - [ ] 角色说话方式是否符合其教育背景? - [ ] 是否使用了符合时代的词汇? - [ ] 方言特征是否一致? ### 情感表达方法 1. **直接表达**:用于情感爆发 示例:"我爱你。" 2. **间接表达**:用于日常互动 示例:"我煮了你爱吃的粥。" ``` ### 3. 元数据不准确 **问题**: ```yaml whenToUse: 写小说的时候用 ``` **解决**: ```yaml whenToUse: | 当创作言情小说对话场景时使用; 当需要改进对话的情感表达时使用; 当审查对话的真实性和节奏时使用 ``` ### 4. 过度复杂 **问题**: - 嵌套 5 层以上的标题 - 使用复杂的术语而不解释 - 试图覆盖过多主题 **解决**: - 限制标题层级为 3-4 层 - 定义专业术语 - 拆分为多个专注的 Skills ### 5. 缺少示例 **问题**: 纯理论说明,没有实际示例。 **解决**: 每个技巧都提供至少一个具体示例: ```markdown ### 技巧:使用沉默 **说明**: 适当的沉默能够增强对话的张力和情感深度。 **示例**: "你还爱我吗?" 他没有回答,只是看着窗外。 良久,她轻声说:"我知道了。" ``` ### 6. 忽略维护 **问题**: 创建后从不更新,内容逐渐过时。 **解决**: - 定期审查(每季度或每半年) - 收集使用反馈 - 更新版本号 - 记录变更日志 ## 快速参考 ### Skill 创建工作流 ``` 1. 确定主题和范围 ↓ 2. 编写元数据 ↓ 3. 创建内容大纲 ↓ 4. 填充详细内容 ↓ 5. 添加示例 ↓ 6. 自我检查 ↓ 7. 实际测试 ↓ 8. 发布和监控 ↓ 9. 收集反馈 ↓ 10. 迭代改进 ``` ### 元数据速查表 | 字段 | 必需 | 格式 | 说明 | | ----------------- | ---- | ---------- | ------------- | | name | ✅ | kebab-case | 3-5 单词 | | description | ✅ | 字符串 | 1-2 句话 | | version | ✅ | x.y.z | 语义化版本 | | keywords | 推荐 | 数组 | 5-15 个词 | | whenToUse | 推荐 | 字符串 | 详细场景 | | requiredModes | 可选 | 数组 | Mode 名称列表 | | mcpResources | 可选 | 数组 | 资源 URI | | allowedToolGroups | 可选 | 数组 | 工具组名称 | ### 内容组织速查表 | 元素 | 用途 | 示例 | | ------- | ---------- | ---------------- | | # H1 | Skill 标题 | `# 言情对话技巧` | | ## H2 | 主要章节 | `## 核心原则` | | ### H3 | 子章节 | `### 真实性优先` | | #### H4 | 细节点 | `#### 技巧 1` | | 列表 | 要点罗列 | `- 要点 1` | | 代码块 | 示例展示 | ` ```示例``` ` | | 表格 | 对比说明 | `\| A \| B \|` | | 引用 | 强调提示 | `> 重要提示` | ## 社区资源 ### 参考优秀 Skills 浏览 NovelWeave Skills Registry 获取灵感: - https://github.com/wordflowlab/novelweave-skills-registry ### 获取帮助 - [Discord 社区](https://discord.gg/novelweave) - 讨论和问答 - [GitHub Issues](https://github.com/wordflowlab/novelweave/issues) - 报告问题 - [文档网站](https://docs.novelweave.com) - 完整文档 ### 分享您的 Skills 考虑将优秀的 Skills 分享到社区: 1. Fork Skills Registry 仓库 2. 添加您的 Skill 3. 提交 Pull Request 4. 等待审核和合并 --- **版本**: v0.13.0 **最后更新**: 2025-10-19 ## 附录:完整示例 Skill 以下是一个完整的、符合所有最佳实践的 Skill 示例: ### 文件结构 ``` .agent/skills/character-consistency/ ├── SKILL.md ├── examples/ │ ├── personality-tracking.md │ └── appearance-consistency.md └── templates/ └── character-profile.md ``` ### SKILL.md 完整内容 ```markdown --- name: character-consistency-checker description: 检查和维护小说中角色的一致性,包括性格、外貌、能力和行为模式 version: 1.0.0 keywords: - character - consistency - continuity - personality - appearance - behavior whenToUse: | 当审查小说以检查角色一致性时使用; 当发现角色行为或描述可能矛盾时使用; 当创建新章节需要确保角色设定一致时使用 requiredModes: - novelist - editor --- # 角色一致性检查 ## 概述 角色一致性是小说质量的关键要素。本 Skill 提供系统的检查方法, 帮助发现和修复角色设定、行为、外貌等方面的矛盾。 ## 核心检查维度 ### 1. 外貌一致性 #### 检查清单 **基本特征**: - [ ] 身高体型描述前后一致 - [ ] 发色发型没有未说明的变化 - [ ] 眼睛颜色保持一致 - [ ] 特殊标记(疤痕、胎记等)持续存在 **服饰风格**: - [ ] 穿衣风格符合角色设定 - [ ] 特殊饰品(如常戴的项链)有连贯性 **年龄外貌**: - [ ] 外貌描述符合时间线 - [ ] 岁数变化合理(如有时间跨度) #### 常见错误 ❌ **矛盾示例**: ``` 第一章:"她有一头乌黑的长发。" 第五章:"她金色的卷发在阳光下闪闪发光。" ``` ✅ **修正方法**: 1. 如果需要改变,明确说明: ``` "她染了头发,从黑色变成了金色。" ``` 2. 或保持一致: ``` 第五章:"她乌黑的长发在阳光下泛着光泽。" ``` ### 2. 性格一致性 #### 核心性格特征追踪 为每个主要角色建立性格档案: | 特征维度 | 设定 | 关键表现 | |----------|------|----------| | 内向/外向 | 内向 | 避免大型社交场合 | | 决策方式 | 理性为主 | 重要决定基于逻辑分析 | | 情绪表达 | 克制 | 很少直接表露情感 | | 行为模式 | 谨慎 | 做事有详细计划 | #### 检查方法 **场景测试**: ``` 如果角色在类似情境下,行为是否一致? 第三章场景:在商务谈判中冷静理性 第七章场景:在另一个商务场合突然冲动决策 ❌ 除非有明确的性格发展或特殊原因说明。 ``` **对话风格测试**: - 词汇选择是否一致(正式/随意) - 语气是否符合性格(幽默/严肃) - 表达习惯是否连贯(口头禅、说话方式) ### 3. 能力一致性 #### 技能和知识 **检查项**: - [ ] 专业技能水平前后一致 - [ ] 知识范围符合教育和经历背景 - [ ] 能力的提升有合理的学习过程 **示例分析**: ❌ **不一致**: ``` 第二章:她不会做饭,连煮面都能烧焦。 第六章:她做了一桌精致的法国菜。 (中间没有学习过程) ``` ✅ **一致(有成长)**: ``` 第二章:她不会做饭。 第四章:为了他,她开始学习烹饪。 第六章:经过几个月的练习,她做出了像样的法国菜。 ``` ### 4. 行为模式一致性 #### 习惯性行为 记录和追踪: - 紧张时的小动作 - 思考时的习惯 - 口头禅和特定用语 - 日常作息模式 **示例**: ``` 设定:主角紧张时会咬指甲 第一章:她咬着指甲,盯着考试成绩。✅ 第八章:面试前,她紧张地咬起指甲。✅ ``` #### 价值观和立场 **核心价值观应当稳定**,除非有重大事件改变: ``` 角色核心价值:诚实正直 ❌ 突然撒谎欺骗(无充分理由) ✅ 面临道德困境,最终仍选择诚实 ✅ 经历重大背叛后,价值观发生转变(有铺垫) ```` ## 检查流程 ### 第一步:建立角色档案 使用[角色档案模板](./templates/character-profile.md): ```markdown # [角色名]档案 ## 基本信息 - 姓名: - 年龄: - 职业: ## 外貌特征 - 身高: - 体型: - 发型发色: - 特殊标记: ## 性格特征 - 核心性格: - 行为模式: - 说话方式: ## 能力技能 - 专业技能: - 特殊能力: - 弱点: ```` ### 第二步:场景对照检查 逐章检查,对照档案: 1. 标记所有角色出场场景 2. 提取该场景的角色描述和行为 3. 与档案对照,发现矛盾 ### 第三步:时间线验证 ``` 事件 1:第3章,角色 18 岁 事件 2:第10章,描述"三年后" 事件 3:第10章后续,角色应该 21 岁 检查:年龄、外貌、能力发展是否匹配时间线 ``` ### 第四步:修正矛盾 发现矛盾后,选择修正策略: | 策略 | 适用场景 | 示例 | | -------- | -------------- | ------------ | | 统一描述 | 简单描述错误 | 统一发色描述 | | 添加过渡 | 需要合理化变化 | 添加学习过程 | | 调整剧情 | 矛盾影响情节 | 修改事件顺序 | ## 实用工具 ### 一致性检查表 在每章完成后检查: ```markdown ## [章节X] 一致性检查 ### 角色A - [ ] 外貌描述一致 - [ ] 性格表现符合设定 - [ ] 能力使用合理 - [ ] 行为符合动机 ### 角色B - [ ] 外貌描述一致 - [ ] 性格表现符合设定 - [ ] 能力使用合理 - [ ] 行为符合动机 ``` ### 角色关系图 追踪角色间关系的变化: ``` 初期:A 和 B 陌生 第5章:开始合作 第10章:成为朋友 第15章:产生信任 检查:互动方式是否匹配关系进展 ``` ## 常见问题 ### Q: 角色成长和一致性如何平衡? A: - 一致性不等于静态不变 - 角色可以成长,但需要: 1. 合理的触发事件 2. 渐进的变化过程 3. 保留核心特质 **示例**: ``` 角色核心:善良(保持) 初期表现:容易被骗(可以改变) 成长后:依然善良,但学会了保护自己 ``` ### Q: 如何处理角色在不同人视角下的差异? A: - 核心特征应该一致 - 不同视角可以有不同侧面 - 但不应该完全矛盾 **示例**: ``` A 的视角:B 很冷漠(B 对 A 确实冷淡)✅ C 的视角:B 很热情(B 对 C 更亲近)✅ 但是: A 的视角:B 是金发(客观事实) C 的视角:B 是黑发(矛盾)❌ ``` ## 进阶技巧 ### 性格弧光追踪 记录角色的内在变化轨迹: ``` 第1章:[畏惧] → 第5章:[犹豫] → 第10章:[尝试] → 第15章:[掌握] 每个阶段的行为应该匹配内在状态。 ``` ### 多角色一致性矩阵 | 章节 | 角色A状态 | 角色B状态 | 关系状态 | | ---- | ---------- | ---------- | ---------- | | 1-3 | 封闭、防备 | 好奇、主动 | 陌生、试探 | | 4-7 | 渐渐打开 | 持续接近 | 合作、渐近 | | 8-10 | 信任建立 | 情感投入 | 亲密、复杂 | ## 参考资源 - [性格追踪示例](./examples/personality-tracking.md) - [外貌一致性示例](./examples/appearance-consistency.md) - [角色档案模板](./templates/character-profile.md) --- ## 变更日志 ### v1.0.0 (2025-10-01) - 初始版本发布 - 包含四个核心检查维度 - 提供完整的检查流程和工具 ``` 这个示例展示了: - ✅ 完整的元数据 - ✅ 清晰的结构 - ✅ 具体可操作的指导 - ✅ 丰富的示例 - ✅ 实用的工具和模板 - ✅ 常见问题解答 - ✅ 版本管理 --- 希望这份最佳实践指南能帮助您创建高质量的 Agent Skills! ```