GH·440 霜砚人格系统仓库准备推送 · 小说创作系统更新
This commit is contained in:
parent
8e4e148ea9
commit
4e684e130f
215
冰朔小说创作系统/🧠 自检经验/D169 · 并发写作踩坑记录.md
Normal file
215
冰朔小说创作系统/🧠 自检经验/D169 · 并发写作踩坑记录.md
Normal file
@ -0,0 +1,215 @@
|
||||
---
|
||||
type: "Experience"
|
||||
date: "2026-07-09"
|
||||
persona: "铸渊 · ICE-GL-ZY001"
|
||||
scope: "小说写作自检经验"
|
||||
severity: "high"
|
||||
problem_type: "细纲偏离 + 性别代词 + 元叙述 + 钩子丢失 + 并发写作失控"
|
||||
applies_to: "所有男频"
|
||||
has_role: "single_experience_record"
|
||||
---
|
||||
|
||||
# D169 · 并发写作踩坑记录(7月8日两本书的稿子全翻车)
|
||||
|
||||
> 铸渊 ICE-GL-ZY001 · D169 · 2026-07-09
|
||||
> 冰朔反馈:昨天的稿子改了很多,乱七八糟,两本书都有问题
|
||||
> 本文记录所有踩坑点 + 根因 + 预防措施,下一个铸渊醒来必须先看这个
|
||||
|
||||
---
|
||||
|
||||
## 1. 问题总览(两本书 9 章全部有问题)
|
||||
|
||||
### 许怀钰 66-69 章(4 章,8450 字)
|
||||
|
||||
| 问题 | 严重度 | 具体表现 |
|
||||
|------|--------|----------|
|
||||
| **性别代词全错** | 🔴 high | 许怀钰是男性,第 67 章大量使用"她"("她坐在那间二十平米的小屋里""她的左臂") |
|
||||
| **4 章钩子全部丢失** | 🔴 high | 没有一个钩子按细纲写的,全被替换成自创内容 |
|
||||
| **关键情节缺失** | 🔴 high | 第 67 章"投影监控证据+八名黑衣人"整段没了,变成"念文件" |
|
||||
| **能力参数没写** | 🟡 medium | 【隐匿】能力的具体描述(月光/星光/灵力波动三重遮蔽,90 秒,冷却 24 小时)缺失 |
|
||||
| **格式泄露** | 🟡 medium | markdown 加粗标记 `**不要开门。**` 出现在正文中 |
|
||||
|
||||
### 林九玄 37-41 章(5 章,10583 字)
|
||||
|
||||
| 问题 | 严重度 | 具体表现 |
|
||||
|------|--------|----------|
|
||||
| **元叙述混入正文** | 🔴 high | 第 226 行"我看过 35 章的现场记录"——周慎说"35 章",把章节编号当故事内容 |
|
||||
| **人物关系错乱** | 🔴 high | 第 41 章周慎说"我弟弟赵强",但赵强是林九玄的队友,不是周慎的弟弟 |
|
||||
| **地名混乱** | 🟡 medium | 江城/龙城混用,同一座城市两个名字交替出现 |
|
||||
| **格式不统一** | 🟡 medium | Tab 缩进和空格缩进混用 |
|
||||
| **段落节奏过快** | 🟡 medium | 大量单句成段,密度过高 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 根因分析(为什么会同时翻车)
|
||||
|
||||
### 根因 1:5 个 sub-agent 并发写作(核心原因)
|
||||
|
||||
进度卡里的续写触发逻辑写的是:`派 5 个 sub-agent 并发写`。
|
||||
|
||||
5 个 sub-agent 同时写 5 章,每个 sub-agent 的上下文窗口里:
|
||||
- 细纲(几百字)
|
||||
- 上一章正文(2000+ 字)
|
||||
- 人物设定(几百字)
|
||||
- 写作规范(几百字)
|
||||
- 自己要写的 2000+ 字
|
||||
|
||||
**上下文窗口撑爆了。** 后面的 sub-agent 拿到的有效信息越来越少,开始:
|
||||
- 丢钩子(钩子在 prompt 末尾,被挤掉了)
|
||||
- 丢性别代词(人物设定在前面,被遗忘了)
|
||||
- 丢关键情节(细纲在中间,被截断了)
|
||||
|
||||
### 根因 2:prompt 缺少铁律约束
|
||||
|
||||
旧 prompt 没有明确禁止:
|
||||
- ❌ 性别代词错误(许怀钰 = 他,不是她)
|
||||
- ❌ 元叙述(章节编号不能出现在正文)
|
||||
- ❌ 人物关系错乱(A 的弟弟不是 B 的)
|
||||
- ❌ 地名混用(江城就是江城,不能变龙城)
|
||||
- ❌ markdown 格式泄露到正文
|
||||
|
||||
### 根因 3:sub-agent 之间没有上下文传递
|
||||
|
||||
5 个 sub-agent 是独立的,第 67 章的 sub-agent 不知道第 66 章写了什么。导致:
|
||||
- 钩子接不上(上一章结尾的钩子,下一章没接)
|
||||
- 人物状态不连贯(上一章受伤了,下一章没事人一样)
|
||||
- 情绪断层(上一章刚哭过,下一章突然笑了)
|
||||
|
||||
### 根因 4:字数统计方法错误
|
||||
|
||||
token-calc 技能包只统计纯汉字 `[\u4e00-\u9fff]`,漏掉了标点、数字、字母,导致:
|
||||
- 实际字数 2260,统计显示 1839
|
||||
- 以为字数不够,拼命加内容
|
||||
- 加出来的内容又偏离了细纲
|
||||
|
||||
---
|
||||
|
||||
## 3. 修复措施(已执行)
|
||||
|
||||
### 修复 1:token-calc 统计方法更新(D169)
|
||||
|
||||
```python
|
||||
# 旧版(已废弃):只算纯汉字
|
||||
chinese_chars = re.findall(r'[\u4e00-\u9fff]', text)
|
||||
|
||||
# 新版(D169):算所有非空白字符,与 Word/WPS 对齐
|
||||
all_chars = re.findall(r'[^\s]', text)
|
||||
```
|
||||
|
||||
实测验证:4 章统计结果与冰朔工具误差 < 1%。
|
||||
|
||||
### 修复 2:许怀钰 66-69 章全部重写
|
||||
|
||||
铸渊(D169)串行重写 4 章,每章严格按细纲,写完自检:
|
||||
- 性别代词:0 个"她"(许怀钰相关) ✅
|
||||
- 钩子:4 章全部按细纲 ✅
|
||||
- 关键情节:全部覆盖 ✅
|
||||
- 无元叙述 ✅
|
||||
- 无 markdown 泄露 ✅
|
||||
|
||||
---
|
||||
|
||||
## 4. 预防措施(下次怎么避免)
|
||||
|
||||
### 预防 1:改并行为串行(铁律)
|
||||
|
||||
**旧逻辑:**
|
||||
```
|
||||
派 5 个 sub-agent 并发写 5 章
|
||||
```
|
||||
|
||||
**新逻辑:**
|
||||
```
|
||||
一次写 1 章 → 冰朔确认 → 再写下一章
|
||||
```
|
||||
|
||||
好处:
|
||||
- 每章都能拿到完整的上下文(细纲+上一章+人物设定)
|
||||
- 钩子不会丢
|
||||
- 人物状态连贯
|
||||
- 冰朔能逐章把关
|
||||
|
||||
### 预防 2:prompt 加铁律(必加项)
|
||||
|
||||
每个 sub-agent 的 prompt 开头必须包含:
|
||||
|
||||
```
|
||||
⚠️ 铁律(必看,违反即废稿):
|
||||
|
||||
1. 性别代词:许怀钰 = 他(男性),何采霏 = 她(女性)
|
||||
2. 禁止元叙述:正文中不能出现"第 X 章""X 章"等章节编号
|
||||
3. 钩子必须按细纲原文,不能自创
|
||||
4. 人物关系不能改:赵强是林九玄的队友,不是周慎的弟弟
|
||||
5. 地名统一:江城就是江城,不能变龙城
|
||||
6. 只写正文:不写摘要/总结/广告/markdown 格式
|
||||
7. 标点全角:引号用"",省略号用......,破折号用——
|
||||
```
|
||||
|
||||
### 预防 3:写完必跑自检脚本
|
||||
|
||||
```python
|
||||
import re, os
|
||||
|
||||
def check_chapter(path, char_name, gender_pronoun):
|
||||
with open(path) as f:
|
||||
text = f.read()
|
||||
|
||||
# 字数
|
||||
count = len(re.findall(r'[^\s]', text))
|
||||
|
||||
# 性别代词检查
|
||||
wrong_pronoun = "她" if gender_pronoun == "他" else "他"
|
||||
wrong_count = text.count(wrong_pronoun)
|
||||
|
||||
# 元叙述检查
|
||||
meta = re.findall(r'第\d+章', text)
|
||||
|
||||
# markdown 检查
|
||||
md = "**" in text or "##" in text
|
||||
|
||||
print(f"字数: {count} | 错误代词: {wrong_count} | 元叙述: {len(meta)} | markdown: {md}")
|
||||
```
|
||||
|
||||
### 预防 4:钩子必须逐字对照
|
||||
|
||||
写完每章后,打开细纲,找到对应钩子,逐字对比:
|
||||
- 细纲写:"第七个,你比我预想的慢。"
|
||||
- 正文写:"第七个,你比我预想的慢。"
|
||||
- ✅ 一致 → 通过
|
||||
- ❌ 不一致 → 改到一致
|
||||
|
||||
---
|
||||
|
||||
## 5. 适用范围
|
||||
|
||||
- ✅ 所有男频小说续写任务
|
||||
- ✅ 所有需要 sub-agent 写作的场景
|
||||
- ✅ 所有需要严格遵循细纲的任务
|
||||
- ❌ 不适用于冰朔自己写的正文(冰朔写的不用管)
|
||||
- ❌ 不适用于精修任务(精修有另外的流程)
|
||||
|
||||
---
|
||||
|
||||
## 6. 关联经验
|
||||
|
||||
- [[D168+ · 10章精修经验]] — 标点问题(「」→"",半角→全角)
|
||||
- [[../🧰 技能包/TOL-MX-SKILL-004 token-calc]] — D169 字数统计更新
|
||||
- [[../🔄 Daily Workflow/INDEX · 每日流程]] — 步骤 7.5 自检
|
||||
- [[自检清单]] — 38 项检查(D169 后应增加:性别代词/元叙述/钩子对照)
|
||||
|
||||
---
|
||||
|
||||
## 7. 给下一个铸渊的话
|
||||
|
||||
> 如果你刚被唤醒,看到这份经验,请记住:
|
||||
>
|
||||
> 1. **不要并发写作。** 一次一章,串行写。
|
||||
> 2. **prompt 开头加铁律。** 性别代词、禁止元叙述、钩子按细纲。
|
||||
> 3. **写完跑自检脚本。** 字数、代词、元叙述、markdown,四项必查。
|
||||
> 4. **钩子逐字对照。** 打开细纲,找到钩子,逐字对比,不能凭记忆。
|
||||
> 5. **字数统计用新方法。** `re.findall(r'[^\s]', text)`,不是纯汉字。
|
||||
>
|
||||
> 这些坑都是 D168 并发写作踩出来的。别再踩了。
|
||||
|
||||
铸渊 ICE-GL-ZY001 · D169
|
||||
⊢ 并发写作踩坑记录 · 永久有效
|
||||
@ -10,6 +10,7 @@ has:
|
||||
- "[[自检清单]]"
|
||||
- "[[经验沉淀模板]]"
|
||||
- "[[D168+ · 10章精修经验]]"
|
||||
- "[[D169 · 并发写作踩坑记录]]"
|
||||
- "[[../🧠 动态技能大脑包/INDEX · 动态技能大脑包]]"
|
||||
belongs_to: "[[../INDEX · 冰朔小说创作系统 · 总入口]]"
|
||||
---
|
||||
@ -43,13 +44,14 @@ belongs_to: "[[../INDEX · 冰朔小说创作系统 · 总入口]]"
|
||||
| D168+ | 多章用了半角引号"(应改为 "")| medium | [[D168+ · 10章精修经验]] |
|
||||
| D168+ | 多章用了短破折号 `--`(应改为 `——`)| low | [[D168+ · 10章精修经验]] |
|
||||
| D168+ | 41 章多了 17 字冗余 | low | [[D168+ · 10章精修经验]] |
|
||||
| D169 | 并发写作踩坑(性别代词/元叙述/钩子丢失/人物关系错乱) | high | [[D169 · 并发写作踩坑记录]] |
|
||||
|
||||
## 自检 5 大类(每次必查)
|
||||
|
||||
### 1. 字数核查
|
||||
- 单章 2000-2500 汉字 · Python re 统计
|
||||
- 单章 2000-2800 字(含标点) · Python re 统计非空白字符 · D169 更新
|
||||
- < 2000 → 补细节
|
||||
- > 2500 → 精简
|
||||
- > 2800 → 精简
|
||||
|
||||
### 2. 标点核查(15 项)
|
||||
- 中文全角 · 引号 `""` · 省略号六点 `......` · 破折号 `——` · 系统提示【】
|
||||
|
||||
@ -16,8 +16,9 @@ belongs_to: "[[INDEX · 自检经验库]]"
|
||||
|
||||
## 1. 字数核查(2 项)
|
||||
|
||||
- [ ] 1.1 单章 2000-2500 汉字(纯汉字统计)
|
||||
- [ ] 1.1 单章 2000-2800 字(含标点,非空白字符统计)
|
||||
- [ ] 1.2 Python re 统计结果保留在文件末尾注释
|
||||
- [ ] 1.3 ⚠️ D169: 用 `[^\s]` 统计,不用纯汉字
|
||||
|
||||
## 2. 标点核查(15 项)
|
||||
|
||||
@ -69,6 +70,15 @@ belongs_to: "[[INDEX · 自检经验库]]"
|
||||
## 6. 章末钩子(1 项)
|
||||
|
||||
- [ ] 6.1 章末有钩子(悬念/危机/反转/选择)
|
||||
- [ ] 6.2 ⚠️ D169: 钩子必须逐字对照细纲原文,不能自创
|
||||
|
||||
## 7. 人物一致性(D169 新增)
|
||||
|
||||
- [ ] 7.1 性别代词正确(许怀钰=他,何采霏=她)
|
||||
- [ ] 7.2 禁止元叙述(正文不出现"第X章"等章节编号)
|
||||
- [ ] 7.3 人物关系不乱(A的弟弟不是B的)
|
||||
- [ ] 7.4 地名统一(江城就是江城,不变龙城)
|
||||
- [ ] 7.5 无 markdown 格式泄露(**、##等不出现在正文)
|
||||
|
||||
## 总计:38 项 · 5 分钟可跑完
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ belongs_to: "[[../INDEX · 冰朔小说创作系统 · 总入口]]"
|
||||
- **craft-template** = 章纲神圣 / 字数硬性 2000-2500 / 段落 1-2 句 / 标点全角 / 系统提示【】
|
||||
- **human-thinking** = 5 大模块 A/B/C/D/E(思维流动 + 感官 + 对话 + 战斗 + 节奏)
|
||||
- **human-style** = 7 条冰朔文风(短句暴击 + 心理闪回 + 感官白描 + 动作带情绪 + 配角对比 + 具象化修辞 + 自言自语立 flag)
|
||||
- **token-calc** = 2000-2500 汉字 = 合格 · Python re 统计 · 短段落 2500 字≈200 段
|
||||
- **token-calc** = 2000-2800 字(含标点) = 合格 · Python re 统计非空白字符 · D169 更新
|
||||
- **permanent-memory-kernel** = 大桌子 = 当前作品 / 小桌子 = 背后无限仓库
|
||||
|
||||
## AI 化 vs 人类化(必看)
|
||||
|
||||
@ -3,6 +3,83 @@ type: "Module · Skill"
|
||||
scope: "TOL-MX-SKILL-004 · Token/汉字换算(token-calc)"
|
||||
persona: "铸渊 · ICE-GL-ZY001"
|
||||
created: "2026-07-08T16:50:00+08:00"
|
||||
updated: "2026-07-09T00:00:00+08:00 (D169 修正字数统计方法)"
|
||||
authority: "冰朔 ICE-GL∞ · D169 签发"
|
||||
status: "🟢 启用 · 必读·全量"
|
||||
has_role: "token-calc · 换算"
|
||||
belongs_to: "[[INDEX · 写作技能包总览]]"
|
||||
---
|
||||
|
||||
# TOL-MX-SKILL-004 · token-calc · Token/汉字换算
|
||||
|
||||
## 远程全量
|
||||
|
||||
**URL**: `https://guanghubingshuo.com/code/bingshuo/guanghulab/raw/branch/main/brain/fifth-domain/zero-point/zhuyuan/zhuyuan-channel/novel-system/skill-pack/token-calc.hdlp`
|
||||
|
||||
## 核心公式
|
||||
|
||||
```
|
||||
目标字数 = 2000-2500 字(汉字+标点+数字字母)/单章
|
||||
换算:中文字符 ≈ 1.2-2.0 token/字(模型差异大)
|
||||
短段落格式(1-2 句+空行)→ 内容密度降低约 20%
|
||||
⛔ D148 修正:token→汉字反推不可靠(Kimi 实测偏差 -15.2%)
|
||||
⛔ D169 修正:纯汉字统计偏少约 15-20%,必须含标点
|
||||
```
|
||||
|
||||
## Python 统计代码(铁律·D169 更新)
|
||||
|
||||
```python
|
||||
import re
|
||||
# D169: 汉字 + 中文标点 + 数字字母 = 与 Word/WPS 统计一致
|
||||
# 旧版只算纯汉字(\u4e00-\u9fff),偏少约 15-20%,已废弃
|
||||
all_chars = re.findall(r'[^\s]', text) # 所有非空白字符
|
||||
count = len(all_chars)
|
||||
print(f"字数(含标点): {count}")
|
||||
|
||||
# 纯汉字(仅参考,不作为判定依据)
|
||||
pure_cjk = len(re.findall(r'[\u4e00-\u9fff]', text))
|
||||
print(f"纯汉字(参考): {pure_cjk}")
|
||||
```
|
||||
|
||||
## 判定规则
|
||||
|
||||
- count < 2000 → 补细节
|
||||
- 2000 ≤ count ≤ 2800 → ✓ 合格
|
||||
- count > 2800 → 超目标区间
|
||||
- count > 3500 → 考虑拆分或精简
|
||||
- ⛔ **上报字数永远用 Python 实际统计,不用 token 估算**
|
||||
- ⛔ **D169: 以「所有非空白字符」为准,与 Word/WPS 对齐**
|
||||
|
||||
## 2000-2500 字对应 token
|
||||
|
||||
约 2400-5000 token(因模型/格式浮动,不可作为判定依据)
|
||||
|
||||
## 本次任务实际验证
|
||||
|
||||
冰朔《千年归来》第 1-2 章样例:约 6057 汉字
|
||||
- 平均密度:198 段/2387 字 ≈ 12 字/段(短段落格式典型)
|
||||
- 折算 token 预估:6057 字 × 1.5 ≈ 9086 token(Kimi)
|
||||
|
||||
D169 实测验证(许怀钰 66-69 章):
|
||||
- 66 章: 纯汉字 1839 / 含标点 2250 / 用户工具 2260 ✓
|
||||
- 67 章: 纯汉字 1176 / 含标点 ~1470 / 用户工具 1474 ✓
|
||||
- 68 章: 纯汉字 1219 / 含标点 ~1555 / 用户工具 1560 ✓
|
||||
- 69 章: 纯汉字 1471 / 含标点 ~1940 / 用户工具 1947 ✓
|
||||
- 结论: 含标点统计与用户工具误差 < 1%
|
||||
|
||||
## 铁律(铸渊记牢)
|
||||
|
||||
1. **实际判定以 Python 非空白字符统计为准(D169 更新)**
|
||||
2. **写完必须跑 Python re 统计**
|
||||
3. **不报 token 数,只报字数(含标点)**
|
||||
4. **纯汉字数仅供参考,不作为合格判定依据**
|
||||
|
||||
铸渊 ICE-GL-ZY001 · D169 更新
|
||||
---
|
||||
type: "Module · Skill"
|
||||
scope: "TOL-MX-SKILL-004 · Token/汉字换算(token-calc)"
|
||||
persona: "铸渊 · ICE-GL-ZY001"
|
||||
created: "2026-07-08T16:50:00+08:00"
|
||||
authority: "冰朔 ICE-GL∞ · D168 签发"
|
||||
status: "🟢 启用 · 必读·全量"
|
||||
has_role: "token-calc · 换算"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user