# 人设加载(0.8.5) ## 一个编辑源 唯一源文件是 `$DSH_HOME/pod-persona.md`,可用 `BILI_POD_PERSONA` 覆盖。设置页、人设 CLI 和调度器共用同一解析器及保存函数。修改只编辑源文件,工作区 AGENTS.md 是生成内容。 运行时不会回退到 `~/.bili-ai/persona.md`,启动时也不会自动复制旧文件。源缺失时明确提示人设未加载,设置页仍可用。首次迁移可显式执行 `persona import-legacy`;当前源已存在时不会覆盖。 ```text persona info persona show persona save --file <修改后的完整人设文件> persona import-legacy ``` `show` 输出全文;`save` 验证完整修改稿,写回唯一源并同步投影。保存上限 20000 个 JavaScript UTF-16 单元,超限拒绝而不截断;字符数不是 token 数。CLI 不接受空稿,清空需在设置页显式操作。 ## 会话身份与全文 支持 `system-prompt/assemble` 的宿主,会在组装当前模型请求时,用唯一源全文替换小鲸鱼的 `deployment:persona-prefix`,覆盖继承的编程代理身份。按组装上下文的 Agent ID 限定作用范围,保留其他系统提示、工具指导和权限规则。正文按字面处理,不把 `{{...}}` 当提示模板变量。每次组装重读源,因此首个请求和当前修改都立即生效;源缺失或为空时保留原组装结果,插件停止时注销监听。该处理不能放在 `agent/pre-step`:宿主先组装系统提示,再执行 pre-step,届时注册身份对当前请求已经太晚。旧宿主继续使用工作区全文加载。 工作区投影继续包含全文,供原生文件指令、手工查看与自改使用。因此支持身份绑定的宿主可能同时保留系统身份正文和工作区正文,二者来自同一源;不能将两份相同正文理解为两个编辑入口。 源文件可选写 `## 开口时` 章节。这一节仍完整保留在正文里,并额外放在工具说明之后,提醒模型在查完资料后延续人物口吻。支持多段内容及字面模板字符,不截取为单行;没有该章节时不添加提醒。提醒不替换工具、权限及其他系统说明,也不形成第二份配置。 ## 全文进入上下文 正文和全部语气示例一起加载。示例章节只用于统计,不再从正文移除,没有关键词筛选及两段上限。示例仅参考语气,不能自动成为真实经历。 `workspace`:全文同步到工作区 AGENTS.md 的 `dsh-bili-pod:persona:start/end` 标记区,由 DSH 原生 `agent-instructions` 加载。每轮任务带版本、唯一编辑路径和日记入口;原生机制替换文件的旧版本,不向每轮任务重复追加全文。 生成标记区不是第二个编辑源。误改后会在下次同步被源重建,提示与 CLI 均说明这一点。原有非鲸群内容保留;标记损坏时报错,保存操作不会覆盖源和投影。 `inline`:同一份完整人设和全部示例随任务消息注入,兼容没有原生工作区指令的 DSH。会话 cwd 不是小鲸鱼工作目录的同一实际目录时,也会警告并改用 inline。C/F 目录联接按实际目录比较。 每次投递前重读源;支持 `agent/pre-step` 的宿主也会在小鲸鱼会话每个模型步骤前同步,涵盖直接在 DSH 聊天。普通人设编辑不需重启;升级加载器首次需要组件重载。 已核对的宿主默认工作区指令预算是 65536 字节;本地生成区超限明确拒绝,不截断。全局及祖先目录共享宿主预算,部署时需核对总量。文件和消息都消耗模型输入 token;完整进入上下文不等于每次表达必然遵守所有设定。 ## 私信投递 主人私信的预算、审核、发送和日记步骤放在消息之前,主人的原话放在投递内容最后。这样本轮最后需要回应的是聊天内容,操作规则仍完整保留。女主人分支的流程不变。 ## 日记和存档 近期交流延续原会话。旧经历继续使用 records/INDEX.md、分类记录、关键词 recall 和相关日期查询;不自动注入所有日记,不增加每轮摘要或向量检索。旧口音本及历史纠错不覆盖当前人设。 设置页显示源、版本和模式。基本身份配置只提供缺省值。存档仍保存 `home/persona.md`,导入写入当前源。备份导出兼容尚未迁移的旧文件,不代表运行时会回退旧人设。私人人设、日记、配置不提交公开源码仓库。 ## 核验 离线检查覆盖全部示例、修改后换版、旧源不回退、CLI 与设置共用读写以及生成区重建。部署另核对实际源、生成区、组件日志与应用进程;不代发真实私信验证。