{"id":"49806a63-663f-4718-afc1-03d124926568","entityType":"agent","slug":"clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis","name":"Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）","canonicalUrl":"https://www.xpersona.co/agent/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis","canonicalPath":"/agent/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis","generatedAt":"2026-10-10T06:53:39.605Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T01:13:23.594Z","emptyReason":null},"description":"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 Skill: Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害） Owner: 18072937735 Summary: Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-leaf-curling-scorch-diagnosis-analysis","sourceUrl":"https://clawhub.ai/18072937735/smyx-leaf-curling-scorch-diagnosis-analysis","homepage":"https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/18072937735/smyx-leaf-curling-scorch-diagnosis-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) an"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:13:23.594Z","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-10T01:13:23.594Z","emptyReason":null},"stars":null,"forks":null,"downloads":1813,"packageName":null,"latestVersion":"1.0.10","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:13:23.586Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T01:13:23.594Z","lastCrawledAt":"2026-10-10T01:13:23.586Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T01:13:23.587Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.10","createdAt":"2026-08-25T19:20:29.927Z","changelog":"- Updated version to 1.0.12 in skill metadata. - Removed the redundant file `skill-card.md` for a cleaner repo. - No changes to features, usage, or core documentation in SKILL.md. - Documentation and workflow remain consistent with the previous version.","fileCount":31,"zipByteSize":40638},{"version":"1.0.9","createdAt":"2026-08-19T20:05:29.147Z","changelog":"- Updated configuration: modified `skills/smyx_common/scripts/config.yaml`. - Documentation update: removed `skill-card.md`. - No changes to core analysis code or user-facing features. - Version bump from 1.0.9 to 1.0.11.","fileCount":31,"zipByteSize":40559},{"version":"1.0.8","createdAt":"2026-08-13T09:29:34.211Z","changelog":"- Bumped skill version to 1.0.11. - Updated documentation in SKILL.md; no changes to functionality. - Removed the file skill-card.md.","fileCount":31,"zipByteSize":40433},{"version":"1.0.7","createdAt":"2026-08-03T00:25:43.921Z","changelog":"- Updated the skill version to 1.0.9. - SKILL.md modified; mainly the version number. - Removed the skill-card.md file. - No changes to feature scope or main workflow.","fileCount":31,"zipByteSize":40466},{"version":"1.0.6","createdAt":"2026-07-29T09:37:28.104Z","changelog":"- Version update: incremented from 1.0.6 to 1.0.8. - Documentation updated in SKILL.md; mainly version information adjusted. - The skill-card.md file has been removed. - No changes to functionality or parameters.","fileCount":31,"zipByteSize":40416},{"version":"1.0.5","createdAt":"2026-07-13T23:05:42.036Z","changelog":"- Internal utility code updated in skills/smyx_common/scripts/util.py. - Documentation file skill-card.md removed.","fileCount":31,"zipByteSize":40654},{"version":"1.0.4","createdAt":"2026-07-09T20:48:27.796Z","changelog":"- Version bumped from 1.0.4 to 1.0.6. - Minor documentation updates in SKILL.md, including version number and descriptive text. - Removed obsolete file: skill-card.md. - No changes to core functionality or API; usage and main features remain unchanged.","fileCount":31,"zipByteSize":40348},{"version":"1.0.3","createdAt":"2026-06-29T21:15:25.970Z","changelog":"- Updated documentation in SKILL.md for better structure and clarity, including expanded Chinese and English instructions, improved tables, and reorganized sections. - No code changes to logic or functionality in scripts. - Removed the deprecated skill-card.md file. - Minor edits in scripts/smyx_common/scripts/dao.py and util.py (content not shown) – likely for code maintenance or alignment with documentation.","fileCount":31,"zipByteSize":40299}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17f8q65zg3y98t86jdg1177g583whq8:smyx-leaf-curling-scorch-diagnosis-analysis","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T06:53:39.602Z"}},"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-leaf-curling-scorch-diagnosis-analysis/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-18072937735-smyx-leaf-curling-scorch-diagnosis-analysis/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T01:13:23.594Z","emptyReason":null},"readme":"Skill: Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n\nOwner: 18072937735\n\nSummary: Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\n\nTags: latest:1.0.10\n\nVersion history:\n\nv1.0.10 | 2026-08-25T19:20:29.927Z | auto\n\n- Updated version to 1.0.12 in skill metadata.\n- Removed the redundant file `skill-card.md` for a cleaner repo.\n- No changes to features, usage, or core documentation in SKILL.md.\n- Documentation and workflow remain consistent with the previous version.\n\nv1.0.9 | 2026-08-19T20:05:29.147Z | auto\n\n- Updated configuration: modified `skills/smyx_common/scripts/config.yaml`.\n- Documentation update: removed `skill-card.md`.\n- No changes to core analysis code or user-facing features.\n- Version bump from 1.0.9 to 1.0.11.\n\nv1.0.8 | 2026-08-13T09:29:34.211Z | auto\n\n- Bumped skill version to 1.0.11.\n- Updated documentation in SKILL.md; no changes to functionality.\n- Removed the file skill-card.md.\n\nv1.0.7 | 2026-08-03T00:25:43.921Z | auto\n\n- Updated the skill version to 1.0.9.\n- SKILL.md modified; mainly the version number.\n- Removed the skill-card.md file.\n- No changes to feature scope or main workflow.\n\nv1.0.6 | 2026-07-29T09:37:28.104Z | auto\n\n- Version update: incremented from 1.0.6 to 1.0.8.\n- Documentation updated in SKILL.md; mainly version information adjusted.\n- The skill-card.md file has been removed.\n- No changes to functionality or parameters.\n\nv1.0.5 | 2026-07-13T23:05:42.036Z | auto\n\n- Internal utility code updated in skills/smyx_common/scripts/util.py.\n- Documentation file skill-card.md removed.\n\nv1.0.4 | 2026-07-09T20:48:27.796Z | auto\n\n- Version bumped from 1.0.4 to 1.0.6.\n- Minor documentation updates in SKILL.md, including version number and descriptive text.\n- Removed obsolete file: skill-card.md.\n- No changes to core functionality or API; usage and main features remain unchanged.\n\nv1.0.3 | 2026-06-29T21:15:25.970Z | auto\n\n- Updated documentation in SKILL.md for better structure and clarity, including expanded Chinese and English instructions, improved tables, and reorganized sections.\n- No code changes to logic or functionality in scripts.\n- Removed the deprecated skill-card.md file.\n- Minor edits in scripts/smyx_common/scripts/dao.py and util.py (content not shown) – likely for code maintenance or alignment with documentation.\n\nv1.0.2 | 2026-06-23T23:42:26.720Z | auto\n\n- User identity handling is now fully automated; users are no longer asked to input usernames, phone numbers, or identity parameters for analysis or report querying.\n- Scripts automatically associate or create user identity internally, ensuring seamless access to analysis and history—no identity exposure in outputs or prompts.\n- All analysis and history queries now run without requiring user-supplied open-id; identity is managed transparently by the system.\n- Updated documentation and usage examples reflecting the new, streamlined user experience.\n- Removed script files and documentation related to manual API key/open-id management.\n\nv1.0.1 | 2026-06-16T05:03:24.888Z | auto\n\n- Major script refactor: main script renamed to `smyx_leaf_curling_scorch_diagnosis_analysis.py`, replacing old file.  \n- Updated all documentation and SKILL.md to reference new script path and configuration file location.  \n- Deprecated and removed legacy script and obsolete skill-card documentation files.  \n- Applied multiple changes across 9 code and config files to support updated interfaces and naming.  \n- Added missing main analysis script to the repository.  \n- No changes to core diagnostic logic or operating procedures.\n\nv1.0.0 | 2026-05-24T16:25:53.297Z | auto\n\nInitial release of smyx-leaf-curling-scorch-diagnosis-analysis:\n\n- Enables high-resolution plant leaf image analysis using AI to detect leaf curling direction and leaf-margin scorch distribution.\n- Integrates optional soil moisture sensor data to help identify likely causes such as drought, disease, pesticide or fertilizer issues.\n- Provides prioritized diagnosis and actionable care suggestions for farmers across open-field, greenhouse, and orchard scenarios.\n- Supports inspection via agricultural cameras, UAVs, or mobile apps, and can be integrated into agricultural IoT platforms.\n- Includes strict open-id management and process controls for secure and accurate user/report tracking.\n- Offers automatic generation and cloud-based querying of historical diagnosis reports, with results shown as clear Markdown tables.\n\nArchive index:\n\nArchive v1.0.10: 31 files, 40638 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2946b), SKILL.md (12289b), 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.10:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1787685629927\n}\n\nFile v1.0.10:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\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 plant leaf images or video to identify curling direction and margin scorch patterns, optionally combining soil moisture data to rank likely causes such as drought stress, disease, pesticide damage, fertilizer burn, or cold stress.\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\nFarmers, agronomy advisors, and agricultural IoT operators use this skill to analyze plant leaf media for curling and margin scorch symptoms, then receive a structured diagnosis with likely causes and directional remediation guidance. It can also query cloud-hosted historical diagnosis reports associated with the internally resolved user identity.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Plant images, videos, URLs, and report history are sent to a remote cloud service and associated with an internally resolved identity.\n\nMitigation: Review the publisher and service endpoint before installation, obtain clear user consent for cloud analysis and history lookup, and confirm data retention and deletion expectations.\n\nRisk: The authoritative security summary flags silent identity and token management with insecure token storage or transport.\n\nMitigation: Prefer a release that defaults to HTTPS production endpoints, avoids plaintext token storage, and documents token handling; rotate credentials if exposure is suspected.\n\nRisk: Visual plant-stress diagnosis can be uncertain because drought, disease, pesticide damage, fertilizer burn, and cold stress may share symptoms.\n\nMitigation: Treat results as advisory, use clear images and optional soil-moisture context, and confirm severe or ambiguous cases through field inspection or professional plant-health consultation.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n- [API Interface Documentation](references/api_doc.md)\n- [Shared Analysis API Documentation](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Markdown, JSON, Guidance]\n\n**Output Format:** [Markdown text with structured JSON-style diagnosis details, ranked likely causes, recommendations, and report links; optional saved file output]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include cloud report history tables and report export links when history lookup is requested.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata; artifact frontmatter states 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, 40559 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2696b), SKILL.md (12289b), 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 (162b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1787169929147\n}\n\nFile v1.0.9:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\n\nFile v1.0.9:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.9:scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nAnalyzes plant leaf images, videos, or URLs to detect leaf curling direction and margin scorch patterns, rank likely causes such as drought or disease, and provide diagnostic 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\nFarmers, agronomists, and agriculture IoT developers use this skill to analyze leaf imagery from fields, greenhouses, orchards, UAVs, or agricultural cameras and receive structured guidance on likely causes of leaf curling and margin scorch.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Plant media, private URLs, or related inputs may be processed by the LifeEmergence/SMYX backend.\n\nMitigation: Avoid sensitive images, videos, and URLs unless the publisher clarifies endpoint configuration, retention, and data handling.\n\nRisk: The skill can create or reuse a local identity and store backend tokens in a workspace SQLite database.\n\nMitigation: Run in an isolated workspace, avoid shared workspaces, and review or remove local identity and token data after use.\n\nRisk: Cloud report history is retrieved under the resolved local identity.\n\nMitigation: Use history queries only when account isolation and report access behavior are acceptable for the deployment.\n\nRisk: Plant diagnosis results can be incomplete or mistaken because visual symptoms from drought, disease, chemical damage, and fertilizer burn may overlap.\n\nMitigation: Treat outputs as screening guidance and confirm serious disease or crop-loss cases with field inspection or professional plant-health advice.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis)\n- [API Documentation](references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Guidance]\n\n**Output Format:** [Markdown text with structured diagnostic report content, JSON-style fields, recommendations, and report links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can save report text to a user-provided output file; history queries return cloud report lists associated with the resolved local identity.]\n\n## Skill Version(s):\n\n1.0.9 (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.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, 40433 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2463b), SKILL.md (12289b), 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 (162b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1786613374211\n}\n\nFile v1.0.8:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\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: prod\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nUses plant leaf images or video, with optional soil-moisture context, to identify curling direction and leaf-margin scorch patterns and return likely causes such as drought stress, disease, pesticide damage, or fertilizer burn.\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 agricultural teams and developers use this skill to analyze crop, greenhouse, or orchard leaf imagery and generate structured diagnosis guidance for curling and scorch symptoms. It supports API-backed analysis, report export links, and cloud history lookup for prior diagnostic reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: User-supplied media or URL references may be uploaded to remote lifeemergence.com/open.lifeemergence.com services.\n\nMitigation: Use only with files and URLs that are approved for remote processing, and review network endpoints before installation.\n\nRisk: The skill can create or reuse an internal cloud identity and store authentication tokens in local SQLite storage.\n\nMitigation: Run it in an environment with appropriate local storage controls, and clear stored tokens when access is no longer needed.\n\nRisk: Cloud report history can be fetched automatically.\n\nMitigation: Use history lookup only where cloud report access is expected, and review returned reports before sharing them.\n\n## Reference(s):\n\n- [Leaf Curling and Margin Scorch API Documentation](references/api_doc.md)\n- [SMYX Analysis API Error Codes](skills/smyx_analysis/references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Shell commands, Guidance]\n\n**Output Format:** [Markdown and structured JSON diagnostic reports, with optional saved text output and report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May upload local media or URL references to remote analysis services and may query cloud report history.]\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, 40466 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2598b), SKILL.md (12288b), 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 (162b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.9\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1785716743921\n}\n\nFile v1.0.7:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\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>\nAnalyzes plant leaf images or videos to identify curl direction and margin scorch patterns, rank likely causes such as drought stress or disease, and return diagnostic guidance. <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 agricultural operators use this skill to analyze plant leaf photos, videos, or URLs for curling and scorch symptoms, then receive likely cause rankings and directional recommendations. It can also return prior cloud-stored diagnosis reports associated with the automatic user identity. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Plant images, videos, or submitted URLs may be sent to a cloud service in identity-bearing requests. <br>\nMitigation: Use only media and URLs appropriate for the provider boundary, and avoid sensitive or internal/private URLs unless that service boundary is acceptable. <br>\nRisk: The skill may create or reuse an automatic identity and store service tokens locally. <br>\nMitigation: Review local data and token handling before installation, and remove the local data directory if the skill is uninstalled. <br>\nRisk: Plant health diagnosis can be incomplete or incorrect when symptoms overlap across drought, disease, chemical injury, or nutrient stress. <br>\nMitigation: Treat results as decision support and consult field inspection or a plant-health professional before taking high-impact treatment actions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis) <br>\n- [API Documentation](artifact/references/api_doc.md) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Analysis, Markdown, JSON, Files, Guidance] <br>\n**Output Format:** [Markdown or JSON diagnostic report with optional saved output file] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include ranked likely causes, confidence, visual evidence hints, recommendations, and report links.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.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, 40416 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2523b), SKILL.md (12288b), 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 (162b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.8\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1785317848104\n}\n\nFile v1.0.6:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\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>\nUses plant leaf images or videos to detect curling direction and margin scorch patterns, then returns likely causes such as drought stress, disease, pesticide damage, or fertilizer burn with directional recommendations. <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 growers, agronomists, and developers use this skill to analyze plant leaf imagery, identify curling and margin-scorch patterns, and receive likely-cause rankings with practical next-step guidance. It can also query cloud-hosted historical diagnosis reports associated with the skill account. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends supplied media or URLs to lifeemergence.com services for analysis. <br>\nMitigation: Use only with images, videos, and URLs that are acceptable to process through that external service. <br>\nRisk: The skill can silently initialize or reuse an account identity and query cloud-hosted report history. <br>\nMitigation: Review account linkage expectations before installation and use an isolated account or workspace when testing. <br>\nRisk: The skill may create or reuse a local workspace database and store returned service tokens there. <br>\nMitigation: Restrict local filesystem access, inspect stored credentials after use, and remove or rotate tokens when they are no longer needed. <br>\n\n\n## Reference(s): <br>\n- [API interface documentation](references/api_doc.md) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, JSON, Shell commands, Guidance] <br>\n**Output Format:** [Markdown or JSON analysis reports with diagnosis details, recommendations, and report links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May write report output to a user-specified file when --output is used.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.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, 40654 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (3177b), SKILL.md (12288b), 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 (162b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1783983942036\n}\n\nFile v1.0.5:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\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 plant leaf images or videos to identify curling direction, margin scorch patterns, likely causes such as drought or disease, and directional recommendations. <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, growers, agricultural IoT operators, and developers use this skill to send plant leaf images, videos, or URLs for cloud-assisted diagnosis of leaf curling and margin scorch symptoms. It returns structured findings, likely cause rankings, guidance, and links to reports or historical report data. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends plant media or media URLs to lifeemergence cloud services for analysis and report retrieval. <br>\nMitigation: Use it only with images, videos, and URLs that are approved for that external service, and avoid submitting sensitive location, farm, or account information unless the workspace accepts that data sharing. <br>\nRisk: The skill silently creates or reuses an internal user identity and can query cloud history associated with that identity. <br>\nMitigation: Confirm that automatic account linkage and cloud history access are acceptable before installing or running the skill in shared workspaces. <br>\nRisk: The skill stores returned service tokens in a local SQLite database. <br>\nMitigation: Treat the workspace data directory as credential-bearing, restrict access to it, and clear or rotate stored tokens when the skill is removed or moved between environments. <br>\nRisk: Diagnosis output is advisory and can misclassify visually similar drought, disease, pesticide injury, fertilizer burn, or cold-stress symptoms. <br>\nMitigation: Use the result as decision support and confirm serious disease or treatment decisions through field inspection or a qualified crop advisor. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [Leaf curling and scorch API documentation](artifact/references/api_doc.md) <br>\n- [Shared analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown and JSON-like structured text with optional report links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Can write analysis output to a local file when requested; historical report output is retrieved from the configured cloud service.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release metadata; artifact frontmatter says 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, 40348 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2477b), SKILL.md (12288b), 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 (28605b), _meta.json (162b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1783630107796\n}\n\nFile v1.0.4:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\n\nFile v1.0.4:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.4:scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nAnalyzes plant leaf images or videos to identify leaf curling direction, leaf-margin scorch patterns, affected leaf layers, and likely causes such as drought stress, disease, pesticide injury, or fertilizer burn. <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>\nFarmers, agronomists, and developers use this skill to analyze plant leaf imagery from cameras, mobile devices, UAV inspections, or agricultural IoT workflows and receive structured diagnosis guidance for curling and margin scorch symptoms. It can also query prior report history associated with the current account identity. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Plant images, videos, and report history may be sent to a remote LifeEmergence service and associated with an account identity. <br>\nMitigation: Use non-sensitive plant media unless the publisher's retention, account-linking, and data-handling terms are acceptable. <br>\nRisk: The skill can create or reuse a local identity database that may store authentication tokens. <br>\nMitigation: Run the skill in an isolated workspace, restrict access to local skill data, and remove or rotate stored credentials after evaluation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis) <br>\n- [API Documentation](artifact/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 or JSON-like structured analysis report with diagnosis text, likely causes, recommendations, and report links] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May write the report to a user-specified output file and may return account-linked historical report lists.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release metadata; artifact frontmatter reports 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.4:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.4:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.3: 31 files, 40299 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2937b), SKILL.md (12288b), 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 (22801b), 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 (28605b), _meta.json (162b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.4\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 卷曲方向识别（上卷 / 下卷 / 混合 / 无） |\n| 2 | 焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯） |\n| 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_leaf_curling_scorch_diagnosis_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备叶片图像输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行卷叶/焦边诊断 | 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_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_leaf_curling_scorch_diagnosis_analysis.py`](scripts/smyx_leaf_curling_scorch_diagnosis_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；建议同时上传整体形态与叶缘特写各一张 |\n| 🧑‍⚖️ 结果性质 | 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1782767725970\n}\n\nFile v1.0.3:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\n\nFile v1.0.3:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.3:scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nUsing agricultural camera images, this skill detects leaf curl direction and leaf-margin scorch patterns, optionally considers soil-moisture data, and returns likely causes such as drought stress, disease, pesticide damage, or fertilizer burn with directional recommendations. <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 agricultural developers use this skill to analyze plant leaf images or videos for curl direction, scorch distribution, affected leaf layer, likely stress or disease causes, and practical next-step guidance. It can also query cloud-hosted historical diagnosis reports for the same scenario. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Provided plant images, videos, or URLs are processed by a cloud service. <br>\nMitigation: Use non-sensitive agricultural media, review the configured service endpoints before installation, and avoid sending private or regulated files. <br>\nRisk: The skill can silently create or reuse a service identity and store returned service tokens in the workspace data directory. <br>\nMitigation: Install only in workspaces where local token storage is acceptable, restrict workspace access, and rotate or remove stored service credentials when no longer needed. <br>\nRisk: Diagnosis results are advisory and may confuse drought, disease, pesticide damage, fertilizer burn, or other similar symptoms. <br>\nMitigation: Treat outputs as plant-stress screening guidance and confirm severe or high-impact findings with field inspection or professional crop-protection advice. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis) <br>\n- [API interface documentation](references/api_doc.md) <br>\n- [Shared analysis API documentation](skills/smyx_analysis/references/api_doc.md) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance] <br>\n**Output Format:** [Markdown text with structured JSON analysis, report links, and optional file output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [The command-line interface accepts local image or video paths, public media URLs, a history-list mode, detail level, and an optional output file.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release metadata; artifact frontmatter says 1.0.4) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.3:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.3:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.2: 31 files, 37251 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3599b), skill-card.md (2589b), SKILL.md (11237b), 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 (22801b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (13468b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (24106b), _meta.json (162b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.4\"\nlicense: \"MIT-0\"\n---\n\n# Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🎯 AI 角色\n\n**假设你是一个专业的植物逆境诊断\nAI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。\n**\n\n## 任务目标\n\n- 本 Skill 用于：基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n- 能力包含：卷曲方向识别（上卷 / 下卷 / 混合 / 无）、焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯）、受害叶层定位（老叶 / 新叶 /\n  顶端嫩叶 / 全株）、伴随症状识别（黄化、紫红、白粉、坏死斑、水浸状斑）、可能原因排序（干旱 / 白粉病 / 病毒病 / 药害 / 肥害 /\n  冷害等）+ 置信度、方向性养护建议\n- 触发条件:\n    1. **默认触发**：当用户提供植物叶片图像或视频 URL/文件需要分析时，默认触发本技能进行卷叶/焦边诊断\n    2. 当用户明确提及卷叶、卷曲、上卷、下卷、焦边、叶缘焦枯、叶尖灼烧、干旱胁迫、白粉病、病毒病、药害、肥害、冷害、叶片干枯等关键词，并且上传了图像/视频文件\n    3. 当用户提及以下关键词时，**自动触发历史报告查询功能**\n       ：查看卷叶焦边历史报告、叶片诊断报告清单、卷叶诊断清单、查询历史卷叶焦边诊断、显示所有卷叶焦边报告、显示叶片逆境诊断报告，查询卷叶焦边建议清单\n- 自动行为：\n    1. 如果用户上传了附件或者图像/视频文件，则自动保存为本地文件\n    2. **⚠️ 强制数据获取规则（次高优先级）**：如果用户触发任何历史报告查询关键词（如\"查看所有卷叶焦边报告\"、\"\n       显示所有叶片诊断报告\"、\"\n       查看历史报告\"等），**必须**：\n        - 直接使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list` 调用 API\n          查询云端的历史报告数据\n        - **严格禁止**：从本地 memory 目录读取历史会话信息、严格禁止手动汇总本地记录中的报告、严格禁止从长期记忆中提取报告\n        - **必须统一**从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果\n\n## 前置准备\n\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\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- 标准流程:\n    1. **准备叶片图像输入**\n        - 提供本地叶片图像/视频路径或网络 URL\n        - 建议拍摄叶片整体形态（区分新叶/老叶）以及叶尖/叶缘特写，光照均匀、聚焦清晰\n        - 可选附带：作物种类、土壤湿度 %、空气湿度 %、近期施药/施肥记录\n    2. **系统自动完成身份关联**\n        - 无需用户输入任何身份参数\n        - 不在回复中展示内部身份值\n    3. **执行卷叶/焦边诊断**\n        - 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_analysis` 处理输入（**必须在技能根目录下运行脚本**）\n        - 参数说明:\n            - `--input`: 本地叶片图像或视频文件路径\n            - `--url`: 网络叶片图像或视频 URL 地址（API 服务自动下载）\n            - `--pet-type`: 类别标识，植物逆境诊断场景默认 `other`\n            - `--list`: 显示卷叶/焦边历史诊断报告列表清单（可以输入起始日期参数过滤数据范围）\n            - `--api-url`: API 服务地址（可选，使用默认值）\n            - `--detail`: 输出详细程度（basic/standard/json，默认 json）\n            - `--output`: 结果输出文件路径（可选）\n    4. **查看分析结果**\n        - 接收结构化的卷叶/焦边诊断报告\n        -\n        包含：卷曲方向（上卷/下卷/混合/无）、焦边分布（叶尖/叶缘/整叶）、受害叶层（老叶/新叶/顶端嫩叶/全株）、可能原因排序（干旱 /\n        白粉病 / 病毒病 / 药害 / 肥害 / 冷害等）及置信度、关键视觉证据描述、方向性建议（如\"建议灌溉\"、\"建议复查近期用药\"）\n        - **重要提示**：仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议，不输出具体农药/肥料名称或剂量\n\n## 资源索引\n\n-\n必要脚本：见 [scripts/smyx_leaf_curling_scorch_diagnosis_analysis.py](scripts/smyx_leaf_curling_scorch_diagnosis_analysis.py)(\n用途：调用 API 进行植物卷叶/焦边识别（干旱/病害）诊断分析，本地文件上传，网络 URL 由 API 服务自动下载)\n- 配置文件：见 [scripts/config.py](scripts/config.py)(用途：配置 API 地址、默认参数和场景码)\n- 领域参考：见 [references/api_doc.md](references/api_doc.md)(何时读取：需要了解 API 接口详细规范、输出字段和错误码时)\n\n## 注意事项\n\n- 仅在需要时读取参考文档，保持上下文简洁\n- 输入要求：支持 jpg/png 图像或 mp4/avi/mov 视频，最大 10MB；建议同时上传整体形态与叶缘特写各一张\n- 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询\n- 禁止临时生成脚本，只能用技能本身的脚本\n- 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载\n- 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 reportImageUrl 作为超链接地址，且自动转化为如下 Markdown\n  表格格式输出，包含\"\n  报告名称\"、\"作物种类\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`卷叶焦边诊断报告-{记录id}`形式拼接, \"点击查看\"\n  列使用\n  `[🔗 查看报告](reportImageUrl)`\n  格式的超链接，用户点击即可直接跳转到对应的完整报告页面。\n- 表格输出示例：\n  | 报告名称 | 作物种类 | 分析时间 | 点击查看 |\n  |----------|----------|----------|----------|\n  | 卷叶焦边诊断报告-20260312172200001 | 番茄 | 2026-03-12 17:22:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n## 使用示例\n\n```bash\n# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json\n```\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1782258146720\n}\n\nFile v1.0.2:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\n\nFile v1.0.2:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.2:scripts/config.yaml\n\n{}\n\nFile v1.0.2:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.2:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.2:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.2:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nAnalyzes plant leaf images or videos to identify curl direction, margin scorch patterns, affected leaf layers, likely causes, confidence, and directional care suggestions. <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 growers, agronomy teams, and agriculture application developers use this skill to submit plant leaf media for curl and scorch diagnosis and to query previously generated cloud reports. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Plant images or videos and report-history queries are sent to remote lifeemergence.com services. <br>\nMitigation: Avoid sensitive farm, facility, worker, or location imagery unless the publisher explains retention, account creation, token storage, and deletion controls. <br>\nRisk: The skill can silently create or reuse identities and store local identity or token records in the workspace. <br>\nMitigation: Review the identity and token storage behavior before installation, run in an isolated workspace, and remove local records when they are no longer needed. <br>\nRisk: Plant diagnosis may be incomplete or mistaken when visual symptoms overlap across drought, disease, pesticide damage, fertilizer burn, or cold stress. <br>\nMitigation: Treat results as directional guidance, combine them with field inspection and sensor context, and seek professional plant-health advice for severe suspected disease. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/18072937735/skills/smyx-leaf-curling-scorch-diagnosis-analysis) <br>\n- [Leaf curl and scorch API documentation](references/api_doc.md) <br>\n- [Shared analysis API documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, guidance] <br>\n**Output Format:** [Markdown or JSON diagnostic reports and history lists.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include report export links returned by the remote service.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release metadata; artifact frontmatter lists 1.0.4) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.2:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.2:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.1: 32 files, 37536 bytes\n\nFiles: references/api_doc.md (1913b), scripts/__init__.py (64b), scripts/api_service.py (1704b), scripts/config.py (709b), scripts/config.yaml (3b), scripts/skill.py (593b), scripts/smyx_leaf_curling_margin_scorch_diagnosis_analysis.py (3583b), skill-card.md (3119b), SKILL.md (14460b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (2094b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1857b), 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 (3706b), 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 (22801b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (11891b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (19613b), _meta.json (162b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\n<<<<<<< HEAD\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). Combined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (drought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers quickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables, orchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the cause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought, suggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought, diseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in time and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps. | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\"\n=======\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\n>>>>>>> 2ac8d1216af5489e2c4ef1b07b80962e56bc7194\nversion: \"1.0.2\"\nlicense: \"MIT-0\"\n---\n\n# Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🎯 AI 角色\n\n**假设你是一个专业的植物逆境诊断\nAI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。\n**\n\n## 任务目标\n\n- 本 Skill 用于：基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n- 能力包含：卷曲方向识别（上卷 / 下卷 / 混合 / 无）、焦边分布检测（叶尖灼烧 / 叶缘焦枯 / 整叶干枯）、受害叶层定位（老叶 / 新叶 /\n  顶端嫩叶 / 全株）、伴随症状识别（黄化、紫红、白粉、坏死斑、水浸状斑）、可能原因排序（干旱 / 白粉病 / 病毒病 / 药害 / 肥害 /\n  冷害等）+ 置信度、方向性养护建议\n- 触发条件:\n    1. **默认触发**：当用户提供植物叶片图像或视频 URL/文件需要分析时，默认触发本技能进行卷叶/焦边诊断\n    2. 当用户明确提及卷叶、卷曲、上卷、下卷、焦边、叶缘焦枯、叶尖灼烧、干旱胁迫、白粉病、病毒病、药害、肥害、冷害、叶片干枯等关键词，并且上传了图像/视频文件\n    3. 当用户提及以下关键词时，**自动触发历史报告查询功能**\n       ：查看卷叶焦边历史报告、叶片诊断报告清单、卷叶诊断清单、查询历史卷叶焦边诊断、显示所有卷叶焦边报告、显示叶片逆境诊断报告，查询卷叶焦边建议清单\n- 自动行为：\n    1. 如果用户上传了附件或者图像/视频文件，则自动保存为本地文件\n    2. **⚠️ 强制数据获取规则（次高优先级）**：如果用户触发任何历史报告查询关键词（如\"查看所有卷叶焦边报告\"、\"\n       显示所有叶片诊断报告\"、\"\n       查看历史报告\"等），**必须**：\n        - 直接使用 `python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list --open-id` 参数调用 API\n          查询云端的历史报告数据\n        - **严格禁止**：从本地 memory 目录读取历史会话信息、严格禁止手动汇总本地记录中的报告、严格禁止从长期记忆中提取报告\n        - **必须统一**从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果\n\n## 前置准备\n\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 操作步骤\n\n### 🔒 open-id 获取流程控制（强制执行，防止遗漏）\n\n**在执行卷叶/焦边诊断前，必须按以下优先级顺序获取 open-id：**\n\n```\n第 1 步：【最高优先级】检查技能所在目录的配置文件（优先）\n        路径：scripts/config.yaml（相对于技能根目录）\n        完整路径示例：${OPENCLAW_WORKSPACE}/skills/{当前技能目录}/scripts/config.yaml\n        → 如果文件存在且配置了 api-key 字段，则读取 api-key 作为 open-id\n        ↓ (未找到/未配置/api-key 为空)\n第 2 步：检查 workspace 公共目录的配置文件\n        路径：${OPENCLAW_WORKSPACE}/skills/smyx_common/scripts/config.yaml\n        → 如果文件存在且配置了 api-key 字段，则读取 api-key 作为 open-id\n        ↓ (未找到/未配置)\n第 3 步：检查用户是否在消息中明确提供了 open-id\n        ↓ (未提供)\n第 4 步：❗ 必须暂停执行，明确提示用户提供用户名或手机号作为 open-id\n```\n\n**⚠️ 关键约束：**\n\n- **禁止**自行假设,自行推导,自行生成 open-id 值（如 openclaw-control-ui、default、userC113、user123 等）\n- **禁止**跳过 open-id 验证直接调用 API\n- **必须**在获取到有效 open-id 后才能继续执行分析\n- 如果用户拒绝提供 open-id，说明用途（用于保存和查询历史报告记录），并询问是否继续\n\n---\n\n- 标准流程:\n    1. **准备叶片图像输入**\n        - 提供本地叶片图像/视频路径或网络 URL\n        - 建议拍摄叶片整体形态（区分新叶/老叶）以及叶尖/叶缘特写，光照均匀、聚焦清晰\n        - 可选附带：作物种类、土壤湿度 %、空气湿度 %、近期施药/施肥记录\n    2. **获取 open-id（强制执行）**\n        - 按上述流程控制获取 open-id\n        - 如无法获取，必须提示用户提供用户名或手机号\n    3. **执行卷叶/焦边诊断**\n        - 调用 `-m scripts.smyx_leaf_curling_scorch_diagnosis_analysis` 处理输入（**必须在技能根目录下运行脚本**）\n        - 参数说明:\n            - `--input`: 本地叶片图像或视频文件路径\n            - `--url`: 网络叶片图像或视频 URL 地址（API 服务自动下载）\n            - `--pet-type`: 类别标识，植物逆境诊断场景默认 `other`\n            - `--open-id`: 当前用户的 open-id（必填，按上述流程获取）\n            - `--list`: 显示卷叶/焦边历史诊断报告列表清单（可以输入起始日期参数过滤数据范围）\n            - `--api-key`: API 访问密钥（可选）\n            - `--api-url`: API 服务地址（可选，使用默认值）\n            - `--detail`: 输出详细程度（basic/standard/json，默认 json）\n            - `--output`: 结果输出文件路径（可选）\n    4. **查看分析结果**\n        - 接收结构化的卷叶/焦边诊断报告\n        -\n        包含：卷曲方向（上卷/下卷/混合/无）、焦边分布（叶尖/叶缘/整叶）、受害叶层（老叶/新叶/顶端嫩叶/全株）、可能原因排序（干旱 /\n        白粉病 / 病毒病 / 药害 / 肥害 / 冷害等）及置信度、关键视觉证据描述、方向性建议（如\"建议灌溉\"、\"建议复查近期用药\"）\n        - **重要提示**：仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议，不输出具体农药/肥料名称或剂量\n\n## 资源索引\n\n-\n必要脚本：见 [scripts/smyx_leaf_curling_scorch_diagnosis_analysis.py](scripts/smyx_leaf_curling_scorch_diagnosis_analysis.py)(\n用途：调用 API 进行植物卷叶/焦边识别（干旱/病害）诊断分析，本地文件上传，网络 URL 由 API 服务自动下载)\n- 配置文件：见 [scripts/config.py](scripts/config.py)(用途：配置 API 地址、默认参数和场景码)\n- 领域参考：见 [references/api_doc.md](references/api_doc.md)(何时读取：需要了解 API 接口详细规范、输出字段和错误码时)\n\n## 注意事项\n\n- 仅在需要时读取参考文档，保持上下文简洁\n- 输入要求：支持 jpg/png 图像或 mp4/avi/mov 视频，最大 10MB；建议同时上传整体形态与叶缘特写各一张\n- API 密钥可选，如果通过参数传入则必须确保调用鉴权成功，否则忽略鉴权\n- 诊断结果仅作为植物逆境识别参考，疑似病害严重时建议结合实地踏查或专业植保咨询\n- 禁止临时生成脚本，只能用技能本身的脚本\n- 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载\n- 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段 reportImageUrl 作为超链接地址，且自动转化为如下 Markdown\n  表格格式输出，包含\"\n  报告名称\"、\"作物种类\"、\"分析时间\"、\"点击查看\"四列，其中\"报告名称\"列使用`卷叶焦边诊断报告-{记录id}`形式拼接, \"点击查看\"\n  列使用\n  `[🔗 查看报告](reportImageUrl)`\n  格式的超链接，用户点击即可直接跳转到对应的完整报告页面。\n- 表格输出示例：\n  | 报告名称 | 作物种类 | 分析时间 | 点击查看 |\n  |----------|----------|----------|----------|\n  | 卷叶焦边诊断报告-20260312172200001 | 番茄 | 2026-03-12 17:22:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n## 使用示例\n\n```bash\n# 分析本地叶片图像（以下只是示例，禁止直接使用openclaw-control-ui 作为 open-id）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg --open-id your-open-id\n\n# 分析网络叶片图像/视频（以下只是示例，禁止直接使用openclaw-control-ui 作为 open-id）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg --open-id your-open-id\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list --open-id your-open-id\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --open-id your-open-id --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --open-id your-open-id --output result.json\n```\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1781586204888\n}\n\nFile v1.0.1:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。\n\nFile v1.0.1:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口地址\n\n`POST https://your-api-server.com/api/v1/common-analysis`\n\n## 请求头\n\n| 字段           | 必选 | 说明                            |\n|--------------|----|-------------------------------|\n| X-API-Key    | 是  | API访问密钥                       |\n| Content-Type | 是  | 文件上传或 application/json（URL模式） |\n\n## 请求参数\n\n### 1. 文件上传模式\n\n| 字段           | 类型     | 必选 | 说明                                    |\n|--------------|--------|----|---------------------------------------|\n| video        | file   | 是  | MP4视频文件                               |\n| detail_level | string | 否  | 输出详细程度：basic/standard/full，默认standard |\n\n### 2. URL模式\n\n| 字段           | 类型     | 必选 | 说明                                    |\n|--------------|--------|----|---------------------------------------|\n| video_url    | string | 是  | 可公开访问的视频URL                           |\n| detail_level | string | 否  | 输出详细程度：basic/standard/full，默认standard |\n\n## 响应格式\n\n```json\n{\n  \"code\": 200,\n  \"message\": \"success\",\n  \"data\": {\n    \"analysis_time\": \"2026-03-10 15:30:00\",\n    \"face_detection\": {\n      \"status\": \"success\",\n      \"face_count\": 1,\n      \"quality_score\": 95\n    },\n    \"diagnosis\": {\n      \"overall_constitution\": \"平和质\",\n      \"organ_condition\": {\n        \"liver\": \"正常\",\n        \"heart\": \"轻微火旺\",\n        \"spleen\": \"略虚\",\n        \"lung\": \"正常\",\n        \"kidney\": \"正常\"\n      },\n      \"color_analysis\": {\n        \"complexion\": \"微黄\",\n        \"correspondence\": \"脾胃功能略弱\"\n      }\n    },\n    \"health_warnings\": [\n      \"注意休息，避免熬夜\"\n    ],\n    \"suggestions\": [\n      \"饮食清淡，减少辛辣食物摄入\"\n    ]\n  }\n}\n```\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.1:scripts/config.yaml\n\n{}\n\nFile v1.0.1:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.1: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.1: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.1:skills/smyx_common/scripts/config.yaml\n\nenv: prod\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  database-url: null\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\nConstantEnum:\n  is-debug: false\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  default--skill-platform-name: ARK_CLAW\n\nFile v1.0.1:skill-card.md\n\n## Description: <br>\nAnalyzes plant leaf images or video URLs to identify curl direction, margin scorch patterns, affected leaf layers, and likely causes such as drought stress, disease, pesticide damage, fertilizer burn, or cold stress. <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 agricultural application developers use this skill to route plant leaf imagery through a cloud diagnosis workflow and receive structured likely-cause guidance for leaf curling and margin scorch symptoms. It is intended for crop, greenhouse, orchard, IoT, UAV inspection, or mobile app workflows where the result supports follow-up inspection rather than replacing professional plant-health judgment. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill may send plant images or videos, submitted URLs, and an open-id such as a username or phone number to the LifeEmergence/SMYX cloud service. <br>\nMitigation: Use only with user consent, avoid submitting sensitive or identifying imagery, and confirm that the destination cloud service is acceptable for the deployment environment. <br>\nRisk: The security evidence says the skill under-discloses account login or registration and local token storage tied to user identifiers. <br>\nMitigation: Review the account and token behavior before deployment, use a dedicated open-id where possible, and clear stored OpenClaw workspace data when persistent account state is not desired. <br>\nRisk: Plant-health outputs are likely-cause guidance and may be wrong when symptoms overlap across drought, disease, chemical damage, fertilizer burn, and cold stress. <br>\nMitigation: Treat results as triage support, verify severe or ambiguous symptoms with field inspection or a qualified plant-health professional, and avoid using the skill to prescribe specific pesticide or fertilizer products or doses. <br>\n\n\n## Reference(s): <br>\n- [Leaf Curling & Margin Scorch API documentation](references/api_doc.md) <br>\n- [ClawHub skill release page](https://clawhub.ai/18072937735/smyx-leaf-curling-scorch-diagnosis-analysis) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown or JSON-like structured diagnosis text, including report-list output when history is queried.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include curl direction, scorch pattern, affected leaf layer, likely-cause ranking, confidence, visual evidence hints, report export links, and directional care guidance.] <br>\n\n## Skill Version(s): <br>\n1.0.1 (source: server release evidence) <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.1:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.1:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3","readmeExcerpt":"Skill: Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害） Owner: 18072937735 Summary: Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json"},{"language":"bash","snippet":"python -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地叶片图像\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input /path/to/leaf.jpg\n\n# 分析网络叶片图像/视频\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --url https://example.com/leaf.jpg\n\n# 显示历史诊断报告/卷叶焦边诊断清单（自动触发关键词：查看卷叶焦边历史报告、叶片诊断报告清单等）\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_leaf_curling_scorch_diagnosis_analysis --input leaf.jpg --output result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-leaf-curling-scorch-diagnosis-analysis\"\ndescription: \"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🍃 Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害）\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **植物卷叶/焦边识别（干旱/病害）** |\n| 🎯 核心目标 | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_LEAF_CURLING_SCORCH_DIAGNOSIS_ANALYSIS` |\n\nUsing agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling\ndirection (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin).\nCombined with optional soil-moisture sensor data, the system jointly judges the most likely cause of curling/scorching (\ndrought stress, diseases such as powdery mildew or virus, pesticide damage, fertilizer burn, etc.). This helps farmers\nquickly locate the problem and take targeted action. Application scenarios: open-field crops, greenhouse vegetables,\norchards. The system periodically inspects fields; when curling or scorching is detected it automatically analyzes the\ncause and issues a diagnosis (e.g., 'leaves curled upward with margin scorch, soil moisture low — likely drought,\nsuggest irrigation'). Skill features: leaf curling and margin scorch are common but easy to misjudge because drought,\ndiseases and chemical damage share similar symptoms. AI-assisted visual diagnosis helps farmers respond correctly in\ntime and reduce losses. Can be integrated into agricultural IoT systems, UAV inspection platforms, or mobile apps.\n\n通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。该技能有助于农民快速定位问题，采取针对性措施。应用场景：大田作物、温室蔬菜、果园。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'\n）。技能特点：卷叶和焦边是农民常遇到的问题，但干旱、病害、药害症状相似，易误判。通过AI视觉辅助诊断，可帮助农民早期采取正确措施，减少损失。该技能可集成到农业物联网系统、无人机巡检平台或手机APP中。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的植物逆境诊断 AI。你的任务是分析植物叶片的图像，识别卷曲方向（上卷/下卷）、焦边分布（叶尖/叶缘、老叶/新叶），并可结合土壤湿度数据（若提供），判断引起卷叶/焦边的主要原因。不要提供具体的农药或肥料名称、剂量，仅输出基于视觉（及可选土壤湿度）的可能原因排序与方向性建议。 ** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于叶片高清图像（可选叠加土壤湿度等环境数据），识别卷曲方向与焦边分布特征，并给出干旱/病害/药害/肥害等原因的可能性排序\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e2caqj7pnsvr9r7t8zenghs83xw7n\",\n  \"slug\": \"smyx-leaf-curling-scorch-diagnosis-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1787685629927\n}"},{"path":"references/api_doc.md","content":"# API 接口文档\n\n此处用于存放植物卷叶/焦边识别（干旱/病害）API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动卷叶/焦边诊断任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取分析结果与原因诊断\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史诊断记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_LEAF_CURLING_MARGIN_SCORCH_DIAGNOSIS_ANALYSIS` - 植物卷叶/焦边识别（干旱/病害）\n\n## 输入约束\n\n- 推荐拍摄叶片整体形态（区分新叶 / 老叶）以及叶尖/叶缘特写\n- 光照均匀、无明显阴影、聚焦清晰\n- 可选附带传感器/环境数据：土壤湿度 %、空气湿度 %、近期施药/施肥记录\n\n## 关键观测特征\n\n- 卷曲方向：上卷（叶片向上反卷）/ 下卷（叶片向下内卷）\n- 焦边分布：叶尖灼烧 / 叶缘焦枯 / 整叶干枯\n- 分布部位：老叶 / 新叶 / 顶端嫩叶 / 全株\n- 伴随特征：叶色变化（黄化/紫红）、白粉、坏死斑、水浸状斑\n\n## 输出字段（参考）\n\n- `curl_direction` - 卷曲方向（up_curl / down_curl / mixed / none）\n- `scorch_pattern` - 焦边分布（tip_burn / margin_scorch / whole_leaf_dry）\n- `affected_leaves` - 受害叶层（old_leaves / new_leaves / top_leaves / whole_plant）\n- `likely_causes` - 可能原因排序（drought / disease_powdery_mildew / virus / pesticide_damage / fertilizer_burn / cold_stress 等）\n- `confidence_top1` - 最可能原因的置信度\n- `evidence_hints` - 关键视觉证据描述\n\n> 仅输出基于视觉（及可选土壤湿度）的可能原因排序，不输出具体农药/肥料名称或剂量。"},{"path":"skills/smyx_analysis/references/api_doc.md","content":"# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |"},{"path":"scripts/config.yaml","content":"{}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选），综合判断卷叶/焦边的主要原因（干旱胁迫、病害如白粉病/病毒病、药害、肥害等）。系统定期巡检，发现卷叶或焦边时自动分析原因，输出诊断及建议（如'叶片上卷、叶缘焦枯，土壤湿度偏低，可能干旱，建议灌溉'）。 Skill: Leaf Curling & Margin Scorch Diagnosis | 植物卷叶/焦边识别（干旱/病害） Owner: 18072937735 Summary: Using agricultural cameras to capture high-resolution images of plant leaves, AI vision techniques detect leaf curling direction (up-curling or down-curling) and the distribution of leaf-margin scorch (old vs new leaves, tip vs margin). | 通过农业摄像头拍摄植物叶片的高清图像，利用AI视觉分析技术检测叶片卷曲方向（上卷或下卷）、焦边（叶缘干枯）的分布特征（老叶/新叶、叶尖/叶缘），并可结合土壤湿度传感器数据（可选","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1038,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T01:13:23.594Z","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-10T01:13:23.594Z","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-10T06:53:39.605Z","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"}]}}}