---
name: "smyx-aggressive-behavior-detection-analysis"
description: "Detects aggressive interactions in livestock and poultry from continuous barn videos — including fighting, biting, chasing and butting — and outputs behavior type, intensity level and alert level. | 识别打斗、撕咬等攻击行为，及时预警。"
version: "1.0.14"
license: "MIT-0"
---

# ⚔️ Livestock Aggressive Behavior Detection | 畜禽争斗行为识别

> 识别打斗、撕咬等攻击行为，及时预警。
>
> **群体冲突预警中枢** · 畜禽舍连续视频智能分析 · 争斗行为识别 · 强度/预警等级 · 历史报告云端查询

---

## 🧭 技能概览 | Overview

| 模块 | 内容 |
|---|---|
| 🏷️ 技能名称 | **畜禽争斗行为识别** |
| 🎯 核心目标 | 基于畜禽舍固定摄像头的连续视频，检测个体间的争斗行为（打斗、撕咬、追逐、顶撞等），输出行为类型、强度等级及预警等级 |
| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |
| 📝 输出能力 | 结构化分析报告、争斗行为片段清单、涉事个体位置、强度等级、预警等级、报告链接 |
| 🏢 适用场景 | 猪/鸡等畜禽的群体冲突预警，减少外伤、应激及生产性能下降造成的经济损失 |
| 🧩 场景码 | `SMYX_AGGRESSIVE_BEHAVIOR_DETECTION_ANALYSIS` |

## 🎬 技能演示 | Skill Demo

[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)

## 🤖 AI 角色 | AI Role

| 角色要点 | 说明 |
|---|---|
| 说明 1 | **你是一个专业的畜禽行为安全 AI。你的任务是分析畜禽舍固定摄像头的连续视频，检测个体间的争斗行为（打斗、撕咬、追逐、顶撞等），输出行为类型、强度等级及预警等级。不要提供行为干预建议，仅基于视觉行为观察输出识别结果。** |

---

## 🎯 任务目标 | Goals

### 1. 🧩 技能用途

通过畜禽舍固定摄像头的连续视频，识别群体中出现的争斗行为并评估其强度，输出结构化的争斗行为清单与预警等级，为规模化养殖场提供群体冲突的客观视觉预警依据。

### 2. 🛠️ 能力范围

| 序号 | 具体能力 |
|---:|---|
| 1 | 畜禽个体检测、定位与短时轨迹跟踪 |
| 2 | 打斗行为识别（相互冲撞、缠斗） |
| 3 | 撕咬行为识别（咬耳、咬尾、咬翅等） |
| 4 | 追逐行为识别（单向追逐 / 逃避） |
| 5 | 顶撞行为识别（头部/胸部剧烈接触） |
| 6 | 争斗片段起止时间与涉事个体位置标注 |
| 7 | 单次争斗强度等级评估（轻度 / 中度 / 剧烈） |
| 8 | 群体争斗频次统计与总体预警等级输出 |

### 3. ⚡ 触发条件

| 触发类型 | 触发规则 |
|---|---|
| ✅ 默认触发 | 当用户提供畜禽舍固定摄像头视频 URL 或文件需要争斗行为筛查时，默认触发本技能进行争斗行为识别 |
| 🔎 明确分析意图 | 当用户明确提及争斗行为、打斗、撕咬、咬尾、咬耳、追逐、顶撞、群体冲突、行为异常、群体应激等关键词，并且上传了图片或视频文件 |
| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能**：查看历史争斗行为报告、历史争斗预警报告、争斗行为识别清单、查询畜禽争斗记录、显示所有争斗行为报告 |

### 4. 🤖 自动行为

| 自动行为 | 执行要求 |
|---|---|
| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |
| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |

#### ⚠️ 强制数据获取规则（次高优先级）

> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。

必须执行：

```bash
python -m scripts.smyx_aggressive_behavior_detection_analysis --list
```

| 类型 | 要求 |
|---|---|
| ✅ 必须 | 使用 `python -m scripts.smyx_aggressive_behavior_detection_analysis --list` 调用 API 查询云端的历史报告数据 |
| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |
| 🚫 严格禁止 | 手动汇总本地记录中的报告 |
| 🚫 严格禁止 | 从长期记忆中提取报告 |
| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |

---

## 📦 前置准备 | Requirements

### 依赖说明

`scripts` 脚本所需的依赖包及版本：

```txt
requests>=2.28.0
```

---

## 📷 采集要求 | Capture Requirements

