{"id":"a129a3c9-5a15-4043-a0c0-f4a8066a6042","entityType":"agent","slug":"clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi","name":"Body Size/Weight Estimation | 畜禽体长/体重估测","canonicalUrl":"https://www.xpersona.co/agent/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi","canonicalPath":"/agent/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi","generatedAt":"2026-10-10T13:53:11.274Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T09:56:31.298Z","emptyReason":null},"description":"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 Skill: Body Size/Weight Estimation | 畜禽体长/体重估测 Owner: smyx-sunjinhui Summary: Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 Tags: latest:1.0.12 Version history: v1.0.12 | 2026-09-27T17:17:25.835Z | auto - Version bumped from 1.0.12 to 1.0.13. - Documentation in SKILL.md updated. - skill-card.md file removed","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-body-size-weight-estimation-analysis","sourceUrl":"https://clawhub.ai/smyx-sunjinhui/smyx-body-size-weight-estimation-analysis","homepage":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/smyx-sunjinhui/smyx-body-size-weight-estimation-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 Sk"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T09:56:31.298Z","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-10T09:56:31.298Z","emptyReason":null},"stars":null,"forks":null,"downloads":1510,"packageName":null,"latestVersion":"1.0.12","tractionLabel":"1.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T09:56:31.298Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T09:56:31.298Z","lastCrawledAt":"2026-10-10T09:56:31.298Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T09:56:31.298Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.12","createdAt":"2026-09-27T17:17:25.835Z","changelog":"- Version bumped from 1.0.12 to 1.0.13. - Documentation in SKILL.md updated. - skill-card.md file removed.","fileCount":31,"zipByteSize":39428},{"version":"1.0.11","createdAt":"2026-09-26T00:29:24.743Z","changelog":"- Updated skill version to 1.0.12 with adjustments in SKILL.md. - Documentation updates: incremented version, clarified details. - Removed redundant skill-card.md. - Minor configuration improvements in scripts/config.yaml.","fileCount":31,"zipByteSize":39514},{"version":"1.0.10","createdAt":"2026-08-26T08:09:30.026Z","changelog":"- Updated version from 1.0.7 to 1.0.8 in SKILL.md. - Removed the file skill-card.md. - No changes to skill features, logic, or user experience. - Documentation now accurately reflects the updated version.","fileCount":31,"zipByteSize":39788},{"version":"1.0.9","createdAt":"2026-08-17T15:22:32.688Z","changelog":"- Updated SKILL.md content with minor revisions and new version number. - Changed internal version from 1.0.6 to 1.0.7. - Removed the file: skill-card.md. - Minor configuration or documentation adjustments in scripts/config.yaml.","fileCount":31,"zipByteSize":39697},{"version":"1.0.8","createdAt":"2026-08-10T00:29:46.759Z","changelog":"- Removed the file: skill-card.md - No other changes to logic, features, or documentation. - Version and main documentation remain unchanged.","fileCount":31,"zipByteSize":39671},{"version":"1.0.7","createdAt":"2026-08-04T09:40:32.327Z","changelog":"- Updated version from 1.0.4 to 1.0.6 in SKILL.md. - Removed file: skill-card.md. - No functional or technical changes indicated in the SKILL.md documentation content. - Documentation maintenance only; no impact on API, CLI, or analysis workflow.","fileCount":31,"zipByteSize":39678},{"version":"1.0.6","createdAt":"2026-07-31T14:43:32.029Z","changelog":"- Updated SKILL.md with minor version bump from 1.0.3 to 1.0.4. - Removed redundant documentation file skill-card.md. - No logic, feature, or interface changes; documentation only. - Overall skill behavior and usage remain unchanged.","fileCount":31,"zipByteSize":39860},{"version":"1.0.5","createdAt":"2026-07-16T18:52:33.005Z","changelog":"- Updated version metadata in SKILL.md from 1.0.1 to 1.0.3. - Removed the file skill-card.md. - No significant content or functionality changes in documentation observed.","fileCount":31,"zipByteSize":39728}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-body-size-weight-estimation-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-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T13:53:11.271Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-body-size-weight-estimation-analysi/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T09:56:31.298Z","emptyReason":null},"readme":"Skill: Body Size/Weight Estimation | 畜禽体长/体重估测\n\nOwner: smyx-sunjinhui\n\nSummary: Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\n\nTags: latest:1.0.12\n\nVersion history:\n\nv1.0.12 | 2026-09-27T17:17:25.835Z | auto\n\n- Version bumped from 1.0.12 to 1.0.13.\n- Documentation in SKILL.md updated.\n- skill-card.md file removed.\n\nv1.0.11 | 2026-09-26T00:29:24.743Z | auto\n\n- Updated skill version to 1.0.12 with adjustments in SKILL.md.\n- Documentation updates: incremented version, clarified details.\n- Removed redundant skill-card.md.\n- Minor configuration improvements in scripts/config.yaml.\n\nv1.0.10 | 2026-08-26T08:09:30.026Z | auto\n\n- Updated version from 1.0.7 to 1.0.8 in SKILL.md.\n- Removed the file skill-card.md.\n- No changes to skill features, logic, or user experience.\n- Documentation now accurately reflects the updated version.\n\nv1.0.9 | 2026-08-17T15:22:32.688Z | auto\n\n- Updated SKILL.md content with minor revisions and new version number.\n- Changed internal version from 1.0.6 to 1.0.7.\n- Removed the file: skill-card.md.\n- Minor configuration or documentation adjustments in scripts/config.yaml.\n\nv1.0.8 | 2026-08-10T00:29:46.759Z | auto\n\n- Removed the file: skill-card.md\n- No other changes to logic, features, or documentation.\n- Version and main documentation remain unchanged.\n\nv1.0.7 | 2026-08-04T09:40:32.327Z | auto\n\n- Updated version from 1.0.4 to 1.0.6 in SKILL.md.\n- Removed file: skill-card.md.\n- No functional or technical changes indicated in the SKILL.md documentation content.\n- Documentation maintenance only; no impact on API, CLI, or analysis workflow.\n\nv1.0.6 | 2026-07-31T14:43:32.029Z | auto\n\n- Updated SKILL.md with minor version bump from 1.0.3 to 1.0.4.\n- Removed redundant documentation file skill-card.md.\n- No logic, feature, or interface changes; documentation only.\n- Overall skill behavior and usage remain unchanged.\n\nv1.0.5 | 2026-07-16T18:52:33.005Z | auto\n\n- Updated version metadata in SKILL.md from 1.0.1 to 1.0.3.\n- Removed the file skill-card.md.\n- No significant content or functionality changes in documentation observed.\n\nv1.0.4 | 2026-07-11T07:13:31.385Z | auto\n\n- Updated version to 1.0.4\n- Documentation updates in SKILL.md\n- Internal improvements and code changes in skills/smyx_common/scripts/util.py\n- Removed legacy file: skill-card.md\n\nv1.0.3 | 2026-07-03T16:45:30.334Z | auto\n\n- Expanded and clarified the skill documentation, including module overview, workflow, demo link, and strict data/privacy constraints.\n- Detailed automatic behaviors for file handling and historical report querying, mandating cloud API usage with strict formatting for outputs.\n- Added comprehensive operational requirements, including dependencies, input specs, and privacy/security standards.\n- Provided step-by-step usage, parameter explanations, and multiple code usage examples for images, videos, and report export.\n- Specified table output format and strict data handling, ensuring report lists are always up-to-date and queried from the cloud.\n- Enhanced notes and constraints regarding result nature, data processing, and system integration behaviors.\n\nArchive index:\n\nArchive v1.0.12: 31 files, 39428 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2043b), SKILL.md (12284b), 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 (161b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790529445835\n}\n\nFile v1.0.12:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放畜禽体长/体重估测 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.12:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.12:scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.12:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.12:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.12:skill-card.md\n\n## Description:\n\nEstimates livestock body measurements and weight from side-view images or video to help track fattening progress.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nFarm operators and livestock analysts use side-view images or video of pigs, cattle, or sheep to estimate body dimensions, weight, and fattening stage and to review past reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Farm images or video may be sent to lifeemergence.com for cloud analysis.\n\nMitigation: Confirm cloud processing and data-sharing approval before submitting farm media or URLs.\n\nRisk: The skill can silently create or reuse an account identity and retain account tokens locally.\n\nMitigation: Use only where automatic account linkage is acceptable and protect local account data and tokens.\n\nRisk: Cloud-linked report history may be retrieved under the active identity.\n\nMitigation: Check account access and report visibility before requesting or sharing historical reports.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis)\n- [Skill demonstration](https://lifeemergence.com/sample.html)\n- [API reference](references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON]\n\n**Output Format:** [Structured analysis text or JSON; Markdown table for report history]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Estimated measurements, weight, fattening stage, and report links; results are estimates, not formal weighing.]\n\n## Skill Version(s):\n\n1.0.12 (source: ClawHub release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.12:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.12:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.11: 31 files, 39514 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2221b), SKILL.md (12284b), 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 (161b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1790382564743\n}\n\nFile v1.0.11:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放畜禽体长/体重估测 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.11:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.11:scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.11:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.11:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.11:skill-card.md\n\n## Description:\n\nEstimates livestock body dimensions, weight, and growth stage from side-view images or video for contactless monitoring.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nFarm managers and livestock analysts use side-view images or video to estimate body measurements, weight, and growth stage and review past reports. Results are estimates, not a substitute for physical weighing or farm decision procedures.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill creates or reuses an account identity and stores token-bearing user records locally.\n\nMitigation: Review account and local credential handling before installation; limit access to stored records.\n\nRisk: Media and identity-linked requests are sent to the publisher's cloud service.\n\nMitigation: Use only non-sensitive livestock images or videos, and avoid passing private local files by path.\n\nRisk: Visual measurements can be unreliable when the animal is obscured, poorly posed, or lacks a size reference.\n\nMitigation: Use clear side views with a known-size reference and verify important decisions with physical measurements.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis)\n- [Skill demonstration](https://lifeemergence.com/sample.html)\n- [API documentation](artifact/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown]\n\n**Output Format:** [JSON analysis results or Markdown report tables with report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Estimated measurements depend on image quality, pose, and a visible size reference; results may be saved to a file.]\n\n## Skill Version(s):\n\n1.0.11 (source: ClawHub release metadata; artifact frontmatter lists 1.0.12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.11:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.11:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.10: 31 files, 39788 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2736b), SKILL.md (12283b), 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 (161b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.8\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1787731770026\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.10:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.10:scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nEstimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to estimate livestock body length, body height, chest girth, body weight, and fattening stage from side-view livestock images, videos, or media URLs. The skill can also query cloud-hosted historical analysis reports tied to the current identity.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Livestock media, supplied URLs, report queries, and identity-linked metadata may be sent to configured services.\n\nMitigation: Install only when the publisher and configured service endpoints are trusted and the data handling is acceptable for the deployment.\n\nRisk: The skill silently creates or reuses an identity, stores tokens locally, and links cloud report history to that identity.\n\nMitigation: Run the skill under an approved account boundary, review local token handling before deployment, and clear or revoke stored credentials when access should end.\n\nRisk: Visual body-size and weight estimates can be inaccurate when captures have poor side view, occlusion, poor lighting, motion blur, or no known-size reference object.\n\nMitigation: Use complete side-view captures with a visible known-size reference and treat outputs as reference estimates rather than final weighing or production decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [API interface documentation](references/api_doc.md)\n- [Analysis API documentation](skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Markdown, JSON, Shell commands, Files, Guidance]\n\n**Output Format:** [Markdown or JSON analysis reports with optional saved output files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include estimated body measurements, estimated weight, fattening stage, confidence or usability notes, report links, and historical report tables.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.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, 39697 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2663b), SKILL.md (12283b), 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 (160b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1786980152688\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.9:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.9:scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.9:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.9:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nEstimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agricultural operators use this skill to estimate livestock body dimensions, weight, and fattening stage from side-view images, videos, local files, or URLs. It supports contactless monitoring workflows and historical report lookup while treating estimates as reference information rather than feeding or sale advice.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Livestock media, private URLs, internal identity values, and report history may be sent to the configured external service.\n\nMitigation: Review the configured service and only run the skill with media, URLs, and report data approved for that service.\n\nRisk: The skill may create or reuse a local account identity and store returned authentication tokens in a shared workspace database.\n\nMitigation: Use an appropriate workspace boundary, review local token storage before shared deployments, and rotate or remove stored tokens when access should end.\n\nRisk: Body size, weight, and fattening-stage estimates can be affected by image quality, side-view pose, occlusion, reference-object calibration, and video stability.\n\nMitigation: Require clear side-view capture with a known-size reference object and treat results as monitoring references rather than definitive weighing or sale decisions.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-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, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown reports, JSON analysis output, report links, and command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include estimated body length, body height, chest or body width, weight, fattening stage, confidence or usability notes, and historical report tables.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release evidence, released 2026-08-17T15:22:32Z)\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, 39671 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2380b), SKILL.md (12283b), 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 (160b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1786321786759\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.8:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.8:scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nEstimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and livestock managers use this skill to estimate body length, body height, girth, body weight, and fattening stage from clear side-view livestock images or videos. It also supports cloud-backed retrieval of account-linked historical analysis reports.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Uploaded media or URLs, internal identifiers, and account-linked history may be sent to cloud services.\n\nMitigation: Use only with data whose cloud processing is acceptable, and avoid sensitive farm footage unless the publisher and service handling are trusted.\n\nRisk: The skill can silently create or reuse a local identity and store service tokens locally.\n\nMitigation: Review local workspace access and token storage expectations before installing in shared environments.\n\nRisk: Weight and growth-stage results are estimates based on visual inputs.\n\nMitigation: Treat results as operational reference only and confirm important weighing or production decisions with established farm processes.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis)\n- [API documentation](references/api_doc.md)\n- [Common analysis API documentation](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:** [Structured text or JSON with Markdown report links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include cloud report export links and historical report tables.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release evidence)\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, 39678 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2513b), SKILL.md (12283b), 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 (160b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1785836432327\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.7:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.7:scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.7:skill-card.md\n\n## Description: <br>\nEstimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to estimate livestock body measurements, body weight, fattening stage, and report links from side-view livestock images, videos, or URLs. It supports historical report lookup through the provider's cloud API. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Livestock media and report history may be processed by the provider's cloud service. <br>\nMitigation: Use the skill only with media appropriate for provider processing, and avoid content that reveals sensitive farm layouts, people, location details, or confidential operations unless the provider's data handling is acceptable. <br>\nRisk: The skill can automatically create or reuse a local identity and store reusable service tokens in the workspace data directory. <br>\nMitigation: Run it only in trusted workspaces, review local data-directory handling, and remove stored identity or token files when they are no longer needed. <br>\n\n\n## Reference(s): <br>\n- [API 接口文档](references/api_doc.md) <br>\n- [API接口文档](skills/smyx_analysis/references/api_doc.md) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, shell commands] <br>\n**Output Format:** [JSON or Markdown report text with measurement estimates, fattening stage, and report links; optional file output is supported.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May call a remote provider API for analysis and historical report lookup.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: server release metadata; SKILL.md frontmatter lists 1.0.6) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.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, 39860 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2935b), SKILL.md (12283b), 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 (160b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.4\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1785509012029\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.6:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.6:scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.6:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.6:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.6:skill-card.md\n\n## Description: <br>\nEstimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, farm operators, and livestock management teams use this skill to estimate livestock body measurements, body weight, and fattening stage from side-view images, videos, or media URLs. It can also retrieve cloud-hosted historical analysis reports associated with the current identity. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Livestock images, videos, URLs, and report history are sent to or retrieved from lifeemergence.com services. <br>\nMitigation: Use only media approved for third-party processing, and ask the publisher for data retention, deletion, and access-control details before sensitive farm or business use. <br>\nRisk: The skill can silently create or reuse a remote account and store authentication tokens locally. <br>\nMitigation: Run it in an isolated workspace, protect or remove local identity and token stores after use, and confirm account creation and token storage controls with the publisher. <br>\nRisk: Body-size and weight estimates can be affected by pose, occlusion, lighting, file quality, and reference-object accuracy. <br>\nMitigation: Use clear full side-view captures with a known reference object, and verify important production decisions with established weighing and farm management procedures. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill release page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [Body size and weight estimation API documentation](references/api_doc.md) <br>\n- [Common analysis API documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands, files, guidance] <br>\n**Output Format:** [Markdown or JSON text with analysis results, report links, and optional saved output files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Analysis uses a side-view livestock image, video, local path, or URL; history lookup returns cloud report records for the resolved identity.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: ClawHub release metadata; SKILL.md 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.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, 39728 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2895b), SKILL.md (12283b), 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 (160b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.3\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1784227953005\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.5:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.5:scripts/config.yaml\n\n{}\n\nFile v1.0.5:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.5:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.5:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.5:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.5:skill-card.md\n\n## Description: <br>\nEstimates livestock body length and weight from side-view images, videos, or URLs and returns structured measurements, fattening-stage assessment, and report links. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal farmers, livestock operators, and agents use this skill to submit side-view livestock media for contactless body-size and weight estimates and to retrieve account-bound history reports. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uploads livestock media to a remote cloud service for processing. <br>\nMitigation: Use only media and URLs intended for that service, and avoid private farm footage or internal/private URLs unless sharing them with the service is approved. <br>\nRisk: The skill silently creates or reuses an internal cloud identity and account-bound report history. <br>\nMitigation: Run it only in workspaces where account-bound history is expected, and review access controls before use in shared environments. <br>\nRisk: The security evidence notes local storage of service tokens in the workspace data area. <br>\nMitigation: Limit workspace access, clean stored tokens when decommissioning the skill, and avoid running it in untrusted shared workspaces. <br>\nRisk: Body size, weight, and fattening-stage outputs are estimates and may be affected by pose, occlusion, reference-object quality, lighting, and video quality. <br>\nMitigation: Use outputs as monitoring references and verify operational decisions with established weighing equipment and farm management procedures. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [API documentation](references/api_doc.md) <br>\n- [Analysis API documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown and JSON text, with optional saved text output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include estimated body measurements, weight, fattening stage, confidence or usability notes, report links, and account-bound history listings.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release metadata; SKILL.md frontmatter reports 1.0.3) <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, 39773 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2746b), SKILL.md (12283b), 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 (160b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.1\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1783754011385\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.4:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.4:scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nEstimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and farm operators use this skill to analyze side-view livestock images or videos for contactless body-size and body-weight estimates, fattening-stage signals, and historical report lookup. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Livestock images or videos and identity-linked report requests are sent to Lifeemergence remote services. <br>\nMitigation: Install only when that transfer is acceptable, and avoid sensitive farm, location, or account data unless the publisher provides clear retention, deletion, and identity-use controls. <br>\nRisk: The skill silently creates or reuses an internal identity and stores authentication tokens locally. <br>\nMitigation: Review local identity and token storage before deployment, and clear workspace data when persistent identity reuse is not desired. <br>\nRisk: Visual body-size and weight estimates can be affected by pose, occlusion, lighting, motion blur, and reference-object accuracy. <br>\nMitigation: Use clear, complete side-view images or videos with known reference objects, and treat estimates as progress signals rather than final weighing or production decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [API documentation](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 text with structured analysis, JSON-style result content, report links, and shell command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs may include estimated body length, body height, chest girth, body weight, fattening stage, confidence or usability notes, and historical report links.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release metadata; source skill frontmatter reports 1.0.1) <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, 39727 bytes\n\nFiles: references/api_doc.md (662b), scripts/__init__.py (58b), scripts/config.py (681b), scripts/config.yaml (3b), scripts/skill.py (574b), scripts/smyx_body_size_weight_estimation_analysis.py (3553b), skill-card.md (2859b), SKILL.md (12283b), 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 (160b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.0\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\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\n## 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备畜禽侧视图像/视频 | 提供本地文件路径或网络 URL；确保侧视姿态完整、参照物清晰 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行体长/体重估测 | 调用 `-m scripts.smyx_body_size_weight_estimation_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看体尺、体重估测值、育肥阶段与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地畜禽侧视图像/视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络畜禽侧视图像/视频 URL 地址 | API 服务自动下载 |\n| `--pet-type` | 类别标识（畜禽场景保持 other） | 默认 `other`，按需填写 |\n| `--list` | 显示历史分析报告清单 | 可以输入起始日期参数过滤数据范围 |\n| `--api-url` | API 服务地址 | 可选，使用默认值 |\n| `--detail` | 输出详细程度 | `basic` / `standard` / `json`，默认 `json` |\n| `--output` | 结果输出文件路径 | 可选 |\n\n---\n\n## 🗂️ 资源索引 | Resource Index\n\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_body_size_weight_estimation_analysis.py`](scripts/smyx_body_size_weight_estimation_analysis.py) | 调用 API 进行畜禽体长/体重估测或查询历史报告 | 执行分析或查询时使用 |\n| ⚙️ 配置文件 | [`scripts/config.py`](scripts/config.py) | 场景码 `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS`、默认参数配置 | 需要确认默认配置时读取 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n---\n\n## ⚠️ 注意事项 | Notes\n\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 图片支持 `jpg` / `png` / `jpeg`；视频支持 `mp4` / `avi` / `mov`；单文件最大 `10MB` |\n| 🧑‍⚖️ 结果性质 | 估测结果仅供育肥进度参考，本技能不提供饲喂建议或出栏建议 |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能使用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数无需本地下载，默认为公网地址，API 服务会自动下载 |\n| 📜 报告输出 | 显示历史分析报告清单时，从接口返回 JSON 数据中提取字段作为超链接地址，并自动转化为 Markdown 表格输出 |\n\n---\n\n## 🔒 隐私与数据安全声明 | Privacy & Data Security\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 仅采集与畜禽体长/体重估测直接相关的图像/视频数据，不采集与体尺估测无关的敏感信息 |\n| 2 | 内部身份参数由系统自动处理，不在任何输出、日志或报告中暴露 |\n| 3 | 分析请求通过服务端 API 完成，网络传输遵循平台既有安全策略 |\n| 4 | 历史报告仅当前身份可读，不做跨养殖场/跨用户汇总或共享 |\n| 5 | 估测结果仅供参考，正式称重与出栏决策请结合养殖场既有称重设备与生产管理规程 |\n\n---\n\n## 📜 历史报告清单输出规范 | Report List Format\n\n当显示历史分析报告清单的时候，从接口返回 JSON 数据中提取字段作为超链接地址，且自动转化为如下 Markdown 表格格式输出。\n\n### 📌 固定输出列\n\n| 列名 | 生成规则 |\n|---|---|\n| 报告名称 | 使用 `畜禽体长体重估测报告-{记录id}` 形式拼接 |\n| 育肥阶段 | 从接口返回数据中提取（保育 / 育成 / 育肥 / 接近出栏） |\n| 分析时间 | 从接口返回数据中提取 |\n| 点击查看 | 使用 `[🔗 查看报告]()` 格式的超链接 |\n\n### 🧾 表格输出示例\n\n| 报告名称 | 育肥阶段 | 分析时间 | 点击查看 |\n|----------|----------|----------|----------|\n| 畜禽体长体重估测报告-20260703160500001 | 育肥 | 2026-07-03 16:05:00 | [🔗 查看报告](https://example.com/report?id=xxx) |\n\n---\n\n## 🧰 使用示例 | Examples\n\n### 🐷 分析本地育肥猪侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg\n```\n\n### 🐄 分析本地肉牛侧视视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4\n```\n\n### 🐑 分析本地育肥羊侧视图像\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg\n```\n\n### 🌐 分析网络畜禽侧视图像/视频\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4\n```\n\n### 📚 显示历史分析报告 / 显示分析报告清单列表 / 显示历史体长体重估测报告\n\n> 自动触发关键词：查看历史体长体重估测报告、历史报告、育肥进度清单等。\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --list\n```\n\n### 🪶 输出精简报告\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input fatten_pig_side.jpg --detail basic\n```\n\n### 💾 保存结果到文件\n\n```bash\npython -m scripts.smyx_body_size_weight_estimation_analysis --input beef_cattle.mp4 --output result.json\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1783097130334\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测\n\nFile v1.0.3:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.3:scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nEstimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal livestock operators and developers use this skill to estimate body measurements and body weight from side-view livestock media, review fattening-stage analysis, and retrieve account-linked historical reports from the LifeEmergence service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends livestock media, URLs, report queries, tenant/platform metadata, and an internally resolved user identity to LifeEmergence cloud services. <br>\nMitigation: Install and run it only in workspaces where that account-linked cloud transfer is acceptable, and avoid submitting media or URLs that should not leave the workspace. <br>\nRisk: The skill creates or reuses an account identity and persists service tokens locally. <br>\nMitigation: Use an isolated workspace or account for evaluation, restrict access to the workspace data directory, and remove local token or database files when retiring the skill. <br>\nRisk: Body-size and weight estimates depend on media quality, side-view posture, lighting, occlusion, and availability of a known reference object. <br>\nMitigation: Use clear complete side-view media with a known scale reference, and treat results as fattening-progress estimates rather than authoritative weigh-scale measurements. <br>\n\n\n## Reference(s): <br>\n- [Body size and weight estimation API 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- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-body-size-weight-estimation-analysis) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands, files, guidance] <br>\n**Output Format:** [Markdown and JSON text, with optional saved output files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Accepts local image or video paths and public media URLs; historical report queries return account-linked report data and report links.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (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.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","readmeExcerpt":"Skill: Body Size/Weight Estimation | 畜禽体长/体重估测 Owner: smyx-sunjinhui Summary: Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 Tags: latest:1.0.12 Version history: v1.0.12 | 2026-09-27T17:17:25.835Z | auto - Version bumped from 1.0.12 to 1.0.13. - Documentation in SKILL.md updated. - skill-card.md file removed","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_body_size_weight_estimation_analysis --list"},{"language":"txt","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"python -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/fatten_pig_side.jpg"},{"language":"bash","snippet":"python -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/beef_cattle.mp4"},{"language":"bash","snippet":"python -m scripts.smyx_body_size_weight_estimation_analysis --input /path/to/sheep_side.jpg"},{"language":"bash","snippet":"python -m scripts.smyx_body_size_weight_estimation_analysis --url https://example.com/livestock_side_view.mp4"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-body-size-weight-estimation-analysis\"\ndescription: \"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。\"\nversion: \"1.0.13\"\nlicense: \"MIT-0\"\n---\n\n# 📏 Livestock Body Size & Weight Estimation | 畜禽体长/体重估测\n\n> 通过视频视觉估测体长、体重，追踪育肥进度。\n>\n> **无接触育肥监测中枢** · 畜禽侧视图像/视频智能分析 · 体长/体高/胸围识别 · 参照物尺寸换算 · 体重与育肥阶段估测 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **畜禽体长/体重估测** |\n| 🎯 核心目标 | 基于畜禽侧视图像或视频帧，检测体长、体高、胸围等体型参数，结合参照物换算为实际尺寸，估测体重与所处育肥阶段 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL（推荐侧视清晰画面） |\n| 📝 输出能力 | 结构化分析报告、体长/体高/胸围估测值、体重估测值、育肥阶段判定、报告链接 |\n| 🏢 适用场景 | 猪/牛/羊等畜禽的育肥进度追踪、出栏时机参考、无接触群体体尺监测 |\n| 🧩 场景码 | `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n## 🤖 AI 角色 | AI Role\n\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **你是一个专业的畜禽生长监测 AI。你的任务是分析畜禽侧视图像（或视频帧），检测畜禽的体长、体高、胸围等体型参数，结合参照物进行实际尺寸换算，输出估测体重及育肥阶段。不要提供饲喂建议或出栏建议，仅基于视觉特征输出体尺估测结果。** |\n\n---\n\n## 🎯 任务目标 | Goals\n\n### 1. 🧩 技能用途\n\n通过畜禽侧视图像或视频帧，识别关键体尺特征并结合参照物换算实际尺寸，估算个体的体长、体高、胸围与体重，同时给出所处育肥阶段判定，为规模化猪、牛、羊养殖的育肥进度追踪与出栏时机判断提供无接触视觉参考。\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 畜禽个体检测与侧视姿态判定 |\n| 2 | 参照物识别与像素-实际比例标定 |\n| 3 | 体长估测（吻端-尾根 / 头-臀水平投影） |\n| 4 | 体高估测（肩高 / 髻甲高度） |\n| 5 | 胸围/体宽视觉估测 |\n| 6 | 体型参数-体重回归估测（按畜种模型） |\n| 7 | 育肥阶段判定（保育 / 育成 / 育肥 / 接近出栏） |\n| 8 | 估测结果置信度与可用度提示（受遮挡/姿态影响的说明） |\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_body_size_weight_estimation_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_body_size_weight_estimation_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n---\n\n## 📦 前置准备 | Requirements\n\n### 依赖说明\n\n`scripts` 脚本所需的依赖包及版本：\n\n```txt\nrequests>=2.28.0\n```\n\n---\n\n## 📷 采集要求 | Capture Requirements\n\n| 序号 | 说明 |\n|---:|---|\n| 1 | 目标畜禽以完整侧视姿态入镜（吻端至尾根、蹄底至髻甲均在画面内），避免大角度俯仰 |\n| 2 | 拍摄距离建议 1.5m～5m，畜禽身体轮廓清晰可见，尽量避免其它个体大面积遮挡 |\n| 3 | 画面中需包含已知尺寸的参照物（如围栏杆间距、地砖、标定板等），便于像素-实际尺寸换算 |\n| 4 | 光照条件稳定，避免强逆光和大面积过暗/过曝，保证轮廓边缘清晰 |\n| 5 | 视频建议 5~30 秒稳定拍摄，包含至少 1~2 帧完整侧视静止画面 |\n| 6 | 支持格式：jpg/png/jpeg 图片，及 mp4/avi/mov 视频；单文件不超过 10MB |\n| 7 | 目标畜禽尽量处于自然站立状态（四肢着地、身体伸展），避免弓背、卧地或走动模糊 |\n\n---\n\n## 🚀 操作步骤 | Workflow\n\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-body-size-weight-estimation-analysis\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790529445835\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/ai-analysis/v2/start-common-ai-analysis` - 启动畜禽体长/体重估测分析任务\n2. `/web/ai-analysis/get-common-ai-analysis-result` - 获取分析结果\n3. `/web/ai-analysis/page-common-ai-analysis-result` - 分页查询历史报告\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告\n\n## 场景代码\n\n- `SMYX_BODY_SIZE_WEIGHT_ESTIMATION_ANALYSIS` - 畜禽体长/体重估测"},{"path":"skills/smyx_analysis/references/api_doc.md","content":"# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |"},{"path":"scripts/config.yaml","content":"{}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 Skill: Body Size/Weight Estimation | 畜禽体长/体重估测 Owner: smyx-sunjinhui Summary: Estimates livestock body length and body weight from side-view videos or frames, tracking fattening progress in a contactless manner. | 通过视频视觉估测体长、体重，追踪育肥进度。 Tags: latest:1.0.12 Version history: v1.0.12 | 2026-09-27T17:17:25.835Z | auto - Version bumped from 1.0.12 to 1.0.13. - Documentation in SKILL.md updated. - skill-card.md file removed","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":776,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T09:56:31.298Z","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-10T09:56:31.298Z","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-10T13:53:11.274Z","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"}]}}}