前言¶
在 DeepSeek Harness(DSH)里给智能体加「会用电脑」的能力,常见做法是手写 Skill 文档、逐步描述点击路径和快捷键。用户在 macOS 上实际演示一遍工作流,往往比文字描述更准,但演示本身不会自动变成 Harness 能调用的 Skill。
humblebanana/dsh-record-replay 是社区维护的工作流类插件(SkillHub 分类:工作流,GitHub 10 stars)。它把 Open Record/Replay 这套 macOS 录制器接入 DSH,注册 open-record-replay skill 和六个面向模型的 orr_* 工具,让 Agent 能录制用户演示、校验证据,并打包给宿主 Skill Creator。
这是什么¶
dsh-record-replay 由 humblebanana 维护,当前版本 v0.2.0,MIT 许可证。插件本身不实现底层录制,而是调用本地 open-record-replay 仓库里的 bin/orr.js,把录制会话和事件流暴露为 Harness 工具。
整条链路如下:
user demonstrates a workflow
-> orr_record_start (capture session.json + events.jsonl)
-> orr_record_stop (finalize)
-> orr_session_validate (check the evidence against the contract)
-> orr_session_events (read what the user actually did)
-> orr_skill_prepare (package a skill-input directory)
-> host skill creator
核心功能¶
Skill 与工具¶
插件注册 open-record-replay skill,并提供以下 orr_* 工具:
| 工具 | CLI 映射 | 作用 |
|---|---|---|
orr_permissions_check |
permissions check |
录制前检查 Accessibility / Input Monitoring 权限 |
orr_record_start |
record start |
开始捕获用户演示 |
orr_record_stop |
record stop |
结束并落盘会话 |
orr_session_events |
session events |
读取 events.jsonl 证据流,可通过 limit 限制条数 |
orr_session_validate |
session validate-recording |
按官方契约校验录制结果 |
orr_skill_prepare |
skill prepare |
为宿主 Skill Creator 打包 skill-input 目录 |
orr_skill_create |
—(内置) | 无宿主 Skill Creator 时的回退:按 Anthropic skills spec 从录制会话生成 SKILL.md 骨架,并安装到 ~/.agents/skills/<name>/ |
CLI 以会话工作区为当前目录运行,录制产物和 skill 包会落在 Agent 文件系统工具可读的位置。
运行环境要求¶
- macOS(录制后端为 Swift,需 Xcode Command Line Tools)
- Node.js
>= 22.19(Harness 运行时) - 已安装 DeepSeek Harness
- 本地 checkout 一份 open-record-replay,供插件调用其
bin/orr.js
安装与启用¶
先做构建,再把包加入 profile:
git clone https://github.com/<you>/dsh-record-replay.git
cd dsh-record-replay
pnpm install
pnpm build
pnpm pack # produces dsh-record-replay-0.1.0.tgz
dsh plugin --profile web add ./dsh-record-replay-0.1.0.tgz
dsh plugin add 会把包写入 profile 的 package.json 依赖和 dsh.profile.bundles,Harness 会修复 profiles/node_modules 回退路径以便解析 bundle。
插件随附 cordis.patch.yml 挂载一行中性配置。在 profile 的 cordis.patch.yml 里覆盖 repoRoot,指向你的 open-record-replay 路径:
- id: record-replay
config:
repoRoot: '/absolute/path/to/open-record-replay'
runsOut: 'runs'
skillInputsOut: 'skill-inputs'
profile patch 支持热加载,运行中的 GUI 一般无需重启即可识别;若不在 live profile 上,需重启 Harness。
配置项¶
| Key | 默认值 | 含义 |
|---|---|---|
cliPath |
环境变量 ORR_CLI_PATH |
bin/orr.js 的显式路径,优先于 repoRoot |
repoRoot |
环境变量 ORR_REPO_ROOT |
open-record-replay 仓库根目录,CLI 为 <repoRoot>/bin/orr.js |
runsOut |
runs |
相对工作区的录制目录 |
skillInputsOut |
skill-inputs |
相对工作区的 skill-input 包目录 |
典型用法¶
下面是一条可复现的 Agent 侧流程。
1、录制前检查权限:
orr_permissions_check
2、用户开始演示后启动录制,演示结束再停止:
orr_record_start
# 用户在 macOS 上完成操作演示
orr_record_stop
3、校验录制并按需读取事件:
orr_session_validate
orr_session_events
4、打包 skill-input,交给宿主 Skill Creator;若无原生创建器,可用内置回退:
orr_skill_prepare
# 或
orr_skill_create
经过上面的步骤,一次桌面演示会落成 session.json、events.jsonl 和 skill-input 目录,供后续 Skill 生成与安装。
适用场景与注意¶
适合谁: 在 macOS 上用 DSH 做 computer-use 或工作流自动化的开发者;需要把「我做给你看」转成可复用 Skill 的场景。
平台限制: 仅支持 macOS,且依赖本机 open-record-replay 与系统辅助功能、输入监控权限。
安全与信任: 插件以当前 DSH 进程权限运行,会调用本地 CLI 读写工作区文件。安装前请阅读 GitHub 源码 与 MIT 许可证,确认 repoRoot 指向可信的 open-record-replay checkout。
DSH 生态遵循「一切皆插件」;SkillHub 是独立社区目录,与 DeepSeek / 幻方无官方从属关系。