---
title: 车辆旧伤检测 Skill
created: 2026-05-07
updated: 2026-05-07
type: entity
tags: [skill, agent, backend]
sources: [packages/backend/skills/vehicle-damage-inspection/, packages/backend/test/skill_process_events.test.ts, docs/superpowers/plans/2026-05-06-tool-process-events.md]
---

# 车辆旧伤检测 Skill

`vehicle-damage-inspection` 是 2026-05-07 从 RZYX 迁入的多模态 compute-entry Skill，用于汽车环车视频旧伤检测。用户上传车辆环车视频并要求检查划痕、凹陷、掉漆、裂纹、锈蚀时，Agent 应通过 [[skill-runtime]] 的 `execute_skill` 调用它，而不是直接用图片识别工具分析整段视频。

## Skill 结构

```text
packages/backend/skills/vehicle-damage-inspection/
├── SKILL.md
├── README.md
├── skill.config.yaml
├── prompts/
│   ├── best_frame.md
│   ├── damage_detect.md
│   ├── damage_review.md
│   └── grounding.md
└── scripts/
    ├── index.cjs
    └── lib/
        ├── frame_extractor.cjs
        ├── damage_detector.cjs
        ├── damage_grounding.cjs
        ├── damage_reviewer.cjs
        ├── best_frame_selector.cjs
        ├── image_marker.cjs
        ├── json_utils.cjs
        ├── vision_client.cjs
        └── workspace.cjs
```

## 输入与输出

主要输入：

- `videoUrl`：本地路径、`/upload/...` 或本机可访问 URL。
- `fps`、`quality`、`batchSize`、`concurrency`：抽帧和检测吞吐控制。
- `groundingWindow`、`groundingFrameLimit`：候选旧伤定位窗口。
- `reviewConcurrency`、`topN`：复核和最佳证据帧数量。
- `mode`：`full`、`frames-only`、`detect-only`。

输出包含 `summary`、`vehicleInfo`、`damages`、`bestFrameImages`、`reviewImages` 和 `artifacts`。最终产物写入 dataDir 下的 `workspace/vehicle-damage-inspection/{taskId}`。

## 执行流程

```text
execute_skill(vehicle-damage-inspection)
  -> 抽帧
  -> 旧伤候选检测
  -> grounding 定位标注
  -> 不确定区域裁剪/放大复核
  -> 选择最佳证据帧
  -> 输出 damages / bestFrameImages / reviewImages
```

Skill 明确区分 `damages` 和 `candidates`：`damages` 是最终旧伤结论，`candidates` 只是中间候选，不应直接呈现为结论。

## 过程事件

该 Skill 迁入时同步接入了 [[runtime-process-events]]。长耗时阶段会通过 process events 暴露抽帧、检测、定位、复核等阶段进度，前端可用 `tool-process-timeline.vue` 展示，而不需要只等最终 JSON。

## 相关页面

- [[skill-system]]
- [[skill-runtime]]
- [[runtime-process-events]]
- [[frontend-architecture]]
- [[tool-system]]