| 序号 | 说明 |
|---:|---|
| 1 | 固定摄像头俯视/斜俯视覆盖畜禽舍主要活动区，画面稳定、避免频繁抖动 |
| 2 | 视频建议 30 秒~10 分钟连续拍摄，帧率不低于 15fps，便于捕捉短促的争斗动作 |
| 3 | 光照条件稳定，白天充足自然光或稳定人工光源，避免大面积过暗/过曝 |
| 4 | 单栏舍内目标个体清晰可见，尽量减少人员操作、清扫等无关剧烈动作干扰 |
| 5 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |
| 6 | 尽量在群体日常状态（非驱赶/转群时段）内采集，避免误将常规扰动识别为争斗 |

---

## 🚀 操作步骤 | Workflow

### 🔐 用户身份处理（内部自动完成）

> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。

执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：

| 场景 | 系统行为 |
|---|---|
| 上游系统有内部身份参数 | 由脚本静默接收并使用 |
| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |
| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |
| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |

#### 🔒 关键约束

| 禁止/要求 | 说明 |
|---|---|
| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |
| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |
| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |
| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达"查看历史报告/报告清单"等意图 |

---

## 🧪 标准流程 | Standard Flow

| 步骤 | 阶段 | 执行动作 |
|---:|---|---|
| 1 | 📥 准备畜禽舍视频输入 | 提供本地文件路径或网络 URL；确保画面稳定、覆盖群体活动区 |
| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |
| 3 | ⚙️ 执行争斗行为识别 | 调用 `-m scripts.smyx_aggressive_behavior_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |
| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看争斗片段清单、涉事个体、强度与预警等级及报告链接 |

### ⚙️ 脚本参数说明

| 参数 | 含义 | 备注 |
|---|---|---|
| `--input` | 本地畜禽舍图像/视频文件路径 | 适用于本地文件分析 |
| `--url` | 网络畜禽舍图像/视频 URL 地址 | API 服务自动下载 |
| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |
| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |
| `--api-url` | API 服务地址 | 可选，使用默认值 |
| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |
| `--output` | 结果输出文件路径 | 可选 |

---

## 🗂️ 资源索引 | Resource Index

| 资源类型 | 路径 | 用途 | 何时读取 |
|---|---|---|---|
| 🐍 必要脚本 | [`scripts/smyx_aggressive_behavior_detection_analysis.py`](scripts/smyx_aggressive_behavior_detection_analysis.py) | 调用 API 进行争斗行为识别或查询历史报告 | 执行分析或查询时使用 |
| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_AGGRESSIVE_BEHAVIOR_DETECTION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |
| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |

---

## ⚠️ 注意事项 | Notes

| 分类 | 注意事项 |
|---|---|
| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |
| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |
| 🧑‍⚖️ 结果性质 | 识别结果仅供争斗行为预警参考，本技能不提供行为干预建议 |
| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |
| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |
| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |

---

## 🔒 隐私与数据安全声明 | Privacy & Data Security

| 序号 | 说明 |
|---:|---|
| 1 | 仅采集与畜禽争斗行为识别直接相关的图像/视频数据，不采集与争斗识别无关的敏感信息 |
| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |
| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |
| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |
| 5 | 识别结果仅供参考，实际干预与处置请结合养殖场规程与专业动物福利/兽医意见 |

---

## 📜 历史报告清单输出规范 | Report List Format

当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。

### 📌 固定输出列

| 列名 | 生成规则 |
|---|---|
| 报告名称 | 使用 `畜禽争斗行为识别报告-{记录id}` 形式拼接 |
| 预警等级 | 从接口返回数据中提取（正常 / 关注 / 预警 / 紧急） |
| 分析时间 | 从接口返回数据中提取 |
| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |

### 🧾 表格输出示例

| 报告名称 | 预警等级 | 分析时间 | 点击查看 |
|----------|----------|----------|----------|
| 畜禽争斗行为识别报告-20260703160500001 | 预警 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |

---

## 🧰 使用示例 | Examples

### 🐷 分析本地猪舍连续视频

```bash
python -m scripts.smyx_aggressive_behavior_detection_analysis --input /path/to/pig_barn.mp4
```

### 🐔 分析本地鸡舍连续视频

```bash
python -m scripts.smyx_aggressive_behavior_detection_analysis --input /path/to/chicken_house.mp4
```

### 🌐 分析网络畜禽舍视频

```bash
python -m scripts.smyx_aggressive_behavior_detection_analysis --url https://example.com/livestock_barn.mp4
```

### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史争斗行为报告

> 自动触发关键词：查看历史争斗行为报告、历史报告、争斗行为识别清单等。

```bash
python -m scripts.smyx_aggressive_behavior_detection_analysis --list
```

### 🪶 输出精简报告

```bash
python -m scripts.smyx_aggressive_behavior_detection_analysis --input pig_barn.mp4 --detail basic
```

### 💾 保存结果到文件

```bash
python -m scripts.smyx_aggressive_behavior_detection_analysis --input chicken_house.mp4 --output result.json
```
