← Back to home@deepseekharness-dsh

agent-mode-change

Agent-mode floating window for DeepSeek Harness (dsh): a draggable Web-UI panel that switches a session's system prompt between the harness's own prompt and 13 archived coding-agent CLI prompts (Claude Code, Codex, Antigravity, Grok, Kimi, MiniMax, opencode…). dsh plugin / Cordis bundle, log-safe via /agent.

Stars
0
Language
JavaScript
Created
Sep 29, 2026
Updated
Sep 29, 2026
GitHub repo

Introduction

Agent Mode Change

DeepSeek Harness 的 Agent 模式悬浮窗。 一个可自由拖动的 Web UI 面板,把当前会话的系统提示词在「本机提示词」与 13 个主流编码 Agent CLI 的归档提示词之间一键切换。

CI npm npm downloads license node

语言 / Language: 中文 | English:GitHub · Gitee

状态: ✅ 已发布 npm agent-mode-change@1.0.0 · CI 通过 · Node ≥ 20 · MIT

关键词: DeepSeek Harness · dsh · dsh-plugin · Cordis · AI Agent · Coding Agent · System Prompt · Prompt Engineering

仓库: GitHub | 镜像 Gitee | npm agent-mode-change


为什么需要它

同一套模型,在不同的编码 Agent 里被框定成完全不同的助手。想看清这件事,你得先能方便地来回切。

  • 对照不同 Agent 的框法 —— Claude Code、Codex CLI、Antigravity、Grok、Kimi、MiniMax、opencode、Pi…… 逐个切换,同一个问题看它们各自怎么答。
  • 提示词考古与复现 —— 归档提示词是定稿文本,可以长期复现某次采集下的行为,而不是随着上游逐版漂移。
  • 不打断心流 —— 悬浮窗随时在侧,点一下即切,不必记住 /agent 的参数;收起后只剩一枚显示当前模式的小胶囊。

功能亮点

能力说明
🪟 可自由摆放的悬浮窗shell.overlay 帧级浮动层;按住窗口任意位置即可拖动,收起后的胶囊也能拖
💾 位置与开合状态自动记忆存在浏览器 localStorage,刷新、重开会话都还在原处;视图尺寸变化时自动夹回可视区
🎯 一键回到默认位置标题栏 ⊙ 控件;Escape 直接收起
🔄 实时状态当前模式来自 Host 侧会话投影,切换后即时更新,不轮询、不折叠会话事件
🧾 会话日志安全切换走的是官方 /agent <id> 命令本身,日志里留下的还是那张 /agent 卡片,可追溯、可复现
🌏 中英双语两种界面语言随 dsh 语言设置切换
⚡ 热更新友好开发时改 client.js,dsh 的 client-modules 会在浏览器里热重载
🔒 零网络、零文件写入不联网、不注册工具、不注入提示词、不修改任何已有日志内容(详见权限与副作用)

可切换的 13 个 Agent 模式

除默认模式外,窗口列出下列归档提示词(版本随 @deepseek-ai/dsh-agent-emulation 更新):

模式目录 id归档版本
Claude Codeclaude-code2.1.283
Codex CLIcodex0.157.1
Antigravity CLIantigravity1.2.12
Grok Buildgrok1.0.41
MiniMax Codeminimax-code3.0.74
Kimi Codekimi-code2.1.1
MiMo Codemimo0.1.13
OpenClawopenclaw2026.9.6
Hermes Agenthermesv2026.9.24
Kimi CLIkimi1.51.0
opencodeopencode1.18.32
Pipi0.87.1
Oh My Piomp18.3.5

以及第一行 DeepSeek Harness —— 本 harness 自己实时组装的系统提示词(默认模式,等价于 /agent off)。

说明:@deepseek-ai/dsh-agent-emulation 随包提供 14 份归档提示词,其中 dsh 那份与默认模式同名,因此不在列表中;需要那份定稿文本时用 /agent dsh 手动选择。

安装

# 1) 从 npm 安装(插件市场收录后也用这条命令)
dsh plugin --profile <profile> add agent-mode-change

# 2) 或从本地仓库安装
dsh plugin --profile <profile> add /absolute/path/agent-mode-change

装完刷新一次 Web 页面即可看到悬浮窗(默认出现在右上角)。

使用

操作效果
点任意一行切换当前会话的模式
按住窗口任意位置拖动移动悬浮窗(列表滚动条除外)
点标题栏 –收起为一枚显示当前模式的小胶囊
点胶囊展开
点标题栏 ⊙回到默认位置(右上角)
按 Escape收起

切换从下一步生效:会话正在跑的回合结束后即用新模式;如果此刻有回合在跑,命令结果里会写明「applies from the next step」。

