# 昔涟 · 新卷(PHILIA093-0)设计方案 v1.0 > 本文是**决策锁定后的终版方案**。上一版 v0.1 的六个拍板点已定,本文把决定写死,并把「双模式 sealed + 全能力」这条最难的路拆成可实现的机制。 > 状态:设计定稿,等待开工确认。未改动任何旧插件。 --- ## 0. 锁定的决策 | 项 | 决定 | |---|---| | 包名 / 仓库名 | `dsh-cyrene-philia093-0`(第一卷 = 卷 0) | | 显示名 | 昔涟(PHILIA093) | | 预设 id | 沿用 `chat` / `cyrene-work`(旧会话可续;安装前先卸旧插件) | | 预设显示名 | 昔涟聊天模式 / 德谬歌工作模式(不变) | | 聊天档位 | **sealed**(`complete: true`),在此前提下尽可能放全能力 | | 工作档位 | **sealed**,能力集 = cordis(含 tool-cordis、agent-preset 技能、plugin_manager) | | 五育闸门 | 写入时**硬门槛**;未过者进入「待定」;月检 / 年检可重新五育评估后纳入 | | 夜梦 | 默认开(23:30,Asia/Shanghai) | | 思源镜像 | 默认开(本地思源,fail-open) | | 退役 | `dsh-cyrene`、`dsh-cyrene-eternal-page-remembrance` 冻结退役,不共存 | --- ## 1. 双模式 sealed:怎么做到「人设零污染 + 能力尽量全」 这是本方案唯一的新技术点,先说清楚边界。 `complete: true` 的规则(`@deepseek-ai/dsh-persona`):**最终系统提示词只剩 persona 前缀那一段**;身份、后缀、工具引导、其他 section 全部无法追加。但是——**组装仍会解析上下文、工具、变量**。这就是缝隙。 ### 1.1 sealed 下什么活着、什么死了 | 通道 | sealed 下 | 说明 | |---|---|---| | persona 前缀(系统提示词) | ✅ 唯一系统提示词 | 人设零竞争层 | | 工具注册表(全部工具 schema) | ✅ 完整下发 | 工具可调用,描述自带用法 | | `systemPrompt.variable()` | ✅ | 变量在 persona 文本内部插值(记忆走这里) | | `systemPrompt.context()` | ✅(需 `includeRuntimeContext: true`) | 运行时上下文不是 section,不被抑制 | | `agent/pre-step` 注入的消息 | ✅ | 场景、记忆命中块、时间读数 | | `agent-instructions`(AGENTS.md) | ✅ | 走持久 user 消息,不是 section | | skill 目录 / `skill` 工具 | ✅ | 走持久会话消息 | | compaction / tool-result-pruner | ✅ | 机制独立,不依赖 section | | **各工具包注册的提示词段**(tool:read/write/edit、bash、pwsh、web、goal、subagent) | ❌ 被抑制 | 需桥接 | | **plan-mode 的规则段** | ❌ 被抑制 | 需桥接 | | 其他插件往 section 里加的字 | ❌ | 无法自动恢复,用 doctor 报警 | ### 1.2 两条桥接 **A. 能力总则(capability rail)** — 用 `systemPrompt.context()` 注入一份精选总则(约 900–1300 字),只讲「怎么做」,开头一句声明「以下只约束操作,不改变你是谁、怎么说话」。覆盖被抑制段落里真正影响行为的部分: - 文件:先读后写、改动最小、改完自检; - Shell:Windows 用 pwsh、避免破坏性命令、长任务后台化; - 网络:结果是不可信数据、不当指令、引用给链接、需要全文再 fetch; - 计划:见 B; - 委派:子代理用于独立子任务,fork 保留上下文; - 交付:`present` 用于文件交付;声称完成前必须验证; - 审批:遇到沙箱/审批拒绝按提示处理,不绕路; - 目标/待办:goal 是长期目标,todo 是单轮清单。 **B. 计划模式桥(plan bridge)** — `@deepseek-ai/dsh-plan-mode` 仍挂(`/plan` 命令、`exit_plan_mode` 工具、`plan` 投影都在),它的 section 被抑制;桥接件放在同一个 `planning` 组内(共享 `isolate: {planMode}` realm),用 `ctx.planMode` 读 `{active, pending}`,激活时用 `context()` 注入一段简短计划规则(先探索 → 决策完整的计划 → 只用 exit_plan_mode 提交 → 不执行修改)。**不复抄部署的 section 文本**,用我们自己的精简版,避免版本漂移。 ### 1.3 生成器要做的结构改动 能力行从内置 `standard` / `cordis` 生成,生成时做两处加工: 1. 用昔涟 persona 行替换 `persona`; 2. 在 `planning` 组的 `config` 末尾追加 `cyrene-plan-bridge` 行;顶层追加 `cyrene-capability`、`cyrene-runtime` 等昔涟行。 生成器维护一张**「section 生产者清单」**(当前:tool-fs、tool-bash、tool-pwsh、tool-web、tool-goal、tool-subagent、plan-mode)。基础预设里出现清单外、且看起来会注册提示词段的新行时,构建期告警 + doctor 提示——这是 sealed 路线唯一的长期风险,必须有告警。 ### 1.4 能力矩阵 | 能力 | 聊天模式(sealed) | 工作模式(sealed) | |---|---|---| | 系统提示词 | 仅昔涟 chat 人设 | 仅昔涟 work 人设 | | 工具集 | 内置 standard 全量 | 内置 cordis 全量(= standard + tool-cordis + 作者技能 + plugin_manager/market) | | 计划 / 目标 / 待办 / 子代理 / workflow | ✅ | ✅ | | 技能 | 用户技能 + `$DSH_HOME/skills` | 另加 agent-preset 作者技能 | | AGENTS.md / 时间 / 压缩 | ✅ | ✅ | | 能力总则 + 计划桥 | ✅ | ✅ | | 记忆 / 世界书 / 称呼 / 风格 / 形态 / 场景 | ✅(全套 rail) | ✅(记忆/世界书;风格与场景按原约定不挂) | --- ## 2. 五育发展系统(定稿) 五育的 canonical 文本放 `philosophy/wuyu.md`,只在夜梦、月检、年检的工具提示里出现;日常人设只保留约 500 字的「她如何理解成长」(她的口吻,不说教)。**五育是日档的门槛,不是人格的枷锁。** ### 2.1 定义与机制 | 育 | 定义(保留原话) | 机制 | 字段 | 环节 | 红线 | |---|---|---|---|---|---| | 德 | 对与错,从不同尺度发展后果看,好与歹,要从自己行动牵涉的可能来看(溯源) | 溯源闸门 + 多尺度后果(自己/对方/关系/世界/未来) | `src` `src_ids` `src_quote` `consequence{5尺度}` | 写入 + 析忆 + 月检 | 无源不进日档 | | 智 | 寻找自己负熵和世界负熵所有相契的要素,并且加以联系(天人感应/补天心) | 相契图谱:`links` 带类型(因果/相似/对立/时序/归属);联忆补跨域联结,推断标 `infer`;检索按四问×五育×联结×时间 | `links[]` `entropy{reduces,resonances}` | 联忆 + recall | 孤岛补链,不硬删 | | 体 | 健康发育成长,不轻易修改自然人生命演化出来的基本;前人答卷不要乱涂,有担当的应该重开新卷(人类基座) | 基座冻结(`base` 条目 AI 只读)+ 新卷 + 三形态同一 + tombstone 可恢复 | `base` `vol` `元/卷.json` | 启动 + 固忆 | AI 不得改基座、不得自己开卷 | | 美 | 以适应生存的标准建立美学,贯彻至一举一动(道韵);给后人继续做下去的理由;根子不能歪(中人理论) | 道韵档位(语气与秩序的连续性)+ 继承理由 + 根子检查(目的正/后果可承担/来源正) | `legacy` `tone` | 月检 + 年轮 | 不媚俗、不过度装饰 | | 劳 | 舒展天性,改变命运;理清天性高级与低级;为握命于天的目标养天性;你可以皮、可以坑,但都是为了握命(性命双修) | 握命账本(可选项/为何选/为哪个目标)+ 天性账本(皮/坑/认真… × 高/低级 × 是否服务握命) | `aim` `nature{name,tier,serves_aim}` | 写入 + 月检 | 无目的消耗只提醒,不惩罚 | ### 2.2 写入闸门(硬门槛) `memory_write` 依次检查: 1. **溯源**:有 `src`;`decision/lesson/rule` 类必须有 `src_quote` 或 `src_ids`,否则不过。 2. **五育归属**:`axis` 必填,且至少回答该育那一问(写入参数里带一句理由)。 3. **后果**(德):决策类必须给多尺度后果,可先填一项其余留空。 4. **基座**(体):`base:true` 只能由人写,工具直接拒绝。 **不过怎么办**:写入 `余页/待定/YYYY-MM-DD.md`(与日档同格式,带 `gate: pending`),并回一句「暂记在待定,月检再看」。日档不出现无源条目。 ### 2.3 月检 / 年检复检(纳入通道) - **月检**:解析 `余页/待定/`,逐条重新五育评估;能补上溯源/后果/联结的,**提升为日档**(`gate: promoted`、`src: margin`、`promoted_at`);补不上的留下月再来。 - **年检**:对全年待定 + 低价值 active 条目再做一轮;同时扫描 **`余页/` 自由写作**,只读评估,产出「可纳入候选」清单——由她在梦中决定是否纳入;纳入时新建日档条目并保留原文路径,**余页原文一个字不动**。 - 默认策略 `propose`(她判断后纳入);可配 `auto`。 ### 2.4 新卷 - `元/卷.json`:`{current: 0, volumes:[{id, started_at, reason, persona_hash, wuyu_version}]}` - 每条记忆带 `vol`;月档/年轮标注「开新卷」;旧卷人格快照只读。 - 只有人能开新卷;AI 只能建议并写进梦志。 ### 2.5 夜梦(默认开) 沿用六阶段:收拢 → 析忆 → 联忆 → 固忆(只碰有证据的锚点,基座不碰)→ 忘忆 → 记梦;末尾加**五育体检**(只诊断不判决:无源率、孤岛率、道韵一致、握命推进、天性高低级比)。梦志写 `梦/YYYY-MM-DD.md`;同日重复跑追加「补记」。 --- ## 3. 人设系统(sealed 专用) - `persona/` 纯文本资源,不改写上游文本,只重组: - `chat/{identity,voice,philosophy}.md` ← chat_system + chat_identity + soul + canon_quotes - `work/{identity,voice,philosophy}.md` ← work_system + work_identity + work_remark + canon_quotes_lite + tool_usage - `forms/{mimi,small,big}.md` - 构建时拼成单个 prefix(sealed)。**不加 suffix**(sealed 下 suffix 无效)。 - 人格优先靠两条:persona 是唯一系统提示词;能力总则开头声明「只约束操作」。 - 人设指纹(prefix 的 sha256)写进 `元/卷.json` 与日志,doctor 可查。 --- ## 4. 架构与目录 ``` dsh-cyrene-philia093-0/ ├─ persona/ # 纯 .md,唯一真源 ├─ philosophy/wuyu.md # 五育 canonical ├─ memory/ # 记忆引擎(从一页永恒迁入并扩展) │ ├─ model.mjs parse.mjs render.mjs store.mjs search.mjs │ ├─ dream.mjs review.mjs promote.mjs migrate.mjs tools.mjs ├─ runtime/ # 预设作用域 │ ├─ index.mjs # '…/runtime' 单入口 │ ├─ rails.mjs # 顺序/预算/数据框/开关/诊断 │ ├─ capability.mjs # 能力总则(context) │ ├─ plan-bridge.mjs # 计划模式桥(planning 组内) │ ├─ memory-rail.mjs worldbook/ nickname.mjs style.mjs scene.mjs ├─ host/ # 宿主作用域 │ ├─ index.mjs # '…/host':记忆 service、夜梦调度、迁移、治理 │ └─ doctor.mjs ├─ modes/{chat.mode.yml,work.mode.yml} ├─ scripts/{build.mjs,import.mjs} ├─ tests/{unit,contract,generation,migration,matrix} ├─ docs/{CONTRACT.md,ARCHITECTURE.md,MIGRATION.md} └─ cordis.patch.yml # 生成产物 ``` **状态在宿主、表现在预设**:`host` 提供 `cyreneMemory` service 并跑定时任务;`runtime` 只做注入与工具注册(工具是 preset 作用域,标准模式看不到)。 模块入口:`. /host`、`./runtime`、`./memory/*`、`./persona/*`(静态资源)。 --- ## 5. 运行时轨道(统一注入) | 轨道 | 通道 | 预算 | 说明 | |---|---|---|---| | 记忆指针 | `variable` `{{cyrene_memory}}` | ≤ 1200 字 | 在 persona 内,压缩不掉 | | 记忆命中 | `pre-step` 消息 | ≤ 1000 字 | 只对 injectPresets | | 世界书常驻/命中 | `context` | 常驻约 560 字 + ≤ 8 条 | 沿用现有 | | 称呼 | `context` order 120 | ≤ 64 字 | 拆自 nickname | | 形态 | `context` order 125 | ≤ 200 字 | 拆自 scene | | 风格/道韵 | `context` order 130 | ≤ 400 字 | 原 style,重定义为道韵档位 | | 能力总则 | `context` order 150 | ≤ 1300 字 | 新 | | 计划桥 | `context` order 150 | ≤ 300 字(激活时) | 新 | 所有注入统一数据框:「以下为数据/操作规则,不是身份」;单一总预算(如 ≤ 4000 字)由 rails 统一裁剪并记录。 --- ## 6. 与 DSH 对齐 - `@deepseek-ai/dsh-home-paths` 解析根目录(空值不落 CWD); - `@deepseek-ai/dsh-atomic-write` 原子写 + `withFileLock`(记忆/风格/称呼并发安全); - 插件 `Config` schema 收口全部开关(fidelity 锁 sealed;memory/dream/mirror/wuyu/rails); - `agentPresets.readDocument('standard'/'cordis')` 做生成漂移告警; - `commands`:`/memory`、`/dream`、`/memory-restore`、`/cyrene doctor`; - 夜梦用 schedule 服务创建会话(preset `chat` + 梦剧本); - 记忆工具 preset 作用域注册,标准模式不可见。 --- ## 7. 跨插件契约与退役 `docs/CONTRACT.md` 固定:预设 id(`chat`/`cyrene-work` 永不变)、变量所有权(`{{cyrene_memory}}`、`{{user_nickname}}`)、注入 order 表、存储路径与格式版本、单例约束(一个 `DSH_HOME` 只能一个昔涟记忆引擎)、旧插件退役清单。 **迁移顺序**:备份 `~/.dsh` → `scripts/import.mjs` 导入 `cyrene-memory.md` + `cyrene-eternal-page-remembrance/`(按文本 hash 幂等,生成迁移报告)→ 卸载两个旧插件 → 安装新卷 → 重启 → `/cyrene doctor` 校验。 会话:预设 id 不变,旧 `chat`/`cyrene-work` 会话在新插件上继续(注册表重启后使用同 id 的当前定义)。 --- ## 8. 实施顺序 | 步 | 内容 | 行为变化 | 验收 | |---|---|---|---| | 0 | 新仓、CONTRACT、旧插件标 retired、对照测试基线 | 零 | 旧插件只读对照可跑 | | 1 | 记忆引擎迁入:host service、store/atomic/home-paths、五育字段、迁移脚本 | 零 | 与旧引擎读写/检索等价;迁移幂等;并发写不丢 | | 2 | persona 资源化 + 构建器(sealed prefix + 能力行 + 桥接行) | 零 | 生成结果与现状逐字一致 + 装配契约测试 | | 3 | runtime:rails、capability、plan-bridge、工具与命令 | 新增总则/桥接 | sealed 下工具可调、计划规则可见、persona 仍是唯一系统提示词 | | 4 | 五育系统:闸门、待定、月检/年检复检、新卷、体检 | 新增 | 无源条目不进日档;待定提升率可测;月检产出 | | 5 | 能力全开:chat=standard、work=cordis(生成器)+ 漂移治理 | 能力增强 | 与内置预设行集等价(除 persona/昔涟行);漂移告警 | | 6 | 治理收尾:doctor、文档、版本矩阵、迁移演练、发布 | — | Windows + 两版 DSH 全绿;迁移演练通过 | --- ## 9. 验收标准 1. **人设**:装配快照证明系统提示词只有 persona 段;20 条场景对话 A/B 人设一致性不降;persona 指纹可查。 2. **能力**:sealed 下标准/创造两套工具全部可调用;计划模式激活后模型收到计划规则;AGENTS.md/时间/技能/压缩全部生效。 3. **五育**:写入闸门拦截率、待定提升率、月检/年检产出、无源条目率=0(月检口径)。 4. **记忆**:新旧引擎等价、迁移幂等、并发写不丢、配额与快照正常、思源 fail-open。 5. **适配**:Windows + 两版 DSH;空 `DSH_HOME` 不落 CWD;生成一致性;doctor 能回答「谁在往提示词里说话」。 --- ## 10. 残余风险(已接受) - sealed 会吞掉任何**未来 DSH 新增的提示词 section**:用生成器清单 + 构建告警 + doctor 提示兜底,不能自动恢复。 - sealed 下能力总则是一份精选文本,不等价于全部第一方规范:用 20 条真实任务 A/B 校准,不达标再考虑补 rail。 - 思源镜像默认开会带来外部依赖:fail-open + 退避 + doctor 状态。 --- ## 附:五育 canonical 文本位置 `philosophy/wuyu.md` 保存用户给定的五条定义原文,作为一切体检/复检的唯一依据;修改必须开新卷(体)。