GPU_GUARD_MONOREPO/docs/code-wiki/entities/vehicle-damage-skill.md
2026-05-20 21:39:12 +08:00

77 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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]]