{"id":"c1877e5d-3f9b-4982-b058-663f41a09383","entityType":"agent","slug":"clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis","name":"Workplace Group Stress Heatmap | 职场员工压力群体热力图","canonicalUrl":"https://www.xpersona.co/agent/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis","canonicalPath":"/agent/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis","generatedAt":"2026-10-10T07:59:47.930Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T03:22:35.423Z","emptyReason":null},"description":"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.7K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-workplace-stress-heatmap-analysis","sourceUrl":"https://clawhub.ai/smyx-sunjinhui/smyx-workplace-stress-heatmap-analysis","homepage":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/smyx-sunjinhui/smyx-workplace-stress-heatmap-analysis","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Workplace Group Stress Heatmap | 职场员工压力群体热力图 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T03:22:35.423Z","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-10T03:22:35.423Z","emptyReason":null},"stars":null,"forks":null,"downloads":1738,"packageName":null,"latestVersion":"1.0.10","tractionLabel":"1.7K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T03:22:35.413Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T03:22:35.423Z","lastCrawledAt":"2026-10-10T03:22:35.413Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T03:22:35.413Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.10","createdAt":"2026-09-30T23:54:25.580Z","changelog":"- Updated version from 1.0.16 to 1.0.17 in SKILL.md. - Removed the file skill-card.md. - No changes to skill logic or functionality; documentation and version maintenance only.","fileCount":31,"zipByteSize":41733},{"version":"1.0.9","createdAt":"2026-09-27T01:20:24.547Z","changelog":"- Updated version numbers and metadata in documentation. - Made minor wording and formatting adjustments in SKILL.md for consistency. - Removed the file skill-card.md for file organization cleanup. - No changes to features or functionality.","fileCount":31,"zipByteSize":41611},{"version":"1.0.8","createdAt":"2026-09-07T17:19:32.659Z","changelog":"- Updated documentation in SKILL.md with new details and version changes. - Removed the obsolete skill-card.md file. - Version bumped from 1.0.12 to 1.0.14. - No functional changes to analysis logic; update is documentation and file structure only.","fileCount":31,"zipByteSize":42122},{"version":"1.0.7","createdAt":"2026-08-30T11:07:45.475Z","changelog":"- Updated SKILL.md to increment version from 1.0.11 to 1.0.12. - Removed the file skill-card.md. - No changes to functionality—documentation only. - Changelog reflects a minor version bump and documentation cleanup.","fileCount":31,"zipByteSize":41887},{"version":"1.0.6","createdAt":"2026-08-23T10:05:43.852Z","changelog":"- Bumped version from 1.0.10 to 1.0.11. - Updated documentation in SKILL.md. - Removed redundant skill-card.md file. - Minor config adjustments in skills/smyx_common/scripts/config.yaml. - No changes to core functionality.","fileCount":31,"zipByteSize":41855},{"version":"1.0.5","createdAt":"2026-08-14T00:34:54.306Z","changelog":"- Updated version number in SKILL.md. - Removed the skill-card.md file. - No functional or feature changes; documentation only.","fileCount":31,"zipByteSize":41901},{"version":"1.0.4","createdAt":"2026-07-27T18:42:32.376Z","changelog":"- Updated to version 1.0.7. - Documentation improvements: SKILL.md revised; outdated skill-card.md file removed. - No changes to core logic or features—documentation only.","fileCount":31,"zipByteSize":42018},{"version":"1.0.3","createdAt":"2026-07-16T09:24:28.385Z","changelog":"- Updated version to 1.0.6 in SKILL.md. - Removed the file skill-card.md. - No changes to core features or usage; documentation and versioning updates only.","fileCount":31,"zipByteSize":41948}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-workplace-stress-heatmap-analysis","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17cfv2h26b7hq5w47tgfy23xx83z9x6:smyx-workplace-stress-heatmap-analysis` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/smyx-sunjinhui/smyx-workplace-stress-heatmap-analysis before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T07:59:47.926Z"}},"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-workplace-stress-heatmap-analysis/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-smyx-sunjinhui-smyx-workplace-stress-heatmap-analysis/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T03:22:35.423Z","emptyReason":null},"readme":"Skill: Workplace Group Stress Heatmap | 职场员工压力群体热力图\n\nOwner: smyx-sunjinhui\n\nSummary: Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\n\nTags: latest:1.0.10\n\nVersion history:\n\nv1.0.10 | 2026-09-30T23:54:25.580Z | auto\n\n- Updated version from 1.0.16 to 1.0.17 in SKILL.md.\n- Removed the file skill-card.md.\n- No changes to skill logic or functionality; documentation and version maintenance only.\n\nv1.0.9 | 2026-09-27T01:20:24.547Z | auto\n\n- Updated version numbers and metadata in documentation.\n- Made minor wording and formatting adjustments in SKILL.md for consistency.\n- Removed the file skill-card.md for file organization cleanup.\n- No changes to features or functionality.\n\nv1.0.8 | 2026-09-07T17:19:32.659Z | auto\n\n- Updated documentation in SKILL.md with new details and version changes.\n- Removed the obsolete skill-card.md file.\n- Version bumped from 1.0.12 to 1.0.14.\n- No functional changes to analysis logic; update is documentation and file structure only.\n\nv1.0.7 | 2026-08-30T11:07:45.475Z | auto\n\n- Updated SKILL.md to increment version from 1.0.11 to 1.0.12.\n- Removed the file skill-card.md.\n- No changes to functionality—documentation only.\n- Changelog reflects a minor version bump and documentation cleanup.\n\nv1.0.6 | 2026-08-23T10:05:43.852Z | auto\n\n- Bumped version from 1.0.10 to 1.0.11.\n- Updated documentation in SKILL.md.\n- Removed redundant skill-card.md file.\n- Minor config adjustments in skills/smyx_common/scripts/config.yaml.\n- No changes to core functionality.\n\nv1.0.5 | 2026-08-14T00:34:54.306Z | auto\n\n- Updated version number in SKILL.md.\n- Removed the skill-card.md file.\n- No functional or feature changes; documentation only.\n\nv1.0.4 | 2026-07-27T18:42:32.376Z | auto\n\n- Updated to version 1.0.7.\n- Documentation improvements: SKILL.md revised; outdated skill-card.md file removed.\n- No changes to core logic or features—documentation only.\n\nv1.0.3 | 2026-07-16T09:24:28.385Z | auto\n\n- Updated version to 1.0.6 in SKILL.md.\n- Removed the file skill-card.md.\n- No changes to core features or usage; documentation and versioning updates only.\n\nv1.0.2 | 2026-07-12T07:19:30.513Z | auto\n\n- Updated skill version from 1.0.3 to 1.0.5 in documentation.\n- Documentation improvements and clarifications in SKILL.md.\n- Removed the redundant file: skill-card.md.\n- Internal scripts updated: config.py and util.py, improving maintainability or configuration handling.\n- No changes to skill usage or interface; all operation steps remain the same.\n\nv1.0.1 | 2026-06-30T11:23:31.017Z | auto\n\n- Major update simplifying user experience: identity (open-id) handling is now fully automatic and never visible to users.\n- Streamlined documentation: removed user-facing identity prompts and technical workflow details.\n- Improved clarity and accessibility of analysis/triggers, with tabular breakdowns and usage examples.\n- Enhanced regulatory and privacy notes, reinforcing strict anonymization and compliance guidelines.\n- Updated resource lists and removed old/duplicated files.\n\nv1.0.0 | 2026-05-26T14:44:14.463Z | auto\n\nInitial release of workplace group stress heatmap analysis skill.\n\n- Provides anonymous, group-level stress heatmap analysis for open-plan office areas using fixed camera video.\n- Detects facial tension and posture rigidity signals (e.g., frowning, rigid sitting, frequent eye rubbing) to compute a real-time stress index for each workstation zone.\n- Generates color-coded stress heatmaps (green to red) and management suggestions without identifying individuals.\n- Periodically outputs reports for organizational health monitoring; includes strong privacy measures (no personal identification).\n- Integrates with enterprise security or health platforms as a smart-office feature.\n\nArchive index:\n\nArchive v1.0.10: 31 files, 41733 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2226b), SKILL.md (13619b), 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 (158b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.17\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1790812465580\n}\n\nFile v1.0.10:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\n\nFile v1.0.10:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.10:scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.10:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.10:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nAnalyzes workplace camera footage to produce zone-level stress estimates, heatmap reports, and historical report listings for organizational wellness 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\nWorkplace managers and organizational wellness teams use office camera recordings or video URLs to review zone-level stress estimates, heatmaps, trends, and past reports rather than individual assessments.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Sensitive workplace camera media or video URLs are sent to a third-party cloud service.\n\nMitigation: Obtain employee notice and consent before use, and approve the cloud data transfer before sending footage or URLs.\n\nRisk: Automatically created account-linked identities and locally or remotely retained report history may undermine anonymity claims.\n\nMitigation: Ask the provider to document retention, access controls, and deletion for identities and reports before deployment.\n\nRisk: Small-group results could permit employee re-identification despite zone-level aggregation.\n\nMitigation: Confirm that minimum group sizes and output controls prevent employee-level identification before relying on anonymity claims.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis)\n- [Workplace stress heatmap API reference](references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Guidance]\n\n**Output Format:** [Structured JSON-like analysis text or Markdown report listings with links]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Zone-level stress indicators, heatmap or report links, trends, and manager suggestions when available.]\n\n## Skill Version(s):\n\n1.0.10 (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.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, 41611 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (1916b), SKILL.md (13619b), 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 (157b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.16\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1790472024547\n}\n\nFile v1.0.9:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\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: prod\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nAnalyzes workplace camera footage to produce zone-level stress heatmaps, reports, and suggestions for managers.\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\nWorkplace managers and organizational health teams use fixed-camera footage to review aggregated stress indicators by office zone, view heatmaps, and consult historical reports when planning workplace improvements.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Workplace camera footage or video URLs may be sent to an external service.\n\nMitigation: Obtain clear employee notice and consent before use, limit retention, and approve the external service and its access controls.\n\nRisk: Persistent internal user and report identities may undermine expectations of anonymous group-only analysis.\n\nMitigation: Verify that the service enforces anonymous, zone-level processing and restrict access to identities and historical reports.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis)\n- [API documentation](references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Guidance]\n\n**Output Format:** [Structured report or JSON; Markdown table for historical reports]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Zone-level stress indicators, heatmap links, and manager suggestions; historical report links when requested.]\n\n## Skill Version(s):\n\n1.0.9 (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.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, 42122 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (3126b), SKILL.md (13619b), 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 (157b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.14\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1788801572659\n}\n\nFile v1.0.8:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\n\nFile v1.0.8:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.8:scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.8:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.8:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.8:skill-card.md\n\n## Description:\n\nAnalyzes fixed-camera workplace video or images to produce anonymous, zone-level group stress indices, heatmap colors, trend signals, manager suggestions, and report links.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[smyx-sunjinhui](https://clawhub.ai/user/smyx-sunjinhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nOperations, HR, workplace health, and facilities teams use this skill to review anonymous, area-level stress heatmaps from office-camera footage and identify zones that may need workload, environment, or wellbeing follow-up.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill processes workplace video and sends analysis requests to cloud services, which can involve sensitive employee data even when outputs are intended to be anonymous and aggregate.\n\nMitigation: Deploy only with explicit employee notice and consent, documented data-processing terms, and clear retention and deletion policies for uploaded video, reports, and report links.\n\nRisk: The security evidence flags user identity, credentials, cloud traffic, and local token/profile persistence as areas requiring review.\n\nMitigation: Confirm the vendor and configured endpoints before installation, require HTTPS production endpoints, and remove or protect any local token or profile persistence before using real workplace video.\n\nRisk: Small groups or poorly scoped workstation zones could make aggregate stress outputs functionally identifiable.\n\nMitigation: Enforce the documented minimum-sample behavior so zones with fewer than three observable people return only insufficient-sample status and no stress index.\n\nRisk: Visual stress cues such as frowning or posture can be ambiguous and should not be treated as individual diagnosis or performance evidence.\n\nMitigation: Use outputs only as area-level operational signals, combine them with voluntary employee feedback where appropriate, and prohibit individual profiling, diagnosis, or performance evaluation.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis)\n- [Skill demo](https://lifeemergence.com/sample.html)\n- [Workplace stress heatmap API documentation](artifact/references/api_doc.md)\n- [Common analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, json, files]\n\n**Output Format:** [Markdown or JSON text, with optional saved output files and report export links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs zone-level aggregate stress metrics, heatmap colors, trend summaries, manager suggestions, and historical report records.]\n\n## Skill Version(s):\n\n1.0.8 (source: server release evidence; artifact frontmatter says 1.0.14)\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, 41887 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2559b), SKILL.md (13619b), 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 (157b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.12\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1788088065475\n}\n\nFile v1.0.7:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\n\nFile v1.0.7:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.7:scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.7:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.7:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: dev\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nAnalyzes workplace camera images or video to produce anonymous, zone-level group stress reports and heatmap-style outputs for organizational health 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\nEnterprise managers, workplace health teams, and developers use this skill to submit open-office camera footage or URLs and receive anonymous, area-level stress distribution reports, trend summaries, heatmap links, and manager-facing suggestions. It is intended for organizational health monitoring, not individual diagnosis, performance evaluation, or discipline.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill processes sensitive workplace footage and sends analysis tasks or history lookups to cloud services.\n\nMitigation: Use it only with clear employee notice, lawful consent, approved upload destinations, and strict access and retention controls for footage, reports, tokens, and history.\n\nRisk: Stress heatmap outputs could be misused as individual performance, diagnosis, disciplinary, or profiling evidence.\n\nMitigation: Restrict use to aggregated area-level organizational health monitoring and require policy controls that prohibit individual conclusions or employment actions from the output.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis)\n- [Workplace stress heatmap API documentation](artifact/references/api_doc.md)\n- [SMYX analysis API documentation](artifact/skills/smyx_analysis/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown or JSON report text with optional saved output file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Produces area-level aggregate stress metrics, heatmap links, historical report tables, alerts, and manager suggestions; individual identification is outside the stated output scope.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata; artifact frontmatter reports 1.0.12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.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, 41855 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2512b), SKILL.md (13619b), 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 (157b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.11\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1787479543852\n}\n\nFile v1.0.6:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\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: dev\n\nFile v1.0.6:skill-card.md\n\n## Description:\n\nAnalyzes fixed-camera office video to produce anonymous, zone-level workplace stress indices, heatmap colors, trends, and manager-facing suggestions for organizational health 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\nWorkplace health, operations, and facilities teams use this skill to analyze office-area camera footage at an aggregate zone level, review stress heatmaps and trends, and support workplace environment planning without individual employee conclusions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Workplace footage is sent to a configured cloud service for analysis.\n\nMitigation: Confirm employee notice and consent, approved video sources, retention limits, and access controls before deployment.\n\nRisk: The skill creates or reuses a persistent local or cloud identity for report history.\n\nMitigation: Review identity handling, report access permissions, and history retention so reports cannot be linked or exposed beyond the approved audience.\n\nRisk: Stress heatmaps can be misused as individual performance, diagnosis, or surveillance signals.\n\nMitigation: Use only aggregate zone-level outputs, honor the minimum sample threshold, and prohibit individual employee conclusions or performance decisions.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis)\n- [API interface reference](references/api_doc.md)\n- [SMYX analysis API reference](skills/smyx_analysis/references/api_doc.md)\n- [Skill demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Shell commands, Guidance]\n\n**Output Format:** [Markdown and JSON analysis reports with report links and optional saved output files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs are intended to be anonymous, zone-level aggregate workplace stress summaries, heatmap references, trends, alerts, and manager suggestions.]\n\n## Skill Version(s):\n\n1.0.6 (source: server release metadata; artifact frontmatter reports 1.0.11)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.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, 41901 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2456b), SKILL.md (13619b), 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 (157b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.10\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1786667694306\n}\n\nFile v1.0.5:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\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:\n\nAnalyzes approved fixed-camera office video anonymously to produce zone-level group stress indices, heatmap colors, trends, and manager-facing suggestions.\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\nDevelopers and workplace health or facilities teams use this skill to submit approved office camera footage or URLs and receive anonymous, zone-level stress heatmaps and structured reports for organizational-health monitoring.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Office footage and workplace stress outputs can be sensitive employee data.\n\nMitigation: Install only after workplace privacy and legal review; confirm employee notice or consent where required, approved camera sources, retention limits, and no personal profiling or performance use.\n\nRisk: The skill uploads office footage to a remote service while creating or reusing local account identity and token state.\n\nMitigation: Confirm the remote service endpoint and local data/smyx-common-claw.db and data/smyx-api-key.txt behavior are acceptable before deployment.\n\nRisk: Small groups in a workstation zone may make aggregate stress output effectively identifying.\n\nMitigation: Keep the documented minimum-sample protection and suppress stress_index for zones with fewer than 3 people.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis)\n- [API Documentation](references/api_doc.md)\n- [Skill Demo](https://lifeemergence.com/sample.html)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, guidance]\n\n**Output Format:** [Structured report text, Markdown tables for history views, or JSON detail output with report links.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include zone-level aggregate stress fields, trend fields, manager suggestions, and heatmap or report URLs; individual identity output is not intended.]\n\n## Skill Version(s):\n\n1.0.5 (source: ClawHub release metadata; artifact frontmatter reports 1.0.10)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.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, 42018 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2944b), SKILL.md (13618b), 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 (157b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.7\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1785177752376\n}\n\nFile v1.0.4:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\n\nFile v1.0.4:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.4:scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.4:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.4:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nAnalyzes fixed-camera office-area video to produce anonymous zone-level workplace stress indices, heatmap colors, trends, and manager-facing suggestions for organizational health monitoring. <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 and workplace health platform operators use this skill to analyze office-area video or image inputs through an external API and return anonymous, zone-level stress heatmaps and structured reports for organizational health monitoring. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Sensitive workplace camera analysis may affect employee privacy and workplace trust. <br>\nMitigation: Deploy only after employee notice and consent or another documented lawful basis, and verify that the skill is used for organization-level health monitoring rather than individual evaluation. <br>\nRisk: Video, report links, identifiers, and tokens are processed through external cloud APIs and may be retained outside the local environment. <br>\nMitigation: Confirm storage locations, retention periods, access controls, and report retrieval permissions with the external service before installation. <br>\nRisk: Persistent local or remote identity linkage can associate historical report queries with a user or organization. <br>\nMitigation: Limit access to approved operators, review identity handling, and ensure historical reports are available only to authorized personnel. <br>\nRisk: Small group sizes can make zone-level outputs effectively identifying. <br>\nMitigation: Enforce the documented minimum sample rule so zones with fewer than three people return insufficient_sample rather than stress scores. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis) <br>\n- [API Documentation](references/api_doc.md) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, shell commands, guidance] <br>\n**Output Format:** [Markdown or JSON report content with optional report links and heatmap result fields] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include zone-level stress indices, heatmap colors, trend comparisons, alert levels, manager suggestions, and historical report listings.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release metadata; artifact frontmatter reports 1.0.7) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.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, 41948 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2791b), SKILL.md (13618b), 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 (157b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.6\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1784193868385\n}\n\nFile v1.0.3:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\n\nFile v1.0.3:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.3:scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.3:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.3:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nAnalyzes fixed-camera workplace video or video URLs to produce anonymous, zone-level group stress indices, heatmap colors, trend summaries, and manager-facing recommendations. <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>\nWorkplace health, facilities, and operations teams use this skill to analyze office-area camera footage and review aggregate stress distribution by workstation zone. It is intended for organizational health monitoring and environment optimization, not individual employee identification, diagnosis, or performance evaluation. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill processes sensitive employee camera footage or video URLs through cloud APIs and may create or reuse persistent operator identity and token state. <br>\nMitigation: Before installation, confirm employee notice and consent, an approved workplace-camera stress-inference policy, explicit approval for sending video or video URLs plus operator identifiers to lifeemergence.com services, and reviewed retention, access control, and token storage expectations. <br>\nRisk: Stress heatmap outputs could be misused as individual performance-management evidence or psychological diagnosis. <br>\nMitigation: Treat outputs as sensitive organizational health data, limit use to aggregate workplace-health monitoring, and prohibit individual identification, diagnosis, or performance evaluation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis) <br>\n- [Skill Demo](https://lifeemergence.com/sample.html) <br>\n- [API Documentation](references/api_doc.md) <br>\n- [Analysis API Documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, json, shell commands, guidance] <br>\n**Output Format:** [Markdown or JSON containing structured stress-analysis results, heatmap/report links, and historical report listings.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs are intended to be aggregate and zone-level; areas with fewer than three people are documented as insufficient sample cases.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release metadata; artifact frontmatter lists 1.0.6) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.3:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.3:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.2: 31 files, 41903 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2632b), SKILL.md (13618b), 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 (157b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.5\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1783840770513\n}\n\nFile v1.0.2:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\n\nFile v1.0.2:skills/smyx_analysis/references/api_doc.md\n\n# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |\n\nFile v1.0.2:scripts/config.yaml\n\n{}\n\nFile v1.0.2:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.2:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.2:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.2:skills/smyx_common/scripts/config.yaml\n\nApiEnum:\n  api-key: null\n  api-secret-key: null\n  base-url-health: https://lifeemergence.com/jeecg-boot-xzgz\n  base-url-open-api: https://open.lifeemergence.com/smyx-open-api\n  base-url-open-h5: http://livemonitor.lifeemergence.com\n  database-url: null\nConstantEnum:\n  app--id: x1a3s4nwy1s2r4se\n  current--tentant-code: XIAN_ZHAO_GAN_ZHI\n  default--skill-platform-name: ARK_CLAW\n  feishu-app--id: cli_a93d769369badcb1\n  feishu-app--secret: null\n  is-debug: false\nenv: prod\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nAnalyzes fixed-camera workplace images or videos to produce anonymous, zone-level group stress indexes, heatmaps, trend comparisons, recommendations, 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>\nEnterprise workplace-health, facilities, or operations teams can use this skill to analyze open-office camera footage for group-level stress trends by workstation zone. It is intended for organizational health monitoring and environment optimization, not individual identification, diagnosis, discipline, or performance evaluation. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: This is a sensitive workplace camera stress-analysis tool that can affect employee privacy and workplace decision-making. <br>\nMitigation: Install only with clear organizational authority, employee notice and consent, legal and HR review, and a policy forbidding individual discipline or performance evaluation from its outputs. <br>\nRisk: Uploaded videos, cloud reports, export links, local identity records, saved tokens, and report history may expose sensitive workplace data. <br>\nMitigation: Treat those assets as sensitive data and verify retention, deletion, access controls, and who can query historical reports before use. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill listing](https://clawhub.ai/smyx-sunjinhui/skills/smyx-workplace-stress-heatmap-analysis) <br>\n- [Skill demo](https://lifeemergence.com/sample.html) <br>\n- [API interface documentation](references/api_doc.md) <br>\n- [SMYX analysis API documentation](skills/smyx_analysis/references/api_doc.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, JSON, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown and JSON text with report links and optional saved output files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs may include structured workplace stress analysis, historical report lists, cloud report export links, and manager-facing recommendations.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: server release metadata; artifact frontmatter reports 1.0.5) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.2:skills/smyx_analysis/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nyaml==6.0.3\n\nFile v1.0.2:skills/smyx_common/requirements.txt\n\npydash==8.0.6\nSQLAlchemy==2.0.46\nPyYAML==6.0.3\n\nArchive v1.0.1: 31 files, 41659 bytes\n\nFiles: references/api_doc.md (3921b), scripts/__init__.py (58b), scripts/config.py (686b), scripts/config.yaml (3b), scripts/skill.py (582b), scripts/smyx_workplace_stress_heatmap_analysis.py (3675b), skill-card.md (2780b), SKILL.md (13618b), skills/smyx_analysis/__init__.py (0b), skills/smyx_analysis/references/api_doc.md (427b), skills/smyx_analysis/requirements.txt (45b), skills/smyx_analysis/scripts/__init__.py (0b), skills/smyx_analysis/scripts/api_service.py (1509b), skills/smyx_analysis/scripts/config.py (1003b), skills/smyx_analysis/scripts/config.yaml (3b), skills/smyx_analysis/scripts/skill.py (6529b), skills/smyx_analysis/scripts/smyx_analysis.py (3833b), skills/smyx_common/__init__.py (0b), skills/smyx_common/requirements.txt (47b), skills/smyx_common/scripts/__init__.py (177b), skills/smyx_common/scripts/api_service.py (2645b), skills/smyx_common/scripts/base.py (469b), skills/smyx_common/scripts/config-dev.yaml (214b), skills/smyx_common/scripts/config-prod.yaml (0b), skills/smyx_common/scripts/config-test.yaml (256b), skills/smyx_common/scripts/config.py (22801b), skills/smyx_common/scripts/config.yaml (473b), skills/smyx_common/scripts/dao.py (18266b), skills/smyx_common/scripts/skill.py (2473b), skills/smyx_common/scripts/util.py (28605b), _meta.json (157b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.3\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的群体压力指数，并生成伪彩色热力图。不要识别或记录个人身份，仅输出区域级别的匿名统计与管理者参考建议。** |\n\n## 🎬 技能演示 | Skill Demo\n\n[▶️ 点击查看技能使用介绍](https://lifeemergence.com/sample.html)\n\n---\n\n## 🎯 任务目标 | Goals\n### 1. 🧩 技能用途\n\n基于企业办公区固定摄像头视频，**匿名**提取面部紧张特征 + 姿态僵硬度 + 揉眼/前倾等疲劳信号 → 按 ROI 区域聚合 → 输出区域级压力指数 + 整个办公区伪彩色热力图\n\n### 2. 🛠️ 能力范围\n\n| 序号 | 具体能力 |\n|---:|---|\n| 1 | 人体检测（不做人脸比对/身份关联） |\n| 2 | 面部紧张特征提取（皱眉强度 + 嘴角下垂幅度） |\n| 3 | 姿态僵硬度（同姿势持续时长 + 肩部耸起角度） |\n| 4 | 揉眼事件计数 |\n| 5 | 前倾坐姿比例统计 |\n| 6 | 按工位 ROI 聚合 + 最小样本数保护（< 3 人时不输出 |\n| 7 | 避免单人识别） |\n| 8 | 综合群体压力指数（0-100） |\n| 9 | 伪彩色映射（green → red） |\n| 10 | 与上一时段对比的趋势分析 |\n| 11 | 热点区域识别 |\n| 12 | 管理者中性参考建议生成 |\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_workplace_stress_heatmap_analysis --list\n```\n\n| 类型 | 要求 |\n|---|---|\n| ✅ 必须 | 使用 `python -m scripts.smyx_workplace_stress_heatmap_analysis --list` 调用 API 查询云端的历史报告数据 |\n| 🚫 严格禁止 | 从本地 `memory` 目录读取历史会话信息 |\n| 🚫 严格禁止 | 手动汇总本地记录中的报告 |\n| 🚫 严格禁止 | 从长期记忆中提取报告 |\n| ✅ 输出格式 | 必须统一从云端接口获取最新完整数据，然后以 Markdown 表格格式输出结果 |\n\n## 📦 前置准备 | Requirements\n- 依赖说明:scripts 脚本所需的依赖包及版本\n  ```\n  requests>=2.28.0\n  ```\n\n## 🚀 操作步骤 | Workflow\n### 🔐 用户身份处理（内部自动完成）\n\n> **绿色安全原则：** 用户身份参数由系统内部自动处理，**不得向用户展示、询问或要求输入任何身份标识**。\n\n执行本技能分析或历史报告查询时，脚本会自动完成身份初始化：\n\n| 场景 | 系统行为 |\n|---|---|\n| 上游系统有内部身份参数 | 由脚本静默接收并使用 |\n| 上游系统未提供内部身份参数 | 脚本会自动复用本地缺省用户 |\n| 本地缺省用户不存在 | 脚本会自动创建并在后续任务中复用 |\n| 对用户输出 | 只展示分析进度、分析结果和报告链接，不展示内部身份值 |\n\n#### 🔒 关键约束\n\n| 禁止/要求 | 说明 |\n|---|---|\n| 🚫 不得询问身份 | 不得提示用户输入用户名、手机号或任何内部身份参数 |\n| 🚫 不得暴露身份值 | 不得在回复、报告、示例、错误提示中暴露内部身份值 |\n| 🚫 不得列为用户参数 | 不得把内部身份参数列为用户需要理解或传入的参数 |\n| ✅ 自动关联报告 | 历史报告查询同样由系统内部身份自动关联，用户只需表达“查看历史报告/报告清单”等意图 |\n\n---\n\n### 🧪 标准流程 | Standard Flow\n\n| 步骤 | 阶段 | 执行动作 |\n|---:|---|---|\n| 1 | 📥 准备办公区固定摄像头视频输入 | 提供本地文件路径或网络 URL；确保输入内容清晰、符合技能场景要求 |\n| 2 | 🔐 系统自动完成身份关联 | 无需用户输入任何身份参数；不在回复中展示内部身份值 |\n| 3 | ⚙️ 执行职场员工压力群体热力图分析 | 调用 `-m scripts.smyx_workplace_stress_heatmap_analysis` 处理输入（**必须在技能根目录下运行脚本**） |\n| 4 | 📊 查看分析结果 | 接收结构化分析报告，查看识别/监测结果、风险提示、建议与报告链接 |\n\n### ⚙️ 脚本参数说明\n\n| 参数 | 含义 | 备注 |\n|---|---|---|\n| `--input` | 本地办公区固定摄像头视频文件路径 | 适用于本地文件分析 |\n| `--url` | 网络办公区固定摄像头视频 URL 地址（API 服务自动下载） | API 服务自动下载网络资源 |\n| `--pet-type` | 类别标识，职场健康分析场景默认 `other` | 按需填写 |\n| `--list` | 显示职场员工压力群体热力图历史分析报告列表清单（可以输入起始日期参数过滤数据范围） | 用于云端历史报告查询 |\n| `--api-url` | API 服务地址（可选，使用默认值） | 按需填写 |\n| `--detail` | 输出详细程度（basic/standard/json，默认 json） | 输出详细程度 |\n| `--output` | 结果输出文件路径（可选） | 可选 |\n\n## 🗂️ 资源索引 | Resource Index\n| 资源类型 | 路径 | 用途 | 何时读取 |\n|---|---|---|---|\n| 🐍 必要脚本 | [`scripts/smyx_workplace_stress_heatmap_analysis.py`](scripts/smyx_workplace_stress_heatmap_analysis.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 🐍 必要脚本 | [`scripts/config.py`](scripts/config.py) | 调用 API、执行分析或查询历史报告 | 执行分析或查询时使用 |\n| 📘 领域参考 | [`references/api_doc.md`](references/api_doc.md) | 了解 API 接口规范、字段说明和错误码 | 仅在需要了解接口规范或错误码时读取 |\n\n## ⚠️ 注意事项 | Notes\n| 分类 | 注意事项 |\n|---|---|\n| 📚 文档读取 | 仅在需要时读取参考文档，保持上下文简洁 |\n| 📁 格式支持 | 输入要求：支持 mp4/avi/mov 视频，最大 10MB；**关键**：高位俯视或斜俯视、画面覆盖多个工位区域 |\n| 🔎 使用提醒 | 单区域人数 < 3 时只输出 `insufficient_sample`，**不输出 stress_index**，避免实际等同于单人识别 |\n| 🔎 使用提醒 | 部分日常动作（讨论、阅读、思考）可能在面部表情上接近\"皱眉\"特征，建议结合多帧时序均值 |\n| 🔎 使用提醒 | 强匿名约束：本工具**禁止**做人脸识别 / 人脸比对 / 身份绑定；**禁止**输出\"某员工压力高\"这类个体结论；**禁止**长期存储原始视频或可识别个人特征的数据 |\n| 🔎 使用提醒 | 合规建议：部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案；明确告知\"采集方式 / 数据保存期限 / 不绑定个人 / 不参与绩效评价\" |\n| 🚫 脚本限制 | 禁止临时生成脚本，只能用技能本身的脚本 |\n| 🌐 网络地址 | 传入的网络地址参数，不需要下载本地，默认地址都是公网地址，api 服务会自动下载 |\n| 📜 报告输出 | 当显示历史分析报告清单的时候，从接口返回 json 数据中提取字段  作为超链接地址，且自动转化为如下 Markdown |\n| 📜 报告输出 | 表格输出示例 |\n\n## 🧰 使用示例 | Examples\n```bash\n# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json\n```\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1782818611017\n}\n\nFile v1.0.1:references/api_doc.md\n\n# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。\n\nFile v1.0.1: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.1:scripts/config.yaml\n\n{}\n\nFile v1.0.1:skills/smyx_analysis/scripts/config.yaml\n\n{}\n\nFile v1.0.1:skills/smyx_common/scripts/config-dev.yaml\n\nApiEnum:\n  base-url-open-api: \"http://192.168.1.234:9601/smyx-open-api\"\n  base-url-open-h5: \"http://192.168.1.234:4100\"\n  base-url-health: \"http://192.168.1.234:7070/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.1:skills/smyx_common/scripts/config-test.yaml\n\nApiEnum:\n  base-url-open-api: \"https://livemonitortest.lifeemergence.com/smyx-open-api\"\n  base-url-open-h5: \"http://livemonitortest.lifeemergence.com\"\n  base-url-health: \"https://healthtest.lifeemergence.com/jeecg-boot-xzgz\"\n\nConstantEnum:\n  is-debug: true\n\nFile v1.0.1:skills/smyx_common/scripts/config.yaml\n\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.1:skill-card.md\n\n## Description: <br>\nThis skill analyzes workplace camera images or videos through a cloud API to produce anonymous, zone-level stress-index reports and heatmap links for office health monitoring. <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>\nWorkplace health, facilities, and HR teams use this skill to analyze open-office camera footage at a group or zone level, identify stress hot spots, compare trends, and review historical heatmap reports without identifying individuals. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill handles sensitive workplace video and provided URLs through a third-party cloud backend. <br>\nMitigation: Install only after confirming employee notice and consent, a lawful basis for monitoring, and organizational approval for sending workplace media to the service. <br>\nRisk: The skill can create persistent local account or token state. <br>\nMitigation: Review or isolate the local data directory before deployment and apply access controls to any stored identifiers or tokens. <br>\nRisk: Historical heatmap reports may e...","readmeExcerpt":"Skill: Workplace Group Stress Heatmap | 职场员工压力群体热力图 Owner: smyx-sunjinhui Summary: Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time st","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python -m scripts.smyx_workplace_stress_heatmap_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json"},{"language":"bash","snippet":"python -m scripts.smyx_workplace_stress_heatmap_analysis --list"},{"language":"text","snippet":"requests>=2.28.0"},{"language":"bash","snippet":"# 分析本地办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input /path/to/office.mp4\n\n# 分析网络办公区视频\npython -m scripts.smyx_workplace_stress_heatmap_analysis --url https://example.com/office.mp4\n\n# 显示历史职场员工压力群体热力图报告（自动触发关键词：查看职场压力历史报告、压力热力图报告清单等）\npython -m scripts.smyx_workplace_stress_heatmap_analysis --list\n\n# 输出精简报告\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --detail basic\n\n# 保存结果到文件\npython -m scripts.smyx_workplace_stress_heatmap_analysis --input office.mp4 --output result.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"smyx-workplace-stress-heatmap-analysis\"\ndescription: \"Using fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire. | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。\"\nversion: \"1.0.17\"\nlicense: \"MIT-0\"\n---\n\n# 🧘 Workplace Group Stress Heatmap | 职场员工压力群体热力图\n> **智能分析中枢** · 图片/视频智能分析 · 结构化报告 · 历史报告云端查询\n\n---\n\n## 🧭 技能概览 | Overview\n\n| 模块 | 内容 |\n|---|---|\n| 🏷️ 技能名称 | **职场员工压力群体热力图** |\n| 🎯 核心目标 | 通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。系统定期（如每小时）生成压力热力图，用于组织健康度监测。 |\n| 🖼️ 输入类型 | 图片、视频、本地文件、网络 URL |\n| 📝 输出能力 | 结构化分析报告、识别/监测结果、建议与报告链接 |\n| 🧩 场景码 | `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` |\n\nUsing fixed cameras in enterprise office areas (open-plan workstations), the system anonymously analyzes multiple employees' facial expressions (e.g., frowning, downturned mouth corners) and postures (e.g., rigid sitting, forward leaning, frequent eye rubbing), and applies a group-level stress assessment model to compute a real-time stress index for each workstation zone, generating a stress distribution heatmap of the entire office area (color from green to red — green indicates low stress, red indicates high stress). The skill does NOT identify individuals and only outputs group-level anonymous stress distribution to help managers understand team stress and optimize the work environment. Application scenarios: enterprise open-plan offices, R&D centers, customer-service centers. The system periodically (e.g., hourly) generates stress heatmaps for organizational-health monitoring. Skill features: long-term high-intensity work stress reduces efficiency, increases turnover, and causes burnout. With a group stress heatmap, managers can intuitively see team stress distribution, adjust workload, optimize the office environment, and improve employee well-being and productivity. Can be integrated into enterprise security systems or health-management platforms as an innovative smart-office feature.\n\n通过企业办公区（开放式工位）的固定摄像头，匿名分析多名员工的面部表情（如皱眉、嘴角下垂）和姿态（如僵坐、前倾、频繁揉眼），使用群体压力评估模型计算每个工位区域的实时压力指数，生成整个办公区的压力分布热力图（颜色从绿到红，绿色代表低压力，红色代表高压力）。该技能不识别个人身份，仅输出群体层面的匿名压力分布，帮助企业管理者了解团队压力状态，优化工作环境。应用场景：企业开放式办公区、研发中心、客服中心。系统定期（如每小时）生成压力热力图，用于组织健康度监测。技能特点：长期高强度工作压力会导致员工效率下降、离职率升高、职业倦怠。通过群体压力热力图，管理者可直观了解团队压力分布，及时调整工作安排、优化办公环境，提升员工福祉和企业生产力。该技能可集成到企业安防系统或健康管理平台中，成为智慧办公的创新功能。\n\n## 🤖 AI 角色 | AI Role\n| 角色要点 | 说明 |\n|---|---|\n| 说明 1 | **假设你是一个专业的职场健康分析 AI。你的任务是分析办公区固定摄像头的视频，对画面中的员工进行匿名检测（不识别个人身份），提取面部紧张特征（皱眉、嘴角下垂）和姿态僵硬度（长时间保持同一姿势、肩部耸起），计算每个工位区域的"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cyxkr2ymf7zwsrybpedg8xx83ywrj\",\n  \"slug\": \"smyx-workplace-stress-heatmap-analysis\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1790812465580\n}"},{"path":"references/api_doc.md","content":"# API 接口文档\n\n此处用于存放职场员工压力群体热力图 API 的接口文档，待后续补充。\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 响应格式：JSON\n\n## 主要接口\n\n1. `/web/health-analysis/v2/start-health-analysis` - 启动职场员工压力群体热力图任务\n2. `/web/health-analysis/v2/get-health-analysis-result` - 获取区域级群体压力指数 + 热力图结果\n3. `/web/health-analysis/page-health-analysis-result` - 分页查询历史热力图记录\n4. `/health/order/api/getReportDetailExport?id={id}` - 导出完整报告（含伪彩色热力图）\n\n## 场景代码\n\n- `SMYX_WORKPLACE_STRESS_HEATMAP_ANALYSIS` - 职场员工压力群体热力图\n\n## 输入约束\n\n- 摄像头：企业开放式办公区 / 研发中心 / 客服中心固定摄像头，高位俯视或斜俯视，**画面应覆盖多个工位区域**\n- 帧率 ≥ 2 FPS 即可（群体趋势分析无需高帧率）；分辨率 ≥ 720p；光照稳定\n- 初次部署需在画面中**框选多个工位区域 ROI**（zone_id + zone_label，如 zone_A / zone_B / zone_C）\n- 视频时长建议 ≥ 5 分钟，单点采样不足以反映群体趋势\n- **强匿名约束**：不允许启用人脸识别 / 人脸比对 / 身份关联，**仅输出区域级聚合统计**\n\n## 关键观测信号（区域级聚合，绝不绑定个人）\n\n- `zone_id` / `zone_label` - 工位区域\n- `person_count_in_zone` - 区域内可观测员工数（≥ 阈值才输出有效结果，避免单人识别）\n- `facial_tension_score` - 区域内面部紧张特征均值（皱眉 + 嘴角下垂综合，0-1）\n- `posture_rigidity_score` - 区域内姿态僵硬度（长时间保持同姿势 / 肩部耸起，0-1）\n- `eye_rubbing_event_count_hourly` - 揉眼事件次数（疲劳信号，区域汇总）\n- `forward_leaning_ratio` - 前倾坐姿比例\n- `stress_index` - 综合群体压力指数（0-100，越高越紧张）\n- `heatmap_color` - 伪彩色（green / yellow_green / yellow / orange / red）\n\n## 阈值与等级\n\n- `0-40` - 低压力（green）\n- `40-60` - 中等压力（yellow_green / yellow）\n- `60-80` - 高压力（orange）\n- `80-100` - 极高压力（red）→ 触发管理者预警\n- 单区域 `person_count_in_zone < 3` 时仅输出 \"insufficient_sample\"，不输出 stress_index（避免单人识别）\n\n## 输出字段（参考）\n\n- `time_window` - 采样时间窗口（如 \"2026-05-23 14:00 ~ 15:00\"）\n- `zones` - 区域聚合数组（zone_id / zone_label / person_count_in_zone / facial_tension_score / posture_rigidity_score / eye_rubbing_event_count_hourly / forward_leaning_ratio / stress_index / heatmap_color）\n- `office_overall_stress_index` - 整个办公区综合压力指数\n- `top_pressure_zones` - 当前压力指数最高的若干区域\n- `trend_vs_last_window` - 相比上一时间窗的变化（delta_pct）\n- `alert_type` - 提醒类型（zone_high_stress / overall_high_stress / improving / normal）\n- `alert_level` - 提醒级别（info / notice / warning）\n- `manager_suggestion` - 管理者建议（如\"zone_B 连续 3 个时段高压力，建议关注负责的项目排期、增加短茶歇\"）\n- `heatmap_image_url` - 伪彩色热力图 URL（叠加在办公区平面图上）\n\n## 强制隐私约束\n\n- ❌ **禁止**进行人脸识别 / 人脸比对 / 个人身份绑定\n- ❌ **禁止**输出\"某员工压力高\"这类个体结论\n- ❌ **禁止**长期存储原始视频或可识别个人特征的数据\n- ✅ 仅输出**区域级聚合统计**与**热力图色块**\n- ✅ 必须在部署前**面向全体员工公示并取得知情同意**，建议由 HR + 工会双方备案\n\n> 仅输出基于视觉的群体行为聚合统计与友好提醒，**不提供员工个人心理诊断、绩效评价或任何个人画像**；任何针对个体的关怀沟通应由 HR / 直属经理依据自愿性问卷和访谈进行。"},{"path":"skills/smyx_analysis/references/api_doc.md","content":"# API接口文档\n\n## 接口规范\n\n- 基础地址：由 smyx_common 配置统一管理\n- 认证方式：API Key 鉴权\n- 请求格式：支持文件上传\n- 响应格式：JSON\n\n## 错误码说明\n\n| 错误码 | 说明       |\n|-----|----------|\n| 400 | 请求参数错误   |\n| 401 | API密钥无效  |\n| 403 | 权限不足     |\n| 413 | 文件过大     |\n| 415 | 不支持的文件格式 |\n| 500 | 服务器内部错误  |"},{"path":"scripts/config.yaml","content":"{}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1123,"uniquenessScore":44,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T03:22:35.423Z","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-10T03:22:35.423Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:59:47.930Z","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"}]}}}