关于 watch-skill
Watch Skill 将视频、音频和屏幕活动编入索引并生成带时间戳的证据,另以独立验证契约检查文件、SQL 结果和 DOM 状态等输出。它面向需要搜索媒体内容或独立核验 Agent 工作的团队,也可通过命令行或 REST API 使用。
主要功能
- 01为媒体建立带时间戳的索引
- 02搜索转录文本、帧和 OCR
- 03在回答中引用具体时刻
- 04验证文件、JSON、SQL、HTTP 和 DOM
- 05提供确定性的验证结论
- 06通过 MCP、命令行或 REST 使用
适用场景
- 01询问录制内容
- 02跨已索引视频查找片段
- 03检查 Agent 的更改是否生效
- 04查看工具运行的证据
MCP 相关
`watch-skill` 包含一个提供 39 个工具的 stdio MCP 服务。MCP 客户端可借此使用媒体感知和验证能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
39收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| end | any | 否 | |
| start | any | 否 | |
| budget | any | 否 | |
| source | string | 是 | |
| question | any | 否 | |
| background | boolean | 否 |
详细介绍
Watch Skill · DeepWatch
赋予 AI Agent 视觉、听觉和可验证的结果。
Watch Skill 将视频、音频和屏幕活动转换为可搜索的带时间戳证据,并以确定性契约而非模型的主观判断回答 这真的有效吗? 将它添加到你目前通过 MCP 使用的 Agent 中。
DeepWatch 是一个开箱即用的 Agent 工作区,基于官方 DeepSeek Harness 构建,已集成 Watch Skill。工具调用会留下可打开的凭证,结果也能由生成它的 Agent 以外的程序进行检查。
Python · PyPI
Node · npm
质量门禁与目录
两种能力,可独立使用
感知。 视频、音频和屏幕活动会转换为帧、转录文本和 OCR 文本,每项内容都带有绝对时间戳。只需为来源建立一次索引,就能在保留期间持续查询;每个答案都会引用一个可打开的具体时刻。
验证。 冻结的契约——文件摘要、JSON 值、SQL 结果、HTTP 响应、DOM 状态——由独立进程评估。判定结果为 VERIFIED、FAILED、UNVERIFIED 或 INCONCLUSIVE,并非由大模型给出。
两者单独使用都很实用,有意将它们拆分开来。
|
### Watch Skill — 引擎
为录制内容建立一次索引,即可随时向它提问。答案会引用可打开的时间戳。 验证契约会检查文件摘要、JSON 值、SQL 结果、HTTP 响应和 DOM 状态,并报告 通过、 失败、未验证 或 无法确定——给出四种答案,因为其中三种并不等同于「否」。 任何 Agent 都能使用:MCP、CLI 或 REST API。 |
|
Watch Skill 负责观察和验证。DeepWatch 则是内置 Watch Skill 的工作区。
从这里开始
三种入口。选择最符合你的那一行。
| 你已有 | 你想要 | 前往 |
|---|---|---|
| 已有 Agent(Claude Code、Cursor、Codex、任意 MCP 客户端) | 为它配上视觉、听觉和验证能力 | Watch Skill |
| 还没有 | 整个工作区,包括 Agent | DeepWatch |
| 已在运行的 DeepSeek Harness | 将 Watch 添加到其中,保留现有配置 | @deepwatch/dsh-bundle |
1. 将 Watch Skill 添加到你已在使用的 Agent
pip install 'watch-skill[standard]' # frames, retrieval and the MCP server
watch-skill doctor # checks, and repairs what it can
watch-skill watch <video-url-or-file>
watch-skill ask <id> "what changed at 3:12?"
请认真对待额外组件。 单独运行 pip install watch-skill 只会安装
CLI、验证器和 Bridge,无法提取帧:watch 遇到的第一个视频就会因
perceive.missing_dependency 而停止。[standard] 包含帧提取、
检索和 MCP;添加 [ocr] 以读取屏幕上的文字,添加 [whisper] 以便在源内容没有字幕时进行本地转录,添加 [loop] 以支持浏览器,或者选择
[all]。watch-skill doctor 会针对缺少的组件给出确切的命令。
将它接入任何 MCP 客户端——[standard] 已包含服务端:
watch-skill serve # stdio MCP server, 39 tools
或者一次性将技能安装到 25+ 个 Agent 中:
npx skills add oxbshw/watch-skill -g
### 2. 整个工作区
前置条件。 Node ^22.19 || >=24,这是 CLI 的 engines 声明所要求的版本。Python 3.11、3.12 或 3.13——这是 CI 运行和分类器列出的版本;只有在需要感知和验证引擎时才需要安装。DeepWatch 无需 Python 即可启动,并会将所有 Watch 功能报告为不可用,直到 Python 安装就绪。
# 1. the engine that sees and proves (optional, but it is the point)
pip install 'watch-skill[standard,ocr]'
# 2. the workspace
npm install -g @deepwatch/cli
deepwatch doctor # what is present, what is missing, how to fix it
deepwatch setup # builds the runtime; shows the download and asks first
# 3. a workspace directory to work in
mkdir my-project
deepwatch web --workspace ./my-project
deepwatch web 会打印本地 URL 并在浏览器中打开工作区。首先看到的是:
这里显示两个数字,而不是一个百分比,因为“已安装”和“已验证”是两种不同的事实,用单一百分比会模糊两者的区别。已就绪统计通过运行时检查的功能。需要设置统计尚未配置或尚未测试的功能——已保存的配置绝不会被说成已测试。无需提供商即可打开工作区:Library、索引和 Watch 工具都可在本地运行。
无需全局安装,也可以通过 npx 运行同一个包:
npx --yes @deepwatch/cli setup
mkdir my-project
npx --yes @deepwatch/cli web --workspace ./my-project
npx 是运行 @deepwatch/cli 的一种方式,并非另一个包——npm 上没有未限定作用域的 deepwatch。
**setup 会下载什么。**固定版本的 DeepSeek Harness、其确切的必需 peer 依赖,以及与此版本号相同的 DeepWatch 包,都会下载到 DeepWatch 主目录下的运行时中。它会打印注册表、版本和目标位置,并在等待你同意后继续;--yes 表示预先同意,--offline 则会直接拒绝。除你自行安装的 CLI 外,不会全局安装任何内容。--artifacts <dir> 会从经过验证的本地 tarball 中获取 DeepWatch 包,并由本产品自行校验哈希,而不是从注册表获取;这适用于构建检出版本。不过,这并不会让安装变成离线安装:在这种模式下,固定版本的 Harness 及其生成的 peer 依赖闭包也会从 npm 获取,setup 打印的计划会在开始获取前说明这一点。
**启动不需要模型提供商。**工作区可以启动,Library 可以运行,Watch 工具也能在没有模型提供商的情况下响应。你需要为 Agent 配置提供商,以使用聊天、工具调用和 THE LOOP 的批评步骤。
连接模型,并验证连接
在工作区中按顺序完成四个步骤。最后一步才是关键。
| 在应用中 | 功能 |
|---|---|
| Settings → Models → Add provider | 为提供商命名并输入密钥,或将字段留空,从启动环境中读取密钥。 |
| Settings → Role Bindings → Choose a model | 为一个角色绑定特定的提供商和模型——Chat 或 Visual perception。 |
| Run provider test | 向该绑定发送一次真实请求,并报告返回结果。 |
| Ready | 只有此时,工作区才会向它发送任何内容。 |
保存不代表已通过测试。 尚未成功通过提供商测试的绑定会被阻止,轮次也会明确说明:“……已绑定,但尚未通过提供商测试,因此目前不能向其发送任何内容。” 主机重启后,请重新运行测试——绑定会保留,但验证结果不会。
能力是按角色分配的,而不是按提供商分配的。未分配任何模型的角色会明确说明这一点,绝不会悄悄回退到其他角色的模型。因此,上面三个角色中有两个显示为 Not configured,而不是继承 Chat 的模型。
值得尝试的第一个任务
打开一个工作区目录,并提出一个会操作磁盘内容的请求:
创建
notes/totals.json,写入数字 12、30 和 18,然后读回文件并告诉我它们的总和。
你会得到一个答案,答案下方还会按工具调用逐行列出,并注明每个工具调用操作的确切工作区相对路径。本 README 中的其他内容都是以此为基础展开的。
依赖项就绪不等于已使用某项能力。 deepwatch doctor 会报告已安装且可访问的内容——Node、Harness、配置文件、Watch Core、ffmpeg。它不会声称这些能力已在你的机器上实际运行过;工作区自己的就绪面板统计的也是同一情况。绿色行表示所需组件都已就位;运行上面的任务,才能确认这些组件能否协同工作。
3. 接入你已在运行的 DeepSeek Harness
cd <your-project>
dsh plugin --profile <your-profile> add @deepwatch/dsh-bundle
dsh --profile <your-profile>
没有 web 子命令。 dsh web 是 dsh --profile web 的别名,因此
dsh --profile <your-profile> web 会启动你的配置文件,然后把 web
作为参数交给应用——这并不是你想要的效果,而且命令也不会提示这一点。
Harness 会在 dsh --help 中自行打印说明:dsh --profile web — 启动
web 配置文件(与 dsh web 相同)。只需在 --profile 后指定一次配置文件名称,
不要传递其他内容。
两条命令中指定相同的配置文件。 dsh plugin add 会写入你指定的
配置文件;如果安装到一个配置文件却启动另一个,你就会发现 Agent 没有
watch_* 工具,也没有任何错误信息说明原因。
在项目目录中启动。 收据日志会写入 Host 启动时所在的工作目录,所以
请先 cd 到该目录——否则 Library 会为你当前并未工作的目录建立索引,并报告
empty。
启动前,若要检查配置文件实际组合了哪些内容:
dsh --profile <your-profile> --dump-config | grep watch-
兼容的 Harness。 此版本经过测试的版本恰好是
@deepseek-ai/[email protected]——这是固定的依赖版本,而非版本范围,因此
在不同 Harness 上使用配置文件属于未经测试的组合。运行 dsh --version
即可查看当前版本。
以上就是安装步骤。该包声明了 dsh.bundle.patch,因此 DSH 会将其
合并到配置文件的层堆栈中,并在自身补丁之后应用该补丁。此外还声明了
四种更精简的变体——media、browser、memory、document,供只需要一种能力而非全部能力的配置文件使用。
安装引擎——并加上额外依赖,因为 bundle 的媒体能力由引擎提供:
pip install 'watch-skill[standard,ocr]'
[standard] 包含帧、检索和 MCP;[ocr] 用于读取屏幕上的文本。直接运行
pip install watch-skill 安装的 Core 无法提取帧,而 Bridge 会连接到它,并在第一个
视频上报告 perceive.missing_dependency。Bridge 会自行从 PATH 中查找可执行文件。
完整指南:@deepwatch/dsh-bundle。
要求。 与本项目其他部分相同:Node ^22.19 || >=24,以及引擎所需的
Python 3.11、3.12 或 3.13。支持 Windows、macOS 和 Linux。
哪个包适合你
此仓库通过两个注册表发布了 21 个包,其中只有三个是供用户主动安装的。
| 包 | 注册表 | 适用情况 |
|---|---|---|
watch-skill | PyPI | 你想通过 CLI、MCP 或 REST 使用感知、证据、检索和验证功能。这是引擎。 |
@deepwatch/cli | npm | 你想使用完整工作区。它提供 deepwatch 命令,用于配置并启动其他所有组件。 |
@deepwatch/dsh-bundle | npm | 你已在运行 DeepSeek Harness,并想将 Watch 添加到自己控制的配置文件中。 |
@deepwatch/ 下的其他所有内容都是插件或内部依赖——bundle
组合使用的 Harness 组件(dsh-tools、dsh-library、dsh-live、
dsh-memory、dsh-workspace 等),以及它们共享的包
(dsh-contracts、dsh-sdk、dsh-core-bridge)。发布这些包是为了让
bundle 能够解析依赖,也让组合可以只选择其中一项,而非全部安装。
直接安装其中某个包,是为了将单个组件嵌入你控制的组合中;这并不是使用该产品的途径。
npx @deepwatch/cli 是运行 @deepwatch/cli 的一种方式,而不是另一个包;
npm 上没有不带作用域的 deepwatch 包。
**包映射**展示了这 20 个包如何组合,每个包自己的 README 也会说明它的用途和所需条件。
THE LOOP:观察、行动、验证
感知只是其中一半。THE LOOP 指的是 Agent 在试图修复问题时如何利用感知。
pip install 'watch-skill[standard,loop]' && playwright install chromium
watch-skill loop start http://localhost:3000/checkout \
"the total updates when quantity changes, and no NaN appears"
- 观察 — 真实浏览器将页面录制为视频;提取视频帧并进行 OCR,每帧都带有绝对时间戳。
- 评判 — 请视觉模型判断捕获结果是否符合你编写的标准。模型会报告问题,并标出每个问题被发现时的时间戳。
- 修复 — 修改代码。
- 验证 —
watch-skill loop iterate会重新捕获并与上一次运行的结果进行差异对比,因此“已修复”意味着原先的问题确实消失了。
评判步骤需要具备视觉能力的模型。没有这类模型时,捕获、视频帧、OCR 和验证仍可正常工作;评判步骤会说明自己无法判断,而不是猜测。参见 THE LOOP。
纠错会变成经验
答案出错时,你可以纠正它。Watch Skill 会对纠错进行分类,将其作为经验存入本地存储;如果错误类型属于机械性错误,还会应用这条经验重新提问,并统计由此节省的工作量。
经验会在运行之间保留,并且只存储在你的设备上。系统不会自行学习——需要由你提供纠正——也不会上传任何内容。 经验与节省。
DeepWatch 工作区
以上所有内容都是引擎,任何 Agent 都可以使用。DeepWatch 基于官方 DeepSeek Harness 构建,并已集成 Watch Skill,因此你在其中运行的 Agent 无需任何额外配置,就能生成凭证和判定结果。
本节接下来将端到端演示一项任务。结账页面收取了错误的金额,而你手头只有一段屏幕录制。
将录制交给引擎 · 询问金额从哪里开始出错 · 修复代码 · 从 Agent 外部证明修复有效 · 第二天再回来查看记录。以下所有数据和判定结果,都来自生成本节的那次运行,使用的是 Watch Skill 1.4.3 和 DeepWatch 0.1.3。
1 · 将录制交给引擎
有人更改数量,整个过程持续四秒。没有任何文字说明哪里出了问题。
watch-skill watch ./checkout-bug.webm --index
提取出的视频帧带有绝对时间戳,屏幕上的文字也一并提取:
Selection: 4 kept from 8 candidates (4 near-duplicates dropped)
t=00:00 2 × $10.00 Subtotal $20.00 Tax (10%) $2.00 Total $20.00
t=00:01 5 × $10.00 Subtotal $50.00 Tax (10%) $5.00 Total $50.00
t=00:02 3 × $10.00 Subtotal $30.00 Tax (10%) $3.00 Total $30.00
现在可以看出这个 bug:税额已经计算并显示出来,却没有计入总额。之所以能看出来,是因为这些视频帧得以保留——在其他内容完全相同的布局中,三个金额发生变化,对视频帧采样器来说看起来像是重复画面,因此脚本化捕获会记录自身执行操作的时刻,由引擎将这些时刻固定下来。
2 · 询问问题发生在哪里
watch-skill ask <video-id> "what was the total when the quantity was three?"
答案引用了对应的时间戳,视频帧也保存在磁盘上。如果录制中没有给出答案,引擎就会如实说明:问题无法回答时,不应据此进行猜测。
3 · 修复应用程序
现在,Agent 有了着手处理的线索。它读取证据,在 cart.js 中找到 orderTotal,并发现它计算出的税额从未进入返回值。
它触及的每个文件都会留下回执,注明路径;工具声明的每个路径都会相对于同一个工作区边界解析。工作区之外的写入会被拒绝,并记录下来:文件不会被触碰,日志中会新增一张回执,标记为 scope:outside_workspace / state:cancelled,并注明这次尝试。两者缺一不可——如果边界只是默默拒绝,就无从得知它曾被测试过。
以下是实际留下的记录,来自生成本节内容的那次运行。日志中有 14 行,合并后得到 12 张回执,因为其中两条各记录了两次——一次在工具返回时,另一次在 Core 给出判定时。此处省略了 4 条 todo_write 和 glob 记录;以下 8 条触及了内容:
| 回执 | 判定 |
|---|---|
watch_list_sources | — |
watch_ask_source | — |
read — checkout/cart.js | — |
read — checkout/index.html | — |
watch_moment | — |
edit — checkout/cart.js | VERIFIED |
watch_verify | INCONCLUSIVE |
pwsh | — |
模型只知道有位客户被收取了错误金额,而且有一段录音存在。它并不知道 Bug 是什么,工作区中的任何内容也没有说明这一点。它列出来源,询问录音,截取其中一段内容,读取两个文件,修改一行,并自行运行验证——结果是 INCONCLUSIVE,因为它编写的检查无法评估。报告会如实呈现这个结果,而不会将其算作通过。
4 · 在 Agent 之外证明修复有效
契约在修复前就已冻结,并存放在 Agent 无法写入的目录之外。Watch Core 会在单独的进程中评估契约,并返回一个并非由 Agent 编写的判定——VERIFIED、FAILED、UNVERIFIED 或 INCONCLUSIVE。
上述运行使用的契约是
c98bd4ae3d13864869ae02be46cdba48fb97f790ec50feead6e30d17ccc007b0,其摘要在 Agent 开始前就已计算。修复前,Core 对全部三项检查都返回了 fail——预期为 22,实际为 20、预期为 33,实际为 30,以及从渲染后的页面中读取到 #total text = '$20.00'。修复后,使用同一份未更改的契约,三项检查全部通过,页面显示为 $22.00。
上方卡片截取自另一项任务——从这里开始中的 totals.json 任务——因为它展示了 VERIFIED 卡片的样子。它不是 checkout 修复的截图;该修复的证据就是上文所列的契约和回执。
屏幕上显示了契约的 SHA-256,因此你可以确认它是同一份契约。
判定就是答案,四种结果各有不同含义。针对上述契约进行测量时:对于修复后的工作区,结果为 VERIFIED;若指向不包含这些文件的目录,检查仍会运行并报告为 false,因此结果为 FAILED;如果预期只是用文字描述,背后没有可执行的检查,则结果为 UNVERIFIED——这是如实的结果,但不代表通过;如果某项检查完全无法评估,结果则为 INCONCLUSIVE,该检查自身的状态会保留为 null,而不会被归并为 false。若未提供可供测量的工作区,Core 会直接拒绝请求(verify.workspace_unresolved),而不是猜测目录。
5 · 明天继续
重启一切——终止进程,再重新启动。两条记录都会回来, 而且它们属于两种不同的存储,值得区分。
Watch Core 的来源索引位于 Watch 数据目录中。无论是否打开任何内容,它都在那里,而且 watch-skill list 无需工作区即可读取。Library 的收据索引属于 Host 本身:日志写入工作区下的 .watch/receipts,Library 会在刷新时从该文件重建索引。它是派生数据,可以安全丢弃。
这就是 Library 会跟随工作区的原因。从你正在使用的目录启动应用;如果 Host 从其他位置启动,日志也会写到其他位置。重启后 Library 显示 empty,通常是因为它指向了错误的目录,而不是数据丢失。
以上一次运行为例:写入了 14 条收据,进程被终止,重启后 14 条全部重新打开——记录 ID 相同,最后修订版本相同,而且 Core 已经给出判定的两条记录仍保留各自的结论:修复的结论为 VERIFIED,无法运行的检查则为 INCONCLUSIVE。
Compare 会并排显示失败运行和通过运行,并指出它们的判定在哪里出现分歧。比较只描述差异,不会自行给出判定。
这里的每张图片都是运行中构建版本的实拍,而且它们并非都来自同一个构建版本——声称它们来自同一个版本,会是本页最容易出现的虚假说法。引导界面截图来自当前图库,针对 Watch Skill 1.4.3 and DeepWatch 0.1.4 重新拍摄,当时确定性浏览器场景的测试结果为 42 项全部通过;如果截图与拍摄所用的引擎不匹配,门禁就会拒绝这组截图。Settings 和结果卡片截图来自 1.4.3 / 0.1.4 候选版本,之所以保留,是因为此版本没有改变它们展示的界面。
截图页面 列出了每张图片对应的构建版本,并提供横跨三种视口的完整 57 张截图图库。
这里的“local-first”确切来说是什么意思。 你的来源、收据、判定和记忆都存储在你的机器上,Library 搜索也在本机运行。这并不意味着完全不会使用网络:setup 会从 npm 下载运行时,有些 Watch 扩展首次运行时会获取模型,而你配置的托管模型提供商会收到你发送给它的内容。保留在本机的是记录及对记录的检索。
捕获内容需要单独征得同意,与上述事项无关。工作区可以记录的每种来源都会列出所需权限及是否已请求该权限——只有在你使用该来源时才会请求:
持有提供商密钥并不代表允许媒体离开本机;即使网络已连通,云端引擎也仍需单独征得同意。这是有意设置的两个独立开关。
人们如何使用它
| 向视频提问 | 为录制内容建立一次索引,然后就可以提问。答案会引用可点击打开的时间戳。 01-watch-and-ask |
| 验证 Agent 的工作 | 运行确定性契约的 Core——文件摘要、JSON 值、SQL、HTTP、DOM。 14-browser-verification |
| 通过观察界面来修复 UI | 捕获、评估、修复、重新验证。 04-ui-loop |
| 跨所有内容搜索 | 为你看过的每个来源建立一个索引。 03-cross-video-search |
| 离线工作 | 本地 Whisper 和 OCR,无需服务提供商,任何内容都不会离开设备。 15-private-offline-workflow |
| 实时观看 | 观看流或浏览器会话,并限制范围、跟踪游标。 18-live-watch |
每个示例都是一个可运行的目录,旁边写明了前置条件和预期输出。
全部 20 个示例,按所学内容分类
以上就是全部 20 个示例;索引见 examples/。
各部分如何协同
flowchart LR
subgraph W["DeepWatch workspace"]
H["DeepSeek Harness<br/>agent, tools, UI"]
P["Watch plugins<br/>tools · library · live · memory"]
H <--> P
end
P <-->|"Bridge (stdio)"| C["Watch Core<br/>Python engine"]
C --> E[("Evidence store<br/>frames · transcripts · index")]
C --> V["Verifier<br/>isolated subprocess"]
V --> R[("Verification records<br/>contract · checks · verdict")]
P --> J[("Receipt journal<br/>one per tool call")]
A["Any other agent<br/>MCP · CLI · REST"] <--> C
只有 Watch Core 会给出判定。 Host 可以发现、关联、冻结契约并发起询问——但不能决定答案。这就是 ADR-002 的规定;如果 packages/ 下的任何内容开始生成判定,构建门禁就会失败。
收据记录工具调用做了什么;判定记录 Core 检查了什么。两者由不同的进程写入,Library 会将它们显示在不同的列中,因为 Agent 成功运行命令和 Agent 做对了事情,并不是同一种说法。
哪些功能可用,以及需要什么
| 能力 | 开箱即用 | 需要 |
|---|---|---|
| 启动应用、浏览、读取诊断信息 | ✅ | 无 |
| 验证契约、遏制、回执 | ✅ | 无 |
| 视频帧和场景 | 使用 [standard] | ffmpeg ≥ 5.1 — watch-skill doctor 会安装它 |
| 读取屏幕上的文字 | 使用 [ocr] | 首次使用时下载模型(约 80 MB) |
| 语音转文字 | 使用 [whisper] | 首次使用时下载模型;如果来源有字幕,则优先使用字幕 |
| 与 Agent 聊天 | — | 添加并绑定一个提供商 |
| 视觉场景描述 | — | 能识别图像的模型 |
| 浏览器捕获 / THE LOOP | 使用 [loop] | playwright install chromium |
| 记忆 | 关闭 | 在设置中启用;存储内容为明文,并且会明确说明这一点 |
| 桌面应用 | 未分发 — 尚无安装程序 | 运行 deepwatch web |
即使未配置提供商,DeepWatch 也能启动并保持实用:验证、遏制、资料库和本地感知都在本地运行。需要提供商的是 Agent — 聊天、工具使用以及 THE LOOP 的批判步骤。
功能通过三种方式提供,彼此不能互换。 本地依赖项(ffmpeg、yt-dlp、JS 运行时)在你的设备上运行,watch-skill doctor 会获取并修复它们。下载的模型(OCR 权重、whisper)也在你的设备上运行,需要一次性下载较大的文件,你的任何文件都不会因此离开设备。托管提供商 — Agent 的模型以及你绑定的任何视觉模型 — 则是由他人运营的服务,其延迟、价格和条款均由对方决定,并且能看到你发送的内容。你自行运行的兼容 OpenAI 的服务(Ollama、vLLM、LM Studio、llama.cpp)属于指向自有硬件的托管方式:数据保留在本地,而特定模型是否支持工具调用或图像取决于该模型,DeepWatch 会报告这一点,而不会绕过限制。
在你添加提供商之前,不会有任何内容发送给提供商;持有提供商凭据并不代表获准上传视频帧或转录文本 — 上传需要单独征得同意。
会自动修复的内容。 watch-skill doctor 会修复依赖项:下载 yt-dlp 并保持其为最新版本、引导安装 JS 运行时、安装 OCR 语言数据,并在可行时获取 ffmpeg,同时报告每项修复。这是此处唯一会在未收到请求时采取行动的功能。此版本没有自动恢复任务、没有自主学习,也没有静态加密。**已知限制**列出了完整清单。
用数据衡量,而非空口断言
与领先的视频理解 API 使用相同文件和相同评分器进行对比:
| Watch Skill | 基线 | |
|---|---|---|
| 书面分析的依据充分性 | 89.7% | 27.9% |
| 每 100 个词的引用数 | 13.23 | 0.12 |
| 真实视频片段中的帧交付率 | 96.9% | 31.2% |
| 提示开始时间在半秒内的比例 | 100% | 25% |
方法和测试夹具:benchmarks/video_backends/。 与其他方案的权衡:对比。
文档
| 快速入门 | 安装、首次监视、首次连接 Agent |
| 安装与升级 | 两款产品、可选附加组件、兼容性政策 |
| 配置 | 设置、提供商、存储位置 |
| 工具参考 | 全部 39 个 MCP 工具及其 REST/CLI 对应项 |
| 验证 | 契约、十四种检查类型、保证级别 |
| 架构 | 边界、数据流、扩展点 |
| Agent 矩阵 | 各客户端的设置方式及验证程度 |
| 故障排除 | 依赖修复与常见运行时错误 |
| 成本 | 哪些功能免费运行,提供商会对哪些项目收费 |
| 已知限制 | 此版本尚不支持的功能 |
DeepWatch: workspace README · 设置 · 二十个软件包 · 发布 · 平台支持
工具数量有三个,因为它们回答的是不同问题:watch-skill serve 提供 39 个 MCP 工具,DeepWatch 中添加到 Agent 的 22 个 watch_* 工具,以及该 Agent 总共可用的 47 个工具。
社区与生态
由他人撰写的介绍,以及收录本项目的目录。以下内容根据各自的实际内容进行描述——介绍文章代表有人尝试并分享体验,这与背书并不相同,而且这些内容都无法说明有多少人在使用本项目。
教程与介绍文章
| Watch Skill 使用教程:让 Codex 看懂视频和录屏 | 逐步介绍如何将 Watch Skill 接入 Codex CLI:安装、MCP 配置,以及处理第一个视频。中文。 |
| Watch Skill:AI 视频分析与视频校正 | 设置与操作指南,包含实际案例和故障排除章节。英文。 |
视频
| 演示第一部分 · 第二部分 | Bilibili 上的屏幕录制演示,涵盖安装和首次分析。中文。 |
目录
| Skills.sh | 收录十种 Agent 技能,并可通过一条命令将其安装到受支持的客户端中。 |
| SkillsMP | 收录同一组技能的另一个目录。 |
| MCP 注册表 | io.github.oxbshw/watch-skill 服务条目,供通过名称解析 MCP 服务的客户端使用。 |
完整内容按教程、视频、集成和目录列表分类整理:docs/ecosystem.md。如果你撰写或录制了相关内容,欢迎提交拉取请求,将其添加到该页面。
贡献
欢迎提交问题和拉取请求。CONTRIBUTING.md 介绍了二十分钟上手流程:需要安装什么、运行哪个检查,以及提交消息的格式。安全政策:SECURITY.md。设计决策及其原因:DECISIONS.md 和 ROADMAP.md。
基于 DeepSeek Harness 构建 · 由 Watch Skill 提供支持
DeepWatch 和 Watch Skill 是独立项目,与 DeepSeek 无关联,也未获其背书。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。