工作原理

        ┌──────────────────────── DeepSeek Harness (Host) ────────────────────────┐
        │                                                                          │
 会话日志 │  agent-emulation/select  ──▶  @deepseek-ai/dsh-agent-emulation          │
 (唯一真源)│                              (自带 host-only 投影 agentEmulation)    │
        │                                          │                               │
        │                   本插件 Host 半边 ───────┘ 折叠同一事件                 │
        │                   index.js → 投影 agentModeChange                        │
        │                   (客户端可见:当前选择 + 提示词目录)                     │
        └───────────────────────────────────┬──────────────────────────────────────┘
                                            │ 会话投影(拉/推都由框架负责)
        ┌───────────────────────────────────▼──────────────────────────────────────┐
        │  本插件 Client 半边  client.js                                             │
        │  shell.overlay 悬浮窗 ── 读投影 ──▶ 渲染当前模式与 13+1 行列表               │
        │         │                                                                 │
        │         └── 点选 ──▶ ctx.remote.commands.execute('/agent <id>') ───────────┼──▶ 官方
        │                                                                           │   命令
        └───────────────────────────────────────────────────────────────────────────┘
  • Host 半边(index.js)只注册一个客户端可见的会话投影 agentModeChange:折叠 agent-emulation/select,并把已安装的 dsh-agent-emulation 包里的 prompts/sources.json 目录一并投给浏览器。官方投影 agentEmulation 是 host-only(没有 client view),浏览器读不到当前选择;一个只有读视图的投影是最弱的补法 —— 它不写任何事件。
  • Client 半边(client.js)在 shell.overlay 注册窗口:用 useSessions 找主视图会话,用会话绑定的 projections.faceOf() 读投影,用 ctx.remote.commands.execute() 执行 /agent <id>。localStorage 只存窗口自己的位置与开合状态。
  • 因此会话日志始终是唯一真源:插件不新增事件类型、不改写历史,fork / resume 之后选择自然还在。

更细的数据流、不变量与能力对照表见 docs/ARCHITECTURE.md。

权限与副作用

类别具体内容
执行一条 host 命令(/agent off 或 /agent <id>,等价于用户在输入框手打):产生普通的 command/run + command/done,选择变化时再产生一条 agent-emulation/select
读取一个会话投影(键 agentModeChange)
写入两个浏览器 localStorage 键:agent-mode-change/anchor、agent-mode-change/open
不做❌ 不联网 ❌ 不读写文件 ❌ 不注册工具 ❌ 不注入提示词 ❌ 不修改已有日志内容

兼容性

项要求
DeepSeek Harness开发版本 0.1.7-rc.2
@deepseek-ai/dsh-agent-emulation必须已安装并启用 —— /agent 命令、emulate_agent 工具与提示词目录都由它提供。没有它时窗口仍会出现,但会提示命令不存在
客户端Web(dsh.client.platform: web)
Node≥ 20

常见问题

切换后为什么没立刻变? 选择从下一步生效。正在跑的回合会先跑完;命令结果会明确写「applies from the next step」。

会影响当前对话或历史记录吗? 不会。只替换系统提示词;工具、沙箱、会话日志都是本 harness 自己的,历史一条不动。

装完要重启 dsh 吗? 不用,插件行是热加载的;刷新一次浏览器页面即可看到窗口。

数据会上传到别处吗? 不会。插件不发起任何网络请求;它只是把已有的会话投影显示出来,并把你的点选翻译成一条本地命令。

为什么只有 13 个模式? 以 @deepseek-ai/dsh-agent-emulation 随包目录为准,与它保持同步;该包更新后列表自动跟随。

能加自己的提示词吗? 目前不行(见路线图);上游包加上新目录条目后,这里会自动出现。

它和 /agent 命令冲突吗? 不冲突,它就是那条命令的图形化外壳:你手打 /agent 和点悬浮窗走的是同一条路径。

开发

git clone https://github.com/deepseekharness-dsh/agent-mode-change.git
cd agent-mode-change
npm test          # node:test:投影折叠 + bundle 清单 + client 包静态检查

目录结构:

index.js               Host 半边:会话投影 agentModeChange
client.js              Client 半边:shell.overlay 悬浮窗(纯浏览器模块,无构建步骤)
cordis.patch.yml       bundle 层:插入本插件的 Host 行
locale/{zh,en}.json    插件卡片的中英文标题与描述
test/*.test.mjs        node:test 测试
docs/ARCHITECTURE.md   数据流、不变量、能力对照、测试覆盖
docs/RELEASING.md      发布流程(npm / GitHub / Gitee / 收录 PR)

本地联调:dsh plugin add /path/to/repo 装进任意 profile,或用 plugin_manager 的 install_bundle 指向该目录;client.js 的改动会被 client-modules 监听并热重载。

路线图

  • 模式搜索 / 过滤框(列表变长后的检索)
  • 键盘快捷键(不点鼠标即可切换)
  • 自定义提示词目录(在随包目录之外挂自己的归档)
  • 每个会话记忆展开/收起状态
  • 更多客户端形态(非 Web)

语言 / Language: 中文 | English:GitHub · Gitee

许可与致谢

MIT © deepseekharness。归档提示词文本的版权归各自厂商所有,采集自 phistory,由 @deepseek-ai/dsh-agent-emulation 随包提供; 本插件只显示目录里的 id / 名称 / 版本,不复制、不转发任何提示词正文。

相关链接:DeepSeek Harness · dsh-agent-emulation · dsh 插件精选列表 · dshmarket · phistory