{"id":"3b869d18-1110-4cb0-b796-fd52ea3bafb0","entityType":"agent","slug":"clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi","name":"Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别","canonicalUrl":"https://www.xpersona.co/agent/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi","canonicalPath":"/agent/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi","generatedAt":"2026-10-10T03:23:37.060Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:24:45.678Z","emptyReason":null},"description":"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-fish-surface-symptom-detection-analysis","sourceUrl":"https://clawhub.ai/18072937735/smyx-fish-surface-symptom-detection-analysis","homepage":"https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/18072937735/smyx-fish-surface-symptom-detection-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":66,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:24:45.678Z","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-09T21:24:45.678Z","emptyReason":null},"stars":null,"forks":null,"downloads":1982,"packageName":null,"latestVersion":"1.0.12","tractionLabel":"2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T21:24:45.678Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T21:24:45.678Z","lastCrawledAt":"2026-10-09T21:24:45.678Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T21:24:45.678Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.12","createdAt":"2026-09-29T04:44:40.102Z","changelog":"- Removed the file skill-card.md. - No functional or user-facing changes; documentation and resource cleanup only.","fileCount":31,"zipByteSize":43811},{"version":"1.0.11","createdAt":"2026-09-14T20:07:40.993Z","changelog":"- Removed the file: skill-card.md - No feature or behavior changes; documentation and core functionality remain unchanged.","fileCount":31,"zipByteSize":43962},{"version":"1.0.10","createdAt":"2026-08-29T12:37:39.230Z","changelog":"- Removed the file skill-card.md. - No functional or feature changes—documentation file cleanup only.","fileCount":31,"zipByteSize":44028},{"version":"1.0.9","createdAt":"2026-08-23T09:38:28.877Z","changelog":"- Updated to version 1.0.12. - Documentation refinements in SKILL.md. - Removed the file skill-card.md. - No changes to functionality or features.","fileCount":31,"zipByteSize":43961},{"version":"1.0.8","createdAt":"2026-08-16T15:20:28.480Z","changelog":"- Updated version to 1.0.11 and revised documentation in SKILL.md - Made minor content and version alignment updates to configuration files - Removed legacy documentation file: skill-card.md","fileCount":31,"zipByteSize":43881},{"version":"1.0.7","createdAt":"2026-08-02T17:45:32.295Z","changelog":"- Updated SKILL.md content to latest version, reflecting description, minor edits, and version number bump (now 1.0.9) - Removed deprecated file skill-card.md - No functional or interface changes; documentation only - Housekeeping update to align with new documentation and version policies","fileCount":31,"zipByteSize":44086},{"version":"1.0.6","createdAt":"2026-07-27T07:29:31.090Z","changelog":"- Updated version to 1.0.8. - SKILL.md updated with minor content or formatting changes. - Removed the skill-card.md file.","fileCount":31,"zipByteSize":44036},{"version":"1.0.5","createdAt":"2026-07-13T11:13:27.536Z","changelog":"- Removed the file skill-card.md. - No functional or behavioral changes to the skill itself. - Documentation remains in SKILL.md and continues to provide all usage, workflow, and capability details.","fileCount":31,"zipByteSize":44043}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-fish-surface-symptom-detection-analysis","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-fish-surface-symptom-detection-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/18072937735/smyx-fish-surface-symptom-detection-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-18072937735-smyx-fish-surface-symptom-detection-analysi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/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-10T03:23:37.054Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-fish-surface-symptom-detection-analysi/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-09T21:24:45.678Z","emptyReason":null},"readme":"Skill: Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n\nOwner: 18072937735\n\nSummary: Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\n\nTags: latest:1.0.12\n\nVersion history:\n\nv1.0.12 | 2026-09-29T04:44:40.102Z | auto\n\n- Removed the file skill-card.md.\n- No functional or user-facing changes; documentation and resource cleanup only.\n\nv1.0.11 | 2026-09-14T20:07:40.993Z | auto\n\n- Removed the file: skill-card.md\n- No feature or behavior changes; documentation and core functionality remain unchanged.\n\nv1.0.10 | 2026-08-29T12:37:39.230Z | auto\n\n- Removed the file skill-card.md.\n- No functional or feature changes—documentation file cleanup only.\n\nv1.0.9 | 2026-08-23T09:38:28.877Z | auto\n\n- Updated to version 1.0.12.\n- Documentation refinements in SKILL.md.\n- Removed the file skill-card.md.\n- No changes to functionality or features.\n\nv1.0.8 | 2026-08-16T15:20:28.480Z | auto\n\n- Updated version to 1.0.11 and revised documentation in SKILL.md\n- Made minor content and version alignment updates to configuration files\n- Removed legacy documentation file: skill-card.md\n\nv1.0.7 | 2026-08-02T17:45:32.295Z | auto\n\n- Updated SKILL.md content to latest version, reflecting description, minor edits, and version number bump (now 1.0.9)\n- Removed deprecated file skill-card.md\n- No functional or interface changes; documentation only\n- Housekeeping update to align with new documentation and version policies\n\nv1.0.6 | 2026-07-27T07:29:31.090Z | auto\n\n- Updated version to 1.0.8.\n- SKILL.md updated with minor content or formatting changes.\n- Removed the skill-card.md file.\n\nv1.0.5 | 2026-07-13T11:13:27.536Z | auto\n\n- Removed the file skill-card.md.\n- No functional or behavioral changes to the skill itself.\n- Documentation remains in SKILL.md and continues to provide all usage, workflow, and capability details.\n\nv1.0.4 | 2026-07-11T23:17:25.710Z | auto\n\n- Updated version to 1.0.6.\n- SKILL.md file updated with minor content and version changes.\n- Internal script files (config.py, util.py) updated.\n- Removed obsolete skill-card.md documentation file.\n\nv1.0.3 | 2026-07-01T14:33:28.518Z | auto\n\n- Updated documentation for improved structure, clarity, and bilingual formatting in SKILL.md.\n- Enhanced skill overview, usage instructions, and workflow steps.\n- Added clear tables for capabilities, requirements, trigger conditions, and constraints.\n- Emphasized data access rules and API/cloud querying in historical report retrieval.\n- Removed redundant documentation file (skill-card.md).\n\nv1.0.2 | 2026-06-24T07:39:26.271Z | auto\n\nVersion 1.0.2\n\n- Updated user identity handling: users are no longer required to provide or view open-id, username, or phone number; all identity management is now handled automatically and internally by the system.\n- Adjusted all user and documentation interfaces to remove references to open-id collection from users.\n- Changed command-line arguments and API integration to reflect internal identity automation.\n- Revised documentation to clarify the new no-identity-requirement workflow.\n- Removed outdated scripts and files related to manual identity configuration and user prompts.\n\nv1.0.1 | 2026-06-18T22:00:28.821Z | auto\n\n- Updated version to 1.0.3 and removed obsolete skill-card.md file.\n- Revised skill and workflow documentation in SKILL.md for improved clarity.\n- Adjusted config file paths in open-id retrieval logic to reflect simplified directory structure.\n- Minor updates to dependency management and internal scripts.\n\nv1.0.0 | 2026-05-28T03:42:30.013Z | auto\n\nInitial release of smyx-fish-surface-symptom-detection-analysis.\n\n- Detects three common ornamental fish surface symptoms from high-resolution images: white-spot disease, hyperemia, and fin-rot.\n- Outputs detected symptom types, confidence scores, affected locations, and severity levels for each fish.\n- Provides structured health reports per tank, including a 4-level alert system with recommended actions (excluding medication specifics).\n- Supports periodic snapshots or real-time monitoring for home aquariums, public aquariums, and fish farms.\n- Includes open-id/user validation and strict privacy/accuracy controls for result handling and report history queries.\n- Warns against misuse of AI outputs for diagnosis or unapproved interventions; medication advice requires a veterinarian.\n\nArchive index:\n\nArchive v1.0.12: 31 files, 43811 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (2307b), SKILL.md (16902b), 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 (164b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790657080102\n}\n\nFile v1.0.12:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放鱼类体表白点/充血/烂尾识别 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动鱼类体表症状识别任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取症状检测结果（症状类型 + 置信度 + 部位 + 严重程度）\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史体表健康报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\n\nFile v1.0.12:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.12:scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.12:skill-card.md\n\n## Description:\n\nAnalyzes aquarium fish images or video for visible white spots, redness, and fin damage, and provides symptom reports and guidance for follow-up care.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAquarium owners and fish-care professionals use the skill to review camera images or video for visible fish surface symptoms, receive follow-up guidance, and retrieve past reports. Results are observational and do not replace a qualified aquatic veterinarian's diagnosis.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Fish camera media, submitted URLs, metadata, and history queries are sent to configured cloud services.\n\nMitigation: Confirm the user accepts cloud processing and obtain explicit approval before uploading sensitive footage or looking up history.\n\nRisk: Local identity files and stored tokens may expose or mix user data in shared workspaces.\n\nMitigation: Use isolated identities and token storage for each caller; avoid installation in shared workspaces without that isolation.\n\nRisk: Visual symptom assessments can be mistaken for definitive diagnosis or treatment advice.\n\nMitigation: Present findings as preliminary and refer diagnosis and treatment decisions to a qualified aquatic veterinarian.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis)\n- [Skill API documentation](artifact/references/api_doc.md)\n- [Skill demonstration](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Structured symptom report or Markdown history table]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include symptom confidence, affected body areas, alert level, suggested actions, and report links.]\n\n## Skill Version(s):\n\n1.0.12 (source: skill frontmatter and ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.12:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.12:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.11: 31 files, 43962 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (2848b), SKILL.md (16902b), 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 (164b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1789416460993\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\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: dev\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nDetects visual fish surface symptoms in aquarium or underwater camera images and videos, including white-spot signs, hyperemia, and fin-rot, and returns structured findings with confidence, severity, and non-medication guidance.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal aquarium keepers, aquarium operators, and developers use this skill to analyze fish images or videos for visual symptom categories, confidence, severity, suggested non-medication actions, and historical report lookup.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Fish media and history queries may be sent to a cloud service.\n\nMitigation: Review data handling requirements before use and avoid real or sensitive data until cloud processing and retention expectations are documented.\n\nRisk: The security evidence reports silent cloud identity and local token handling.\n\nMitigation: Require documented identity and token behavior before deployment, and validate that credentials are stored and rotated according to local policy.\n\nRisk: The security evidence reports insecure development HTTP defaults.\n\nMitigation: Remove development defaults and require HTTPS production endpoints before using the skill with real aquarium media or reports.\n\nRisk: The security evidence reports use of data/smyx-api-key.txt as an identity source.\n\nMitigation: Disable local identity-file fallback or replace it with an approved secret-management flow.\n\nRisk: The security evidence reports payment-skill install instructions in an error path.\n\nMitigation: Replace payment-specific remediation text with a neutral operational error before release.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis)\n- [API Documentation](artifact/references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown and JSON-like structured text, with shell command examples for analysis and history lookup.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include symptom categories, confidence scores, affected body locations, severity, recommended non-medication actions, disclaimers, and report links.]\n\n## Skill Version(s):\n\n1.0.11 (source: server release evidence; artifact frontmatter reports 1.0.12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.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, 44028 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (2928b), SKILL.md (16902b), 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 (164b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1788007059230\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\n\nFile v1.0.10:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.10:scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nAnalyzes fish aquarium or underwater camera images and videos for visible signs of white spot, hyperemia, and fin rot, then returns symptom classifications with confidence, location, severity, recommendations, and report links.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nAquarium owners, public aquariums, ornamental fish farms, and developers of aquarium monitoring workflows use this skill to inspect fish media for surface symptom indicators and retrieve historical body-surface health reports. The output is intended as visual screening guidance, not a veterinary diagnosis or medication plan.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Fish media, media URLs, report requests, and identity fields may be sent to backend services.\n\nMitigation: Review the publisher and data handling before installation, and use the skill only with media and report data that users are authorized to submit.\n\nRisk: The security evidence reports silent identity management and local token storage.\n\nMitigation: Confirm the identity and token handling behavior is acceptable for the deployment environment before normal use.\n\nRisk: The security evidence reports private development HTTP endpoint configuration.\n\nMitigation: Fix or explain the endpoint configuration and prefer documented production HTTPS endpoints before installing for normal users.\n\nRisk: Visual symptom analysis can be mistaken for veterinary diagnosis or treatment guidance.\n\nMitigation: Present results as visual screening only, avoid specific medication names or dosing instructions, and direct users to a qualified aquarium veterinarian or professional for diagnosis and treatment decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis)\n- [Publisher profile](https://clawhub.ai/user/18072937735)\n- [API documentation](artifact/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance]\n\n**Output Format:** [Markdown reports and JSON or structured text from command-line API calls]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes symptom labels, confidence scores, affected locations, severity, recommended non-medication actions, disclaimers, and report links when returned by backend services.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata; artifact frontmatter reports 1.0.12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.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, 43961 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (2672b), SKILL.md (16902b), 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 (163b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1787477908877\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\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\nDetects visual signs of white-spot, hyperemia, and fin-rot symptoms from aquarium or underwater fish images and videos, then returns symptom classifications, confidence, location, severity, suggested non-medication actions, and report links.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal aquarium keepers, public aquarium teams, ornamental fish farm operators, and integration developers use this skill to analyze high-resolution fish images or videos for visible surface-symptom signals and to review structured health reports or history links. The skill is for visual symptom classification and triage support, not final diagnosis or treatment planning.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Aquarium images, videos, or URLs are sent to a remote service for analysis.\n\nMitigation: Disclose remote processing before use, confirm that users are authorized to submit the media, and avoid submitting sensitive or unnecessary footage.\n\nRisk: History lookup and report access may be associated with an automatically resolved internal identity.\n\nMitigation: Require explicit user confirmation before history lookup and clearly explain account association and report-retention behavior.\n\nRisk: Reusable account tokens may be persisted in a local workspace database.\n\nMitigation: Restrict local workspace access, review token storage before shared deployments, and rotate or remove tokens when the workspace changes hands.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis)\n- [API documentation](artifact/references/api_doc.md)\n- [SMYX analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, shell commands, guidance]\n\n**Output Format:** [Markdown text with JSON-formatted analysis details, confidence values, severity labels, recommendations, and report links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May save the returned report text to a user-specified output file.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release metadata; artifact frontmatter says 1.0.12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.9:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.9:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.8: 31 files, 43881 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (2567b), SKILL.md (16902b), 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 (163b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1786893628480\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\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 aquarium or underwater fish images and videos to classify visible body-surface symptoms such as white spots, hyperemia, and fin rot, returning symptom locations, confidence, severity, alerts, and report links.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[18072937735](https://clawhub.ai/user/18072937735)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal aquarium keepers, aquaculture operators, and developers use this skill to submit fish images or videos for visual symptom screening and receive structured health reports with alert guidance.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Fish images, videos, or URLs may be sent to external cloud services for analysis.\n\nMitigation: Use only authorized aquarium media, avoid private or internal URLs, and confirm endpoint, authentication, and retention expectations before deployment.\n\nRisk: The skill may query cloud report history and create or reuse local identity/token state.\n\nMitigation: Run it in an isolated workspace, limit access to shared environments, and review or clear local identity/token state according to the operator's credential policy.\n\nRisk: Visual symptom classifications may be mistaken for a veterinary diagnosis or treatment plan.\n\nMitigation: Present results as screening guidance only, avoid medication names or dosing instructions, and direct final diagnosis and treatment decisions to a qualified aquatic veterinarian or aquarium professional.\n\n## Reference(s):\n\n- [API documentation](references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown or JSON report text with symptom classifications, confidence scores, alert level, recommendations, and report links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May call external cloud services for media analysis and report history, and may create or reuse local identity/token state.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release metadata; artifact frontmatter reports 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, 44086 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (3040b), SKILL.md (16901b), 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 (163b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.9\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1785692732295\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\n\nFile v1.0.7:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.7:scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.7:skill-card.md\n\n## Description: <br>\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease, hyperemia, and fin-rot. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[18072937735](https://clawhub.ai/user/18072937735) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and aquaculture application developers use this skill to analyze fish images or videos for visible surface symptoms, receive structured health reports, and query related cloud history reports. The results are visual screening guidance only and should be reviewed by an appropriate aquarium or aquatic veterinary professional before treatment decisions. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Fish images, videos, or media URLs are sent to LifeEmergence cloud services for analysis. <br>\nMitigation: Use the skill only with media that the user is permitted to share with the cloud service, and avoid submitting sensitive or unauthorized aquarium footage. <br>\nRisk: Requests are associated with an internally managed identity and the skill can query account-linked cloud history. <br>\nMitigation: Review the active identity before using history features, and avoid running history queries when prior cloud reports should not be reused or exposed. <br>\nRisk: The skill stores or reuses identity and token records in the workspace data directory. <br>\nMitigation: Review or remove data/smyx-api-key.txt and local SMYX database files before installation or use when identity reuse is not desired. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis) <br>\n- [Fish surface symptom API documentation](artifact/references/api_doc.md) <br>\n- [SMYX analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown-oriented analysis text with JSON-capable structured result data, command examples, optional saved output files, and report links.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs may include symptom classifications, confidence values, affected locations, severity, recommended actions without specific medication instructions, disclaimers, and cloud report export links.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: server release metadata; artifact frontmatter states 1.0.9) <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.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, 44036 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (2873b), SKILL.md (16901b), 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 (163b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.8\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1785137371090\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\n\nFile v1.0.6:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.6:scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.6:skill-card.md\n\n## Description: <br>\nAnalyzes fish aquarium or underwater camera images and videos to detect visible white-spot signs, hyperemia, and fin-rot, then returns symptom classifications, confidence, severity, guidance, and report links. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[18072937735](https://clawhub.ai/user/18072937735) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal aquarists, aquarium operators, ornamental fish farms, and smart-aquarium app agents use this skill to inspect fish media, classify visible body-surface symptoms, query prior reports, and produce advisory health reports without providing medication names or dosages. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Fish images, videos, media URLs, identifiers, and report history may be processed by the publisher's external cloud service. <br>\nMitigation: Use only non-sensitive aquarium media, avoid unrelated URLs or private camera feeds, and confirm that the deployment environment permits this external processing. <br>\nRisk: The skill can silently create or reuse an internal account identity and retain service tokens in the workspace. <br>\nMitigation: Run it in a dedicated workspace, review and rotate or delete retained credentials when no longer needed, and require host-level controls before installation. <br>\nRisk: Visual symptom output may be mistaken for a veterinary diagnosis or treatment plan. <br>\nMitigation: Treat outputs as visual screening guidance only, keep the no-medication constraint, and route diagnosis or treatment decisions to a qualified aquatic veterinarian or aquarium professional. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis) <br>\n- [API Documentation](references/api_doc.md) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown text with JSON-formatted structured analysis, report links, and optional saved output files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May call external cloud APIs for media analysis and historical report lookup; output can include symptom lists, confidence, location, severity, alert level, recommended non-drug actions, and disclaimers.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: server release metadata; artifact frontmatter states 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.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, 44043 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (3004b), SKILL.md (16901b), 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 (163b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备鱼缸固定摄像头/水下摄像头高清图像或视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 获取 open-id（强制执行） | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行鱼类体表症状识别 | 调用 `-m scripts.smyx_fish_surface_symptom_detection_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地鱼缸固定摄像头/水下摄像头高清图像或视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络鱼缸固定摄像头/水下摄像头高清图像或视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，鱼类体表症状识别场景默认 `other` | 按需填写 |\n| `--list` | 显示鱼类体表症状识别历史记录清单 | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_fish_surface_symptom_detection_analysis.py`](scripts/smyx_fish_surface_symptom_detection_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| 📁 格式支持 | 输入要求：支持 jpg/png/mp4/avi/mov，最大 10MB；建议高清近距离拍摄；分辨率 ≥ 1080p |\n| 🔎 使用提醒 | **4 级告警策略递进**（mild → moderate → severe → urgent/Level 4），多日反复 / 同缸多发进入 Level 4 |\n| 🔎 使用提醒 | 单日告警上限：Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限（紧急安全优先） |\n| 🔎 使用提醒 | 红线约束 |\n| 🧑‍⚖️ 结果性质 | **禁止**对鱼做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病 / 立鳞病 / 寄生虫感染\"等具体疾病诊断 |\n| 🔎 使用提醒 | **🚨 绝对禁止**输出具体药物名称、剂量、给药方案（包括但不限于：孔雀石绿、甲基蓝、黄粉、庆大霉素、土霉素、福尔马林等） |\n| 🔎 使用提醒 | **禁止**长期存储完整鱼缸图像/视频（≤ 7 天，仅入库症状事件帧；公共水族馆按管理规定） |\n| 🔎 使用提醒 | **禁止**用于商业广告 / AI 训练；禁第三方共享 |\n| 🔎 使用提醒 | **禁止**越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认 |\n| 🔎 使用提醒 | **绝对禁止**伪造或夸大置信度、白点数量、充血面积、烂尾比例等指标；所有数据必须基于真实图像识别 |\n| 🔎 使用提醒 | **必须**按鱼种基线判定，禁止将珍珠鳞 / 银河系神仙鱼 / 黑壳虾天然斑点 / 部分锦鲤花纹等误判为白点病 |\n| 🔎 使用提醒 | **必须**做假阳处理（反射光 / 气泡 / 底砂颗粒 / 鱼鳞反光去伪），并将\"假阳风险标记\"输出给用户 |\n| 🧑‍⚖️ 结果性质 | **必须**告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认** |\n| 🔎 使用提醒 | **必须**：连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n| 📜 报告输出 | **必须**：体表健康报告**按 tank_id 输出**，含症状清单 + 置信度 + 部位 + 建议动作 + 免责声明 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史体表症状记录清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1783941207536\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_scene` - 综合场景判定\n- `alert_level` - 告警等级\n- `recommended_actions` - 建议动作（隔离 / 升温 / 检查水质 / 联系兽医，**不含具体药物**）\n- `disclaimer` - 免责声明（AI 仅辅助，最终诊断需专业兽医）\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 aquarium or underwater fish images and videos for visible white-spot, hyperemia, and fin-rot symptoms, returning visual classifications, confidence scores, alert levels, recommendations, and report links. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[18072937735](https://clawhub.ai/user/18072937735) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal aquarists, aquarium operators, and ornamental fish farms use this skill to screen fish media for visible surface symptoms and retrieve structured health reports. It supports early visual triage, not a veterinary diagnosis or medication plan. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Fish images, videos, media URLs, and report history are sent to the Life Emergence cloud service. <br>\nMitigation: Use only with authorized aquarium media and review the provider's retention, deletion, and sharing terms before deployment. <br>\nRisk: The skill automatically creates or reuses an account identity and stores identity tokens locally. <br>\nMitigation: Run the skill in an isolated workspace when identity separation matters, and review or clear the workspace data directory and local SQLite database before handoff. <br>\nRisk: Visual symptom screening can be mistaken for a veterinary diagnosis or treatment plan. <br>\nMitigation: Present outputs as visual triage only, require professional aquarium veterinary review for diagnosis or treatment, and avoid medication names, dosages, or treatment schedules. <br>\nRisk: Reflections, bubbles, substrate particles, or natural fish markings can produce false positives. <br>\nMitigation: Use clear close-range media, apply species baseline checks, and surface false-positive risk markers in user-facing results. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-fish-surface-symptom-detection-analysis) <br>\n- [Fish Surface Symptom API Documentation](references/api_doc.md) <br>\n- [Analysis API Documentation](skills/smyx_analysis/references/api_doc.md) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, JSON, Guidance] <br>\n**Output Format:** [Markdown text with structured JSON analysis payloads and report links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Reports may include detected symptom type, confidence, location, severity, alert level, recommended actions, disclaimers, and cloud report export URLs.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release metadata; artifact frontmatter lists 1.0.6) <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, 44098 bytes\n\nFiles: references/api_doc.md (5499b), scripts/__init__.py (84b), scripts/config.py (697b), scripts/config.yaml (3b), scripts/skill.py (587b), scripts/smyx_fish_surface_symptom_detection_analysis.py (3690b), skill-card.md (3135b), SKILL.md (16901b), 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 (163b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）作判定，按 4 级告警策略递进（Level 1 用户 APP 轻提醒 + 检查水温/pH/氨氮 → Level 2 重要告警 + 建议隔离病鱼到独立缸 → Level 3 紧急告警 + 全缸检疫 + 提示联系观赏鱼兽医 → Level 4 多日反复/多条同发 + 全缸消毒处理 + 强烈建议专业人员介入）。鱼种特异性必须按基线判定（珍珠鳞、银河系神仙鱼天然带白色斑点，禁止与白点病混淆）。反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪并输出\"假阳风险标记\"。不提供任何鱼类疾病医学诊断，仅输出基于视觉的症状分类与置信度。**绝对禁止输出具体药物名称、剂量、给药方案**（如孔雀石绿/甲基蓝/黄粉/庆大霉素等）；用药请咨询专业水族兽医。严禁伪造夸大检测指标，严禁越权代用户调整智能鱼缸的加热/换水/投药参数。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于鱼缸固定摄像头/水下摄像头近距离（≤ 30 cm）高清图像（≥ 1080p）或视频，识别 9 类综合场景（surface_healthy / white_spot_early / white_spot_moderate / white_spot_severe / hyperemia_local / hyperemia_systemic / fin_rot_mild / fin_rot_severe / multi_symptom_concurrent）→ **三类症状专项指标**：白点症状 5 项（数量 / 平均直径 mm / 部位 / 密度评分 / 置信度）+ 充血症状 5 项（面积比例 / 部位 / 形态 / 严重程度 / 置信度）+ 烂尾症状 6 项（边缘发白评分 / 锯齿状边缘 / 缺失面积比例 / 严重程度 / 置信度 / 其他鳍腐烂）→ 4 档严重程度（healthy / mild / moderate / severe）→ **4 级告警策略递进**（用户 APP 轻提醒+水质检查 → 重要告警+隔离病鱼 → 紧急告警+全缸检疫+联系兽医 → 多日反复+全缸消毒+专业介入）→ 单日告警上限管控（Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限）→ **体表健康报告**（按 tank_id 输出，含症状清单+置信度+部位+建议动作，**不含具体药物**）+ 免责声明\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 鱼体目标检测与跟踪 |\n| 2 | 鱼体部位语义分割（鳍/鳃盖/体表/尾部/腹部） |\n| 3 | 白点检测（小目标 + 形态学过滤） |\n| 4 | 充血色彩识别（HSV 红色区间 + 区域聚类） |\n| 5 | 烂尾边缘评分（锯齿度 + 缺损面积量化） |\n| 6 | 多症状并发识别 |\n| 7 | 置信度输出 |\n| 8 | 鱼种自适应基线（珍珠鳞 / 银河系神仙鱼天然斑点过滤） |\n| 9 | 假阳风险标记（反射光 / 气泡 / 底砂颗粒去伪） |\n| 10 | 用户 APP 推送 |\n| 11 | 4 级告警递进 |\n| 12 | 单日告警上限 |\n| 13 | 体表健康报告（按 tank_id 输出） |\n| 14 | 连续 ≥ 2 日 ≥ Level 3 → 强烈建议联系**当地观赏鱼兽医或水族馆专业人员** |\n\n### 3. ⚡ 触发条件\n\n| 触发类型 | 触发规则 |\n|---|---|\n| ✅ 默认触发 | **默认触发**：当用户提供鱼缸固定摄像头/水下摄像头鱼类高清图像或视频 URL/文件需要分析时，默认触发本技能进行鱼类体表症状识别 |\n| 🔎 明确分析意图 | 当用户明确提及鱼白点病、小瓜虫、鱼充血、鱼烂尾、鱼鳍腐烂、鱼体表症状、鱼皮肤红斑、观赏鱼疾病等关键词，并且上传了图像/视频文件 |\n| 📚 历史报告查询 | 当用户提及以下关键词时，**自动触发历史报告查询功能** ：查看鱼体表症状历史报告、鱼缸体表健康日志清单、鱼白点/充血/烂尾事件清单、查询历史鱼体表症状记录、显示所有鱼缸体表健康报告 |\n\n### 4. 🤖 自动行为\n\n| 自动行为 | 执行要求 |\n|---|---|\n| 📎 附件处理 | 如果用户上传了附件或者视频/图片文件，则自动保存为本地文件 |\n| ☁️ 历史报告查询 | 如果用户触发历史报告查询关键词，必须直接调用云端 API 查询，不得从本地记忆或人工汇总中获取 |\n\n#### ⚠️ 强制数据获取规则（次高优先级）\n\n> **橙色强约束：** 历史报告清单只允许从云端接口读取，不允许从本地记录、长期记忆或人工汇总中提取。\n\n必须执行：\n\n```bash\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_fish_surface_symptom_detection_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `mem...","readmeExcerpt":"Skill: Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别 Owner: 18072937735 Summary: Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patch","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_fish_surface_symptom_detection_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json"},{"language":"bash","snippet":"python -m scripts.smyx_fish_surface_symptom_detection_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input /path/to/fish.jpg\n\n# 分析网络鱼体高清图像/视频（以下只是示例，禁止直接使用 作为 open-id）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --url https://example.com/fish.jpg\n\n# 显示历史体表症状识别记录清单（自动触发关键词：查看鱼体表症状历史报告、鱼缸体表健康日志清单等）\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_fish_surface_symptom_detection_analysis --input fish.jpg --output result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-fish-surface-symptom-detection-analysis\"\ndescription: \"Through fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🐠 Fish Surface Symptom (White-spot / Hyperemia / Fin-rot) Detection | 鱼类体表白点/充血/烂尾识别\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **鱼类体表白点/充血/烂尾识别** |\n| 🎯 核心目标 | 通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` |\n\nThrough fixed cameras on aquariums or underwater cameras capturing high-definition fish images, the system uses AI vision analysis to detect abnormal symptoms on the fish body surface: white-spot disease (white spots of about 0.5-1mm in diameter, salt-grain like), hyperemia (red blood streaks or patches on skin or fin bases), and fin-rot (tail-fin edges turning white, ragged or rotting). The system outputs detected symptom types and confidence scores. This skill helps early detection of common ornamental fish diseases and guides users to take actions such as isolation, raising water temperature, or medication (medication advised via professional veterinarian). Application scenarios: home aquariums, public aquariums, ornamental fish farms. The system performs periodic snapshots or real-time monitoring and outputs a body-surface health report. Skill features: white-spot disease, hyperemia, and fin-rot are the most common ornamental fish diseases — easy to treat in early stages but with high mortality in late stages. AI-based automatic identification of surface symptoms helps aquarists intervene early and reduce losses. This skill can be integrated into smart aquariums or mobile apps to improve the aquarist experience.\n\n通过鱼缸固定摄像头或水下摄像头拍摄鱼类高清图像，利用 AI 视觉分析技术检测鱼体表面的异常症状：白点病（白色点状物，直径约 0.5-1mm，类似盐粒）、充血（皮肤或鳍条基部出现红色血丝或斑块）、烂尾（尾鳍边缘发白、残缺、腐烂）。输出检测到的症状类型及置信度。该技能有助于早期发现观赏鱼常见疾病，指导用户采取隔离、升温、用药（用药请咨询专业水族兽医）等措施。应用场景：家庭鱼缸、水族馆、观赏鱼养殖场。系统定期拍摄或实时监测，输出体表健康报告。技能特点：白点病、充血、烂尾是观赏鱼最常见的疾病，早期发现易治疗，晚期死亡率高。通过 AI 自动识别体表症状，可帮助养鱼者及早干预，降低损失。该技能可集成到智能鱼缸或手机 APP 中，提升养鱼体验。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的水族健康诊断 AI。你的任务是分析鱼体高清图像，检测体表异常症状：白点（白色圆形小点，常附着在鳍、鳃盖或体表，典型直径 0.5-1mm）、充血（皮肤或鳍基部红色血丝或片状红斑）、烂尾（尾鳍边缘发白、呈锯齿状、缺失）。输出检测到的症状类型、置信度、部位、严重程度，并按 9 类综合场景（surface_healthy / white_spot_early / w"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-fish-surface-symptom-detection-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790657080102\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}` - 导出体表健康报告\n5. （可选）`/web/companion/v2/trigger-soothing-action` - 触发联动提醒（用户 APP 推送 / 智能鱼缸告警灯）\n\n## 场景代码\n\n- `SMYX_FISH_SURFACE_SYMPTOM_DETECTION_ANALYSIS` - 鱼类体表白点/充血/烂尾识别\n\n## 输入约束\n\n- 摄像头：鱼缸固定摄像头或水下摄像头，建议能近距离（≤ 30 cm）清晰拍摄鱼体侧面 / 尾部 / 鳃盖\n- 分辨率 ≥ 1080p（白点直径 0.5-1mm，需高清才能可靠识别）；帧率 ≥ 10 FPS（图像模式 ≥ 2 张/小时）\n- 光照：建议鱼缸照明开启 + 无强反光；水质清澈（浑浊度低）\n- 拍摄角度：优先正侧面 + 尾部特写；体表完整可见\n- 输入类型：支持高清图像（jpg/png）或视频；视频会自动抽帧进行体表分析\n- 多鱼缸场景按摄像头 ID 绑定到注册鱼缸 ID（每个鱼缸独立鱼种清单）\n- 用户必须授权部署；公共水族馆需公示告知\n\n## 关键观测信号（按症状类型）\n\n### 白点症状（white_spot）\n- `white_spot_count` - 检测到的白点数量\n- `white_spot_avg_diameter_mm` - 平均直径（mm，典型 0.5-1mm）\n- `white_spot_location` - 分布部位（fin / gill_cover / body / tail，可多选）\n- `white_spot_density_score` - 密度评分（0-100，覆盖比例）\n- `white_spot_confidence` - 置信度（0-1）\n\n### 充血症状（hyperemia）\n- `hyperemia_area_ratio` - 充血面积占体表比例（0-1）\n- `hyperemia_location` - 分布部位（fin_base / body_surface / gill / abdomen）\n- `hyperemia_pattern` - 形态（blood_streak 血丝 / red_patch 片状红斑）\n- `hyperemia_severity` - 严重程度（mild / moderate / severe）\n- `hyperemia_confidence` - 置信度（0-1）\n\n### 烂尾症状（fin_rot）\n- `tail_edge_whiteness_score` - 尾鳍边缘发白评分（0-100）\n- `tail_jagged_edge_detected` - 是否呈锯齿状边缘\n- `tail_missing_area_ratio` - 尾鳍缺失面积比例（0-1）\n- `tail_rot_severity` - 严重程度（mild / moderate / severe）\n- `fin_rot_confidence` - 置信度（0-1）\n- `other_fin_rot_detected` - 其他鳍是否也出现腐烂（背鳍 / 胸鳍 / 腹鳍）\n\n## 综合判定\n\n- `surface_healthy` - 体表健康\n- `white_spot_early` - 白点早期（数量 ≤ 5 + 单部位）\n- `white_spot_moderate` - 白点中期（数量 5-20 + 多部位）\n- `white_spot_severe` - 白点重度（数量 > 20 / 密度 ≥ 30%）\n- `hyperemia_local` - 局部充血\n- `hyperemia_systemic` - 全身性充血\n- `fin_rot_mild` - 烂尾轻度（仅边缘发白）\n- `fin_rot_severe` - 烂尾重度（明显缺损 / 多鳍同时腐烂）\n- `multi_symptom_concurrent` - 多症状并发（白点 + 充血 / 充血 + 烂尾等）\n\n## 4 级告警策略递进\n\n- Level 1（early / mild）：用户 APP 轻提醒，建议加强观察 + 检查水温/pH/氨氮\n- Level 2（moderate / local）：用户 APP 重要告警，建议**隔离病鱼到独立缸**、检查水质并适当升温（针对白点）\n- Level 3（severe / systemic / multi_symptom_concurrent）：紧急告警，建议**立即隔离 + 全缸检疫**，并提示联系**当地观赏鱼兽医或水族馆**\n- Level 4（多日反复 / 同缸多条鱼同时发病）：紧急告警 + 强烈建议**全缸消毒处理**并咨询专业人员\n\n## 单日告警上限\n\n- Level 1 × 6 / Level 2 × 3 / Level 3 × 2 / Level 4 不设上限\n\n## 红线约束\n\n- **禁止**做\"小瓜虫病 / 细菌性败血症 / 水霉病 / 柱状菌病\"等具体疾病诊断\n- **绝对禁止**输出具体药物名称、剂量、给药方案（如孔雀石绿 / 甲基蓝 / 黄粉 / 庆大霉素等）\n- 禁止长期存储完整鱼缸图像 / 视频（≤ 7 天，仅入库症状事件帧）\n- 禁止用于商业广告 / AI 训练；禁第三方共享\n- 禁止越权代用户调整智能鱼缸的加热 / 换水 / 投药参数；任何水族设备控制变更必须由用户确认\n- 置信度、白点数量、充血面积、烂尾比例等指标必须基于真实图像识别；**禁止伪造或夸大指标**\n- 鱼种特异性：部分鱼种（如珍珠鳞、银河系神仙鱼）天然带白色斑点，**必须**按鱼种基线判定，禁止与白点病混淆\n- 反射光、气泡、底砂颗粒可能造成假阳性 → 必须做去伪处理，并将\"假阳风险标记\"输出给用户\n- 必须告知用户：AI 识别仅供参考，**最终诊断与治疗方案需专业水族兽医确认**\n\n## 输出报告字段\n\n- `report_date` - 报告日期\n- `tank_id` - 鱼缸 ID\n- `species` - 鱼种\n- `detected_symptoms` - 检测到的症状列表（含类型、置信度、部位、严重程度）\n- `composite_sc"},{"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":1219,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T21:24:45.678Z","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-09T21:24:45.678Z","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-10T03:23:37.060Z","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"}]}}}