用 DeepSeek Harness 创造模式做个 PaiCLI 终端测试插件
我们借助 Codex 完成了第一个 DeepSeek Harness 桌面端插件 paiwarp-dsh。
这个插件提供了一个伪终端,自动完成了 PaiCLI 第 1 期 ReAct 的编译、启动、输入提示词、截图和录屏。
那,DeepSeek Harness 本身就是桌面端 Agent,能不能不借助 Codex,让 DeepSeek Harness 自己给自己写一个插件呢?
答案是肯定的。

DeepSeek Harness 插件管理页面的右上角有一个“让 Agent 创建插件”的入口。点进去以后,桌面端会切换到专门用来开发插件的创造模式,并自动加载插件的开发规范和项目模板。
我们只需要在输入框里写清楚插件的目标、工具名称、界面布局和验收条件,DeepSeek Harness 就会在当前仓库下建好插件目录,写好前端和后端代码,还会自己运行自检,发现问题后自行修复。
PaiCLI 第 2 期讲的是 Plan-and-Execute 和 DAG 并行执行。测试第 2 期需要做四类操作:
- 输入命令;
- 往终端里粘贴带换行符的并行规划提示词;
- 在计划审阅界面按
I键,补充要求; - 按
Shift+Tab组合键,把会话切换到PLAN模式。
01、进入创造模式
打开 DeepSeek Harness 桌面端,在左侧导航栏切到“插件”页面。页面右上角有一个“添加插件”按钮,平时用来安装已经写好的本地插件目录或压缩包。点击这个按钮右侧的下拉箭头,菜单里会出现“让 Agent 创建插件”。

点击“让 Agent 创建插件”后,桌面端会新建一个会话,并在底部输入框上方显示橙色的“创造模式”标签。
插件之后要在独立的伪终端里编译 Java 工程,用无头浏览器(在后台运行、不显示窗口的浏览器)把终端画面渲染成图片,合成 MP4。所以在生成插件之前,先在系统终端里运行下面这组命令,确认本机已经装好这些工具:Java、Maven、Python 虚拟环境、Playwright(用来控制无头浏览器的自动化库)、pyte(在内存里模拟终端屏幕内容的 Python 库)和 ffmpeg(音视频编码与合成工具)。
cd /Users/itwanger/Documents/GitHub/paicli
java -version
mvn -v
/tmp/paiwarp-venv/bin/python -c "import pyte, playwright; print('python deps ok')"
ffmpeg -version | head -n 1
这里沿用了之前创建的 /tmp/paiwarp-venv 虚拟环境。如果你的机器上还没有这个虚拟环境,执行下面三条命令即可,一般两分钟内就能装好。
python3 -m venv /tmp/paiwarp-venv
/tmp/paiwarp-venv/bin/pip install pyte playwright
/tmp/paiwarp-venv/bin/python -m playwright install chromium
另外还要检查仓库根目录下的 .env 文件,确认里面配置了可用的大模型密钥,比如 DEEPSEEK_API_KEY。否则稍后在伪终端里启动的 PaiCLI 无法调用模型生成执行计划。
02、生成插件
为了让创造模式一次写出符合预期的插件,提示词里要写清楚这几项:
- 插件目录放在哪里
- Cordis 怎么配置
- 工具叫什么名字
- 界面怎么布局
- 以及测试时要依次执行的终端操作。
Cordis 是 DeepSeek Harness 底层的插件框架,负责插件的依赖注入和生命周期管理。

上图是刚把提示词填进输入框时的界面。对话开始后,Agent 会先读取仓库里第 2 期教程的原文,整理出四个测试阶段:串行计划、并行 DAG、按 I 键修订计划、按 Shift+Tab 切换模式,然后在左侧会话区列出插件的目录规划。

如果你想在自己的 DeepSeek Harness 里重现这个过程,把下面这段提示词复制到“创造模式”里发送即可。提示词里的“复跑”指的是把第二章教程里的操作完整地重新执行一遍。
请用 DeepSeek Harness 的创造模式,在当前仓库的 plugins/paiwarp-creator 目录下创建一个可本地安装的插件:
1. package.json 的 name 设为 paiwarp-dsh-creator,displayName 设为「PaiWarp 创造版」,description 写清楚这是由 DeepSeek Harness 创造模式创建、用于自动运行 PaiCLI 第二章教程(docs/articles/build-agent-p2-plan-execute.md 第 09 节「跑起来看看」)并生成截图与录屏的插件。
2. cordis.patch.yml 的 id 设为 paiwarp-creator,配置 runRoot 为 cases/paiwarp-creator/runs。
3. 注册两个工具:
- paiwarp_creator_run_chapter_two:启动隔离工作区与伪终端会话,返回等待第一步输入的状态。
- paiwarp_creator_terminal_input:由 DeepSeek Harness Agent 逐步向伪终端输入命令或按键(mvn clean package、启动 jar、串行 /plan、ENTER、并行 DAG /plan、I、补充要求「汇总时用表格输出」、ENTER、SHIFT_TAB、普通任务、ENTER、/exit)。
4. 注册命令 /paiwarp-creator(支持 view、pause、resume、stop、key),并在右侧 ActivityBar 挂一个独立面板,左边显示步骤清单与检查项,右边实时展示伪终端画面、终端文本、四张截图和最终 MP4 录屏。
5. 严格不修改原教程 docs/articles/build-agent-p2-plan-execute.md,只把替换了新截图路径的教程副本写到本次运行产物目录的 build-agent-p2-plan-execute.paiwarp-creator.md。
创造模式把插件代码写进 plugins/paiwarp-creator 目录后,先不用急着去插件页面安装。
可以在同一个会话里再发一条自检指令,让 Agent 调用插件的底层脚本把整个流程跑一遍,确认工具的输出格式正确、18 项检查全部通过。
请直接在当前创造模式会话里自检 plugins/paiwarp-creator:运行一次完整的第二章复跑,检查 host.js 的工具输出 schema、构建产物检查、并行提示词输入方式,以及 18 项检查结果是否全部为 true。

从自检截图可以看到,Agent 在真实终端里跑完一轮测试后,控制台输出了三行结果。
checks_all_true true 表示 18 项检查全部通过,ledger_entries 40 表示会话日志里有 40 条记录,video_duration 188.62 表示录屏时长为 188.62 秒。
会话日志是 PaiCLI 按时间顺序记录会话中每一个事...
未能定位到原文的划线
真诚点赞 诚不我欺
回复