内容
align="center监视技能
**赋予任何 AI 代理视频的能力**
监视技能可以将任何视频 — 来自 1800+ 个站点的网址、实时 HLS/DASH 流、本地文件或代理自身输出的录音 — 转化为持久、可搜索的帧索引、屏幕文本和转录。代理可以快速提问,获得带有可审计置信度和时间戳引用的答案,并从自己的错误中学习。一个引擎,三个界面:MCP(13 个工具)、CLI 和 REST。
<img src="docs/assets/loop_before_after.gif" alt="THE LOOP: 代理检测到 TOTAL: $NaN 在其自己的结账页面,获得带有建议修复的结构化批评,并在修复后验证错误已消失 — 自动渲染的前后证明" width="720">
*THE LOOP,实时:迭代 0 标记 `TOTAL: $NaN` 为关键建议的修复 → 代理修复代码 → 迭代 1 验证 FIXED 并渲染此 GIF。*
[](https://github.com/oxbshw/watch-skill/actions/workflows/ci.yml)
[](LICENSE 3.https://img.shields.io/badge/python-3.11-3776AB)](pyproject.toml)
</div>
---
## 60 秒快速入门
```bash
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/oxbshw/watch-skill/main/scripts/install.sh | sh```powershell
#powershell -ExecutionPolicy Bypassirm https://raw.githubusercontent.com/oxbshw/watch-skill/main/scripts/install | iex"
```
安装程序引导 uv/Python(如果丢失),自我修复二进制依赖项(ffmpeg、yt-dlp、deno via `watch-skill doctor`),并将 MCP 配置写入找到的每个代理 —Claude Desktop、Codex CLI、Windsurf、Gemini CLI — 备份它所触及的任何内容。然后:
```bash
watch-skill watch://youtu.be/..." "这个视频发生了什么?"
watch <video_id> 什么时候崩溃?"
watch-skill serve # MCP stdio (--http for streamable HTTP)
```
或者完全跳过 CLI:重启代理并说 *"观看这个视频:`<任意网址>` — 在 0发生了什么?"*。手动每个代理的配置位于 [docs/agents/](docs/agents/README.md)。
## 功能
- **观看任何内容。** 通过 yt-dlp(自我更新的提取器中断)支持 1800+ 个站点,直接媒体网址,HLS/DASH 直播流(有界捕获),本地文件和屏幕/窗口/浏览器录制。
-上下文窗口的帧预算。** 场景检测 + 感知哈希去重将预算花费在 *不同的* 内容上:512 像素帧,100 个视频的硬上限,≤2 fps,时长分级 — 具有 `--start/` 窗口的模式。
- **线。** 平台字优先而不是自动翻译)→ 本地更快的 whisper(带有 RAM 感知模型选择)→ 仅在选择加入时使用云 STT。视频文件永远不会离开机器 — 由测试而非策略强制执行。指向 Ollama,整个管道在没有云调用的情况下运行。
- **一次分析,永远提问。** 模式版本化的 SQLite 索引(FTS5 + 本地 ONNX 嵌入,混合检索)持续会话。后续问题在几秒钟内回答,无需重新处理;`search_videos` 跨越曾经观看的每个视频。矢量评分是 numpy 批处理的:10k×384 矩阵与 5.46 秒纯 Python(45 倍)相比为 122 毫秒。
- **您可以信任的答案(v0.6)。** 每个答案都带有校准的置信度分数,该分数基于实际检索信号(最佳命中强度,与亚军的差距,跨类别证据协议,词汇锚定)。在条形图下方,升级梯队以最便宜的优先方式运行 — 密集重采样 → 2 倍缩放裁剪重 OCR → 验证通道,模型将显示它即将引用的确切帧。仍然不确定?诚实的地板会如实说明,并附上最近的实际时刻。伪造的时间戳无法在合成中存活(测试强制执行)。
- **它从错误中学习(v0.6)。** `report_mistake` 将更正转换为 `~/.watch-skill/lessons.db` 中的分类课程 — 本地,从不上传 — 注入到未来类似问题的每个代理中。每个错误都成为可重放的评估:`watch-skill evals run` 报告随时间推移的通过率。
- **节省令牌就像节省您的令牌一样(v0.6 文本优先的答案(除非确实不确定,否则令牌),语义答案缓存(重复免费,标记 `cached: true`),每个问题的令牌预算,梯队尊重并带有节省表。在这台机器上,9 个答案 ≈ 86,647 个令牌已节省,与原始帧注入相比(`watch-skill stats`)。
- **读取您的语言。** 每个脚本的 OCR 模型自动选择和自动下载(阿拉伯语,西里尔字母,梵文,韩语,…; 按脚本基准测试 — 阿拉伯语在基准测试中 100% 字符命中),阿拉伯语哈姆扎/变音符号折叠搜索,CJK 子字符串匹配,以及多语言嵌入模型 — 用英语询问阿拉伯语转录(en→ar 0.58 与干扰器相比约 0.0),检索仍然成功。
- **THE LOOP.** 代理记录其自己的输出(浏览器,屏幕,窗口),获得针对自然语言通过标准的结构化批评,修复代码,并重新验证 — 带有前后证明 GIF。
- **在关键处快速。** 冷 CLI 启动约 1.2 秒;完整 10 秒观看(场景 + 帧 + OCR + 本地 whisper)在 8 GB-RAM,无 GPU 机器上为 32.9 秒;MCP/REST 服务器保留模型,因此代理后续操作跳过加载时间。284 个测试,离线。
<img src="docs/assets/lessons_loop.gif" alt="报告错误答案及其更正;监视技能分类错误,重新提问应用课程,验证,并将每个错误变成可重放的评估" width="640">
<img src="docs/assets/savings_meter.png" alt="真正的提问:带有时间戳,置信度和缓存元数据的文本优先证据,以及节省表 — 在此机器上节省了约 86k 个令牌" width="640">
## 与您的代理配合使用
状态被诚实地评级 — **机器测试 ✅** (在代理中完整端到端运行),**机器配置 ◐** (`watch-skill setup` 在真实机器上编写回答 MCP `initialize`;无应用内聊天运行),**文档验证 ☑** (与代理的官方文档匹配,在此处未执行)。
| 代理 | 界面 | 状态 |
|-------|---------|--------|
| [Claude Code](docs/agents/claude-code.md) | MCP (stdio) | 机器测试 ✅ |
| [Claude Desktop](docs/agents/claude-desktop.md) | MCP (stdio) | 机器配置 ◐ |
| [Cursor](docs/agents/cursor.md) | MCP (stdio) | 机器配置 ◐ |
| [Codex CLI](docs/agents/codex-cli.md) | MCP (stdio) | 机器配置 ◐ |
| [Cline](docs/agents/cline.md) | MCP (stdio) | 文档验证 ☑ |
| [Windsurf](docs/agents/windsurf.md) | MCP (stdio) | 文档验证 ☑ |
| [Gemini CLI](docs/agents/gemini-cli.md) | MCP (stdio) | 文档验证 ☑ |
| [VS Code (Copilot 代理)](docs/agents/vscode.md) | MCP (stdio) | 文档验证 ☑ |
| Claude Code / claude.ai 技能 | [`watch-skill.skill` 捆绑包](adapters/claude-skill/) | 机器测试 ✅ |
| 任何具有 HTTP 的代理 | REST + OpenAPI (`watch-skill api`) | 机器测试 ✅ |
| 任何 MCP 客户端(远程) | MCP 流式 HTTP (`watch-skill serve --http`) | 机器测试 ✅ |
具有每个代理安装,配置和 3 步烟雾测试的完整矩阵:[docs/agents/README.md](docs/agents/README.md)。 [AGENTS.md 适配器](adapters/agents-md/AGENTS.md) 涵盖读取存储库级指令的代理。
## 示例
| 示例 | 显示内容 |
|---------|---------------|
| [01-观看和提问](examples/01-watch-and-ask) | 观看网址,提出后续问题 — 核心循环 |
| [02-聚焦时刻](examples/02-focused-moment) | `--start/--end` 窗口的密集采样,`get_moment`戳 |
| [03-跨视频搜索](examples/03-cross-video-search) | 对曾经观看的每个视频进行一次查询 |
| [04-UI 环路](examples/04-ui-loop) | THE LOOP:捕获自己的 UI → 批评 → 修复 → 带有证明的重新验证 |
| [05-多语言阿拉伯语](examples/05-multilingual-arabic) | 阿拉伯语输入,阿拉伯语输出:脚本感知折叠搜索,跨语言提问 |
| [代理集成](examples/06-agent-integration) | 将 MCP 服务器 / REST API 集成到代理中 |
| [07-课程和统计](examples/07-lessons-and-stats) | report_m → 课程 → 可重放评估;节省表 |
## 架构
薄界面,一个核心。 `src/watch 包含所有逻辑;MCP、CLI 和 REST 是包装器,永远不会分歧。
```
flowchart LR
subgraph agents["任意代理"]
CC[Claude Code] & CU[Cursor CX[Codex GA["...via REST"]
end
subgraph surfaces["界面(薄)"]
MCP["MCP stdio/HTTP<br/>13 个工具"] --- CLI] --- API[REST + OpenAPI]
end
subgraph core["src/watch_skill — 所有逻辑"]
AC[获取<br/>yt-dlp→回退<br/>+ LRU 缓存] --> PE[/>场景 · 感知哈希去重 · OCR]
--> TR[转/>字幕 → whisper]
TR[(索引<br/>SQLite FTS5 + 矢量<br/>+ 答案缓存)]
PE --> VI[视觉<br/>廉价/强力层级<br 个提供者]
VI --> IX
IX --> AN[答案<br/>置信度 · 升级 · 诚实底线]
LS[(课程<br/>~/.watch-skill/lessons.db)] --> AN
AN --> LS
LP[THE LOOP<br/>捕获 → 批评 → 差异] --> VI
end
agents --> surfaces --> core
```
深入了解:[docs/architecture.md](docs/architecture.md) — 包括“在 ~20 行代码中添加视觉提供者”和“添加新的 Loop 类型”。
## 与 claude-video 的比较
监视技能始于尝试超越 [claude-video](https://github.com/bradautomates/claude-video) — 为 Claude 提供视频输入的技能,以及我们保留(令牌感知帧预算,字幕优先转录,聚焦模式)。信用应归:它对于 Claude-only 工作流来说更简单,并且没有引擎需要安装。有什么不同:
| | claude-video | 监视技能 |
|---|---|---|
| 来源 | 精心策划的平台列表 | 任意 yt-dlp 支持的内容(1800+),HLS/DASH 直播,本地文件,屏幕/浏览器捕获 |
| 代理 | Claude(技能) | 任意 MCP 代理 + CLI + REST/OpenAPI + Python(11 个集成文档,机器测试 vs 文档验证诚实标记) |
| 采样 | 均匀/关键帧 fps | 场景检测 + 感知哈希去重;预算花费在不同的内容上 |
| 内存 | 每次会话重新处理 | 持久索引 — 混合 FTS5+矢量检索,永远提问,跨视频搜索 |
| 离线能力 | 字幕 → 云 Whisper API | 默认离本地更快的本地 ONNX OCR,可选 Ollama 视觉 — 零可能 |
| i18 阿拉伯-输出 | — | 首选原始语言字幕,每个脚本的 OCR 模型,阿拉伯语折叠 + CJK 搜索,跨语言检索 — 在 8 种语言中进行测试 |
| 自我修复答案 | — | 校准置信度 + 升级梯队 + 验证通道 + 诚实的“视频没有明确显示”底线;`report_mist 课程重放为评估 |
| 令牌节省 / 答案缓存 | 每个问题注入帧 | 文本优先答案,语义答案缓存(重复免费),每个问题令牌预算,节省表(在开发机器上节省约 86,647 个令牌) |
| 自我验证 | — | THE LOOP:捕获 → 批评 → 修复 → 重新验证 → 证明 GIF |
| 依赖项修复 | 打印安装命令 | `doctor` 安装/更新 ffmpeg,yt-dlp,deno;自动恢复提取器## 文档
-使用](docs/getting)
- [配置/configuration.md) —旋钮都是带有 `WATCHSKILL缀的环境变量 /` 条目
工具参考](docs — 所有 MCP 工具及其- [指南](/) — 环路,捕获,多语言
- [架构](docs/architecture.md)
- [故障排除](docs/t)
- [](docs/agents/README.md)
- [工程决策日志](docs/DECISIONS.md) — 非显而易见的选择,附带数字
偏好手动安装?
```bash
git clone https://github.com/oxbshw/watch-skill && cd watch-skill
uv sync --extra all # 或:pip install -e ".[all]"
uv run watch-skill doctor # 自我修复依赖项
uv run watch-skill setup # 将 MCP 配置写入您的代理(带有备份)
```
线图
[docs/ROADMAP.md](docs/ROADMAP.md) 中的亮- ** 类型** — 游戏捕获,视频生成,长期;运行器//差异机制已经- **基准** — 评分(视频,问题,三元组用于检索质量和帧;质量工作的最高杠杆贡献。
- **sqlite ANN 索引** — numpy 批处理程序处理 10k 矩阵在 ~120 毫秒内;超过 ~100k 段,实际 ANN 索引开始显示优势。
- **逐词时间戳** — faster-whisper 支持它们;将其贯穿以便oment` 可以引用确切的单词。
## 贡献,安全,许可证
- [CONTRIBUTING.md](CONTRIBUTING.md) — 开发设置,测试套件(284 个离线测试),PR 落地条件。
- [SECURITY.md](.md) — 隐私不变性(无 Cookie,无登录,视频文件从不离开
连接信息
猜你喜欢
暂无推荐服务器