{"id":"4a9f936d-785e-4a14-82bb-dc5d5feecab9","entityType":"agent","slug":"clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis","name":"Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别","canonicalUrl":"https://www.xpersona.co/agent/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis","canonicalPath":"/agent/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis","generatedAt":"2026-10-10T07:44:01.722Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:11:59.066Z","emptyReason":null},"description":"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-ear-health-snapshot-analysis","sourceUrl":"https://clawhub.ai/smyx-sunjinhui/smyx-ear-health-snapshot-analysis","homepage":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/smyx-sunjinhui/smyx-ear-health-snapshot-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":66,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:11:59.066Z","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-09T23:11:59.066Z","emptyReason":null},"stars":null,"forks":null,"downloads":1904,"packageName":null,"latestVersion":"1.0.11","tractionLabel":"1.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:11:59.066Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T23:11:59.066Z","lastCrawledAt":"2026-10-09T23:11:59.066Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T23:11:59.066Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.11","createdAt":"2026-09-29T21:27:32.071Z","changelog":"- Removed the skill description file skill-card.md. - No other functional or behavioral changes. - Documentation cleanup only; no impact on usage or features.","fileCount":31,"zipByteSize":39046},{"version":"1.0.10","createdAt":"2026-09-23T09:45:26.564Z","changelog":"- Updated version to 1.0.16. - SKILL.md updated with version, description, and minor documentation adjustments. - Removed the redundant skill-card.md file. - Minor configuration or documentation updates; no functional or breaking changes noted.","fileCount":31,"zipByteSize":39122},{"version":"1.0.9","createdAt":"2026-09-08T06:50:35.315Z","changelog":"smyx-ear-health-snapshot-analysis v1.0.9 - Documentation updated: SKILL.md revised and skill-card.md removed. - No behavioral or functional changes to the core skill logic. - Minor housekeeping for documentation files; all usage examples and technical details remain unchanged.","fileCount":31,"zipByteSize":39228},{"version":"1.0.8","createdAt":"2026-08-24T00:59:35.160Z","changelog":"- Updated SKILL.md with revised version and documentation. - Removed skill-card.md file. - No changes to the core logic or features; update is limited to documentation and metadata adjustments.","fileCount":31,"zipByteSize":39228},{"version":"1.0.7","createdAt":"2026-08-17T23:39:28.022Z","changelog":"- Internal cleanup: removed the skill-card.md file. - Updated configuration in skills/smyx_common/scripts/config.yaml. - No changes to user-facing features or workflow.","fileCount":31,"zipByteSize":39248},{"version":"1.0.6","createdAt":"2026-08-13T11:53:33.788Z","changelog":"- Updated SKILL.md version metadata from 1.0.8 to 1.0.10. - Removed the file skill-card.md. - No feature or logic changes; this update focuses on version bump and housekeeping of documentation files.","fileCount":31,"zipByteSize":39016},{"version":"1.0.5","createdAt":"2026-08-03T04:29:29.808Z","changelog":"- Version updated from 1.0.7 to 1.0.8 in SKILL.md. - Documentation updates in SKILL.md; minor formatting and metadata changes only. - File skill-card.md removed. No impact on functionality. - No changes to code or end-user features.","fileCount":31,"zipByteSize":39185},{"version":"1.0.4","createdAt":"2026-07-28T11:53:34.035Z","changelog":"- Updated version to 1.0.7 in SKILL.md. - Removed the skill-card.md file. - No functional or logic changes to the skill's operation described; changes are limited to version metadata and documentation cleanup.","fileCount":31,"zipByteSize":39251}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-ear-health-snapshot-analysis","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-ear-health-snapshot-analysis` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/smyx-sunjinhui/smyx-ear-health-snapshot-analysis before using production credentials."],"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-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/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-10T07:44:01.712Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-ear-health-snapshot-analysis/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":"medium","updatedAt":"2026-10-09T23:11:59.066Z","emptyReason":null},"readme":"Skill: Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n\nOwner: smyx-sunjinhui\n\nSummary: Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\nTags: latest:1.0.11\n\nVersion history:\n\nv1.0.11 | 2026-09-29T21:27:32.071Z | auto\n\n- Removed the skill description file skill-card.md.\n- No other functional or behavioral changes.\n- Documentation cleanup only; no impact on usage or features.\n\nv1.0.10 | 2026-09-23T09:45:26.564Z | auto\n\n- Updated version to 1.0.16.\n- SKILL.md updated with version, description, and minor documentation adjustments.\n- Removed the redundant skill-card.md file.\n- Minor configuration or documentation updates; no functional or breaking changes noted.\n\nv1.0.9 | 2026-09-08T06:50:35.315Z | auto\n\nsmyx-ear-health-snapshot-analysis v1.0.9\n\n- Documentation updated: SKILL.md revised and skill-card.md removed.\n- No behavioral or functional changes to the core skill logic.\n- Minor housekeeping for documentation files; all usage examples and technical details remain unchanged.\n\nv1.0.8 | 2026-08-24T00:59:35.160Z | auto\n\n- Updated SKILL.md with revised version and documentation.\n- Removed skill-card.md file.\n- No changes to the core logic or features; update is limited to documentation and metadata adjustments.\n\nv1.0.7 | 2026-08-17T23:39:28.022Z | auto\n\n- Internal cleanup: removed the skill-card.md file.\n- Updated configuration in skills/smyx_common/scripts/config.yaml.\n- No changes to user-facing features or workflow.\n\nv1.0.6 | 2026-08-13T11:53:33.788Z | auto\n\n- Updated SKILL.md version metadata from 1.0.8 to 1.0.10.\n- Removed the file skill-card.md.\n- No feature or logic changes; this update focuses on version bump and housekeeping of documentation files.\n\nv1.0.5 | 2026-08-03T04:29:29.808Z | auto\n\n- Version updated from 1.0.7 to 1.0.8 in SKILL.md.\n- Documentation updates in SKILL.md; minor formatting and metadata changes only.\n- File skill-card.md removed. No impact on functionality.\n- No changes to code or end-user features.\n\nv1.0.4 | 2026-07-28T11:53:34.035Z | auto\n\n- Updated version to 1.0.7 in SKILL.md.\n- Removed the skill-card.md file.\n- No functional or logic changes to the skill's operation described; changes are limited to version metadata and documentation cleanup.\n\nv1.0.3 | 2026-07-14T14:03:28.836Z | auto\n\n- Removed the file skill-card.md.  \n- No changes to features or functionality.  \n- Documentation and implementation remain unchanged except for the removed file.\n\nv1.0.2 | 2026-07-11T16:25:27.754Z | auto\n\n- Updated version to 1.0.5 in SKILL.md.\n- Minor documentation and metadata adjustments in SKILL.md to reflect the latest version and minor corrections.\n- Removed the file skill-card.md.\n\nv1.0.1 | 2026-07-04T00:28:27.155Z | auto\n\n**Summary: Improved user configuration flow and security; user identity handling moved fully internal.**\n\n- User authentication and \"open-id\" handling are now managed internally—users are never prompted for or shown any identity information.\n- All steps referencing open-id collection, display, or user input removed from documentation and examples.\n- Workflows, instructions, and sample commands have been updated for a seamless, streamlined experience; user input is now limited to analysis content only.\n- Output and automated behaviors remain focused on objective, visual-based pet ear health analysis, with stricter adherence to only using the skill’s own scripts and API.\n- Documentation updated with enhanced formatting, easier-to-follow procedures, and bilingual (Chinese/English) sections.\n\nv1.0.0 | 2026-05-22T14:40:57.220Z | auto\n\n- Initial release of smyx-ear-health-snapshot-analysis skill.\n- Analyzes pet ear health from user-submitted videos (head-shaking, scratching, or ear-canal snapshots) via AI vision.\n- Detects ear-canal color, presence of black granular discharge (possible ear mites), and degree of earwax.\n- Issues alerts and recommends owner action if redness, large discharge, or suspected mites are detected.\n- Strict open-id acquisition and data handling rules implemented for user privacy and accurate report retrieval.\n- Supports both new analyses and historical report queries, with structured outputs in Markdown table format.\n\nArchive index:\n\nArchive v1.0.11: 31 files, 39046 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2254b), SKILL.md (12157b), 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 (153b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1790717252071\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\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 submitted pet-ear photos or videos for visible redness, discharge, and earwax, returning observations, alerts, and guidance rather than a veterinary diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPet owners, boarding staff, and veterinary intake teams use the skill to review ear imagery for visible concerns and retrieve prior analysis reports. Results are observational and do not replace a veterinarian's examination.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet media may be uploaded to or referenced by a cloud service, and account-linked report history may be stored there.\n\nMitigation: Use only if you trust the lifeemergence.com service and have permission to share the media and retain account-linked reports.\n\nRisk: The skill silently creates or reuses an account and stores returned authentication tokens in a local workspace SQLite database.\n\nMitigation: Review local data and token handling before installation, and restrict access to the workspace and its stored credentials.\n\nRisk: Visual observations can be mistaken for a diagnosis of an ear condition.\n\nMitigation: Treat findings as preliminary observations and consult a veterinarian about concerning symptoms.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis)\n- [API documentation](references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Structured analysis report or Markdown table of historical reports; optional saved text file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include visible findings, alerts, recommendations, and report links; not a medical diagnosis]\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, 39122 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2504b), SKILL.md (12157b), 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 (153b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1790156726564\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\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: prod\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nAnalyzes pet ear images or head-shaking and scratching videos to produce visual ear-canal observations, abnormality alerts, and check-up or veterinary follow-up suggestions without making a medical diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPet owners, boarding centers, and veterinary intake teams use this skill to screen pet ear media for visible redness, discharge-like material, earwax buildup, and related health-risk prompts. It returns observations and follow-up suggestions for human review, not a diagnosis.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet images or videos may reveal private household details when submitted for analysis.\n\nMitigation: Use only media the user is comfortable sending to the configured cloud service, and avoid submitting unnecessary private surroundings.\n\nRisk: The skill creates or reuses a local identity and may persist service tokens in the workspace data directory.\n\nMitigation: Run it in a workspace with appropriate access controls, and clear local data when identity or token persistence is not desired.\n\nRisk: Visual ear-health observations may be mistaken for a medical diagnosis.\n\nMitigation: Present outputs as visual observations and follow-up suggestions, and direct abnormal findings to owner review or veterinary care.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API documentation](artifact/references/api_doc.md)\n- [SMYX analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, shell commands, guidance]\n\n**Output Format:** [Markdown and JSON-like structured analysis text with optional report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May save results to a caller-provided output path and can list cloud report history.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata; artifact frontmatter reports 1.0.16)\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, 39228 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2738b), SKILL.md (12157b), 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 (152b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1788850235315\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\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 pet ear, scratching, or head-shaking videos or images to produce visual observations about ear-canal color, discharge, earwax accumulation, abnormality alerts, and check-up or veterinary follow-up suggestions without providing a medical diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users, pet families, boarding centers, and veterinary pre-screening workflows use this skill to analyze pet ear media for structured visual health observations, abnormality alerts, and report links. The skill supports local file or URL input and historical report lookup through its remote service.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet media and report data may be uploaded to remote services.\n\nMitigation: Use only non-sensitive media until the publisher documents data handling, retention, and service endpoints clearly.\n\nRisk: The skill may silently create or reuse an account identity and query cloud report history.\n\nMitigation: Review account identity behavior before use and avoid real accounts unless the identity and history-access model is acceptable.\n\nRisk: Reusable service tokens may be stored locally.\n\nMitigation: Install only in a controlled workspace, inspect local token storage, and require protected or avoided token persistence before production use.\n\nRisk: Some configured endpoints use HTTP defaults.\n\nMitigation: Require HTTPS-only service URLs before using the skill with sensitive household imagery or production data.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API reference](references/api_doc.md)\n- [Shared analysis API reference](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown and JSON-like structured analysis text, with optional saved output files and report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May query cloud history and return report export links; analysis output is visual-reference guidance, not a veterinary diagnosis.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release evidence; artifact frontmatter lists 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.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, 39228 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2835b), SKILL.md (12157b), 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 (152b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1787533175160\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\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\nAnalyzes pet ear images or videos for visible ear-canal redness, dark granular discharge, earwax buildup, and related head-shaking or scratching indicators, then returns objective observations, abnormality alerts, and follow-up suggestions without providing a medical diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nPet owners, boarding centers, and veterinary pre-screening teams use this skill to analyze pet ear media for visible redness, discharge, earwax buildup, and head-shaking or scratching indicators. The skill produces objective health-reference observations, report links, and recommendations for owner review or veterinary follow-up rather than diagnosis or treatment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet media, report history, workspace identity values, and access tokens may be sent to the configured cloud service or stored locally.\n\nMitigation: Review configured service endpoints and local state before running the skill; use a separate workspace or account for testing and avoid sensitive media unless this data flow is acceptable.\n\nRisk: The skill silently creates or reuses an identity when associating analysis reports and history queries.\n\nMitigation: Use a dedicated workspace or account and review any existing local identity, token, or database files before running history queries.\n\nRisk: Visual ear-health analysis can be mistaken for veterinary diagnosis.\n\nMitigation: Treat outputs as observations and follow-up guidance only; consult a veterinarian for concerning symptoms or treatment decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API documentation](references/api_doc.md)\n- [Supplemental API documentation](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown report text or JSON-style structured analysis, with optional saved output files and report links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include abnormality alerts, pet type, analysis timestamps, cloud report links, and Markdown history tables for prior reports.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release metadata; artifact frontmatter states 1.0.11)\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, 39248 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2758b), SKILL.md (12157b), 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 (152b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.10\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1787009968022\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\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: dev\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nAnalyzes pet ear images, videos, or URLs for visual indicators such as ear-canal color, discharge, earwax accumulation, and scratching or head-shaking context, then returns structured observations, alerts, care suggestions, and report links.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal pet owners, boarding centers, and veterinary intake teams use this skill to submit pet ear media for visual health screening and retrieve structured current or historical reports. Results are intended as visual observations and care guidance, not medical diagnosis or treatment advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet ear media, submitted URLs, generated analysis records, and report history are sent to the vendor service.\n\nMitigation: Use only media that is appropriate to share with the vendor service, and review privacy, retention, and consent expectations before use in shared, clinical, boarding, or multi-user settings.\n\nRisk: The skill creates or reuses an automatically managed local identity and persists authentication tokens locally.\n\nMitigation: Run the skill in a dedicated workspace, protect local data files and databases, and clear or rotate stored identity and token data when decommissioning or transferring the workspace.\n\nRisk: The output is based on visual analysis and may be incomplete or misleading if used as a diagnosis.\n\nMitigation: Treat results as preliminary observations and care guidance; seek veterinary review for persistent symptoms, abnormal discharge, redness, pain, odor, or behavior changes.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis)\n- [Pet Ear Health API Interface Documentation](references/api_doc.md)\n- [Shared Analysis API Error Codes](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, shell commands, guidance]\n\n**Output Format:** [Markdown text with structured JSON content, status messages, and report links; output can optionally be saved to a file.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include historical report lists and vendor report export links.]\n\n## Skill Version(s):\n\n1.0.7 (source: 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.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, 39016 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2180b), SKILL.md (12157b), 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 (152b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.10\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786622013788\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\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:\n\nAnalyzes pet ear images or videos to identify visible ear-canal redness, discharge, earwax buildup, and related abnormality alerts without providing a medical diagnosis.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal pet owners, boarding centers, and veterinary pre-screening teams use this skill to turn pet ear media into structured visual observations, risk prompts, recommendations, and report links. It can also retrieve cloud-hosted history for prior ear-health analysis reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Pet media or video URLs are sent to lifeemergence.com services for analysis.\n\nMitigation: Use only media appropriate for remote processing, disclose the external service dependency, and avoid submitting sensitive or unrelated recordings.\n\nRisk: The skill can create or reuse backend identity, store backend tokens locally, and retrieve cloud history without explicit per-use confirmation.\n\nMitigation: Review authentication and retention behavior before installation, clear local workspace credentials when no longer needed, and prefer versions that expose identity, deletion, and history lookup controls.\n\n## Reference(s):\n\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, JSON, shell commands, guidance]\n\n**Output Format:** [Markdown or JSON/plain text reports emitted by shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include structured observations, abnormality alerts, recommendations, report links, and optional saved output files.]\n\n## Skill Version(s):\n\n1.0.6 (source: server release metadata; artifact frontmatter lists 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.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, 39185 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2649b), SKILL.md (12156b), 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 (152b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.8\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1785731369808\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\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: 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.5:skill-card.md\n\n## Description: <br>\nAnalyzes pet ear or head-shaking/scratching media and returns visual observations about ear-canal redness, discharge, earwax accumulation, abnormality alerts, and non-diagnostic care guidance. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal pet owners, boarding-center staff, and veterinary intake teams use this skill to analyze pet ear media, review structured visual observations, and decide whether further owner check-up or veterinary attention is warranted. It is intended for health monitoring and pre-screening, not for medical diagnosis or treatment advice. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Pet media or URLs may be sent to the provider's cloud service for analysis. <br>\nMitigation: Review data handling expectations before installation and avoid submitting media unless cloud processing is acceptable for the deployment. <br>\nRisk: The skill can automatically create or reuse a local identity and store tokens in a workspace SQLite database. <br>\nMitigation: Run the skill in an appropriate workspace, protect local storage, and review token handling before use with sensitive accounts. <br>\nRisk: Report-history requests can fetch prior cloud reports with limited user control. <br>\nMitigation: Limit use of history-query language to contexts where cloud report retrieval is expected and appropriate. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis) <br>\n- [API interface documentation](references/api_doc.md) <br>\n- [Shared analysis API documentation](skills/smyx_analysis/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):** [Analysis, Markdown, JSON, Guidance] <br>\n**Output Format:** [Markdown report or JSON details, depending on requested detail level] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include report links and history tables; visual findings are not medical diagnoses.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release metadata; SKILL.md frontmatter says 1.0.8) <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.5:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.5:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.4: 31 files, 39251 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2887b), SKILL.md (12156b), 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 (152b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1785239614035\n}\n\nFile v1.0.4: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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\n\nFile v1.0.4: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.4:scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.4: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.4: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.4: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.4:skill-card.md\n\n## Description: <br>\nAnalyzes pet ear, scratching, or head-shaking media to produce visual ear-health observations, abnormality alerts, suggested follow-up, and report links without providing a medical diagnosis. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal pet owners, boarding centers, and veterinary pre-screening teams use this skill to analyze pet ear images or videos for visual signs such as redness, discharge, suspected ear mites, and wax buildup. The skill returns structured observations, health-risk prompts, suggested follow-up, history listings, and report links. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Pet ear images, videos, or supplied URLs are sent to a configured cloud service for analysis. <br>\nMitigation: Use only media and URLs approved for cloud processing, and avoid private signed URLs or files containing household, owner, location, or other sensitive context unless that data handling is acceptable. <br>\nRisk: The skill can create or reuse a local identity/token record and fetch cloud report history. <br>\nMitigation: Install it only in workspaces where persistent report access is expected, and review or clear local identity and token state according to operator policy before sharing or retiring the workspace. <br>\nRisk: Visual ear-health observations could be mistaken for veterinary diagnosis or treatment advice. <br>\nMitigation: Present outputs as visual observations and follow-up suggestions only, and direct users to veterinary care for diagnosis or treatment decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n- [API Interface Documentation](references/api_doc.md) <br>\n- [SMYX Analysis API Documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, guidance] <br>\n**Output Format:** [Markdown report or history table, with JSON available for detailed output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include visual observation summaries, abnormality alerts, owner check-up or veterinary visit suggestions, report links, and optional saved output files.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release metadata; SKILL.md frontmatter says 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.4:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.4:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.3: 31 files, 39192 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2692b), SKILL.md (12156b), 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 (152b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.5\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1784037808836\n}\n\nFile v1.0.3: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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\n\nFile v1.0.3: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.3:scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.3: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.3: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.3: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.3:skill-card.md\n\n## Description: <br>\nAnalyzes pet ear, head-shaking, or scratching media to produce visual ear-health observations, abnormality alerts, suggested owner or veterinary follow-up, and cloud report links without providing a medical diagnosis. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal pet owners, boarding centers, and pet-hospital intake teams use this skill to submit pet ear videos, images, local files, or URLs for structured visual observations of redness, discharge, earwax accumulation, and related risk prompts. The output is for health reference and pre-screening, not diagnosis or treatment. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Pet media, URLs, and report queries are sent to the LifeEmergence/SMYX cloud service. <br>\nMitigation: Use the skill only with media and URLs that are acceptable to process through that third-party service. <br>\nRisk: The skill can create or reuse a workspace identity and persist local identity or token data. <br>\nMitigation: Use a dedicated workspace or account when possible, and review or remove smyx-api-key.txt and smyx-common-claw.db if identity reuse is not desired. <br>\nRisk: The output is visual health reference material and may be mistaken for veterinary diagnosis. <br>\nMitigation: Treat findings as pre-screening observations and seek a veterinarian for medical diagnosis or treatment decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n- [API Documentation](references/api_doc.md) <br>\n- [SMYX Analysis API Documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance] <br>\n**Output Format:** [Markdown-style text containing structured JSON analysis, status messages, report-list output, and report export links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May write the returned analysis text to a user-specified output file.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release metadata; artifact frontmatter reports 1.0.5) <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.3:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.3:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.2: 31 files, 39133 bytes\n\nFiles: references/api_doc.md (669b), scripts/__init__.py (73b), scripts/config.py (679b), scripts/config.yaml (3b), scripts/skill.py (588b), scripts/smyx_ear_health_snapshot_analysis.py (3643b), skill-card.md (2706b), SKILL.md (12156b), 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 (152b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.5\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\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_ear_health_snapshot_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_ear_health_snapshot_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 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行耳道健康分析 | 调用 `-m scripts.smyx_ear_health_snapshot_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 宠物类型，可选值：cat/dog/other，默认 cat | 按需填写 |\n| `--list` | 显示耳道健康视频历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_ear_health_snapshot_analysis.py`](scripts/smyx_ear_health_snapshot_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 |\n| 🧑‍⚖️ 结果性质 | 分析结果仅供健康参考，不提供疾病诊断或治疗建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，API 服务会自动下载 |\n| 📁 格式支持 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown 表格格式输出，包含\"报告名称\"、\"宠物类型\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`宠物耳道健康分析报告-{记录id}`形式拼接, \"点击查看\"列使用 `[🔗 查看报告]()` 格式的超链接，用户点击即可直接跳转到对应的完整报告页面 |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json\n```\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1783787127754\n}\n\nFile v1.0.2: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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别\n\nFile v1.0.2: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.2:scripts/config.yaml\n\n{}\n\nFile v1.0.2:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.2: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.2: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.2: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.2:skill-card.md\n\n## Description: <br>\nThis skill analyzes pet ear images or head-shaking and scratching videos through a cloud service to report visible ear-canal color, discharge, wax buildup, abnormality alerts, suggested owner or veterinary follow-up, and report links. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nPet owners, boarding centers, and pet hospital intake teams use this skill to turn pet ear media into structured visual observations, abnormality alerts, and report links. The output is health-reference guidance, not a veterinary diagnosis or treatment plan. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Pet media or media URLs are sent to a cloud service, and cloud-stored report history and report links may be retrieved. <br>\nMitigation: Install only when the publisher and cloud service are trusted, and use it only with media that users are comfortable submitting to that service. <br>\nRisk: The skill silently creates or reuses an internal identity and stores backend tokens locally. <br>\nMitigation: Run it in an appropriate workspace or account boundary, review local data handling before shared-machine use, and remove stored credentials when access should end. <br>\nRisk: Visual observations and abnormality alerts could be mistaken for a medical diagnosis. <br>\nMitigation: Present results as health-reference guidance only and direct users to a veterinarian for concerning symptoms or treatment decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-ear-health-snapshot-analysis) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n- [API Documentation](references/api_doc.md) <br>\n- [Analysis API Documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, guidance] <br>\n**Output Format:** [Structured text or JSON analysis output, with Markdown tables for report history and report links.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include visible abnormality alerts, suggested check-up or veterinary follow-up, and cloud report links.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release metadata) <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.2:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.2:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3","readmeExcerpt":"Skill: Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别 Owner: smyx-sunjinhui Summary: Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular dis","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_ear_health_snapshot_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json"},{"language":"bash","snippet":"python -m scripts.smyx_ear_health_snapshot_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --input /path/to/ear_video.mp4 --pet-type cat\n\n# 分析网络宠物耳道视频\npython -m scripts.smyx_ear_health_snapshot_analysis --url https://example.com/ear_video.mp4 --pet-type cat\n\n# 显示历史分析报告/显示分析报告清单列表/显示历史耳道报告（自动触发关键词：查看历史耳道报告、历史报告、耳道报告清单等）\npython -m scripts.smyx_ear_health_snapshot_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_ear_health_snapshot_analysis --input video.mp4 --pet-type cat --output result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-ear-health-snapshot-analysis\"\ndescription: \"Triggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration. | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 👂 Pet Ear Health Snapshot & Redness Recognition | 宠物耳道健康抓拍与红肿识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **宠物耳道健康抓拍与红肿识别** |\n| 🎯 核心目标 | 当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_EAR_HEALTH_SNAPSHOT_ANALYSIS` |\n\nTriggers when a user provides a pet ear/scratching/head-shaking video URL or file for analysis; uses smart camera to monitor head-shaking and ear-scratching actions, automatically captures HD ear-canal images, and applies AI vision analysis to identify ear-canal color (pink/red/dark red), presence of black granular discharge (ear mites), and degree of earwax accumulation. When redness, large discharge or suspected ear mites are detected, outputs abnormality alerts and recommends owner check-up or veterinary visit. Application: pet families, boarding centers, pet hospital pre-screening. Helps early detection of ear-canal diseases and prevents deterioration.\n\n当用户提供宠物甩耳、挠耳或耳道抓拍视频URL或文件时，触发本技能进行耳道健康监测分析；通过智能摄像头实时监测甩耳/挠耳动作，自动触发高清抓拍耳道内部图像，利用AI视觉分析识别耳道颜色（粉红/红/暗红）、有无黑色颗粒状分泌物（耳螨）、耳垢堆积程度等异常指标；当检测到红肿、大量分泌物或疑似耳螨时，输出异常提示，建议主人进一步检查或就医，仅输出基于视觉的客观描述与建议，不提供医疗诊断。应用场景：宠物家庭日常健康监测、寄养中心批量监控、宠物医院预检。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的宠物耳道健康AI。你的任务是检测宠物甩耳/挠耳动作，触发高清图像抓拍，然后分析耳道内部图像，识别耳道颜色、分泌物类型及严重程度，输出异常提示。不要提供医疗诊断，仅输出基于视觉的客观描述和建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过宠物摄像头监测甩耳/挠耳动作并抓拍耳道图像，进行耳道健康状态分析，获取标准化的观察结果和健康风险提示\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 甩耳/挠耳动作检测触发 |\n| 2 | 耳道高清抓拍 |\n| 3 | 耳道颜色识别（粉红/红/暗红） |\n| 4 | 分泌物类型识别（黑色颗粒/褐色耳垢/脓性分泌物） |\n| 5 | 耳垢堆积程度评估 |\n| 6 | 异常提示与建议 |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | *"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-ear-health-snapshot-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1790717252071\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_EAR_HEALTH_SNAPSHOT_ANALYSIS` - 宠物耳道健康抓拍与红肿识别"},{"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":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1062,"uniquenessScore":38,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T23:11:59.066Z","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-09T23:11:59.066Z","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-10T07:44:01.722Z","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"}]}}}