{"id":"429f3eee-2924-4948-b013-b65de31a6c95","entityType":"agent","slug":"clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy","name":"Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别","canonicalUrl":"https://www.xpersona.co/agent/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy","canonicalPath":"/agent/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy","generatedAt":"2026-10-10T10:50:21.322Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T06:57:04.436Z","emptyReason":null},"description":"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 Skill: Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别 Owner: 18072937735 Summary: Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-reptile-feeding-refusal-vomiting-analysis","sourceUrl":"https://clawhub.ai/18072937735/smyx-reptile-feeding-refusal-vomiting-analysis","homepage":"https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/18072937735/smyx-reptile-feeding-refusal-vomiting-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior,"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:57:04.436Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:57:04.436Z","emptyReason":null},"stars":null,"forks":null,"downloads":1607,"packageName":null,"latestVersion":"1.0.12","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T06:57:04.435Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T06:57:04.436Z","lastCrawledAt":"2026-10-10T06:57:04.435Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T06:57:04.435Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.12","createdAt":"2026-09-28T15:23:31.575Z","changelog":"- Removed the file: skill-card.md","fileCount":31,"zipByteSize":44768},{"version":"1.0.11","createdAt":"2026-09-27T02:42:40.533Z","changelog":"- Updated skill version to 1.0.15. - Improved documentation in SKILL.md; expanded and clarified descriptions. - Updated configuration file in skills/smyx_common/scripts/config.yaml. - Removed redundant file: skill-card.md.","fileCount":31,"zipByteSize":44814},{"version":"1.0.10","createdAt":"2026-09-14T00:20:29.266Z","changelog":"- Updated version to 1.0.13 in SKILL.md. - Removed the file: skill-card.md. - No functional, feature, or interface changes described; this is a minor maintenance update (likely version/metadata and documentation cleanup).","fileCount":31,"zipByteSize":45163},{"version":"1.0.9","createdAt":"2026-08-27T12:23:33.582Z","changelog":"- Version updated from 1.0.10 to 1.0.12. - Documentation (SKILL.md) refreshed with minor adjustments to versioning and descriptive details. - skill-card.md file removed from the repository. - No changes to technical features or core logic.","fileCount":31,"zipByteSize":44925},{"version":"1.0.8","createdAt":"2026-08-17T16:29:30.799Z","changelog":"- Removed redundant documentation file `skill-card.md` to streamline project files. - Updated configuration file (`scripts/config.yaml`) for improved maintainability. - No changes to the skill’s core functionality or user-facing features.","fileCount":31,"zipByteSize":45025},{"version":"1.0.7","createdAt":"2026-08-10T19:27:30.935Z","changelog":"- Updated version from 1.0.7 to 1.0.10. - SKILL.md revised; removed skill-card.md. - Documentation updates and clarifications, with no changes to core functionality. - No user-facing feature or logic changes.","fileCount":31,"zipByteSize":44844},{"version":"1.0.6","createdAt":"2026-07-30T02:39:28.926Z","changelog":"- Updated skill version to 1.0.7. - SKILL.md revised and version bumped; minor content or metadata changes may have been made. - Removed the redundant or legacy skill-card.md file. - No changes to core logic, features, or user-facing capabilities.","fileCount":31,"zipByteSize":44995},{"version":"1.0.5","createdAt":"2026-07-14T07:29:31.838Z","changelog":"- Updated version to 1.0.5. - Improved or clarified documentation in SKILL.md. - Removed the redundant file skill-card.md. - No changes to external functionality or behavior.","fileCount":31,"zipByteSize":45035}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-reptile-feeding-refusal-vomiting-analysis","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T10:50:21.317Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-reptile-feeding-refusal-vomiting-analy/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T06:57:04.436Z","emptyReason":null},"readme":"Skill: Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n\nOwner: 18072937735\n\nSummary: Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\n\nTags: latest:1.0.12\n\nVersion history:\n\nv1.0.12 | 2026-09-28T15:23:31.575Z | auto\n\n- Removed the file: skill-card.md\n\nv1.0.11 | 2026-09-27T02:42:40.533Z | auto\n\n- Updated skill version to 1.0.15.\n- Improved documentation in SKILL.md; expanded and clarified descriptions.\n- Updated configuration file in skills/smyx_common/scripts/config.yaml.\n- Removed redundant file: skill-card.md.\n\nv1.0.10 | 2026-09-14T00:20:29.266Z | auto\n\n- Updated version to 1.0.13 in SKILL.md.\n- Removed the file: skill-card.md.\n- No functional, feature, or interface changes described; this is a minor maintenance update (likely version/metadata and documentation cleanup).\n\nv1.0.9 | 2026-08-27T12:23:33.582Z | auto\n\n- Version updated from 1.0.10 to 1.0.12.\n- Documentation (SKILL.md) refreshed with minor adjustments to versioning and descriptive details.\n- skill-card.md file removed from the repository.\n- No changes to technical features or core logic.\n\nv1.0.8 | 2026-08-17T16:29:30.799Z | auto\n\n- Removed redundant documentation file `skill-card.md` to streamline project files.\n- Updated configuration file (`scripts/config.yaml`) for improved maintainability.\n- No changes to the skill’s core functionality or user-facing features.\n\nv1.0.7 | 2026-08-10T19:27:30.935Z | auto\n\n- Updated version from 1.0.7 to 1.0.10.\n- SKILL.md revised; removed skill-card.md.\n- Documentation updates and clarifications, with no changes to core functionality.\n- No user-facing feature or logic changes.\n\nv1.0.6 | 2026-07-30T02:39:28.926Z | auto\n\n- Updated skill version to 1.0.7.\n- SKILL.md revised and version bumped; minor content or metadata changes may have been made.\n- Removed the redundant or legacy skill-card.md file.\n- No changes to core logic, features, or user-facing capabilities.\n\nv1.0.5 | 2026-07-14T07:29:31.838Z | auto\n\n- Updated version to 1.0.5.\n- Improved or clarified documentation in SKILL.md.\n- Removed the redundant file skill-card.md.\n- No changes to external functionality or behavior.\n\nv1.0.4 | 2026-07-05T16:33:26.397Z | auto\n\nNo file changes detected in this version.\n\n- No updates, fixes, or additional features introduced in version 1.0.4.\n- Behavior, documentation, and functionality remain unchanged from the previous release.\n\nv1.0.3 | 2026-07-04T17:17:33.109Z | auto\n\nsmyx-reptile-feeding-refusal-vomiting-analysis 1.0.3 Changelog\n\n- Internal code improvements in configuration, data access, and utility scripts.\n- Cleanup: Removed unnecessary file `skill-card.md`.\n- No user-facing behavior or feature changes.\n\nv1.0.2 | 2026-06-28T10:40:26.104Z | auto\n\n- Updated internal user identity handling: analysis and historical queries now use system-managed identity automatically, without ever exposing or requiring user-provided IDs.\n- Removed any prompts or requirements for the user to input open-id, username, or phone number.\n- Enhanced privacy and security: internal identifiers are never shown in responses, error messages, arguments, or documentation for users.\n- All report queries strictly fetch data from the cloud API; use of local memory, summaries, or long-term recall is forbidden.\n- Documentation revised for improved clarity and explicit privacy compliance, with new workflow and operation tables.\n- Obsolete files removed; example and reference documentation updated to match new behaviors.\n\nv1.0.1 | 2026-06-16T22:44:24.091Z | auto\n\nsmyx-reptile-feeding-refusal-vomiting-analysis v1.0.1\n\n- Updated the open-id acquisition process to prioritize the skill root directory (scripts/config.yaml), improving configuration consistency and flexibility.\n- Added a license field (MIT-0) to the SKILL.md file for clearer licensing information.\n- Cleaned up redundant documentation files (removed skill-card.md).\n- Refactored configuration and API-related scripts for simplified and more robust config lookup logic.\n\nv1.0.0 | 2026-06-09T12:04:47.147Z | auto\n\nsmyx-reptile-feeding-refusal-vomiting-analysis 1.0.0 – Initial release\n\n- Detects and analyzes reptile feeding and post-feeding behaviors (attack, swallowing, regurgitation) via enclosure cameras.\n- Identifies feeding refusal and vomiting events, providing structured alerts and recommendations based on species and physiological context.\n- Implements strict open-id authentication for event recording and cloud-based history queries.\n- Supports integration with smart vivariums and reptile-keeping apps for automatic monitoring and notification.\n- Enforces privacy, event-reporting, and intervention boundaries; avoids overreaching into diagnosis or forced care actions.\n- Provides bilingual (English/Chinese) documentation for ease of use in varied application scenarios.\n\nArchive index:\n\nArchive v1.0.12: 31 files, 44768 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (2190b), SKILL.md (18003b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (166b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.15\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790609011575\n}\n\nFile v1.0.12:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.12:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.12:scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.12:skill-card.md\n\n## Description:\n\nAnalyzes reptile enclosure feeding videos for prey attacks, swallowing, feeding refusal, and regurgitation, and reports possible feeding anomalies.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nReptile keepers and enclosure operators use feeding videos to track attacks, swallowing, refusal, and regurgitation, and to review past anomaly reports. The results are behavior observations, not veterinary diagnoses.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Enclosure footage, supplied URLs, identity metadata, and report history requests are sent to a remote service.\n\nMitigation: Review before installing; avoid sensitive household footage and share only media and URLs you are comfortable sending to the configured service.\n\nRisk: The skill silently creates or reuses an identity and stores service tokens locally.\n\nMitigation: Run in an isolated workspace and prefer a release that clearly discloses account behavior and avoids local token storage.\n\nRisk: Python import-path handling may expose execution to untrusted local code.\n\nMitigation: Use an isolated workspace and prefer a release that fixes the import-path handling.\n\n## Reference(s):\n\n- [Skill API and analysis reference](references/api_doc.md)\n- [Skill demonstration](https://lifeemergence.com/sample.html)\n- [ClawHub skill release](https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON]\n\n**Output Format:** [Markdown report or history table; optional JSON or saved text file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reports feeding events and alerts; not a veterinary diagnosis.]\n\n## Skill Version(s):\n\n1.0.12 (source: server-resolved ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.12:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.12:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.11: 31 files, 44814 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (2230b), SKILL.md (18003b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (166b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.15\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1790476960533\n}\n\nFile v1.0.11:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.11:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.11:scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nAnalyzes reptile feeding videos to identify prey attacks, swallowing, feeding refusal, and regurgitation and provide alerts and reports.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nReptile keepers and enclosure operators use feeding videos or video URLs to review feeding refusal and regurgitation alerts, examine analysis reports, and retrieve report history.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Videos or supplied URLs are sent to an external cloud service, potentially exposing private household footage.\n\nMitigation: Obtain consent and confirm the service's retention and account controls before submitting sensitive footage or URLs.\n\nRisk: Cloud report history is associated with an automatically managed identity, and reusable service tokens are stored in a local SQLite database.\n\nMitigation: Review installation and access controls, protect the local database, and use only if the account and retention behavior is acceptable.\n\nRisk: Poor camera coverage or missing feeding context may make refusal and vomiting alerts unreliable.\n\nMitigation: Check footage quality and species-specific feeding context; seek a reptile veterinarian for health concerns rather than treating alerts as a diagnosis.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis)\n- [Skill API documentation](references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Guidance]\n\n**Output Format:** [Structured analysis report or Markdown history table]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes feeding events, alerts, suggested actions, and report links when available.]\n\n## Skill Version(s):\n\n1.0.11 (source: server-resolved ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.11:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.11:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.10: 31 files, 45163 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (3034b), SKILL.md (18003b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (166b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1789345229266\n}\n\nFile v1.0.10:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.10:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.10:scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nAnalyzes fixed-camera reptile feeding videos to identify prey attack, swallowing, feeding refusal, and regurgitation events.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to analyze reptile enclosure feeding videos or URLs, receive structured refusal/vomiting event reports, and query cloud-stored historical reports. It is intended for behavior monitoring and alerting, not veterinary diagnosis.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The security scan says the skill may upload sensitive enclosure videos and account data through unsecured development HTTP endpoints.\n\nMitigation: Use only after the publisher documents production HTTPS configuration and retention behavior; avoid private household footage or real account data until that is resolved.\n\nRisk: The security scan says the skill silently creates or reuses a local identity and stores reusable tokens in a workspace database.\n\nMitigation: Review identity and token behavior before installation, run in an isolated workspace, and remove stored credentials after evaluation.\n\nRisk: Feeding refusal and regurgitation reports may be mistaken for veterinary diagnosis.\n\nMitigation: Present outputs as visual behavior records only and direct users to a professional reptile veterinarian for persistent refusal, vomiting, or health concerns.\n\nRisk: Poor camera position, lighting, frame rate, missing feeding time, or incomplete observation windows can make the visual signal unreliable.\n\nMitigation: Require a clear fixed view of the feeding area, sufficient light, at least 720p and 20 FPS, and the documented feeding/refusal/regurgitation windows; return an unreliable-signal result when these conditions are not met.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis)\n- [API documentation](artifact/references/api_doc.md)\n- [Shared analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, guidance]\n\n**Output Format:** [Markdown status text with structured JSON analysis results and report links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Analysis outputs may include attack, swallow, regurgitation, refusal, alert-level, recommendation, disclaimer, and report export fields; history queries return cloud report lists.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata; artifact SKILL.md frontmatter says 1.0.13)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.10:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.10:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.9: 31 files, 44925 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (2496b), SKILL.md (18003b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (165b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1787833413582\n}\n\nFile v1.0.9:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.9:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.9:scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nAnalyzes reptile enclosure feeding videos to detect prey attacks, swallowing, feeding refusal, and post-feeding regurgitation, then returns structured alerts and report links.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal reptile keepers, vivarium operators, and developers use this skill to analyze feeding-window videos or URLs for attack, swallow, regurgitation, refusal, alert-level, and historical-report signals. It supports behavior records and non-diagnostic care guidance rather than veterinary diagnosis.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Reptile enclosure videos or URLs are sent to the configured analysis service.\n\nMitigation: Review the configured endpoints and data-handling expectations before use, and submit only footage that is appropriate to transmit to that service.\n\nRisk: The skill can create or reuse a local identity and persist service tokens in a workspace SQLite database.\n\nMitigation: Run the skill in a dedicated workspace, treat workspace data files as secrets, and rotate tokens if those files are exposed.\n\nRisk: Published configuration includes environment-specific service URLs, including dev or private HTTP endpoints.\n\nMitigation: Audit configuration before installation and use only intended HTTPS production endpoints for normal releases.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis)\n- [API interface documentation](artifact/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown text with structured JSON-style analysis fields, report links, and optional saved output files.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May write an output file when --output is supplied; analysis and history queries use configured API endpoints.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release evidence; artifact frontmatter says 1.0.12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.9:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.9:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.8: 31 files, 45025 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (2681b), SKILL.md (18003b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (472b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (165b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.10\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1786984170799\n}\n\nFile v1.0.8:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.8:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.8:scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nThrough fixed enclosure cameras, the skill analyzes feeding-time and post-feeding videos of reptiles to detect prey-attack behavior, successful swallowing, feeding refusal, and regurgitation or vomiting events.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal reptile keepers, vivarium operators, and developers use this skill to analyze enclosure feeding videos or URLs for refusal, swallowing, regurgitation, signal reliability, and suggested follow-up actions. It is intended to produce behavior records and alerts, not veterinary diagnoses.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Videos or URLs are sent to a remote service for analysis.\n\nMitigation: Use the skill only with footage that can be shared with the configured service, and confirm the service endpoint and publisher are trusted before installation.\n\nRisk: The skill may create or reuse an identity and store authentication tokens locally.\n\nMitigation: Run it in an isolated workspace, review token storage behavior, and remove local credentials when access is no longer needed.\n\nRisk: Development or private-network endpoints may be present in configuration.\n\nMitigation: Confirm production HTTPS endpoints before use and avoid running the skill with private dev endpoints in customer or production workflows.\n\nRisk: Feeding refusal or vomiting analysis can be mistaken for veterinary diagnosis.\n\nMitigation: Treat outputs as behavior observations and follow-up suggestions only; consult a qualified reptile veterinarian for diagnosis or treatment decisions.\n\n## Reference(s):\n\n- [API 接口文档](references/api_doc.md)\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance]\n\n**Output Format:** [Markdown or JSON analysis results with optional saved output file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Reports may include attack, swallow, regurgitation, refusal, confidence, alert level, recommended actions, and report links.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release metadata; artifact frontmatter says 1.0.10)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.8:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.8:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.7: 31 files, 44844 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (2373b), SKILL.md (18003b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (165b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.10\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1786390050935\n}\n\nFile v1.0.7:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.7:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.7:scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nAnalyzes fixed-enclosure reptile feeding videos to detect prey attack, swallowing, feeding refusal, and post-feeding regurgitation or vomiting events.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal reptile keepers, breeders, vivarium operators, and developers use this skill to send feeding media to a cloud analysis service and receive structured behavior reports, alert levels, recommendations, and report links for refusal or vomiting events.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Cloud media analysis can send reptile enclosure media or supplied media URLs to the lifeemergence service.\n\nMitigation: Use only media suitable for external cloud processing and avoid private URLs or sensitive footage.\n\nRisk: The skill can create or reuse an internal identifier and maintain local workspace data such as session tokens.\n\nMitigation: Review local SQLite/token storage before use and delete workspace data and tokens before handling sensitive footage or sharing the environment.\n\nRisk: Visual feeding analysis can be mistaken for veterinary diagnosis.\n\nMitigation: Treat outputs as behavior records and consult a professional reptile veterinarian for repeated refusal, vomiting, or health concerns.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis)\n- [Publisher profile](https://clawhub.ai/user/18072937735)\n- [API documentation](references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown and JSON-like structured analysis reports, with optional saved text output.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include cloud report links, alert levels, recommended actions, and history tables.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.7:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.7:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.6: 31 files, 44995 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (2731b), SKILL.md (18002b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (165b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1785379168926\n}\n\nFile v1.0.6:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.6:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.6:scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.6:skill-card.md\n\n## Description: <br>\nAnalyzes fixed reptile enclosure feeding and post-feeding videos to detect prey attack, swallowing, feeding refusal, and regurgitation, then reports abnormal feeding events. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[18072937735](https://clawhub.ai/user/18072937735) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal reptile keepers, vivarium operators, reptile farms, and developers use this skill to analyze enclosure video for feeding behavior, refusal, vomiting, alert level, recommended non-medication actions, and report links. It is intended to support monitoring workflows and should not be treated as a veterinary diagnosis. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Reptile enclosure footage, supplied video URLs, account identifiers, and report history may be sent to the vendor cloud. <br>\nMitigation: Install only for accounts and workspaces where that data sharing is acceptable, and confirm consent, retention, and deletion controls with the publisher before use. <br>\nRisk: The skill creates or reuses account identity and stores tokens locally. <br>\nMitigation: Use a dedicated workspace or account, limit access to the runtime environment, and rotate or revoke credentials when removing the skill. <br>\nRisk: Analysis results can affect animal-care decisions but are not a veterinary diagnosis. <br>\nMitigation: Treat outputs as visual behavior records and monitoring guidance; use professional reptile veterinary review for persistent refusal, vomiting, or health concerns. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-reptile-feeding-refusal-vomiting-analysis) <br>\n- [Reptile feeding refusal/vomiting API documentation](artifact/references/api_doc.md) <br>\n- [Skill usage demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, guidance] <br>\n**Output Format:** [Markdown and JSON-style structured analysis reports with report links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include attack, swallowing, vomiting, refusal, context, alert-level, recommended-action, disclaimer, and historical-report fields.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: server release metadata; artifact frontmatter reports 1.0.7) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.6:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.6:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.5: 31 files, 45035 bytes\n\nFiles: references/api_doc.md (7222b), scripts/__init__.py (63b), scripts/config.py (692b), scripts/config.yaml (3b), scripts/skill.py (580b), scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py (3688b), skill-card.md (2885b), SKILL.md (18002b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (24363b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28776b), _meta.json (165b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.5\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Level 3 异常拒食检查温度湿度 UVB+猎物状态+大小+7 天后再试 → Level 4 呕吐立即停喂 24-72h+检查消化温度+观察精神排泄+联系兽医）。**核心物种特异性硬约束**：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食后**数日至两周不进食属正常**；**冬化期物种**（部分龟类、玉米蛇）**整季拒食属正常**；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食；**抱卵/产前**雌性常拒食 → **严禁通用阈值盲判生理性拒食为异常**。生理性上下文必须考虑（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报。视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`。不提供任何疾病诊断，仅输出基于视觉的进食行为记录；**严禁输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药**；**严禁输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量**；严禁伪造夸大攻击/吞食/反吐事件；严禁越权代用户投喂或启停设备（仅建议）。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于爬宠箱固定摄像头**喂食时段及后续视频**（默认投喂 t0 → 拒食判定 t0+30 分钟 → 呕吐判定吞食+2 小时），识别 7 类综合场景（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / refusal_abnormal / vomiting_event / vomiting_with_environmental_cause / feeding_signal_unreliable）→ **五组指标**：攻击 4 项（猎物出现 + 攻击次数 + 攻击延迟 + 置信度）+ 吞食 3 项（**吞食次数** + 完整吞食时长 + 置信度）+ 反吐 4 项（**是否反吐** + 反吐延迟 + 反吐物外观 + 置信度）+ 拒食判定 3 项（**refusal_judged** + 无视时长 + 主动逃避检测）+ 排除上下文 7 项（蜕皮 / 冬化 / 距上次进食 / 繁殖 / 抱卵 / 温度适宜 / 新入缸）→ 4 档提醒级别（info / notice / important / urgent）→ **4 级提醒策略递进**（积极反馈 → 生理性正常 → 异常拒食检查环境+猎物+7 天后再试 → 呕吐紧急停喂+检查消化温度+兽医）→ 单日提醒上限（Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5 呕吐每次必报**）→ **拒食/呕吐事件报告**（按 enclosure_id + feed_time 输出，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明）\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 投喂时刻 t0 自动识别（猎物投入瞬间） |\n| 2 | 猎物目标检测（活鼠 / 乳鼠 / 蟋蟀 / 面包虫 / 杜比亚 / 蔬果） |\n| 3 | 爬宠目标跟踪 |\n| 4 | 攻击行为检测（咬击瞬间 + 缠绕姿态） |\n| 5 | 吞食行为检测（口腔张大 + 颈部蠕动 + 猎物逐步消失） |\n| 6 | **反吐事件检测**（吞食后口腔反向蠕动 + 猎物/部分/液体重新出现） |\n| 7 | 拒食窗口计时（30 分钟无攻击无吞食） |\n| 8 | 生理性上下文识别（蜕皮 / 冬化 / 72h 内已喂 / 繁殖 / 抱卵 / 新入缸 / 温度异常） |\n| 9 | 视野与光照门控 |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级提醒递进 |\n| 12 | 单日提醒上限 |\n| 13 | 事件报告（按 enclosure_id + feed_time 输出） |\n| 14 | 连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供爬宠箱喂食视频 URL 或文件需要分析时，默认触发本技能进行爬宠拒食/呕吐识别 |\n| 🔎 明确分析意图 | 当用户明确提及爬宠拒食、爬宠不吃东西、爬宠吐了、反吐、呕吐、爬宠开食、爬宠喂食异常等关键词，并且上传了视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看爬宠拒食/呕吐历史报告、喂食异常事件清单、查询历史拒食呕吐记录、显示所有爬宠喂食异常报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备爬宠箱喂食视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行爬宠拒食/呕吐识别 | 调用 `-m scripts.smyx_reptile_feeding_refusal_vomiting_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地爬宠箱喂食视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络爬宠箱喂食视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，爬宠拒食/呕吐场景默认 `other` | 按需填写 |\n| `--list` | 显示爬宠拒食/呕吐异常事件历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py`](scripts/smyx_reptile_feeding_refusal_vomiting_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov，最大 10MB；摄像头需**正对喂食区域，无遮挡**；帧率 ≥ 20 FPS；覆盖**投喂瞬间 → 30 分钟拒食窗口 → 吞食后 2 小时呕吐窗口** |\n| 🔎 使用提醒 | **核心双窗口**：拒食窗口（t0 ~ t0+30 分钟）+ 呕吐窗口（吞食时间 ~ +2 小时） |\n| 🔎 使用提醒 | **核心输出**：`refusal_judged` + `vomit_event_detected` + 综合场景标签 |\n| 🔎 使用提醒 | **4 级提醒策略递进**（info → notice → important → urgent），呕吐事件直接进入 Level 4 |\n| 🔎 使用提醒 | 单日提醒上限：Level 1 不限 / Level 2 × 4 / Level 3 × 3 / **Level 4 × 5（呕吐每次必报，不可压制）** |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法 X 天\"等具体操作剂量（任何操作必须由兽医现场判断） |\n| 🔎 使用提醒 | **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议） |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大攻击次数、吞食次数、反吐事件等指标；所有数据必须基于真实视频帧分析 |\n| 🔎 使用提醒 | **必须**按 **species 进食生理基线**判定（大型蛇类一次喂食后数日至两周不进食属正常 / 冬化期整季拒食属正常 / 蜕皮期可拒食 / 繁殖期雄性可拒食 / 抱卵产前雌性可拒食）；**严禁通用阈值盲判生理性拒食为异常** |\n| 📚 文档读取 | **必须**考虑生理性上下文（**蜕皮 / 冬化 / 距上次成功喂食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常**），避免误报 |\n| 🔎 使用提醒 | **必须**在视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入时返回 `feeding_signal_unreliable` 并建议调整摄像头或补充投喂时间录入 |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 次 Level 3 → 强烈建议联系**专业爬宠兽医** |\n| 📜 报告输出 | **必须**：拒食/呕吐事件报告**按 enclosure_id + feed_time 输出**，含攻击/吞食/反吐事件 + 拒食判定 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史拒食/呕吐事件记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1784014171838\n}\n\nFile v1.0.5:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由兽医现场判断）\n- **禁止**长期存储完整爬宠箱视频（≤ 14 天，仅入库喂食事件 + 异常事件片段；养殖场按管理规定）\n- **禁止**用于商业广告 / AI 训练；禁第三方共享\n- **禁止**越权代用户投喂 / 启停加热灯 / UVB / 加热垫 / 灯光参数；任何设备控制变更必须由用户确认（仅可建议）\n- 攻击次数、吞食次数、反吐时间等指标必须基于真实视频帧分析；**禁止伪造或夸大指标**\n- 物种特异性：**大型蛇类**（球蟒 / 红尾蚺 / 王蛇等）一次喂食可数日至两周不进食属正常；**冬化期物种**（部分龟类、玉米蛇）整季拒食属正常；**蜕皮期**所有爬宠均可能拒食；**繁殖期**雄性可能拒食 → **严禁通用阈值盲判生理性拒食为异常**\n- 必须考虑生理性上下文：**蜕皮 / 冬化 / 距上次进食 < 72h / 繁殖期 / 抱卵期 / 新入缸应激 / 环境温度异常** → 不可直接告警\n- 视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入 → 必须返回 `feeding_signal_unreliable`\n- 必须告知用户：AI 行为分析仅供参考，**呕吐/拒食根因诊断需结合现场观察并由专业爬宠兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `enclosure_id` - 爬宠箱 ID\n- `species` - 宠物物种\n- `prey_type` - 猎物类型\n- `prey_count` - 猎物数量\n- `feed_time` - 投喂时间戳\n- `attack_event_count` - 攻击次数\n- `swallow_event_count` - 吞食次数\n- `vomit_event_detected` - 是否反吐\n- `vomit_latency_minutes_after_swallow` - 吞食后反吐延迟（分钟）\n- `refusal_judged` - 是否判定拒食\n- `composite_scene` - 综合判定\n- `alert_level` - 提醒等级\n- `recommended_actions` - 建议动作（检查温度湿度 UVB / 检查猎物状态 / 评估猎物大小 / 停止后续投喂 / 观察精神排泄体表 / 联系爬宠兽医，**不含药物/剂量/灌食操作**）\n- `disclaimer` - 免责声明\n\nFile v1.0.5:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.5:scripts/config.yaml\n\n{}\n\nFile v1.0.5:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.5:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.5:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.5:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x...","readmeExcerpt":"Skill: Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别 Owner: 18072937735 Summary: Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json"},{"language":"bash","snippet":"python -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input /path/to/feeding.mp4\n\n# 分析网络爬宠箱喂食视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --url https://example.com/feeding.mp4\n\n# 显示历史拒食/呕吐事件记录清单（自动触发关键词：查看爬宠拒食/呕吐历史报告等）\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_reptile_feeding_refusal_vomiting_analysis --input feeding.mp4 --output result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-reptile-feeding-refusal-vomiting-analysis\"\ndescription: \"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。\"\nversion: \"1.0.15\"\nlicense: \"MIT-0\"\n---\n\n# 🐍 Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **爬宠进食拒绝/呕吐识别** |\n| 🎯 核心目标 | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` |\n\nThrough fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). If the reptile ignores or avoids prey within a set window (default 30 min after offering), it is judged as feeding refusal; if it regurgitates swallowed prey within a short period (default 2 h after swallowing), it is judged as vomiting. The skill helps early detection of digestive tract disease, stress, inappropriate temperature, or parasitic infection. Application scenarios: vivariums, breeding tanks, reptile farms. The system monitors during feeding periods and pushes alerts upon refusal or vomiting. Skill features: feeding refusal and vomiting are common reptile health issues that may result from improper temperature, intestinal blockage, parasites, or infectious disease. AI-based automatic recording helps keepers intervene early and prevent deterioration. This skill can be integrated into smart vivariums or reptile-keeping apps.\n\n通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。该技能有助于早期发现爬宠的消化道疾病、应激、环境温度不适或寄生虫感染。应用场景：爬宠箱、饲养缸、爬行动物养殖场。系统在喂食时段自动监测，当出现拒食或呕吐时向饲养者推送提醒。技能特点：拒食和呕吐是爬宠常见的健康问题，可能由温度不当、肠道堵塞、寄生虫或传染病引起。通过 AI 自动记录，可提醒饲养者及时干预，避免病情恶化。该技能可集成到智能爬宠箱或饲养管理 APP 中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的爬行动物健康监测 AI。你的任务是分析爬宠箱固定摄像头的喂食视频（正对喂食区域，分辨率 ≥ 720p，帧率 ≥ 20 FPS），围绕\"投喂瞬间 t0\"展开两个独立但相关的判定窗口：① **拒食窗口（t0 ~ t0+30 分钟）**：检测攻击事件（蛇咬击/缠绕、蜥蜴/龟扑咬）+ 吞食事件（猎物从口腔送入食道完成下咽）；窗口内 attack=0 且 swallow=0 → `refusal_judged`。② **呕吐窗口（吞食时间点 ~ +2 小时）**：检测反吐事件（反刍吐出全猎物/部分/液体），反吐物外观分类。按 **species（精确到物种：球蟒 / 玉米蛇 / 红尾蚺 / 王蛇 / 豹纹守宫 / 鬃狮蜥 / 蓝舌石龙子 / 红腿象龟 / 苏卡达 / 缅陆等）匹配进食生理基线**，按 7 类综合场景判定（feeding_normal_attack_swallow / feeding_normal_delayed_attack / refusal_in_physiological_context / **refusal_abnormal** / **vomiting_event** / **vomiting_with_environmental_cause** / feeding_signal_unreliable），按 4 级提醒策略递进（Level 1 积极反馈 → Level 2 生理性正常无需干预 → Le"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-reptile-feeding-refusal-vomiting-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790609011575\n}"},{"path":"references/api_doc.md","content":"# API 接口文档\n\n此处用于存放爬宠进食拒绝/呕吐识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动爬宠拒食/呕吐识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果（攻击事件 / 吞食事件 / 反吐事件 / 拒食判定）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史拒食/呕吐事件记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出事件报告\n\n## 场景代码\n\n- `SMYX_REPTILE_FEEDING_REFUSAL_VOMITING_ANALYSIS` - 爬宠进食拒绝/呕吐识别\n\n## 输入约束\n\n- 摄像头：爬宠箱固定摄像头，**必须正对喂食区域**，无遮挡\n- 分辨率 ≥ 720p；帧率 ≥ 20 FPS（攻击/吞食/反吐动作快，需较高帧率）\n- 光照：喂食时段保持充足光照（避免漆黑环境无法识别）\n- **核心采样窗口**：投喂瞬间为 t0 → 拒食判定窗口默认 t0+30 分钟 → 呕吐判定窗口默认 t0+2 小时（吞食后）\n- 多箱场景按摄像头 ID 绑定到注册容器 ID\n- **部署时必须录入**：宠物物种、猎物类型（乳鼠/成鼠/蟋蟀/面包虫/蔬果等）、猎物数量、投喂时间戳\n\n## 关键观测信号\n\n### 攻击行为\n- `prey_present_in_view` - 猎物是否出现在视野中\n- `attack_event_count` - 攻击次数（蛇：咬击+缠绕；蜥蜴/龟：扑咬）\n- `attack_latency_seconds` - 从投喂到首次攻击的延迟（秒）\n- `attack_confidence` - 攻击行为置信度\n\n### 吞食行为\n- `swallow_event_count` - **成功吞食次数**（核心指标）\n- `swallow_completion_time_seconds` - 单次完整吞食时长\n- `swallow_confidence` - 吞食置信度\n\n### 反吐/呕吐行为（吞食后）\n- `vomit_event_detected` - **是否检测到反吐事件**（核心指标）\n- `vomit_latency_minutes_after_swallow` - 吞食后多少分钟反吐（< 120 分钟为短时呕吐）\n- `vomit_appearance` - 反吐物外观（whole_prey / partial / liquid_only / mucus）\n- `vomit_confidence` - 反吐置信度\n\n### 拒食判定\n- `refusal_judged` - **是否判定为拒食**（窗口内 attack_event_count = 0 且 swallow_event_count = 0）\n- `ignore_duration_seconds` - 无视猎物总时长\n- `avoidance_behavior_detected` - 是否检测到主动逃避（远离猎物移动）\n\n### 上下文与排除信号\n- `is_during_shedding_cycle` - 是否处于蜕皮期（蜕皮期拒食属正常）\n- `is_during_brimation` - 是否处于冬化/冬眠期（冬化拒食属正常）\n- `is_post_meal_within_72h` - 距上次成功喂食 < 72 小时（大型蛇类一次喂食后多日不再进食属正常）\n- `is_breeding_season` - 是否繁殖期（雄性繁殖期可能拒食属正常）\n- `is_gravid_or_pre_lay` - 是否抱卵/产前（产前拒食属正常）\n- `enclosure_temperature_appropriate` - 环境温度是否在适宜范围（温度过低代谢下降可能拒食）\n- `is_newly_introduced` - 是否新入缸适应期（应激拒食属正常）\n\n## 综合判定\n\n- `feeding_normal_attack_swallow` - 攻击+成功吞食，行为正常\n- `feeding_normal_delayed_attack` - 攻击有延迟但成功吞食，可能轻度应激\n- `refusal_in_physiological_context` - 拒食但属生理性正常上下文（蜕皮/冬化/72h 内喂过/繁殖/产前/新入缸）\n- `refusal_abnormal` - **异常拒食**（无生理性上下文 + 30 分钟内无攻击无吞食）\n- `vomiting_event` - **呕吐事件**（吞食后 2 小时内反吐）\n- `vomiting_with_environmental_cause` - 呕吐 + 环境温度异常（疑似温度不适致代谢异常）\n- `feeding_signal_unreliable` - 信号不可靠（视野遮挡 / 光照不足 / 跟踪率 < 80% / 投喂时间未录入）\n\n## 4 级提醒策略递进\n\n- Level 1（feeding_normal_attack_swallow）：仅入库 + 用户 APP 积极反馈\"成功捕食并吞食\"\n- Level 2（feeding_normal_delayed_attack / refusal_in_physiological_context）：温和提示，记录生理性拒食属正常上下文，无需干预\n- Level 3（refusal_abnormal）：重要提示，建议**检查环境温度/湿度/UVB/躲避区设置 + 检查猎物状态（活鼠是否健康/昆虫是否过冷）+ 评估猎物大小是否合适 + 7 天后再次尝试投喂；若连续 ≥ 2 次拒食则建议联系爬宠兽医**\n- Level 4（vomiting_event / vomiting_with_environmental_cause）：紧急提示，建议**立即停止后续投喂 24-72 小时 + 检查环境温度（特别是消化温度梯度）+ 观察精神状态、排泄、体表 + 联系爬宠兽医（呕吐可能是肠道堵塞、寄生虫、传染病信号）**\n\n## 单日提醒上限\n\n- Level 1 不限 / Level 2 × 4 / Level 3 × 3 / Level 4 × 5（呕吐事件每次必报）\n\n## 红线约束\n\n- **🚨 禁止**做\"隐孢子虫病 / 库道虫病 / OPMV / 蛇类传染性脑膜炎 / 肠道堵塞 / 代谢性骨病\"等**具体疾病诊断**\n- **🚨 绝对禁止**输出具体药物名称、剂量、给药方案、灌肠剂、催吐剂、止吐药\n- **🚨 绝对禁止**输出\"强制开口喂食\"\"灌食\"\"饥饿疗法多少天\"等具体操作剂量（必须由"},{"path":"skills/smyx_analysis/references/api_doc.md","content":"# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |"},{"path":"scripts/config.yaml","content":"{}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或将已吞入的食物吐出时，记录异常事件并输出提示。 Skill: Reptile Feeding Refusal / Vomiting Detection | 爬宠进食拒绝/呕吐识别 Owner: 18072937735 Summary: Through fixed enclosure cameras, the system analyzes feeding-time and post-feeding videos of reptiles (snakes, lizards, turtles) to detect prey-attack behavior, successful swallowing, and regurgitation (vomiting). | 通过爬宠箱固定摄像头，分析喂食时及喂食后一段时间的视频，检测爬行动物（如蛇、蜥蜴、龟）的进食行为：是否主动攻击猎物（如鼠、昆虫）、是否成功吞食、以及是否在进食后短时间内将食物吐出（反吐）。当宠物对猎物无视、逃避（拒食）或","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1095,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T06:57:04.436Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T06:57:04.436Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:50:21.322Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}