前言¶
在 DeepSeek Harness (DSH) 的使用场景中,Agent 的回复通常以纯文本呈现。如果需要在回复中直观展示当前状态(如角色设定、心情、当前任务等),需要在每次对话中手动拼接代码块或 Markdown,这不仅繁琐,且难以维护统一的格式。
dsh-status-card 是一个由 liqiming-whu 维护的 DSH 插件。它的核心功能是在每次 Agent 回复的正文开头,注入一段可配置的 dsh-ui 状态卡片指令。这利用了 DSH 的系统提示注入机制,不干扰对话历史,能够为 Agent 的回复提供统一的视觉状态展示。
核心功能¶
该插件提供以下能力:
- 回复注入:在每次 Agent 回复正文开头输出内联
dsh-ui状态卡片。 - 无历史干扰:通过
ctx.systemPrompt.section()注入格式指令,不追加用户或助手对话历史。 - 视觉风格:使用 emoji 代替 Material Icons,适配不同风格。
- 内置模板:提供六款内置模板(A 软萌活力、B 极简专注、C 专业工作、D 星舰科技、E 温暖陪伴、F 开发者终端)。
- 高度可配置:支持启用/关闭开关、自定义卡片标题、自定义 GenUI JSON 模板。
- 设置页辅助:设置页提供实时卡片预览和自定义模板校验。
- 语言适配:自动检测浏览器首选语言,
zh开头使用中文,其他使用英文。 - 自定义限制:自定义模板限制为 64 KiB,必须包含非空
items数组。
前置要求¶
安装本插件前,需确保环境满足以下条件:
- 已安装 DeepSeek Harness。
- 终端可运行
pnpm。 - Web profile 上已安装并启用
@omdsh-dev/dsh-genui。这是渲染dsh-ui围栏的前置依赖。
安装¶
推荐安装稳定版本 v0.2.1:
dsh plugin --profile web add "git+https://github.com/liqiming-whu/dsh-status-card.git#v0.2.1"
安装完成后,重启 dsh web 并在浏览器中硬刷新页面。
使用¶
插件安装并启用后,在浏览器中打开设置页面,进入“状态卡片”选项:
- 启用/关闭:通过开关控制是否在回复中输出状态卡片。
- 修改标题:自定义卡片显示的标题文本。
- 选择模板:从内置模板库(A–F)中选择一款风格。
- 自定义模板:选择“自定义模板”以编辑严格的 GenUI JSON,需符合 64 KiB 限制和非空
items数组的要求。 - 预览与保存:在设置页查看实时预览,校验通过后保存。
浏览器端会读取 navigator.languages(以 navigator.language 作为回退),将检测结果同步到 DSH Settings。首选语言以 zh 开头时,设置界面、内置模板和系统提示注入使用中文;否则使用英文。
注意事项¶
- 会话生效:安装插件、切换浏览器语言或修改设置后,需要新建一个会话才能使新的状态卡片配置生效。已有会话不会自动应用新配置。
- 持久化:设置会通过 DSH Settings 服务持久化存储。
- 本地预览:设置页预览由插件本地实现,不跨插件导入 GenUI 客户端值,以确保客户端 bundle 纯度。
- 渲染依赖:必须先安装并启用 GenUI,聊天中的
dsh-ui围栏才会被正确渲染。
总结¶
dsh-status-card 通过在系统提示层面注入指令,实现了在 Agent 回复中动态展示状态卡片的能力。它减少了手动拼接格式的工作量,并提供了多种内置风格和自定义选项,适合需要在对话中强调角色状态或展示复杂信息的场景。