DSH 角色养成插件(dsh-cultivation)
背景
DSH(DeepSeek Harness)是面向 Agent 的 Web 界面。日常使用中,每次对话都是「全新」的——没有持续的人设、没有关系积累,记忆只能靠把历史上下文硬塞给模型,成本高且容易丢失。希望 AI 陪伴有「养成感」:角色有完整背景、会随对话成长、记得彼此之间发生过什么,且数据完全本地、不上传、不浪费 token。
目标
做一个可直接安装到 DSH Web 的插件,覆盖五块能力:① 会话级角色绑定——新会话选择角色后锁定(仅可开关);② 角色档案——完整人设(成长经历/教育/职业/创伤/秘密等),内置 AI 设计助手(设计师/访谈)辅助生成;③ 好感度系统——随对话自然变化、分五阶段(冷淡 → 客气 → 熟络 → 亲密 → 依赖)、语气与称呼随阶段调整、由系统维护不可直接修改;④ 记忆系统——分区存储(长期事实/用户信息/关系状态/承诺/事件)+ 追加式日志自动归档,跨会话累积且防丢失;⑤ 资源纪律——角色段仅注入根会话、子代理不受影响,不浪费 token。
过程
独立完成产品设计 + 工程实现,采用 Host + Client 双半区插件架构:Host 侧负责数据持久化(按 key 合并防并发覆盖)、本地 API(load/save/chat/session-set/template-delete/avatar*)、按会话注入角色段(子代理跳过)、好感度工具 + 定期独立校准、记忆系统(分区 + 追加式日志 + 自动归档 + 日期纪律);Client 侧负责角色库、新会话选择弹窗、编辑弹窗(表单 + AI 助手 + 预览 + 头像)、会话页角色 chip / 好感度指示 / 消息头像,复用 DSH 官方组件与设计 token 保持一致体验。实现上零依赖、纯 JavaScript、无需构建,通过 package.json 的 dsh.client 声明让 DSH web 插件表自动发现客户端;交付前用自研 check 脚本做语法、工具名(模型 API 限制)、零外部 import、client bundle id 一致性预检。
结果
已发布至 npm(v0.3.0-beta.1)并在 GitHub 开源(MIT):通过 pnpm add dsh-cultivation + cordis.patch.yml 插入块一键安装,数据版本自动迁移(v1 → v6)。完成 Phase 1-4(角色档案表单、AI 设计助手、好感度养成、记忆系统 v3,131 个测试全过),Roadmap 剩余云端同步 / 更多角色模板 / 记忆可视化。案例体现从产品判断(记忆不整包重写、token 优化、防篡改)到工程实现(零依赖插件、双半区架构、数据迁移)的完整闭环,是 Agent 工程实现能力的可验证交付物。
原型演示
演示/代码托管于外部平台,请在新窗口打开(公开链接)。