# DSH 个人中心 · 实施规划(v0.2 个人中心框架) > 目标:把设置里的「个性化」改造成像 Codex / ChatGPT 桌面端那样的**个人中心**—— > 设置导航新增「个人」分区,内含 **个人资料 / 个性化 / 语音** 三个 tab。 ## 0. 参考说明 - 参考图(附件截图)在规划期因视觉服务临时不可用(503)未能读取;本规划基于 用户文字描述 + DSH 现有 UI 能力编写。图中额外元素(头像、图表样式、其他 字段等)待图片可读后补充进方案,当前不支持的先不参考。 ## 1. 目标形态 设置面板导航区(常规 / 模型 / 插件 / 插件市场 / …)中: - 现有「个性化」导航项**改名「个人」**; - 点击「个人」,内容区显示 tab 栏(交互参考「插件」分区内的 tab:插件列表 / 插件控制台 / 技能): | Tab | 内容 | 状态 | |---|---|---| | 个人资料 | 累计 Token 消耗、今日/近 7 天用量、**按模型/提供方分布**、最长聊天时长、常用工具/插件、会话数 | 本期实现 | | 个性化 | 现有「自定义指令」多行文本框(原样迁入) | 本期迁入 | | 语音 | Omi 语音配置(停靠位) | 预留,后续 | ## 2. 技术方案 ### 2.1 结构(纯前端改造) - 仍是一个 `settings.section` 条目(id `personal-center`,label「个人」,order 30); - 该分区的内容组件**内置 tab 栏**(React state 切换,复用 DSH 设计令牌); - 「个性化」tab 直接复用现有 `CustomInstructionsSection`(命名空间 `custom-instructions` 不变 → 已存数据无缝延续); - **预留扩展点**:仿「插件」分区的 `settings.plugins.tab` 槽位(plugin-console 正是这样停靠的),本分区声明 `personal-center.tab` 槽,未来 Omi 等插件可 停靠「语音」tab,而无需改本插件代码。 ### 2.2 统计服务(宿主端,本期核心) - 新增宿主服务 + RPC(走现有 api-gateway / `connection.api` 通道): `personal-center/stats?range=today|7d|all`; - 实现:扫描会话日志目录 → 聚合 → **进程内缓存**(按天快照 / 新事件触发 增量刷新),避免每次打开面板全量重扫; - 隐私边界:只聚合数字,不读取对话正文内容。 ## 3. 统计字段与数据源(全部已确认存在于本机) | 字段 | 数据源 | 算法 | |---|---|---| | 累计 Token 消耗 | 会话日志 request header 的 usage(输入/输出/缓存) | 全量求和;可按 今日/7天/全部 切分,按模型分列 | | 按模型 / 提供方分布 | 请求路由的 provider + model | 按 provider+model 分组求和 Token/请求数;可选「估算成本」列(每百万 token 单价由用户配置,不硬编码价格) | | 今日 / 近 7 天用量 | 同上 + 请求时间戳 | 按天归组,渲染柱状图 | | 会话数与总轮次 | 会话目录 + turn 事件 | count | | 最长聊天时长 | 会话首条消息 ↔ 末条消息时间戳 | max(跨度),展示时长 + 会话标题 | | 常用工具 / 插件 | tool start/settle 事件 | 按工具名计数 Top N;MCP 按 `mcp____` 归组展示服务器分布 | 存储位置:`/sessions/**/session.jsonl.zstd`(0.7.0 起 home = `$DSH_HOME` 或 `~/.dsh`) 读取能力:`@deepseek-ai/dsh-session-persistence-jsonl`(应用同款,zstd 解压)。 ### 2.3 浏览器端渲染 - 「个人资料」tab:今日卡片(累计 Token / 轮次 / 工具调用)+ 近 7 天柱状图 (**纯 SVG 自绘**,不引入图表依赖,保持客户端 bundle 轻量)+ 工具 Top 列表 + MCP 服务器分布 + 最长聊天时长卡片; - 加载态 / 空态(无历史数据时给出引导文案)。 ## 4. 里程碑 | 里程碑 | 内容 | 依赖 | |---|---|---| | M1 框架 + 迁入 | 「个人」分区 + tab 栏 + 个性化 tab 迁入(数据不丢) | 无(纯前端,可立即做) | | M2 统计服务 | 宿主日志聚合 RPC + 缓存 | 无 | | M3 资料 tab 数据 | M2 数据接入 + SVG 图表 + 加载/空态 | M1, M2 | | M4 发布 | 截图、README 更新、git 推送、加 `dsh-plugin` topic | M3 | 建议顺序:**M1 + M2 并行起步**(M1 是纯前端、M2 是纯宿主,互不阻塞), M3 合流,一次重启验证。 ## 5. 待确认决策点 - [ ] a) 导航命名:确认用「个人」?(备选:「个人中心」) - [ ] b) 统计口径:累计 + 今日/近 7 天都做?(建议都做) - [ ] c) 个人资料是否含昵称/头像?本期建议**只做统计**,头像归 v0.3 - [ ] d) 「最长聊天时长」定义:会话首条 ↔ 末条消息的时间跨度(可附带会话标题) - [ ] e) 参考图里的其他功能:待图片可读后逐项核对,不支持的跳过 ## 6. 风险与对策 | 风险 | 对策 | |---|---| | 日志全量扫描慢 | 进程内缓存 + 按天快照 + 新事件增量刷新 | | DSH 升级(0.2/1.0)破坏 seam | 锁定 rc.6 兼容,升级后按 seam 变更适配 | | 图表引入重依赖 | 纯 SVG 自绘,零新增依赖 | | 统计口径与聊天统计行不一致 | 直接读权威日志,同一份数据源 | ## 7. v0.3+ 功能候选(Codex 基准评审) > 评审原则:只做 **DSH 原生不提供** 的聚合/成本/个性化能力,不重复 DSH 已有的 > (会话历史侧栏、模型选择、技能、工作流、密钥、MCP 配置、Plan 模式)。 | 优先级 | 功能 | 用户价值 | 数据可行性 | 成本 | |---|---|---|---|---| | P0 | **成本估算**(按模型 × 每百万 token 单价,单价用户自配) | 多模型成本对比落地 | usage 已有;单价存设置(自有路由) | 低 | | P0 | **缓存命中率**(cacheReadTokens 占比,按模型) | DeepSeek 缓存定价杠杆,省钱洞察 | `cacheReadTokens` 已在统计里 | 极低 | | P1 | **会话回顾**(最近会话列表:标题/日期/时长/token/模型,点击打开) | 找历史工作、回顾消耗 | `session/title` + 逐会话聚合 | 中 | | P1 | **用量导出**(CSV/JSON:按天/按模型) | 深度分析、报销、记账 | 宿主路由直接输出 | 低 | | P2 | **周报/月报**(本周/本月汇总,可复制文本) | 量化反馈强化 | 现有聚合扩展 | 低 | | P2 | **用量预算与提醒**(日/月 token 或成本阈值) | 防超支 | 需阈值存储 + 提醒面 | 中 | | P3 | 请求延迟/吞吐统计(per model) | 性能对比 | 会话 `sessionStats` 投影 | 中 | | P3 | 头像/昵称 | 拥有感(装饰) | 设置存储 | 低 | > 待确认:成本估算的单价配置入口(建议放在「个人资料」底部「估算成本」折叠区)。 ## 8. 状态更新(2026-08-20) ### 已完成 - v0.3:成本估算(峰谷/分币种/官方预设)、缓存命中率、会话回顾(排除归档); - v0.4.x:桌面宠物(数据驱动情绪黑鲸)——P0 素材/数据/阈值 + P1 静止行为/拖拽/极简面板/开关样式 + 对抗式审查修复,当前 **v0.4.22**; - v0.4.4:宠物更名「圆滚滚小黑鲸」;情绪变化时播放一次对应动画后回待机(行为与文档统一); - v0.4.5~0.4.15:双宠物「圆滚滚小蓝鲸」上线(blue-whale,第二皮肤);开关互斥只能启用一只;宠物列表两张完整配置卡;交替随机动画 + 启用唤醒;未启用卡静态;去 hover/选中视觉/灰底/圆角; - v0.4.16~0.4.22:小黑鲸升级 V2(偏 30°/去投影/细节);素材版本参数 `?v=` 绕过 immutable 缓存;角色尺寸统一(蓝鲸基准)并保留动画位移;桌面端浮层静止=睡觉;毛玻璃气泡 + 去投影;开关与会话库统一(brand-primary);气泡小尾巴裁剪修复; - v0.4.16:修复自定义指令"被清空/不生效"——旧版宠物布尔 `enabled` 触发 0.7.0 严格 schema 校验失败,连带回滚全部命名空间注册;schema 兼容布尔 + 注册隔离(见 PLATFORM-NOTES §12); - v0.5.0:会话状态概览——悬停宠物右上角「会话状态」按钮(或点击宠物)→ 毛玻璃面板实时列出会话状态(运行中/失败/已完成/待机 + 摘要计数);打开面板隐藏数据气泡、退出后恢复;失败如实标红(绝不伪装绿色成功);数据来自平台 `sessions` 投影,事件驱动、零轮询;点面板外或 ESC 关闭; - v0.5.1:统计修正——`outputTokens` 已含 reasoning,思考 token 不再重复计数,成本同因去重;npm 发布 `dsh-personal-center@0.5.1`; - v0.6.0:会话状态概览·动作级实时状态——running 会话实时显示「正在读取/执行命令/搜索」等动作文案,完成显示「就绪」绿徽标(对齐 Codex 桌面宠物); - **v0.7.0:个性化指令增强**(本版收口,PRD:docs/personalization/个性化指令增强-PRD.md)——个性化从"一条全局指令"升级为**分层体系**:全局(身份基线)+ 按工作区(cwd 最长前缀自动注入「全局+工作区」合并文本)+ 指令模板库(内置 5 个 + 自定义 + 一键「应用」)+ 注入预览(内联「指令应用示例」);因 0.7.0 把 systemPrompt 收进 agent scope,注入改用 `system-prompt/assemble` 事件通道(见 PLATFORM-NOTES §14);经用户多轮 UI 评审打磨(下拉选择器、模板独立框、路径短显示、标签清淡、点外部关闭等),交互约定沉淀至 AGENTS.md; - 宠物设计与实现细节见 [DESKTOP-PET.md](DESKTOP-PET.md) 与 [DESIGN.md](DESIGN.md)。 ### 宠物剩余项(按优先级) | 项 | 说明 | 依赖 | |---|---|---| | 素材帧间一致性 | happy 帧5(侧面)/ exhausted 帧5(倾斜)漂移 | 生图工具重生成 | | 角色精致度 | 用户反馈"效果不太好" | 素材侧迭代 | | 全屏移动 | 插件无法出 DSH 窗口;需官方浮层能力或独立小应用 | DSH 官方 / 独立项目 | | 悬停即动开关 | 可加「仅点击才动」配置项 | 低 | | 阈值设置项 | `PET_THRESHOLDS` 内置不可调 | 低 | | USD 币种钱包痛阈值 | 现为 ¥10 人民币语义 | 低 | ### 发布状态(已发布 v0.7.0) - ✅ GitHub 仓库:https://github.com/PolinniZhong/dsh-personal-center(本地与远端同步,活跃维护) - ✅ npm:https://www.npmjs.com/package/dsh-personal-center(`dsh-personal-center`,repository 指回 GitHub) - ✅ 官方展示帖:https://github.com/deepseek-ai/deepseek-harness/discussions/3595(`Show Your Plugins!`) - ✅ 主发布帖 https://github.com/deepseek-ai/deepseek-harness/discussions/3449 已更新至 **v0.7**(含版本历史 v0.1→v0.7) - ✅ 截图(宠物面板浅色/深色 + 五种情绪 GIF + **按工作区分层指令**)已入 `docs/screenshots/` - ✅ 2026-08-22:0.7.0 升级后 nav-icon 补丁已重打(见 docs/common/nav-icon-patch.md) - ⏳ awesome-dsh-plugin 收录 PR #2741(CI 已通过,待维护者合并;合并后 dsh-market 自动同步) - ✅ 发布记录:docs/common/已发布平台.md(GitHub / npm / 展示帖 / awesome PR / dsh-market 同步路径) - ⏳ 可选:仓库 About 区补 description + topics(`dsh-plugin` / `deepseek-harness` / `personal-center` / `usage-stats` / `desktop-pet` / `session-status`)