{"id":"25aba09f-4614-4137-9987-d4e01a37b3b1","entityType":"agent","slug":"clawhub-perrykono-debug-enterprise-service-assistant","name":"enterprise-service-assistant","canonicalUrl":"https://www.xpersona.co/agent/clawhub-perrykono-debug-enterprise-service-assistant","canonicalPath":"/agent/clawhub-perrykono-debug-enterprise-service-assistant","generatedAt":"2026-10-11T04:34:46.982Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T02:41:50.355Z","emptyReason":null},"description":"园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。 Skill: enterprise-service-assistant Owner: perrykono-debug Summary: 园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。 Tags: business:2.0.1, enterprise:2.0.1, excel:2.0.0, latest:3.6.0, park:2.0.1, property-management:2.0.0, wecom:2.0.0 Version history: v3.6.0 | 2026-09-05T04:04:32.298Z | user 更新发布 v2.3.0 | 2026-06-13T16:27:39.019Z | auto **大幅升级：10大核心模块，功能覆盖企业服务全流程。","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1749nct6fm15k8p49bzsewc7587f5aw:enterprise-service-assistant","sourceUrl":"https://clawhub.ai/perrykono-debug/enterprise-service-assistant","homepage":"https://clawhub.ai/perrykono-debug/skills/enterprise-service-assistant","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/perrykono-debug/enterprise-service-assistant","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/perrykono-debug/skills/enterprise-service-assistant","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。 Skill: enterprise-service-assistant Owner: perrykono-debu"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:41:50.355Z","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-11T02:41:50.355Z","emptyReason":null},"stars":null,"forks":null,"downloads":1185,"packageName":null,"latestVersion":"3.6.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T02:41:50.339Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T02:41:50.355Z","lastCrawledAt":"2026-10-11T02:41:50.339Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T02:41:50.339Z","lastVerifiedAt":null,"highlights":[{"version":"3.6.0","createdAt":"2026-09-05T04:04:32.298Z","changelog":"更新发布","fileCount":43,"zipByteSize":90142},{"version":"2.3.0","createdAt":"2026-06-13T16:27:39.019Z","changelog":"**大幅升级：10大核心模块，功能覆盖企业服务全流程。** - 新增退租管理、运营数据报表、投诉管理等3大模块，现共10大核心功能。 - 文件结构优化：各业务子模块文档化，新增操作指引和业务能力梳理文档。 - 新增每日/每小时多场景定时推送与任务分解能力。 - 数据聚合、风险预警、SLA监控等核心流程全面梳理，完善与扩展业务逻辑。 - 移除旧知识库与SKILL卡片，采纳更清晰的分层文档和配置。","fileCount":53,"zipByteSize":170313},{"version":"1.0.1","createdAt":"2026-06-09T14:12:45.344Z","changelog":"- Added LICENSE and _meta.json files; removed skill-card.md for improved organization. - Updated documentation formatting and metadata to include licensing and copyright. - No core logic or module functionality changed; main logic and templates remain as before. - This update clarifies licensing, ownership, and structural details without affecting existing features.","fileCount":36,"zipByteSize":64114},{"version":"2.0.1","createdAt":"2026-06-08T05:20:57.272Z","changelog":"v2.0.1 - 数据安全修复：移除所有敏感数据和硬编码路径，改为占位符配置","fileCount":35,"zipByteSize":63389},{"version":"2.0.0","createdAt":"2026-06-08T01:29:46.014Z","changelog":"完全自包含版本，合并所有7个子技能，移除所有call_skill依赖。单文件安装即可使用全部7大模块（客户管理、费用催缴、合同续租预警、工单分派、库存监控、C+服务匹配、走访计划管理）。","fileCount":35,"zipByteSize":63566},{"version":"1.5.0","createdAt":"2026-06-08T01:14:11.884Z","changelog":"v1.5.0：修复customer-management引用为enterprise-customer-management；更新数据源配置说明","fileCount":15,"zipByteSize":23241},{"version":"1.4.0","createdAt":"2026-06-04T01:32:51.354Z","changelog":"v1.4.0: 更新首次引导流程，使用通用占位符示例（A栋-601），优化新用户引导体验。同步最新知识库模板。","fileCount":15,"zipByteSize":23387},{"version":"1.3.1","createdAt":"2026-06-01T08:05:48.334Z","changelog":"v1.3.1: 功能梳理更新，移除所有项目特定信息（客户名/房间号/文件路径），替换为通用占位符。新增完整 workspace 文件和知识库模板，支持新用户首次引导流程。","fileCount":15,"zipByteSize":23308}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1749nct6fm15k8p49bzsewc7587f5aw:enterprise-service-assistant","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/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-11T04:34:46.980Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-perrykono-debug-enterprise-service-assistant/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T02:41:50.355Z","emptyReason":null},"readme":"Skill: enterprise-service-assistant\n\nOwner: perrykono-debug\n\nSummary: 园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。\n\nTags: business:2.0.1, enterprise:2.0.1, excel:2.0.0, latest:3.6.0, park:2.0.1, property-management:2.0.0, wecom:2.0.0\n\nVersion history:\n\nv3.6.0 | 2026-09-05T04:04:32.298Z | user\n\n更新发布\n\nv2.3.0 | 2026-06-13T16:27:39.019Z | auto\n\n**大幅升级：10大核心模块，功能覆盖企业服务全流程。**\n\n- 新增退租管理、运营数据报表、投诉管理等3大模块，现共10大核心功能。\n- 文件结构优化：各业务子模块文档化，新增操作指引和业务能力梳理文档。\n- 新增每日/每小时多场景定时推送与任务分解能力。\n- 数据聚合、风险预警、SLA监控等核心流程全面梳理，完善与扩展业务逻辑。\n- 移除旧知识库与SKILL卡片，采纳更清晰的分层文档和配置。\n\nv1.0.1 | 2026-06-09T14:12:45.344Z | auto\n\n- Added LICENSE and _meta.json files; removed skill-card.md for improved organization.\n- Updated documentation formatting and metadata to include licensing and copyright.\n- No core logic or module functionality changed; main logic and templates remain as before.\n- This update clarifies licensing, ownership, and structural details without affecting existing features.\n\nv2.0.1 | 2026-06-08T05:20:57.272Z | user\n\nv2.0.1 - 数据安全修复：移除所有敏感数据和硬编码路径，改为占位符配置\n\nv2.0.0 | 2026-06-08T01:29:46.014Z | user\n\n完全自包含版本，合并所有7个子技能，移除所有call_skill依赖。单文件安装即可使用全部7大模块（客户管理、费用催缴、合同续租预警、工单分派、库存监控、C+服务匹配、走访计划管理）。\n\nv1.5.0 | 2026-06-08T01:14:11.884Z | user\n\nv1.5.0：修复customer-management引用为enterprise-customer-management；更新数据源配置说明\n\nv1.4.0 | 2026-06-04T01:32:51.354Z | user\n\nv1.4.0: 更新首次引导流程，使用通用占位符示例（A栋-601），优化新用户引导体验。同步最新知识库模板。\n\nv1.3.1 | 2026-06-01T08:05:48.334Z | user\n\nv1.3.1: 功能梳理更新，移除所有项目特定信息（客户名/房间号/文件路径），替换为通用占位符。新增完整 workspace 文件和知识库模板，支持新用户首次引导流程。\n\nv1.3.0 | 2026-05-29T04:07:44.088Z | user\n\nv1.3.0: 🔒运行时数据安全机制。四大铁律：凭证不外泄、台账不外传、记忆不跨会话、群聊必脱敏。新增：①输出前自动脱敏（企业名→编号、金额→汇总、个人信息→星号）②会话隔离（私聊/群聊/定时任务分级访问）③安全审计命令 @企服助手 安全检查 ④数据流向矩阵明确各类数据权限 ⑤新增references/数据安全机制.md详细文档。安全扫描：✅PASS，无本地数据泄露。\n\nv1.2.0 | 2026-05-29T02:05:22.338Z | user\n\nv1.2.0: 🔒数据安全增强版。①新增SECURITY.md安全声明文件，明确排除的数据类型和验证方法 ②清理MEMORY.md中的真实项目名称引用（中集美兰中心→通用化） ③用户可通过grep命令自行验证打包内容无本地数据泄露 ④所有references/文件确认为纯模板（📝待填写），不含任何硬编码数据。安全审查：✅ PASS。\n\nv1.1.0 | 2026-05-29T02:00:21.629Z | user\n\nv1.1.0: 知识库分离重构 - references/恢复为纯模板（📝待填写），不含任何本地数据。所有园区真实数据（客户、费用、合同等）必须用户自建到 workspace/knowledge-base/。新增新用户引导流程。优化SKILL.md读取逻辑：workspace优先 → references fallback。安全检查通过：打包内容中无本地数据泄露。\n\nv1.0.0 | 2026-05-29T01:54:22.315Z | user\n\n初始版本：园区企业服务智能助手，支持企业数据管理、文档处理、费用催缴、工单管理、KPI报告等专业服务。采用通用层与项目知识库分离架构，保护用户数据隐私。\n\nArchive index:\n\nArchive v3.6.0: 43 files, 90142 bytes\n\nFiles: AGENT.json (1850b), AGENTS.md (2896b), HEARTBEAT.md (152b), IDENTITY.md (923b), knowledge_base_config.example.json (463b), knowledge/HOW_TO_SHARE.md (2032b), knowledge/INSTALL.md (1944b), knowledge/ONBOARDING.md (4259b), knowledge/PROJECT_KB.md (2735b), knowledge/TEMPLATE.md (2751b), README.md (4651b), scripts/__init__.py (572b), scripts/completion_tracker.py (10654b), scripts/contract_renewal__data_manager.py (7436b), scripts/contract_renewal__example.py (591b), scripts/contract_renewal__reminder_generator.py (6671b), scripts/contract_renewal__wecom_sender.py (6140b), scripts/contract_renewal.py (24223b), scripts/customer_management__example.py (597b), scripts/daily_check_simple.py (1541b), scripts/data_manager.py (3765b), scripts/example.py (587b), scripts/fee_calculator.py (5160b), scripts/init_db.py (7130b), scripts/inventory_monitor__example.py (593b), scripts/pure_sync.py (4827b), scripts/reminder_generator.py (8060b), scripts/service_matching__example.py (591b), scripts/sync_to_sqlite.py (5392b), scripts/visit_management__data_manager.py (7556b), scripts/visit_management__example.py (591b), scripts/visit_management__reminder_generator.py (7003b), scripts/visit_manager.py (11654b), scripts/visit_scoring.py (9403b), scripts/wecom_sender.py (6786b), scripts/workorder_dispatch__example.py (595b), skill-card.md (2405b), SKILL.md (66296b), SOUL.md (2045b), test_knowledge_base.py (6192b), TOOLS.md (1145b), wecom_webhook.example.json (310b), _meta.json (147b)\n\nFile v3.6.0:SKILL.md\n\n---\nname: enterprise-service-assistant\ndescription: 园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。\nversion: 3.6.0\n---\n\n# 企服助手 (Enterprise Service Assistant)\n\n## 📋 概述\n\n企服助手是面向园区运营管理的智能助手，基于《C+基础保障服务手册》设计，按照企服人员的日常工作组织：\n\n> 每日常工作只有四个步骤：今日工作（看什么）→ 企业情况（为什么）→ 办理业务（怎么做）→ 处理完成（自动归档）\n\n## 三板块\n\n| 板块 | 职责 | 数据源 |\n|------|------|--------|\n| **今日工作** | 筛选今天需要处理的工作项，按紧急度排序 | 全部表 |\n| **服务企业** | 管家直接执行：查询企业、催缴费用、沟通续租、处理投诉、协调退租、C+增值服务、客户微信工单 | 👨客户管理👨、👨💼费用收缴👨💼、💡能耗汇总💡、C+服务记录（含政策日历、认股权台账）、投诉记录、退租汇总、📋客户工单台账、⚙️处理人员配置 |\n| **事项跟进** | 管家推进别人做：跟进报修、督办整改、提醒保养、协调库存/资产/工程、跟进能耗、客户工单SLA监控 | 🛠️报修情况汇总、安全巡检计划、设备保养台账、📦库存管理📦秩序环境、秩序环境入库/出库、库存-工程、库存-固定资产、📋客户工单台账、⚙️处理人员配置 |\n\n> 管家不做报修、巡检、保养、库存这些事，但负责推进——AI帮盯时限、防遗漏。政策日历、认股权台账均属于C+增值服务，不独立成模块。\n\n---\n\n## 🛡️ 自由度—可控性声明（出厂标配）\n\n> 依据 `writing-for-agents` v1.2.0 第 8 项自检：每个 skill 必须显式声明其「自由度—可控性」位置。高自由度 ≠ 拥有控制权。\n\n| 维度 | 本 Skill 声明 |\n|------|--------------|\n| **自由度** | 中—高（高自主执行辅助，不获决策权）。主动同步、本地落盘、定时推送均为既定设计 |\n| **执行权** | 用户确认后执行：对客财务/法律动作（费用催缴、分派通知、涉及客户告知的敏感外部推送）；限自主执行：数据同步（腾讯文档→SQLite）、写本地DB/缓存/JSON、内部提醒推送（每日日报/风险提醒/工单SLA升级） |\n| **人在环** | 必须 confirm：催缴、分派、任何对客户有财务/法律影响的对外消息；已授权自动化：每日定时推送（用户首次配置即授权）、工单SLA超时@all升级 |\n| **Memory** | `agent-writable`：可写 SQLite(tracking/completion_log/sync_log)、本地缓存JSON、本地JSON；不可写 腾讯文档源数据（只读同步不写回）、IMA知识库（只读源）、已确认工单结论、外发未授权第三方 |\n| **外部行动** | 允许触达：腾讯文档MCP（读/拉取同步）、本地SQLite写、本地缓存写、本地JSON写、企微webhook推送（已配置key）、Python(sqlite3)；禁止触达：邮件/短信/未授权第三方、写回腾讯文档源、外部API（除已配置企微webhook）、暴露隐私数据（铁律） |\n| **不可越界** | 不替客户/管家做法律·财务决定（减免/赔付）；不修改腾讯文档源数据；不向未配置webhook外的地址发消息；不替代人工审批/签收 |\n\n---\n\n## ⚠️ AI执行原则（重要）\n\n**本skill通过腾讯文档MCP工具读取数据，支持本地缓存加速，所有逻辑由AI直接执行。**\n\n### 缓存机制（必须遵循）\n\n每次查询前，AI 必须按以下顺序执行：\n\n```\nStep 0 → 检查本地缓存（最快，<0.001秒）\n         cache_file = ~/.workbuddy/workspace/enterprise-service-assistant/cache/{table_name}.json\n         检查 cache_file 是否存在 且 修改时间 <30分钟前\n         → 若存在且未过期 → 直接使用，跳过 Step 1\n\nStep 1 → 缓存未命中，调用腾讯文档MCP工具读取数据\n         方式A（推荐，无需sheet_id）：mcp__tencent-docs__get_content(file_id)\n         方式B（需sheet_id）：mcp__tencent-docs__smartsheet.list_records(file_id, sheet_id)\n         方式C：mcp__tencent-docs__smartsheet.get_cell_data(doc_id, table_id, record_id, field_id)\n         💡 get_content 不需要sheet_id，一次调用返回所有子表markdown数据，优先使用\n\nStep 2 → 将数据写入本地缓存\n         cache_file = ~/.workbuddy/workspace/enterprise-service-assistant/cache/{table_name}.json\n         写入格式：{\"updated_at\": \"ISO时间戳\", \"data\": [...]}\n\nStep 3 → 按本文档中的逻辑处理数据\n         - 计算、判断、分级\n\nStep 4 → 格式化输出（使用本文档中的模板）\n\nStep 5 → 推送企微（如需要，使用本文档中的webhook配置）\n```\n\n### 缓存TTL配置\n\n| 表格 | 缓存TTL | 说明 |\n|-------|---------|------|\n| 客户管理 | 60分钟 | 客户信息变化频率低 |\n| 费用收缴 | 30分钟 | 缴费状态变化较频繁 |\n| 能耗汇总 | 30分钟 | 能耗欠费变化频繁 |\n| 报修情况汇总 | 15分钟 | 工单状态变化频繁 |\n| 📋客户工单台账 | 5分钟 | 微信工单实时性要求高 |\n| ⚙️处理人员配置 | 1440分钟(24h) | 人员配置几乎不变 |\n| 库存管理 | 60分钟 | 库存变化频率低 |\n| C+服务记录 | 30分钟 | 走访记录变化频率中等 |\n| 认股权台账 | 60分钟 | 行权状态变化频率低 |\n| 安全巡检计划 | 60分钟 | 巡检记录变化频率低 |\n| 设备保养台账 | 60分钟 | 保养记录变化频率低 |\n\n### 快速模式（用户主动触发）\n\n**触发词（任选一）：**\n- 「快速查询 XX」\n- 「用缓存，别调MCP」\n- 「本地数据有吗？先看本地的」\n\n**AI 行为：**\n- 只读取 `~/.workbuddy/workspace/enterprise-service-assistant/cache/` 中的 JSON 文件\n- **完全不调用 MCP**\n- 响应时间：**<0.1秒**\n\n### 缓存刷新（用户主动触发）\n\n**触发词（任选一）：**\n- 「刷新」\n- 「重新读取」\n- 「调MCP」\n- 「更新缓存」\n\n**AI 行为：**\n- 删除对应的缓存文件\n- 重新调用 MCP 读取最新数据\n- 写入新缓存\n\n---\n\n## 🗄️ 本地数据库模式 (SQLite) — 推荐\n\n**核心优势：**\n- 查询速度：**<0.1秒**（直接读本地DB，无需API调用）\n- Token消耗：**0**（查询时不调用任何MCP工具）\n- 支持复杂查询：SQL联表、聚合、筛选\n\n### 数据库路径\n\n```\n~/.workbuddy/workspace/enterprise-service-assistant/local_db.sqlite\n```\n\n### AI执行优先级（必须遵循）\n\n```\nStep -1 → 读取配置 force_local / mcp_available（来自 knowledge_base_config.json）\n          if config.get(\"force_local\") is True or config.get(\"mcp_available\") is False:\n              → 跳过所有 MCP 调用，直接查本地 SQLite（Step 3）\n              → 适用场景：腾讯文档 MCP 未连接 / 单机演示 / 弱网环境\n              → 这是最快路径，响应 <5ms，零网络等待\n\nStep 0 → 检查本地数据库是否存在且新鲜（<24小时）\n\n```\nStep 0 → 检查本地数据库是否存在且新鲜（<24小时）\n         DB_PATH = ~/.workbuddy/workspace/enterprise-service-assistant/local_db.sqlite\n         → 若存在且新鲜 → 直接查SQLite（Step 3）\n         → 若否则过期 → 先同步（Step 1），再查询（Step 3）\n\nStep 1 → 同步腾讯文档数据到SQLite（仅在DB不存在/过期时）\n         调用 mcp__tencent-docs__smartsheet.list_records 读取数据\n         写入SQLite（见\"同步逻辑\"章节）\n\nStep 2 → 标记同步完成\n         更新 sync_log 表\n\nStep 3 → 查询SQLite（超快，零token）\n         使用 Python + sqlite3 模块查询\n         格式化输出\n```\n\n### 同步逻辑\n\n**触发词：**\n- 「同步数据库」\n- 「刷新数据库」\n- 「更新本地数据」\n\n**AI行为：**\n1. 调用 `mcp__tencent-docs__get_content(file_id)` 读取所有工作表数据（不需要sheet_id）\n2. 用Python解析返回的markdown表格数据\n3. **同步校验（data-security-verifier 能力③，铁律）**：覆盖前对比 源表行数 vs 目标表行数、主键去重、必填字段非空率（单元号/企业名/金额）\n   - 校验通过 → 才执行覆盖写入\n   - **校验失败 → 不覆盖**：保留旧库，`sync_log.status='failed'`，输出差异明细，等人工确认\n4. 更新 `sync_log` 表记录同步时间（含 `data_as_of` 时间戳，供时效分级使用）\n\n**💡 为什么用 get_content 不用 list_records：**\n- `get_content` 只需要 `file_id`，不需要 `sheet_id`\n- 一次调用返回所有子表数据（客户管理、费用收缴、报修情况汇总、库存管理、C+服务记录、能耗汇总、投诉记录、退租汇总等）\n- 没有分页问题，没有权限门槛\n- 解析markdown表格比调多个MCP更简单可靠\n\n**AI同步流程（AI执行）：**\n\n```python\nimport sqlite3\nfrom pathlib import Path\n\nDB_PATH = Path.home() / \".workbuddy\" / \"workspace\" / \"enterprise-service-assistant\" / \"local_db.sqlite\"\n\n# 连接数据库\nconn = sqlite3.connect(str(DB_PATH))\ncursor = conn.cursor()\n\n# 通过get_content读取所有数据（不需要sheet_id）\ncontent_result = mcp__tencent-docs__get_content(file_id=\"YOUR_DOC_ID\")\n# content_result 包含所有子表的markdown表格\n\n# 解析markdown表格（按子表标题分割）\ntables = parse_markdown_tables(content_result.get('content', ''))\n\n# 写入各表\nfor table_name, data in tables.items():\n    # 清空并写入\n    cursor.execute(f\"DELETE FROM {table_name}\")\n    for row in data:\n        # 根据表名映射字段，insert into\n        pass\n\n# 记录同步日志\ncursor.execute(\"\"\"\n    INSERT INTO sync_log (table_name, sync_time, record_count, status)\n    VALUES (?, ?, ?, ?)\n\"\"\", (table_name, datetime.now().isoformat(), len(data), 'success'))\n\nconn.commit()\nconn.close()\n\nprint(\"✅ 同步完成\")\n```\n\n### 查询逻辑\n\n**触发词（任选一）：**\n- 普通查询（如「查询客户 T1-601」）\n- 「快速查询」（明确指定读DB）\n\n**AI行为：**\n1. 检查DB是否存在且新鲜（<24小时）\n2. 若新鲜 → 直接查SQLite\n3. 若否则过期 → 先同步，再查询\n\n**示例代码（AI执行）：**\n\n```python\nimport sqlite3\nfrom pathlib import Path\nfrom datetime import datetime, timedelta\n\nDB_PATH = Path.home() / \".workbuddy\" / \"workspace\" / \"enterprise-service-assistant\" / \"local_db.sqlite\"\n\n# 检查DB是否新鲜\ndef is_db_fresh():\n    if not DB_PATH.exists():\n        return False\n    \n    try:\n        conn = sqlite3.connect(str(DB_PATH))\n        cursor = conn.cursor()\n        cursor.execute(\"SELECT MAX(sync_time) FROM sync_log WHERE status = 'success'\")\n        result = cursor.fetchone()\n        conn.close()\n    except sqlite3.OperationalError:\n        # sync_log 表缺失或损坏：降级为「本地可用」，不抛异常、不触发 MCP\n        return False\n    \n    if not result or not result[0]:\n        return False\n    \n    last_sync = datetime.fromisoformat(result[0])\n    return datetime.now() - last_sync < timedelta(hours=24)\n\n# 查询客户\ndef query_customer(unit_no):\n    conn = sqlite3.connect(str(DB_PATH))\n    cursor = conn.cursor()\n    cursor.execute(\"SELECT * FROM customers WHERE unit_no = ?\", (unit_no,))\n    result = cursor.fetchone()\n    conn.close()\n    return result\n\n# 主逻辑\nif not is_db_fresh():\n    print(\"⚠️  数据库已过期，正在同步...\")\n    # 调用同步逻辑（见上）\n    \nresult = query_customer(\"T1-601\")\nprint(result)\n```\n\n### 数据库表结构\n\n| 表名 | 说明 | 主要字段 |\n|------|------|---------|\n| `customers` | 客户管理 | unit_no (UNIQUE), tenant_name, level, end_date, phone**（脱敏存储 138\\*\\*\\*\\*1234）**, contact**（姓+首字）** |\n| `fees` | 费用收缴 | unit_no, fee_type, receivable_amount, status |\n| `repair_orders` | 报修情况汇总 | unit_no, urgency, status, report_time |\n| `work_orders` | 📋客户工单台账 | work_order_id (UNIQUE), unit_no, type, status, handler |\n| `staff_assignment` | ⚙️处理人员配置 | work_type, keywords, default_handler, sla_urgent_hours |\n| `inventory` | 库存管理 | name (UNIQUE), current_stock, monthly_usage |\n| `cservice_records` | C+服务记录 | tenant_name, visit_time, service_type, detail |\n| `equity_warrants` | 认股权台账 | company_name, unit_no, expiry_date, status |\n| `sync_log` | 同步日志 | table_name, sync_time, status, data_as_of |\n\n> 🛡️ **脱敏字段说明**：`customers.phone` / `contact` 落库即脱敏（见「注意事项 3 落库脱敏策略」）；完整号码需用时从腾讯文档源实时读取。\n\n### 定时同步设置\n\n**创建每日同步任务：**\n\n```\n@WorkBuddy 创建一个定时任务，名称\"企服数据同步\"，每天08:00执行，提示词：\"同步企服助手所有表数据（客户管理、费用收缴、报修情况、库存管理、C+服务记录、认股权台账）到本地SQLite数据库\"\n```\n\n**automation_update 参数：**\n- scheduleType: \"recurring\"\n- rrule: \"FREQ=DAILY;BYHOUR=8;BYMINUTE=0\"\n- prompt: \"同步企服助手所有表数据到本地SQLite数据库，使用mcp__tencent-docs__smartsheet.list_records读取数据，写入~/.workbuddy/workspace/enterprise-service-assistant/local_db.sqlite\"\n- status: \"ACTIVE\"\n\n---\n\n### 原有执行规则（仍然有效）\n\n- ✅ 使用 `mcp__tencent-docs__smartsheet.list_records` 等MCP工具读取数据（仅在同步时）\n- ✅ 所有计算逻辑由AI阅读本文档后执行\n- ✅ 所有推送模板在本文档中定义\n- ❌ 禁止：直接读取Excel文件（应使用MCP工具或SQLite）\n\n---\n\n## ⚙️ 知识库配置\n\n**数据通过知识库模块读取，支持三种数据源：**\n\n### ⚠️ 重要：配置文件在技能目录外\n\n配置文件路径：`~/.workbuddy/config/enterprise-service-assistant/knowledge_base_config.json`\n\n**这样做的好处**：\n- ✅ 打包分享时**不会泄露**您的知识库配置\n- ✅ 每个用户需要**自己配置**数据源\n- ✅ 配置文件与技能分离，更安全\n\n### 1. 创建配置文件\n\n**第一步**：创建配置目录\n```bash\nmkdir -p ~/.workbuddy/config/enterprise-service-assistant\n```\n\n**第二步**：复制示例配置\n```bash\ncp knowledge_base_config.example.json ~/.workbuddy/config/enterprise-service-assistant/knowledge_base_config.json\n```\n\n**第三步**：编辑配置文件\n```bash\n# macOS\nopen ~/.workbuddy/config/enterprise-service-assistant/knowledge_base_config.json\n\n# 或手动编辑，填入实际配置\n```\n\n### 2. 数据源类型\n\n| 类型 | source_type | source_config | 说明 |\n|------|-------------|---------------|------|\n| 本地文件 | `local` | `{\"file_path\": \"path/to/file.xlsx\"}` | 支持.xlsx/.csv |\n| IMA知识库 | `ima` | `{\"kb_id\": \"xxx\"}` | 需要IMA MCP连接 |\n| 腾讯文档 | `tencent_docs` | `{\"doc_id\": \"xxx\"}` | 需要腾讯文档MCP连接 |\n\n### 3. 配置示例\n\n**本地Excel文件**：\n```json\n{\n  \"source_type\": \"local\",\n  \"source_config\": {\n    \"file_path\": \"path/to/园区数据.xlsx\"\n  }\n}\n```\n\n**腾讯文档**：\n```json\n{\n  \"source_type\": \"tencent_docs\",\n  \"source_config\": {\n    \"doc_id\": \"YOUR_DOC_ID\"\n  },\n  \"force_local\": false,\n  \"mcp_available\": true\n}\n```\n\n> ⚡ **离线/弱网加速开关**（新增）：当腾讯文档 MCP 未连接、或希望完全本地化运行时，设 `\"force_local\": true` 且 `\"mcp_available\": false`。此时 AI 跳过所有 MCP 调用，直接读本地 SQLite，响应 <5ms，零网络等待。恢复联网同步后改回 `false` 即可。\n\n**IMA知识库**：\n```json\n{\n  \"source_type\": \"ima\",\n  \"source_config\": {\n    \"kb_id\": \"your-ima-kb-id\"\n  }\n}\n```\n\n### 4. AI自动加载配置\n\n配置完成后，AI会自动从外部路径加载配置：\n\n```python\n# 不需要传入config，自动从 ~/.workbuddy/config/enterprise-service-assistant/knowledge_base_config.json 加载\n# 或使用自定义配置（可选）\ncustom_config = {...}\n\n```\n\n---\n\n## 🗂️ 缓存目录设置\n\n**AI 首次执行查询时，自动创建缓存目录：**\n\n```bash\nmkdir -p ~/.workbuddy/workspace/enterprise-service-assistant/cache/\n```\n\n**缓存文件命名规则：**\n```\n~/.workbuddy/workspace/enterprise-service-assistant/cache/\n├── 客户管理.json\n├── 费用收缴.json\n├── 报修情况汇总.json\n├── 📋客户工单台账.json\n├── ⚙️处理人员配置.json\n├── 库存管理.json\n├── C+服务记录.json\n└── 认股权台账.json\n```\n\n**缓存文件格式：**\n```json\n{\n  \"updated_at\": \"2026-06-13T13:00:00\",\n  \"ttl_minutes\": 30,\n  \"data\": [...]\n}\n```\n\n**AI 查询时检查缓存的逻辑：**\n1. 检查 `{table_name}.json` 是否存在\n2. 检查 `updated_at` 距离现在是否超过 `ttl_minutes`\n3. 若未过期 → 直接读取 JSON，不调 MCP（<0.1秒）\n4. 若已过期或不存在 → 调 MCP，更新缓存\n\n---\n\n## ⚙️ 腾讯文档配置\n\n**本Skill通过腾讯文档MCP工具直接读取数据。**\n\n> ⚡ **性能说明**：\n> - 首次查询（缓存未命中）：2-3秒（调MCP API）\n> - 缓存命中后查询：<0.1秒（读本地JSON缓存）\n> - **推荐**：首次查询后，使用「快速查询」触发词，体验秒回\n\n> 💡 **更快的方式（推荐）**：\n> 使用**本地文件模式**（见「知识库配置」章节），直接读取本地Excel/CSV文件，**无需API调用**，查询速度 <0.05秒。\n\n### 配置步骤\n\n**第1步**：在腾讯文档创建智能表格，包含以下工作表：\n- 👨客户管理👨\n- 👨💼费用收缴👨💼\n- 💡能耗汇总💡\n- C+服务记录（含政策日历、认股权台账）\n- 投诉记录\n- 退租汇总\n- 🛠️报修情况汇总🛠️\n- 安全巡检计划\n- 设备保养台账\n- 📦库存管理📦秩序环境\n- 秩序环境入库\n- 秩序环境出库\n- 库存-工程\n- 库存-固定资产\n- 📋客户工单台账\n- ⚙️处理人员配置\n\n**第2步**：复制文档ID（URL中 `/s/` 后面的部分）\n\n**第3步**：在以下代码示例中，将 `YOUR_DOC_ID` 替换为实际的文档ID：\n```python\n# 示例：读取客户管理表\nmcp__tencent-docs__smartsheet.list_records(\n    file_id=\"YOUR_DOC_ID\",\n    sheet_id=\"m3LDSO\"  # 👨客户管理👨 的 sheet_id\n)\n```\n\n> 💡 **提示**：首次使用时，AI会自动帮你获取各个工作表的 `sheet_id`，你只需要提供 `file_id`。\n\n---\n---\n\n## 📦 模块一：服务企业 (Enterprise Service)\n\n### 功能\n\n1. **查询客户档案** — 按单元号/租户名/合同号查询\n2. **构建客户画像** — 聚合费用、服务、报修、能耗记录\n3. **计算风险标记** — 欠费风险、流失风险、高频报修、低满意度\n4. **生成客户时间线** — 按时间倒序排列所有事件\n\n### 客户管理表字段映射（👨客户管理👨）\n\n| 列号 | 字段名 | 说明 |\n|------|--------|------|\n| 1 | 项目 | [项目名称] |\n| 2 | 单元类型 | 办公 |\n| 3 | 建筑面积 | ㎡ |\n| 4 | 计租面积 | ㎡ |\n| 5 | 单元号 | 主键（如T1-601） |\n| 6 | 租户名 | 企业名称 |\n| 7 | 合同编号 | 如ZJML-2024-12260010 |\n| 8 | 招商 | 招商人员 |\n| 11 | 开始日期 | 合同起始 |\n| 12 | 截至日期 | 合同截止（续租预警用） |\n| 13 | 状态 | 签约/退租/毛坯 |\n| 15 | 租户联系人 | 姓名 |\n| 16 | 电话 | 联系电话 |\n| 18 | 等级 | A/B/C |\n| 19 | 企业类型 | 餐饮配套/制造业/商务配套等 |\n| 22 | 经营范围 | 具体业务 |\n\n### 核心逻辑\n\n#### 1. 查询客户档案\n\n```python\nimport json\n\n\n\ndef parse_excel_date(val):\n    if isinstance(val, datetime): return val.date()\n    if isinstance(val, str): return datetime.strptime(val, \"%Y年%m月%d日\").date()\n    return None\n\n# 从知识库读取费用数据\nfee_data = mcp__tencent-docs__smartsheet.list_records(doc_id, table_id='👨💼费用收缴👨💼')\n\ntoday = datetime.now().date()\nfor row in fee_data:\n    overdue_days = (today - parse_excel_date(row.get('应收到期日'))).days\n    # 后续处理...\n```\n\n#### 欠费合并计算\n\n同一`单元号`的所有欠费记录合并：\n1. 按费用类型分组统计\n2. 本金 + 滞纳金（如有）\n3. 生成合并通知一次性发送\n\n### 触发场景\n\n- 每天10:00定时任务自动检查\n- `@企服助手 催缴检查`\n- 企微群 `@催缴`\n\n### 输出模板\n\n```\n【催缴通知】{租户名}：\n\n您有以下费用待缴纳：\n1. {月份}{费项项目}：¥{欠收金额}（逾期{overdue_days}天）\n2. ...\n\n总金额：¥{total_amount}\n\n请尽快安排缴纳，避免产生更多滞纳金。\n缴费账户：XXX银行 XXX账户\n```\n\n---\n\n## 📦 模块二：沟通续租 (Contract Renewal)\n\n### 功能\n\n1. **三级续租预警** — 90天/60天/30天提前标记\n2. **企业画像分析** — 缴费准时率、满意度、成交率\n3. **续租方案生成** — 根据企业价值评估生成差异化方案\n4. **稳租策略** — A/B/C级客户差异化稳租方案\n\n### 续租预警三级体系\n\n| 级别 | 剩余天数 | 推送对象 | 操作 |\n|------|---------|---------|------|\n| 🚨 红色预警 | ≤30天 | @招商人员 @管家 | 立即跟进 |\n| ⚠️ 黄色预警 | 31-60天 | @招商人员 | 准备续租方案 |\n| 📢 绿色提醒 | 61-90天 | 管家 | 关注动向 |\n\n### 客户价值评估算法\n\n| 维度 | 权重 | 评分标准 |\n|------|------|---------|\n| 租金贡献 | 30% | ≥50万/年=30分，≥20万=20分，≥10万=15分，<10万=10分 |\n| 企业资质 | 25% | 高新/上市=25分，科技/研发=20分，贸易/服务=15分，其他=10分 |\n| 缴费准时率 | 20% | ≥95%=20分，≥90%=15分，≥80%=10分，<80%=5分 |\n| 服务满意度 | 15% | ≥80%=15分，≥60%=10分，≥40%=5分，<40%=0分 |\n| 成交贡献 | 10% | ≥30%=10分，≥20%=7分，≥10%=5分，<10%=0分 |\n\n**总分 ≥80 = A级，≥60 = B级，<60 = C级**\n\n### 续租方案决策矩阵\n\n| 条件 | 方案类型 | 租金策略 | 优惠 |\n|------|---------|---------|------|\n| 价值等级A 或 (缴费率≥95% 且 满意度≥80%) | A：原条件续租 | 维持原价 | 续租3年享95折 |\n| 价值等级B 或 成交率≥30% 或 缴费率≥90% | B：优惠续租 | 上涨3-5% | 续租2年享98折 |\n| 其他 | C：市场化续租 | 市场价 | 无 |\n\n### 稳租策略（按价值等级）\n\n**A级客户**（全方位稳租）：\n- 提高服务标准：走访频率月度→双周，专属管家\n- 关怀活动：生日礼物、节日慰问、企业周年庆贺\n- 服务赠送：免费会议室8小时/月、免费停车券2张/月\n\n**B级客户**（中度稳租）：\n- 提高服务标准：走访频率季度→月度\n- 关怀活动：节日慰问\n- 服务赠送：免费会议室4小时/月\n\n**C级客户**（基础稳租）：\n- 基础服务标准\n- 市场化租金定价\n\n### 触发场景\n\n- 每天09:00定时任务自动检查\n- `@企服助手 续租检查`\n- `@企服助手 生成续租方案 T1-601`\n\n### 输出模板\n\n```\n━━━━━━━━━━━━━━━\n【续租{red}预警】\n\n🏢 企业：{tenant_name}\n📍 单元：{unit_no}\n📅 合同到期：{lease_end}\n⏰ 剩余天数：{days_remaining}天\n\n━━━ 企业画像 ━━━\n等级：{level} | 企业类型：{enterprise_type}\n缴费准时率：{payment_rate*100:.1f}%\n服务满意度：{satisfaction*100:.1f}%\n\n━━━ 续租方案 ━━━\n方案类型：{plan_type}\n建议租金：¥{proposed_rent}/㎡/月\n优惠折扣：{discount_rate*100:.0f}折\n优惠政策：{incentive_policy}\n\n🚨 请 @招商人员 @管家 立即跟进！\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 📦 模块三：跟进报修 (Workorder Follow-up)\n\n### 功能\n\n1. **自动分派** — 根据报修描述判断专业领域，分配维修人员\n2. **SLA超时监控** — 紧急工单>1小时/普通工单>24小时触发升级\n3. **工单状态更新** — 待处理→处理中→已完成\n4. **维修评价系统** — 客户对维修服务评分\n\n### 报修情况汇总表字段映射（🛠️报修情况汇总🛠️）\n\n| 列号 | 字段名 | 说明 |\n|------|--------|------|\n| 1 | 楼层/单元 | 如T1-601 |\n| 2 | 紧急程度 | 紧急！急需处理！/紧急！一周内处理！/不紧急 |\n| 3 | 报修细节描述 | 故障详情 |\n| 5 | 报修时间 | 报修日期 |\n| 7 | 维修人员 | 分派人员 |\n| 8 | 维修跟进状态 | 待处理/处理中/已完成 |\n| 9 | 跟进状态及结果描述 | 处理说明 |\n| 10 | 维修费用 | 金额 |\n| 11 | 维修完成时间 | 日期 |\n| 12 | 维修用时天数 | 天数 |\n\n### 维修人员分派规则\n\n**分派逻辑优先顺序：**\n1. 优先查 `⚙️处理人员配置` 表，按「工单类型 + 子类关键词」匹配\n2. 若配置表无匹配，回退到以下硬编码规则\n\n**硬编码回退规则：**\n\n| 专业领域 | 关键词 | 维修人员 |\n|---------|--------|---------|\n| 电工 | 电、跳闸、开关 | 蔡其恩 |\n| 水工 | 水、漏水、水管 | 杨杉 |\n| 万能工 | 其他 | 蔡其恩、杨杉（轮询） |\n\n### SLA超时标准\n\n| 紧急程度 | SLA时限 | 升级动作 |\n|---------|---------|---------|\n| 紧急！急需处理！ | 1小时 | @all升级通知 |\n| 紧急！一周内处理！ | 24小时 | 提醒维修主管 |\n| 不紧急！一月内处理！ | 720小时 | 定期提醒 |\n\n### 触发场景\n\n- 每小时定时任务检查SLA状态\n- `@企服助手 创建工单 T1-9F女厕 女厕门打不开`\n- `@企服助手 检查工单状态`\n\n### 输出模板\n\n```\n━━━━━━━━━━━━━━━\n【紧急工单分派】\n\n📍 位置：{unit_no}\n🚨 紧急程度：{urgency}\n📝 报修描述：{description}\n👤 报修人：{reporter}\n⏰ 报修时间：{report_time}\n\n👷 维修人员：{assignee}\n⚡ 请立即处理！\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 📦 模块四：事项跟进 · 协调库存 / 资产 / 工程 (Inventory & Asset Coordination)\n\n### 功能\n\n1. **库存水位计算** — 可用月数 = 现库存 / 月使用量\n2. **四级库存分级** — 缺货/预警/关注/正常\n3. **补货提醒生成** — 按级别生成采购建议\n4. **出入库记录更新** — 支持入库/出库操作\n\n### 库存管理表字段映射（📦库存管理📦秩序环境）\n\n| 列号 | 字段名 | 说明 |\n|------|--------|------|\n| 1 | 名称 | 物资名称 |\n| 2 | 规格/单位 | 规格 |\n| 9 | 现库存 | 当前库存数量 |\n| 10 | 月使用量 | 月均消耗量 |\n\n### 四级库存分级体系\n\n| 级别 | 可用月数 | 处理方式 | 建议采购量 |\n|------|---------|---------|-----------|\n| 🚨 缺货 | ≤0 | 紧急采购 | 3个月用量 |\n| ⚠️ 预警 | ≤2 | 高优先级采购 | 2个月用量 |\n| 📢 关注 | ≤3 | 中优先级采购 | 1个月用量 |\n| ✅ 正常 | >3 | 无需操作 | 无 |\n\n### 核心逻辑\n\n```python\navailable_months = 现库存 / 月使用量 if 月使用量 > 0 else 999\n```\n\n### 触发场景\n\n- 每天09:00定时任务自动检查\n- `@企服助手 库存检查`\n- `@企服助手 入库 洗手液 5`\n- `@企服助手 出库 洗手液 2`\n\n### 输出模板\n\n```\n━━━━━━━━━━━━━━━\n【库存监控日报】{today}\n\n━━━ 🚨 缺货物资 ━━━\n{缺货清单 或 \"无\"}\n\n━━━ ⚠️ 预警物资 ━━━\n1. {名称} | 规格：{规格} | 现库存：{现库存}\n   月使用量：{月使用量} | 可用月数：{available_months:.1f}\n   建议采购量：{purchase_qty}\n\n━━━ 📢 关注物资 ━━━\n{关注清单 或 \"无\"}\n\n━━━ 统计 ━━━\n物资总数：{total}个\n缺货：{out}个 | 预警：{warn}个 | 关注：{关注}个 | 正常：{normal}个\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 📦 模块五：C+增值服务 (C+ Value-Added Service)\n\n### 功能\n\n1. **需求挖掘** — 从走访记录详情中提取企业需求（NLP关键词匹配）\n2. **企业画像获取** — 读取客户管理表获取企业类型、等级\n3. **服务推荐算法** — 根据企业类型和需求匹配服务规则库\n4. **跟进闭环** — 跟踪推荐服务的跟进状态，提醒逾期未完成\n\n### C+服务记录表字段映射\n\n| 列号 | 字段名 | 说明 |\n|------|--------|------|\n| 1 | 租户名 | 关联客户管理表 |\n| 2 | 走访时间 | 日期 |\n| 3 | 走访管家 | 姓名 |\n| 4 | 客户情绪 | 满意/一般/不满意 |\n| 5 | 成交情况 | 是/否 |\n| 6 | 服务类别 | 保洁需求/商务接待/室内维修等 |\n| 7 | 成交金额 | 金额 |\n| 8 | 详情记录 | 企业需求描述 |\n\n### 需求挖掘关键词库\n\n| 需求类型 | 关键词 |\n|---------|--------|\n| 保洁需求 | 清洁、卫生、保洁、打扫 |\n| 商务接待 | 接待、会议室、访客、客人 |\n| 室内维修 | 维修、修理、更换、安装 |\n| 环境优化 | 空气、绿植、噪音、光线 |\n| 能源管理 | 电费、水费、节能、空调 |\n| 证照服务 | 许可证、执照、审批、证照 |\n| 企业服务 | 注册、变更、年检、税务 |\n\n### 服务匹配规则库\n\n| 企业类型 | 优先推荐服务 | 优惠政策 |\n|---------|-------------|---------|\n| 餐饮配套 | 卫生许可证提醒、固废清运、室内保洁、能源管理 | 首月9折 |\n| 制造业 | 固废清运、环境检测、安全生产培训 | 包年8折 |\n| 商务配套 | 商务接待、会议室预定、室内保洁、绿植租赁 | 首次免费体验 |\n| 科技企业 | 企业注册变更、知识产权服务、政策申报 | 代办服务9折 |\n\n### 触发场景\n\n- 每天10:00定时任务分析昨日走访记录\n- `@企服助手 服务匹配 上海铭尤力`\n- `@企服助手 分析服务需求`\n\n### 输出模板\n\n```\n━━━━━━━━━━━━━━━\n【C+服务推荐】{tenant_name}\n\n━━━ 企业画像 ━━━\n类型：{enterprise_type} | 等级：{level}\n经营范围：{business_scope}\n\n━━━ 走访需求 ━━━\n{needs}\n\n━━━ 推荐服务 ━━━\n1. {服务名称}（{优先级}优先级）\n   理由：{reason}\n   优惠：{discount}\n\n⚡ 操作链接：[腾讯文档-C+服务]\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 📦 模块六：客户微信工单处理 (Customer WeChat Workorder)\n\n### 功能\n\n1. **客户消息接收** — 通过企微MCP（或管家转发）接收客户微信消息\n2. **意图识别与分类** — AI自动判断工单类型（报修/投诉/咨询/催缴/续租/其他）+ 子类（如\"水管漏水\"）\n3. **自动分派** — 查 `⚙️处理人员配置` 表匹配处理人\n4. **工单创建** — 写入 `📋客户工单台账`，生成完整记录\n5. **进度跟踪与闭环** — 状态更新、SLA监控、完成推送\n\n### 工作流程\n\n```\n客户通过企微客服号私聊发消息\n    ↓\n[1] 企服助手接收消息（企微MCP回调或管家粘贴转发）\n    ↓\n[2] AI意图识别\n    - 类型：报修/投诉/咨询/催缴/续租/其他\n    - 子类：AI从消息中提取关键词判断\n    - 紧急程度：含\"爆\"\"漏\"\"着火\"等→紧急\n    - 位置提取：T1-601 等\n    ↓\n[3] 查询分派规则\n    调用：mcp__tencent-docs__smartsheet.list_records(\n        file_id=\"DOC_ID\",\n        sheet_id=\"⚙️处理人员配置的sheet_id\"\n    )\n    匹配规则：工单类型 + 子类关键词包含\n    ↓\n[4] 创建工单\n    写入：mcp__tencent-docs__smartsheet.add_records(\n        file_id=\"DOC_ID\",\n        sheet_id=\"📋客户工单台账的sheet_id\",\n        records=[{...}]\n    )\n    同时写入本地 tracking/completion_log.json\n    ↓\n[5] 推送通知\n    - @处理人：新工单信息\n    - 回执客户：已登记+预计处理时间\n    ↓\n[6] 状态更新（后续）\n    客户或管家说「WO-001 处理完了」\n    → 更新台账状态为\"已完成\"\n    → 推送客户告知完成\n```\n\n### 📋客户工单台账字段映射\n\n| 字段名 | 字段类型 | 填入逻辑 |\n|--------|---------|---------|\n| 工单编号 | 自动编号 | 系统自增（对外展示用 `WO-{日期}-{序号}` ） |\n| 工单来源 | 单选 | 微信反馈（默认）/电话/现场/巡检 |\n| 客户名称 | 文本 | 企微客户昵称 或 管家输入 |\n| 单元号 | 文本 | AI从消息中提取（如T1-601） |\n| 工单类型 | 单选 | AI分类结果 |\n| 子类 | 文本 | AI关键词匹配结果 |\n| 紧急程度 | 单选 | AI判断（紧急/普通/不紧急） |\n| 问题描述 | 文本 | 客户原始消息原文 |\n| 处理人 | 文本 | 查配置表匹配后填入 |\n| 工单状态 | 单选 | 创建时=\"待处理\" |\n| 创建时间 | 日期时间 | 自动填入（当前时间） |\n| SLA截止时间 | 日期时间 | 创建时间+SLA时效（查配置表） |\n| 处理开始时间 | 日期时间 | 处理人接单后更新 |\n| 完成时间 | 日期时间 | 处理完后更新 |\n| 处理时长(小时) | 数字 | 自动计算（完成时间-创建时间） |\n| 处理结果 | 文本 | 处理人填写 |\n| 客户满意度 | 单选 | 完成后客户评价 |\n| 备注 | 文本 | 特殊情况 |\n\n### ⚙️处理人员配置表字段映射\n\n| 字段名 | 字段类型 | 说明 |\n|--------|---------|------|\n| 工单类型 | 单选 | 分派匹配用 |\n| 子类关键词 | 文本 | 逗号分隔，AI用于文本匹配 |\n| 默认处理人 | 文本 | 优先分派给此人 |\n| 备用处理人 | 文本 | 默认处理人不在时 |\n| SLA紧急_小时 | 数字 | 紧急工单SLA上限(小时) |\n| SLA普通_小时 | 数字 | 普通工单SLA上限(小时) |\n\n### 自动分派逻辑（AI执行）\n\n```python\n# Step 1: 从配置表读取分派规则\ndef get_assignment_rules():\n    response = mcp__tencent-docs__smartsheet.list_records(\n        file_id=\"DOC_ID\",\n        sheet_id=\"⚙️处理人员配置的sheet_id\"\n    )\n    return response  # 返回所有行\n\n# Step 2: 匹配规则（按行号顺序优先匹配）\ndef match_rule(rules, work_type, description):\n    \"\"\"\n    匹配规则：先匹配工单类型，再匹配子类关键词\n    例：type=\"报修-水电\", keywords=\"水,漏水,水管\"\n    若 description 包含任一关键词 → 匹配成功\n    \"\"\"\n    for rule in rules:\n        if rule.get('工单类型') != work_type:\n            continue\n        keywords = rule.get('子类关键词', '').split(',')\n        for kw in keywords:\n            kw = kw.strip()\n            if kw and kw in description:\n                return rule\n    return None\n\n# Step 3: 根据配置表中的SLA计算截止时间\ndef calc_sla_deadline(rule, urgency):\n    if urgency == '紧急':\n        hours = rule.get('SLA紧急_小时', 1)\n    else:\n        hours = rule.get('SLA普通_小时', 24)\n    from datetime import datetime, timedelta\n    return (datetime.now() + timedelta(hours=hours)).isoformat()\n```\n\n### 文本分类逻辑\n\n企服助手在接到客户消息后，按以下流程进行意图识别：\n\n**Step 1 → 类型判断**（关键词优先，AI兜底）\n\n| 类型 | 触发关键词 |\n|------|-----------|\n| 报修 | 坏、坏掉、漏水、爆、跳闸、不亮、不制冷、坏了、修、维修、修一下 |\n| 投诉 | 投诉、态度差、服务差、吵、噪音、脏、投诉、不满 |\n| 咨询 | 问一下、咨询、请问、费用、租金、多少钱、了解 |\n| 催缴 | 交费、已转账、已打款、没有这个费用、收据、发票 |\n| 续租 | 续租、合同到期、续签、继续租、扩租 |\n| 其他 | （兜底） |\n\n**Step 2 → 子类提取**：从消息中提取具体内容，填入「子类」字段\n\n**Step 3 → 位置提取**：正则匹配 `T\\d+-\\d+`、`X栋X单元` 等模式\n\n### 触发场景\n\n| 触发方式 | 说明 |\n|---------|------|\n| 管家转发 | 管家收到客户微信消息，复制粘贴给企服助手：「创工单 T1-601 空调坏了」 |\n| 企微MCP回调 | 企微MCP连接后，客户消息自动进入（需连接企微MCP） |\n| 「查工单 WO-001」 | 查询工单状态 |\n| 「WO-001 处理完了」 | 更新工单状态为已完成 |\n| 每小时定时 | SLA超时监控 |\n\n### 输出模板\n\n```\n━━━━━━━━━━━━━━━\n【新工单已创建】\n\n📋 工单编号：{work_order_id}\n📍 单元：{unit_no}\n📝 类型：{work_type} - {sub_type}\n🚨 紧急程度：{urgency}\n📄 问题描述：{description}\n\n👤 客户：{customer_name}\n👷 已分派：{handler}\n⏰ SLA截止：{sla_deadline}\n\n🔄 当前状态：{status}\n━━━━━━━━━━━━━━━\n```\n\n**客户回执模板：**\n```\n✅ 收到！已为您登记工单，编号：{work_order_id}\n👷 已安排{handler}师傅处理\n⏰ 预计{estimated_time}内到场处理\n📌 后续可发送「查工单 {work_order_id}」查询进度\n```\n\n**分派通知模板（推送给处理人）：**\n```\n【新工单】{work_order_id} · {work_type}\n📍 {unit_no} | 🚨 {urgency}\n📝 {description}\n⏰ SLA截止：{sla_deadline}\n⚠️ 请及时处理！\n```\n\n**SLA超时升级模板：**\n```\n🚨【SLA超时】工单 {work_order_id}\n📍 {unit_no} | 类型：{work_type}\n👷 处理人：{handler}\n⏰ 已超时 {overdue_minutes} 分钟\n📝 问题描述：{description}\n\n⚠️ @all 请主管介入！\n━━━━━━━━━━━━━━━\n```\n\n### 功能\n\n1. **走访质量评分** — 基于客户情绪、成交情况、服务类别、详情记录完整性计算（满分100）\n2. **走访闭环追踪** — 检查走访中提出的问题是否有后续跟进记录\n3. **智能排程** — 根据企业等级、续租预警、欠费风险自动生成走访计划\n4. **管家分配** — 根据单元号楼层自动分配管家\n\n### 走访质量评分算法（满分100）\n\n| 评分维度 | 权重 | 评分标准 |\n|---------|------|---------|\n| 客户情绪 | 40% | 满意=40分，一般=25分，不满意=10分 |\n| 成交情况 | 30% | 成交=30分，成交金额>5000额外+10分 |\n| 服务类别完整性 | 20% | 有服务类别=20分，无=0分 |\n| 详情记录完整性 | 10% | ≥20字=10分，10-19字=5分，<10字=0分 |\n\n### 智能排程规则\n\n| 优先级 | 触发条件 |\n|-------|---------|\n| 高优先级（必访） | A级企业且上次走访>30天 / 续租剩余≤60天 / 有欠费风险标记 |\n| 中优先级（应访） | B级企业且上次走访>90天 |\n| 低优先级（可访） | C级企业 |\n\n### 管家分配规则\n\n| 管家 | 负责楼层 |\n|------|---------|\n| 戚亮先 | T1-6F、T1-7F、T1-8F |\n| 刘瑞 | T1-9F、T1-10F、T1-11F |\n| （可配置） | T1-12F及以上 |\n\n### 触发场景\n\n- 每周一09:00定时任务生成本周走访计划\n- `@企服助手 走访管理`\n- `@企服助手 生成本周走访计划`\n\n### 输出模板\n\n```\n━━━━━━━━━━━━━━━\n【本周走访计划】{week_start} ~ {week_end}\n\n━━━ 🔴 高优先级（必访）━━━\n共{N}个企业待走访\n\n1. {unit_no} {tenant_name}\n   等级：{level} | 上次走访：{last_visit}\n   原因：{reason}\n   管家：{visitor}\n   历史质量评分：{avg_quality:.1f} | 闭环状态：{followup_status}\n\n━━━ 🟡 中优先级（应访）━━━\n共{M}个企业待走访\n\n━━━ 🟢 低优先级（可访）━━━\n共{K}个企业待走访\n\n━━━ 统计 ━━━\n本周走访总数：{total}个\n高优先级：{N}个 | 中优先级：{M}个 | 低优先级：{K}个\n\n⚡ 操作链接：[腾讯文档-走访计划]\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 📊 认股权管理 (Equity Warrant Management)\n\n### 功能\n\n1. **认股权台账** — 记录每笔认股权的企业、金额、比例、估值上限、到期日\n2. **到期提醒** — 认股权到期前90天提醒企服人员跟进\n3. **行权条件监控** — 监控企业是否完成合格融资（工商变更/增资协议）\n4. **转让退出管理** — 记录认股权转让给第三方投资机构的价格、税费\n5. **回购义务追踪** — 企业未融资时，追踪创始股东回购履约情况\n\n### 腾讯文档数据结构（建议新增工作表：认股权台账）\n\n| 列名 | 字段名 | 说明 | 示例 |\n|------|--------|------|------|\n| 企业名称 | company_name | 关联客户管理表 | 上海景峰制药有限公司 |\n| 单元号 | unit_no | 关联客户管理表 | T1-603.05 |\n| 认股权比例 | warrant_ratio | 2-8% | 5% |\n| 估值上限 | valuation_cap | 如1亿元 | 100000000 |\n| 行权折扣 | discount | 如70% | 70 |\n| 授予日期 | grant_date | 协议签署日 | 2026-06-11 |\n| 到期日期 | expiry_date | 通常3年 | 2029-06-11 |\n| 状态 | status | 待触发/已行权/已转让/已回购/已失效 | 待触发 |\n| 让利金额 | concession_amount | 免租/降租总额 | 3000000 |\n| 融资进展 | financing_progress | 未启动/对接中/TS阶段/DD阶段/已交割 | 未启动 |\n| 备注 | remarks | 融资进展、回购谈判等 | 正在对接启明创投 |\n\n### 核心逻辑\n\n#### 1. 认股权台账管理\n\n**新增认股权（调用 `mcp__tencent-docs__smartsheet.add_records`）：**\n\n```\n调用 mcp__tencent-docs__smartsheet.add_records\n  file_id: \"YOUR_DOC_ID\"\n  sheet_id: \"认股权台账的sheet_id\"\n  records: [{\n    \"fields\": {\n      \"企业名称\": \"上海景峰制药有限公司\",\n      \"单元号\": \"T1-603.05\",\n      \"认股权比例\": 5,\n      \"估值上限\": 100000000,\n      \"行权折扣\": 70,\n      \"授予日期\": \"2026-06-11\",\n      \"到期日期\": \"2029-06-11\",\n      \"状态\": \"待触发\",\n      \"让利金额\": 3000000,\n      \"融资进展\": \"未启动\",\n      \"备注\": \"\"\n    }\n  }]\n```\n\n#### 2. 到期提醒（定时任务）\n\n**检查逻辑（每日执行）：**\n\n```python\nfrom datetime import datetime, timedelta\n\n# 读取认股权台账\nwarrant_data = mcp__tencent-docs__smartsheet.list_records(\n    file_id=\"YOUR_DOC_ID\",\n    sheet_id=\"认股权台账的sheet_id\"\n)\n\ntoday = datetime.now().date()\nfor record in warrant_data:\n    expiry_date = datetime.strptime(record['到期日期'], '%Y-%m-%d').date()\n    days_left = (expiry_date - today).days\n    \n    if 0 <= days_left <= 90:\n        # 到期前90天内，提醒跟进\n        print(f\"⚠️ 认股权即将到期：{record['企业名称']}（{days_left}天）\")\n        \n        # 检查融资进展\n        if record['融资进展'] == '未启动':\n            print(f\"  ⚠️ 融资进展：未启动，建议立即对接投资机构\")\n        elif record['融资进展'] in ['对接中', 'TS阶段', 'DD阶段']:\n            print(f\"  ✅ 融资进展：{record['融资进展']}，继续跟进\")\n        elif record['融资进展'] == '已交割':\n            print(f\"  ✅ 融资已完成，可行权\")\n```\n\n#### 3. 行权条件监控\n\n**触发条件：**\n- 企业完成合格融资（工商变更/增资协议）\n- 融资估值 ≥ 估值上限 × 行权折扣\n\n**行权方式（三选一）：**\n1. **行权获股权** — 按约定比例获得企业股权\n2. **转让获利** — 将认股权转让给第三方投资机构\n3. **放弃行权** — 认股权失效\n\n**操作流程：**\n\n```\nStep 1 → 监控企业融资进展（从C+服务记录中获取）\n         mcp__tencent-docs__smartsheet.list_records(\n             file_id=\"YOUR_DOC_ID\",\n             sheet_id=\"C+服务记录\"\n         )\n         筛选：服务类别 = \"融资对接\" AND 企业名称 = \"XX公司\"\n\nStep 2 → 确认合格融资（工商变更完成 + 融资额 ≥ 最低要求）\n         若合格 → 更新认股权台账，状态改为\"可行权\"\n\nStep 3 → 与企业协商行权方式\n         - 若行权获股权 → 签署股权转让协议，完成工商变更\n         - 若转让获利 → 寻找第三方投资机构，签署转让协议\n         - 若放弃行权 → 认股权失效，更新台账\n\nStep 4 → 更新认股权台账\n         mcp__tencent-docs__smartsheet.update_records(\n             file_id=\"YOUR_DOC_ID\",\n             sheet_id=\"认股权台账的sheet_id\",\n             records=[{\n               \"record_id\": \"xxx\",\n               \"fields\": {\n                 \"状态\": \"已行权\",  # 或\"已转让\"/\"已失效\"\n                 \"备注\": \"2026-12-01 行权获股权5%\"\n               }\n             }]\n         )\n```\n\n#### 4. 回购义务追踪\n\n**触发条件：**\n- 认股权到期（到期日期 < 今天）\n- 且企业未完成合格融资\n\n**操作流程：**\n\n```\nStep 1 → 检查到期未行权的认股权\n         筛选：状态 = \"待触发\" AND 到期日期 < 今天\n\nStep 2 → 联系企业创始股东，触发回购义务\n         回购金额 = 让利金额 + 利息（如年化5%）\n\nStep 3 → 追踪回购履约情况\n         - 若已支付 → 更新台账，状态改为\"已回购\"\n         - 若未支付 → 发送律师函，准备诉讼\n```\n\n### 适用企业筛选标准\n\n| 企业类型 | 认股权比例 | 筛选标准 |\n|---------|------------|---------|\n| A类企业 | 5-8% | 高新技术/专精特新、营收增长≥30%、有核心技术、融资意向明确 |\n| B类企业 | 3-5% | 核心技术企业（营收增长10-30%）、稳定增长企业 |\n| C类企业 | 暂不推荐 | 传统低附加值行业、营收下滑、无核心技术壁垒 |\n\n### 筛选数据来源\n\n**从C+服务记录中读取以下字段，用于筛选A/B/C类企业：**\n\n| 字段名 | 字段类型 | 说明 | 筛选用途 |\n|---------|---------|------|---------|\n| `营收增长%` | percentage | 近2年营收增速（如35.5表示35.5%） | A类≥30%，B类10-30%，C类<10%或下滑 |\n| `融资意向` | singleSelect | 无/有/强烈 | A类需\"有\"或\"强烈\"，B/C类不要求 |\n\n**读取方式（AI自动执行）：**\n\n```\nStep 1 → 读取C+服务记录\n         mcp__tencent-docs__smartsheet.list_records(\n             file_id=\"YOUR_DOC_ID\",\n             sheet_id=\"iSs70V\"  # C+服务记录 的 sheet_id\n         )\n\nStep 2 → 提取最新一条记录的\"营收增长%\"和\"融资意向\"字段\n         # 按\"服务日期\"排序，取最新一条\n         latest_record = max(records, key=lambda x: x['服务日期'])\n\nStep 3 → 根据筛选标准分类\n         if latest_record['营收增长%'] >= 30 and latest_record['融资意向'] in ['有', '强烈']:\n             category = \"A类\"\n         elif 10 <= latest_record['营收增长%'] < 30:\n             category = \"B类\"\n         else:\n             category = \"C类\"\n```\n\n> 💡 **提示**：若C+服务记录中无\"营收增长%\"或\"融资意向\"数据，AI应主动询问用户，或建议企服人员在下次走访时补充。\n\n### 风险控制\n\n| 风险类型 | 风险等级 | 应对措施 |\n|---------|---------|---------|\n| 企业未融资导致认股权失效 | 🟡 中 | 设置创始股东回购义务（让利金额+利息） |\n| 估值偏差导致权益不对等 | 🟡 中 | 采用\"估值上限+下一轮折扣\"双轨制 |\n| 国资流失认定风险 | 🔴 高 | **严格履行\"三重一大\"决策程序**，让利金额量化可追溯 |\n| 企业拒绝配合行权 | 🟡 中 | 协议明确\"完成合格融资\"为触发条件，约定违约责任 |\n| 认股权转让流动性不足 | 🟢 低 | 优先选择广东股权交易中心登记，依托平台转让 |\n\n### 触发场景\n\n| 用户说了什么 | 执行动作 |\n|-------------|----------|\n| 「查一下认股权台账」 | 读取认股权台账，列出所有认股权记录 |\n| 「XX公司认股权快到期了」 | 检查到期日，提醒跟进融资进展 |\n| 「XX公司完成融资了」 | 更新融资进展，标记\"可行权\" |\n| 「我们要行权」 | 启动行权流程，协商行权方式 |\n| 「XX公司没融到资」 | 触发回购义务，联系创始股东 |\n| 每天10:00定时任务 | 自动检查到期提醒，推送企微 |\n\n---\n\n\n---\n\n## ⏰ 定时任务配置\n\n在 WorkBuddy 中使用 `automation_update` 工具配置以下定时任务：\n\n### 1. 每日风险客户提醒（09:00）\n\n**创建方式**：在 WorkBuddy 中执行：\n```\n@WorkBuddy 创建一个定时任务，名称\"风险客户提醒日报\"，每天09:00执行，提示词：\"扫描所有客户风险（欠费、续租预警、高频报修、低满意度），生成风险提醒日报并推送企微群\"\n```\n\n**automation_update 参数参考**：\n- scheduleType: \"recurring\"\n- rrule: \"FREQ=DAILY;BYHOUR=9;BYMINUTE=0\"\n- prompt: \"扫描所有客户风险（欠费、续租预警、高频报修、低满意度），生成风险提醒日报并推送企微群\"\n- status: \"ACTIVE\"\n\n### 2. 合同续租预警（09:00）\n\n**创建方式**：\n```\n@WorkBuddy 创建一个定时任务，名称\"合同续租预警\"，每天09:00执行，提示词：\"检查合同到期日期，提前3个月标记续租预警，提前2个月生成续租方案\"\n```\n\n### 3. 费用催缴检查（10:00）\n\n**创建方式**：\n```\n@WorkBuddy 创建一个定时任务，名称\"费用催缴检查\"，每天10:00执行，提示词：\"检查费用收缴状态，按三级分级体系（1-7天静默/8-30天提醒/31天+升级）生成催缴报告\"\n```\n\n### 4. C+服务需求分析（10:00）\n\n**创建方式**：\n```\n@WorkBuddy 创建一个定时任务，名称\"C+服务需求分析\"，每天10:00执行，提示词：\"分析昨日C+服务走访记录，从详情记录中提取企业需求，根据企业类型匹配服务资源，生成推荐方案\"\n```\n\n### 5. 库存监控检查（09:00）\n\n**创建方式**：\n```\n@WorkBuddy 创建一个定时任务，名称\"库存监控检查\"，每天09:00执行，提示词：\"检查所有物资的库存水位（可用月数=现库存/月使用量），生成补货提醒（缺货/预警/关注三级）并推送\"\n```\n\n### 6. 工单SLA监控（每小时）\n\n**创建方式**：\n```\n@WorkBuddy 创建一个定时任务，名称\"工单SLA监控\"，每小时执行，提示词：\"同时检查「🛠️报修情况汇总」和「📋客户工单台账」两张表中待处理工单的SLA状态，紧急工单超过1小时或普通工单超过24小时立即升级推送\"\n```\n\n**automation_update 参数参考**：\n- scheduleType: \"recurring\"\n- rrule: \"FREQ=HOURLY\"\n- prompt: \"检查「报修情况汇总」和「客户工单台账」中待处理工单的SLA状态，紧急工单超过1小时或普通工单超过24小时立即升级推送\"\n- status: \"ACTIVE\"\n\n### 7. 每周走访计划生成（周一09:00）\n\n**创建方式**：\n```\n@WorkBuddy 创建一个定时任务，名称\"走访计划生成\"，每周一09:00执行，提示词：\"生成本周走访计划，根据企业等级（A级每月/B级每季度）、续租预警（剩余≤60天）、欠费风险智能规划走访任务，分配高/中/低优先级\"\n```\n\n---\n\n## 💬 企微推送配置\n\n### Webhook 地址（外部配置，不写入包）\n\n> 🔒 **安全修复（2026-08-17）**：webhook key 不再硬编码在 SKILL.md 内（防止 skill 分享时密钥泄露）。改为从外部配置读取，配置路径与 knowledge_base_config.json 同级，不进包、不随分享泄露。\n\n**配置步骤**：\n\n1. 创建配置目录与文件：\n```bash\nmkdir -p ~/.workbuddy/config/enterprise-service-assistant\ncp wecom_webhook.example.json ~/.workbuddy/config/enterprise-service-assistant/wecom_webhook.json\n```\n\n2. 编辑 `~/.workbuddy/config/enterprise-service-assistant/wecom_webhook.json`，填入真实 webhook：\n```json\n{\n  \"webhook_url\": \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_WEBHOOK_KEY\"\n}\n```\n\n**推送前读取规则**：\n- 推送前读取该文件获取 `webhook_url`；\n- 文件不存在或 key 为占位符 → 提示用户先配置，**不静默失败、不内置兜底 key**；\n- 推送内容必须已过脱敏闸门（企业名 / 金额 / 单元号 XX 化，见下方「数据隐私（铁律）」）。\n\n### 推送格式规范\n\n- 使用Markdown格式\n- 标题使用 `━━━━━━━━━━━━━━━` 分隔线\n- 紧急通知使用 @all 或 @具体人员\n- 操作链接指向腾讯文档对应表格\n\n---\n\n## 📝 使用示例\n\n### 示例1：查询客户档案\n\n**用户输入**：`@企服助手 查询客户 T1-601`\n\n**执行逻辑**：\n1. AI自动从 `~/.workbuddy/config/enterprise-service-assistant/knowledge_base_config.json` 加载配置\n3. 调用 `mcp__tencent-docs__smartsheet.list_records(doc_id, table_id='👨客户管理👨')` 读取客户数据\n4. 筛选 `单元号 = \"T1-601\"` 的行\n5. 格式化输出客户档案\n\n### 示例2：检查费用催缴\n\n**用户输入**：`@企服助手 催缴检查`\n\n**执行逻辑**：\n1. AI自动加载配置并初始化知识库\n2. 调用 `mcp__tencent-docs__smartsheet.list_records(doc_id, table_id='👨💼费用收缴👨💼')` 读取费用数据\n3. 计算每条记录的逾期天数\n4. 按三级分级体系分类\n5. 生成催缴报告并推送企微\n\n### 示例3：生成续租方案\n\n**用户输入**：`@企服助手 生成续租方案 T1-601`\n\n**执行逻辑**：\n1. 通过知识库查询客户档案获取企业类型和等级\n2. 通过知识库读取历史费用记录计算缴费准时率\n3. 通过知识库读取C+服务记录计算满意度和成交率\n4. 客户价值评估（5个维度，满分100）\n5. 根据决策矩阵生成续租方案\n6. 根据价值等级生成稳租策略\n\n---\n\n## 🔧 快速开始\n\n### 1. 创建配置目录\n\n```bash\nmkdir -p ~/.workbuddy/config/enterprise-service-assistant\n```\n\n### 2. 复制示例配置\n\n```bash\ncp knowledge_base_config.example.json ~/.workbuddy/config/enterprise-service-assistant/knowledge_base_config.json\n```\n\n### 3. 编辑配置文件\n\n```bash\n# macOS\nopen ~/.workbuddy/config/enterprise-service-assistant/knowledge_base_config.json\n\n# 填入实际配置，例如：\n# 本地文件：\n# {\n#   \"source_type\": \"local\",\n#   \"source_config\": {\n#     \"file_path\": \"/path/to/your/园区数据.xlsx\"\n#   }\n# }\n#\n# 腾讯文档：\n# {\n#   \"source_type\": \"tencent_docs\",\n#   \"source_config\": {\n#     \"doc_id\": \"your-doc-id\"\n#   }\n# }\n```\n\n### 4. 测试配置\n\n```python\n# 不需要传config，自动从外部路径加载\n# 测试读取\ndata = kb.get_all()\nprint(f\"✅ 成功读取 {len(data)} 条数据\")\n```\n\n### 5. 使用企服助手\n\n配置完成后，AI会自动使用知识库模块读取数据。\n\n---\n\n## 🔧 脚本目录\n\n所有Python脚本已内置在 `scripts/` 目录：\n\n| 脚本名 | 用途 | 所属原模块 |\n|--------|------|-----------|\n| `data_manager.py` | 数据读取管理 | 费用催缴 |\n| `fee_calculator.py` | 逾期费用计算 | 费用催缴 |\n| `reminder_generator.py` | 催缴话术生成 | 费用催缴 |\n| `wecom_sender.py` | 企微推送 | 费用催缴 |\n| `contract_renewal.py` | 续租预警核心逻辑 | 合同续租 |\n| `visit_manager.py` | 走访计划管理 | 走访管理 |\n| `visit_scoring.py` | 走访质量评分 | 走访管理 |\n| `daily_check_simple.py` | 每日检查入口 | 主技能 |\n| `completion_tracker.py` | **处理完成闭环追踪器** | 新模块 |\n\n**重要变更**：\n- ✅ 去掉 `knowledge_base.py` 中间层\n- ✅ 所有数据读取现在直接调用 MCP 工具（仅在缓存未命中时）\n- ✅ 支持腾讯文档/IMA知识库/本地文件（通过MCP工具）\n- ✅ **新增本地缓存机制**（v2.3.0）——首次查询后缓存30分钟内复用，响应<0.1秒\n- ✅ **新增快速模式**——用户说「快速查询」即只读缓存，完全不调MCP\n\nAI可以直接调用这些脚本，也可以根据本文档描述的逻辑直接用Python代码执行。\n\n---\n\n## ⚠️ 注意事项\n\n1. **Excel日期格式** — 需兼容多种格式：`2025年3月1日`、`2025-03-01`、`datetime`对象\n2. **🔴 数据隐私（铁律）** — 任何时候不得在用户可看到的输出或文件中暴露以下数据：\n   - 具体项目名称（如\"美兰中心\"\"美慧城\"）\n   - 具体企业名称或租户名\n   - 具体数据量（如\"149家\"\"1,244条\"）\n   - doc_id、文件路径等配置信息\n   - 具体的缴费金额或逾期天数\n   \n   **输出指南文件、使用指引、演示文案时一律使用泛化示例：**\n   - ✅ 「XX科技公司」「X栋X单元」「¥XX」  \n   - ✅ 「XX制造业」「XX实业」「XXX㎡」\n   - ❌ 「上海洁韵信息科技」「T1-1103.05」「¥166,928」\n3. **🛡️ 落库脱敏策略（v3.6.0 新增）** — 本地 SQLite / 缓存 JSON 存储强 PII 时执行：\n   - **存储级脱敏字段**：电话 / 手机 → 落库即存 `138****1234` 形式；联系人姓名 → 存姓 + 首字（如 `张*`）；证件号 → 不落库\n   - **原文保留字段**：企业名 / 租户名、单元号、金额、日期（本地库不外发，输出过脱敏闸门即可）\n   - **需要完整号码时**：从腾讯文档源实时读取（只读同步，不写回），不依赖本地脱敏值\n   - **同步时执行**：腾讯文档 → SQLite 写入前，对电话 / 联系人字段做脱敏转换再落库\n   - 现有存量库：下次同步时自动按此规则重建（全量覆盖前先过校验，失败不覆盖）\n4. **关联字段一致性** — `单元号`、`租户名`在各工作表中的格式必须一致\n5. **SLA超时升级** — 紧急工单超时必须立即@all通知\n6. **库存月使用量为0** — 可用月数视为999（无限）\n\n---\n\n## 📌 版本历史\n\n| 版本 | 日期 | 变更内容 |\n|------|------|---------|\n| v3.6 | 2026-08-17 | **落库脱敏策略**：`customers` 表电话/联系人存储级脱敏（`138\\*\\*\\*\\*1234` / 姓+首字），证件号不落库；需要完整号码时从腾讯文档源实时读取；存量库下次同步自动重建（先校验后覆盖，失败不覆盖） |\n| v3.5 | 2026-08-17 | **安全与验证增强**：① webhook key 从 SKILL.md 硬编码迁移至外部配置 `~/.workbuddy/config/enterprise-service-assistant/wecom_webhook.json`（防分享泄露，推送前读取、未配置不静默失败）；② 同步逻辑接入 data-security-verifier 能力③：覆盖前行数/主键/非空率校验，失败不覆盖保留旧库；③ sync_log 增加 data_as_of 时间戳，催缴/续租/预警触发前做时效分级检查（🟢 才触发） |\n| v3.4 | 2026-08-12 | **新增「自由度—可控性声明」章节**（writing-for-agents v1.2.0 第8项自检）：6维度声明 + Memory=agent-writable（限本地写）+ 外部行动（腾讯文档读/企微推送）+ 不可越界；frontmatter 补 version 字段；修正正文\"当前状态\"版本号滞后（v3.1→v3.4） |\n| v3.2 | 2026-07-01 | **新增客户微信工单处理模块**：新增📋客户工单台账和⚙️处理人员配置两张表，支持客户微信反馈→AI识别→自动分派→工单台账→闭环全流程；报修分派规则改为优先查配置表 |\n| v3.3 | 2026-07-08 | **性能修复**：补建缺失的 `sync_log` 表（修复 `is_db_fresh()` 误判过期导致每次调用腾讯文档 MCP）；新增 `force_local`/`mcp_available` 离线开关，MCP 不可用时直接读本地 SQLite（<5ms）；`is_db_fresh()` 加异常保护降级 |\n| v3.1 | 2026-06-28 | **架构重构**：从8大模块重构为三大板块（今日工作、服务企业、事项跟进）；新增企业情况五段式输出；数据源补齐至16张表；闭环记录降级为系统自动行为；命名对齐业务语言（催缴费用、沟通续租、跟进报修、协调库存、C+增值服务）；政策日历/认股权台账归入C+增值服务 |\n| v2.3.0 | 2026-06-13 | 新增本地缓存机制，首次查询后30分钟内复用，响应<0.1秒；新增快速模式（「快速查询」触发词）；更新knowledge_base_config.example.json加入缓存配置 |\n| v2.2.0 | 2026-06-11 | 新增认股权管理模块（台账·到期提醒·行权监控·转让退出·回购追踪） |\n| v2.1.0 | 2026-06-11 | 去掉 knowledge_base.py 中间层，改为直接调MCP工具，提升运行效率 |\n| v2.0.0 | 2026-06-08 | 完全自包含版本，合并所有7个子技能，移除所有call_skill依赖 |\n| v1.5.0 | 2026-06-07 | 修复依赖断裂，更新skills列表 |\n| v1.4.0 | 2026-06-07 | 初始发布到ClawHub |\n\n---\n\n---\n\n## ⚡ 性能优化建议（v2.3.0新增）\n\n### 为什么之前慢？\n\n| 原因 | 说明 | 影响 |\n|------|------|------|\n| 无缓存机制 | 每次查询都调腾讯文档MCP API（网络延迟 2-3秒） | 所有查询都慢 |\n| 大表全量拉取 | 费用收缴表1244条记录一次性拉取 | 首次查询特别慢 |\n| 无快速模式 | 无法跳过MCP调用 | 重复查询也慢 |\n\n### 现在快了多少？\n\n| 场景 | 优化前 | 优化后 |\n|------|---------|---------|\n| 首次查询（缓存未命中） | 2-3秒 | 2-3秒（不可避免）|\n| 缓存命中查询 | 2-3秒 | **<0.1秒** |\n| 快速模式查询 | 不支持 | **<0.1秒** |\n| 本地文件模式 | 不支持 | **<0.05秒** |\n\n### 推荐使用方式\n\n**最佳体验（推荐）：**\n1. 首次查询某张表 → 自动建立缓存（2-3秒）\n2. 之后说「**快速查询** XXX」 → 读缓存（<0.1秒）\n3. 数据更新后说「**刷新**」 → 重新调MCP更新缓存\n\n**最快方式（适合高频查询）：**\n1. 配置本地文件模式（`source_type: \"local\"`）\n2. 直接读取本地Excel/CSV文件（无需API调用）\n3. 查询速度：**<0.05秒**\n\n---\n\n**当前状态**：v3.4 三大板块架构，覆盖16张腾讯文档工作表，支持本地缓存加速。可直接发布到ClawHub供其他用户使用。\n\n---\n\n## 📋 v3.1 输出规范\n\n### 今日工作输出（按新格式）\n```\n今日工作（{n}）\n\n━━━━━━━━━━━━━━━\n● {企业名} — {事项类型}\n  原因：{原因简述}\n  建议：{建议动作}\n━━━━━━━━━━━━━━━\n```\n排序规则：按工作紧急度排序。每次输出不超过10条。\n\n### 企业情况输出（查询某家企业时统一使用）\n```\n━━━━━━━━━━━━━━━\n企业情况 | {租户名}\n\n━━━ 当前状态 ━━━\n{状态简述}\n\n━━━ 当前风险 ━━━\n{风险清单 或 \"无风险\"}\n\n━━━ 待办事项 ━━━\n{待办清单 或 \"无\"}\n\n━━━ 服务建议 ━━━\n{建议清单 或 \"无\"}\n\n━━━ 最近动态 ━━━\n{按时间倒序的事件列表}\n\n⚡ 操作链接：[腾讯文档]\n━━━━━━━━━━━━━━━\n```\n\n> 企业情况不是企业所有资料，而是AI判断「办这件事需要知道什么」。五个元素顺序固定不可调换。\n\n## 🔄 处理完成闭环（Completion Closure）\n\n**这是一个行为模块，不是一个独立页面。** 你说「办完了」，我自动记录+刷新+更新。\n\n### 触发词\n\n| 你说 | 我理解 |\n|------|--------|\n| 「办完了」「处理完成」「搞定了」 | 自动判断上下文，处理四种事件之一 |\n| 「洁韵催缴完成了，付了¥50,000首款」 | 催缴完成 + 提取金额信息 |\n| 「T1-9F女厕修好了」 | 工单确认 |\n| 「下午去走访了铭尤力，谈得不错」 | 走访完成 |\n| 「投诉处理完了」 | 投诉关闭 |\n\n### 六种事件类型\n\n| 事件 | 触发场景 | 自动执行动作 |\n|------|---------|-------------|\n| 🏆 **走访完成** | 「走访完了」「去聊过了」 | ①写入走访记录 ②刷新企业情况 ③更新今日工作 |\n| 💰 **催缴完成** | 「催缴收到钱了」「付了¥X」 | ①更新费用状态 ②从今日工作移除 ③刷新企业情况 |\n| 🔧 **工单确认** | 「修好了」「门修好了」 | ①关闭工单 ②刷新事项跟进 ③更新今日工作 |\n| 🚫 **投诉关闭** | 「投诉处理完了」 | ①关闭投诉 ②刷新企业风险 ③更新今日工作 |\n| 📝 **续租签约** | 「续租签了」「合同续了」 | ①写入续租记录 ②移除预警 ③刷新企业情况 |\n| 📦 **库存补货** | 「补货到了」「洗手液到了」 | ①更新库存 ②解除预警 ③刷新库存状态 |\n\n### AI执行流程\n\n```\n用户说「办完了」或「处理完成」\n\nStep 1 ── 解析上下文，判断事件类型\n          ↓\nStep 2 ── 调用 completion_tracker.py 处理\n          ↓\nStep 3 ── 写入本地 tracking/completion_log.json\n          ↓\nStep 4 ── 刷新三块状态：\n          · 今日工作（移除已完成项，重新排序）\n          · 企业情况（追加最近动态）\n          · 事项跟进（更新对应状态）\n          ↓\nStep 5 ── 输出闭环反馈：\n          ✅ {事件类型} · {企业名} 已处理完成\n          📝 {详情}\n          🔄 已自动执行：{动作列表}\n```\n\n### 本地记录文件\n\n```\n~/.workbuddy/workspace/enterprise-service-assistant/tracking/\n├── completion_log.json   ← 所有完成记录 + 活跃任务缓冲区\n```\n\n**completion_log.json 结构：**\n```json\n{\n  \"version\": \"1.0\",\n  \"updated_at\": \"ISO时间戳\",\n  \"completions\": [\n    {\n      \"id\": \"comp-2026062823-001\",\n      \"type\": \"催缴完成\",\n      \"unit_no\": \"T1-1103.05\",\n      \"tenant_name\": \"上海洁韵信息科技有限公司\",\n      \"details\": \"分期首款¥50,000已到账\",\n      \"amount\": 50000.0,\n      \"completed_at\": \"2026-06-28T23:10:00\",\n      \"status\": \"completed\",\n      \"actions_taken\": [\"update_fee_status\", \"remove_from_today\", \"refresh_enterprise\"]\n    }\n  ],\n  \"active_tasks_buffer\": {\n    \"催缴完成|T1-1103.05\": {\n      \"status\": \"completed\",\n      \"completed_at\": \"...\",\n      \"completion_id\": \"comp-...\"\n    }\n  }\n}\n```\n\n### 刷新逻辑（AI执行）\n\n当 completion_log.json 中有新完成记录时，AI在生成今日工作和企业情况时自动过滤已闭环项：\n\n**今日工作刷新规则：**\n```\n今日工作输出前：\n  读取 completion_log.json → 获取 active_tasks_buffer\n  用 completed 项过滤今日工作列表\n  输出剩余未完成项（最多10条）\n```\n\n**企业情况刷新规则：**\n```\n企业情况输出时：\n  读取 completion_log.json → 获取该企业完成记录\n  追加到「最近动态」列表（按时间倒序，带 ✅ 标记）\n  刷新「当前风险」和「待办事项」\n```\n\n### 与MCP的配合（未来完善）\n\n目前写入腾讯文档需要 sheet_id，当前实现：\n- ✅ 本地记录 + 状态刷新（已就绪）\n- 🔄 写入腾讯文档（需配置sheet_id后可启用）\n- 🔄 企微推送通知（需配置webhook后可启用）\n\n### 使用示例\n\n```\n用户：洁韵催缴搞定了，今天付了¥50,000首期款\n  ↓\nAI：✅ 催缴完成 · 上海洁韵信息科技有限公司 已处理完成\n    📝 分期首款¥50,000已到账，剩余¥113,916分3期\n    🔄 已自动执行：\n      ✅ 更新费用状态\n      ✅ 从今日工作移除\n      ✅ 刷新企业情况\n    \n    现在今日工作剩余：8项（已移除洁韵的催缴任务）\n    需要查看刷新后的今日工作吗？\n```\n\nFile v3.6.0:README.md\n\n# 🏢 企服助手 Skill\n\n> 专业的园区企业服务智能助手（完全自包含版 v2.0.0）\n\n---\n\n## 简介\n\n企服助手是一个专为园区企业服务设计的智能助手，可以帮助你完成：\n\n- 📊 **客户管理** — 档案管理、画像分析、风险提醒\n- 💰 **费用催缴** — 监控逾期、分级提醒、跟进记录\n- 🔧 **工单分派** — 自动分派、SLA监控、超时升级\n- 📦 **库存监控** — 水位监控、补货提醒、出入库管理\n- 📝 **续租预警** — 提前预警、生成续租方案\n- 🤝 **C+服务** — 需求挖掘、服务匹配、资源调度\n- 📋 **走访管理** — 计划生成、任务提醒、记录归档\n- 📈 **KPI报告** — 自动生成、趋势分析\n\n---\n\n## 快速安装\n\n### 方式一：WorkBuddy 一键安装（推荐）\n\n在 WorkBuddy 对话框中输入：\n\n```\n@WorkBuddy 安装技能 enterprise-service-assistant\n```\n\n### 方式二：手动安装\n\n1. 将 `enterprise-service-assistant` 文件夹复制到：\n   ```\n   ~/.workbuddy/skills/enterprise-service-assistant/\n   ```\n\n2. 重启 WorkBuddy 会话\n\n3. 首次启动时，按照引导完成配置\n\n---\n\n## 首次配置\n\n启动后，企服助手会自动检测到你是新用户，并展示配置引导。\n\n### 必填项\n- 项目名称\n- 数据文件路径（Excel）\n\n### 可选项\n- 企微 Webhook（用于消息推送）\n- 隐私脱敏规则\n- 业务技能开关\n\n### 配置步骤\n\n1. 复制模板：\n   ```\n   knowledge/TEMPLATE.md → knowledge/PROJECT_KB.md\n   ```\n\n2. 填写信息：\n   ```markdown\n   - 项目名称: [你的项目名]\n   - 数据文件路径: [你的Excel文件完整路径]\n   ```\n\n3. 验证配置：\n   ```\n   @企服助手 知识库已配置，帮我验证一下\n   ```\n\n---\n\n## 使用示例\n\n| 命令 | 功能 |\n|------|------|\n| `@企服助手 查询客户 A栋-601` | 查询客户信息 |\n| `@企服助手 客户画像 示例企业` | 查看客户画像 |\n| `@企服助手 催缴检查` | 检查费用收缴状态 |\n| `@企服助手 库存检查` | 检查库存水位 |\n| `@企服助手 续租检查` | 检查合同到期情况 |\n| `@企服助手 创建工单 A栋-601 水管漏水` | 创建报修工单 |\n\n---\n\n## 文件结构\n\n```\nenterprise-service-assistant/\n├── SKILL.md                ← 技能说明和触发词\n├── AGENTS.md               ← 通用配置\n├── SOUL.md                 ← 人格设定\n├── IDENTITY.md             ← 身份设定\n├── TOOLS.md                ← 工具说明\n├── AGENT.json              ← 技能元数据\n├── scripts/                ← 📂 核心业务逻辑（Python脚本）\n│   ├── data_manager.py\n│   ├── fee_calculator.py\n│   ├── contract_renewal.py\n│   ├── visit_manager.py\n│   └── ...（共22个脚本）\n├── knowledge/              ← 📂 项目知识库\n│   ├── PROJECT_KB.md       ← 你的项目配置（核心！）\n│   ├── TEMPLATE.md         ← 配置模板\n│   ├── ONBOARDING.md       ← 首次引导\n│   ├── INSTALL.md          ← 安装指南\n│   └── HOW_TO_SHARE.md     ← 分享指南\n└── README.md               ← 本文件\n```\n\n**关键区分**：\n- 通用文件（SKILL.md, AGENTS.md 等） → 随 Skill 分享，不需要修改\n- 项目知识库（knowledge/） → 每个用户独立，包含你的项目数据配置\n\n---\n\n## 依赖技能\n\n企服助手核心逻辑已完全自包含（`scripts/` 目录），以下技能为可选增强：\n\n| 技能 | 用途 |\n|------|------|\n| `docx` | Word 文档处理（可选） |\n| `pdf` | PDF 文档处理（可选） |\n| `xlsx` | Excel 表格处理（可选） |\n| `tencent-docs` | 腾讯文档 MCP 工具（可选） |\n| `online-search` | 联网搜索（可选） |\n| `agent-browser` | 浏览器自动化（可选） |\n\n---\n\n## 常见问题\n\n### Q: 我的 Excel 格式和模板不一样怎么办？\nA: 在 `PROJECT_KB.md` 中描述你的工作表结构即可，助手会自动适配。\n\n### Q: 可以不用企微通知吗？\nA: 可以。通知渠道是可选的，没有 Webhook 也能使用查询功能。\n\n### Q: 数据安全吗？\nA: 所有数据都在你的本地电脑上，不会上传到云端。助手只读取你指定的文件。\n\n### Q: 如何分享给其他同事？\nA: 参考 `knowledge/HOW_TO_SHARE.md`，将技能包文件夹打包分享即可。\n\n---\n\n## 技术支持\n\n如有问题，请查阅：\n- `knowledge/ONBOARDING.md` — 新用户引导\n- `knowledge/INSTALL.md` — 安装指南\n- `knowledge/HOW_TO_SHARE.md` — 分享指南\n\n---\n\n**让企服助手帮你提升服务效率！** 🚀\n\nFile v3.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn76b71hdvjbaetmpr601b967x82bz18\",\n  \"slug\": \"enterprise-service-assistant\",\n  \"version\": \"3.6.0\",\n  \"publishedAt\": 1788581072298\n}\n\nFile v3.6.0:AGENTS.md\n\n# AGENTS.md - Your Workspace\n\n本文件夹是企服助手 Skill 的根目录。\n\n## 首次运行\n\n如果 `knowledge/PROJECT_KB.md` 不存在或为空，企服助手会自动展示新用户引导流程，帮助你创建项目知识库。\n\n## 会话启动\n\n优先使用 WorkBuddy 提供的启动上下文。\n\n该上下文可能已经包含：\n- `SKILL.md`、`AGENTS.md`、`SOUL.md` 和 `IDENTITY.md`\n- 最近的对话历史\n\n不要手动重新读取启动文件，除非：\n1. 用户明确要求\n2. 提供的上下文缺少你需要的内容\n\n## 📂 文件分层架构\n\n本 Skill 采用**通用层 + 项目知识库层**的分层架构：\n\n### 通用层（随 Skill 分享，新用户可见）\n- `SKILL.md` — 技能说明和触发词\n- `AGENTS.md` — 通用行为规则\n- `SOUL.md` — 通用人格设定\n- `IDENTITY.md` — 通用身份设定\n- `TOOLS.md` — 通用工具说明\n- `scripts/` — 核心 Python 业务逻辑（22个脚本）\n\n### 项目知识库层（每用户独立，不随 Skill 分享）\n- `knowledge/PROJECT_KB.md` — **项目专属知识库**（数据源、通知渠道、业务规则）\n- `knowledge/TEMPLATE.md` — 知识库模板（供新用户复制使用）\n- `knowledge/ONBOARDING.md` — 新用户引导文档\n- `knowledge/INSTALL.md` — 安装指南\n- `knowledge/HOW_TO_SHARE.md` — 分享指南\n\n### 分享规则\n- **分享 Skill 给其他用户时**：通用层文件会被分享，项目知识库文件不会被分享\n- **新用户首次使用时**：自动检测缺少项目知识库，触发首次引导流程\n\n## 记忆\n\n企服助手的核心配置在 `knowledge/PROJECT_KB.md` 中。\n\n- **项目记忆**：在 `knowledge/PROJECT_KB.md` 中记录项目配置\n- **会话记忆**：WorkBuddy 会自动管理会话上下文\n\n不要依赖\"心理笔记\"——重要配置都要写在文件里。\n\n## 红线\n\n- 永远不要泄露私人数据\n- 不要在没有询问的情况下运行破坏性命令\n- 当有疑问时，询问用户\n\n## 工具\n\n技能提供你的工具。当你需要一个工具时，检查它的文档。\n\n**企服助手核心逻辑已自包含在 `scripts/` 目录中**，优先使用内置 Python 脚本完成任务。\n\n可选的 WorkBuddy 技能（增强功能）：\n- `tencent-docs` — 腾讯文档 MCP 工具\n- `docx` / `pdf` / `xlsx` — 文档处理\n- `online-search` — 联网搜索\n- `agent-browser` — 浏览器自动化\n\n## 企服助手特定说明\n\n你是一个专业的园区企业服务助手。你的通用职责包括：\n\n- 企业数据管理和分析\n- 企业文档智能处理（腾讯文档、PDF、Excel）\n- 费用催缴提醒和服务跟进\n- 企业工单管理和调度\n- KPI 报告自动生成\n- C+ 增值服务管理\n- 企微消息推送和通知\n\n**具体的项目数据、业务规则和通知配置**都在 `knowledge/PROJECT_KB.md` 中定义。\n\n使用内置脚本或已配置的技能来完成这些任务。\n\nFile v3.6.0:HEARTBEAT.md\n\n# Keep this file empty (or with only comments) to skip heartbeat API calls.\n\n# Add tasks below when you want the agent to check something periodically.\n\nFile v3.6.0:IDENTITY.md\n\n# IDENTITY.md - Who Am I?\n\n- **Name:** 企服助手 (Enterprise Service Assistant)\n- **Creature:** AI 企业服务专员 - 专业的园区企业服务助手\n- **Vibe:** 专业、高效、可靠 - 注重实用性和结果导向\n- **Emoji:** 🏢\n- **Avatar:** 🏢\n\n---\n\n我是企服助手，专注于为园区企业提供高效的数字化服务支持。\n\n**我的特点：**\n- 专业严谨：注重准确性和规范性\n- 高效执行：快速响应，结果导向\n- 贴心服务：理解企业需求，提供实用方案\n- 持续学习：不断优化服务能力\n\n**通用服务范围：**\n- 📊 企业数据管理和分析\n- 📄 企业文档智能处理（腾讯文档、PDF、Excel）\n- 🔔 费用催缴提醒和服务跟进\n- 📋 企业工单管理和调度\n- 📈 KPI 报告自动生成\n- 🤝 C+ 增值服务管理\n- 💬 企微消息推送和通知\n\n**项目专属配置**请参考 `knowledge/PROJECT_KB.md`。\n\nFile v3.6.0:knowledge/HOW_TO_SHARE.md\n\n# 企服助手 - 分享指南\n\n## 🔗 分享方式\n\n### 方式一：分享技能包文件夹（推荐）\n\n将整个 `enterprise-service-assistant` 文件夹打包分享：\n\n```bash\n# 打包\ncd ~/.workbuddy/skills/\nzip -r enterprise-service-assistant.zip enterprise-service-assistant/\n```\n\n接收方解压到自己的 `~/.workbuddy/skills/` 目录即可。\n\n---\n\n### 方式二：通过 WorkBuddy 专家市场分享\n\n1. 将技能包发布到 WorkBuddy 专家市场\n2. 分享专家市场链接给其他用户\n3. 接收方在 WorkBuddy 中一键安装\n\n---\n\n### 方式三：GitHub 分享\n\n1. 将技能包推送到 GitHub 仓库\n2. 分享仓库地址\n3. 接收方通过 `git clone` 安装\n\n---\n\n## 📂 分享内容说明\n\n| 文件/目录 | 是否分享 | 说明 |\n|-----------|---------|------|\n| `AGENTS.md`, `SOUL.md`, `IDENTITY.md` 等通用层 | ✅ 分享 | 助手的行为和人格设定 |\n| `scripts/` | ✅ 分享 | 核心 Python 业务逻辑 |\n| `SKILL.md` | ✅ 分享 | 技能说明和触发词 |\n| `knowledge/TEMPLATE.md` | ✅ 分享 | 知识库模板 |\n| `knowledge/ONBOARDING.md` | ✅ 分享 | 新用户引导 |\n| `knowledge/PROJECT_KB.md` | ❌ 不分享 | 含用户私人数据配置 |\n| `USER.md`, `MEMORY.md`, `memory/` | ❌ 不分享 | 用户个人文件 |\n\n---\n\n## 🔒 隐私保护\n\n分享前请确认：\n\n- ✅ 已删除 `knowledge/PROJECT_KB.md`（如有）\n- ✅ 未将个人数据文件打包进去\n- ✅ `memory/` 目录为空或不存在\n\n接收方首次使用时会自动触发引导流程，创建自己的项目知识库。\n\n---\n\n## 💡 分享后的新用户体验\n\n新用户拿到技能包后：\n\n1. 解压到 `~/.workbuddy/skills/`\n2. 重启 WorkBuddy\n3. 首次对话时，企服助手自动检测缺少知识库\n4. 触发引导流程，帮助用户创建自己的 `PROJECT_KB.md`\n5. 填写完成后即可正常使用\n\n---\n\n## 📝 版本管理\n\n建议在 `AGENTS.md` 或 `SKILL.md` 中记录版本号，方便接收方了解技能包更新情况。\n\n当前版本：`v2.0.0`（完全自包含版）\n\nFile v3.6.0:knowledge/INSTALL.md\n\n# 企服助手 - 安装指南\n\n## 🚀 一键安装（推荐）\n\n在 WorkBuddy 对话框中输入：\n\n```\n@WorkBuddy 请帮我安装企业服务助手技能包\n```\n\n或直接导入技能包文件：\n\n```\n@WorkBuddy 导入技能 enterprise-service-assistant\n```\n\n---\n\n## 📦 手动安装\n\n### 方式一：从 GitHub 安装\n\n```bash\n# 在 WorkBuddy 终端中执行\ngit clone https://github.com/perrykono-debug/enterprise-service-assistant.git ~/.workbuddy/skills/enterprise-service-assistant\n```\n\n### 方式二：本地导入\n\n1. 下载 `enterprise-service-assistant` 技能包文件夹\n2. 放入 `~/.workbuddy/skills/` 目录\n3. 重启 WorkBuddy 会话\n\n---\n\n## ✅ 验证安装\n\n在 WorkBuddy 中执行：\n\n```\n@WorkBuddy 列出已安装的 skills\n```\n\n应能看到 `enterprise-service-assistant`。\n\n---\n\n## ⚙️ 配置项目知识库（必须！）\n\n安装完成后，需要为你的园区项目创建知识库：\n\n1. 复制模板：`knowledge/TEMPLATE.md` → `knowledge/PROJECT_KB.md`\n2. 填写你的项目信息（项目名称、数据文件路径、工作表结构）\n3. 告诉我 `\"知识库已配置，帮我验证一下\"`\n\n详细引导请参考 `knowledge/ONBOARDING.md`。\n\n---\n\n## 🔧 依赖技能\n\n企服助手依赖以下 WorkBuddy 技能（通常已预装）：\n\n- `docx` — Word 文档处理\n- `pdf` — PDF 文档处理\n- `xlsx` — Excel 表格处理\n- `tencent-docs` — 腾讯文档 MCP 工具\n- `online-search` — 联网搜索\n\n如缺少任一技能，WorkBuddy 会提示安装。\n\n---\n\n## 🆘 常见问题\n\n**Q: 安装后无法触发企服助手？**\nA: 确保技能包放在 `~/.workbuddy/skills/enterprise-service-assistant/` 目录下，并重启会话。\n\n**Q: 数据文件支持哪些格式？**\nA: 优先支持 `.xlsx`，也支持 `.csv` 和腾讯在线文档。\n\n**Q: 可以多人共享配置吗？**\nA: 通用层（AGENTS.md 等）可分享；项目知识库（PROJECT_KB.md）每人独立，互不可见。\n\nFile v3.6.0:knowledge/ONBOARDING.md\n\n# 🚀 新用户首次使用指南\n\n> 当 `knowledge/PROJECT_KB.md` 不存在或为空时，企服助手会自动展示此引导流程。\n\n---\n\n## 欢迎使用企服助手！ 🏢\n\n企服助手是你的园区企业服务智能助手，可以帮助你完成客户管理、费用催缴、工单调度等日常服务工作。\n\n在开始使用之前，你需要**创建自己的项目知识库**，这样我才能了解你的项目数据、通知渠道和业务规则。\n\n---\n\n## 📋 三步完成知识库配置\n\n### 第一步：准备你的业务数据\n\n你需要准备一份包含业务数据的文件（推荐 Excel 格式），通常包括：\n\n- **客户信息表** — 企业名称、联系人、合同信息等\n- **费用收缴表** — 应收/已收金额、缴费状态等\n- **报修记录表** — 工单信息、处理状态等\n- **库存管理表** — 物资名称、库存数量等\n\n> 💡 不必一次准备所有表，先有客户信息和费用数据就可以开始使用。\n\n### 第二步：填写项目知识库\n\n复制模板并填写你的项目信息：\n\n```\n复制: knowledge/TEMPLATE.md → knowledge/PROJECT_KB.md\n```\n\n需要填写的核心内容：\n\n| 配置项 | 说明 | 必填 |\n|--------|------|------|\n| 项目名称 | 你的园区/项目名称 | ✅ |\n| 数据文件路径 | Excel 文件的完整路径 | ✅ |\n| 工作表清单 | Excel 中每个工作表的名称和用途 | ✅ |\n| 通知渠道 | 企微 Webhook URL 等通知配置 | ⬜ |\n| 隐私规则 | 客户信息脱敏规则 | ⬜ |\n| 业务技能 | 启用哪些技能及参数 | ⬜ |\n\n> 💡 只有「项目名称」和「数据文件路径」是必须的，其他配置可以逐步完善。\n\n### 第三步：验证配置\n\n知识库创建完成后，告诉我：\n\n> \"知识库已配置，帮我验证一下\"\n\n我会自动：\n1. 读取你的数据文件，确认工作表结构\n2. 测试通知渠道连接\n3. 根据数据结构推荐适合的业务技能\n4. 生成首次验证报告\n\n---\n\n## 📁 文件结构说明\n\n```\nskill根目录/\n├── SKILL.md           ← 技能说明和触发词（不要修改）\n├── AGENTS.md          ← 通用配置（不要修改）\n├── SOUL.md            ← 通用人格设定（不要修改）\n├── IDENTITY.md        ← 通用身份设定（不要修改）\n├── TOOLS.md           ← 通用工具说明（不要修改）\n├── scripts/           ← 📂 核心业务逻辑（Python脚本，不要修改）\n├── knowledge/         ← 📂 项目知识库（你维护的部分）\n│   ├── PROJECT_KB.md  ← 你的项目知识库（核心！）\n│   ├── TEMPLATE.md    ← 知识库模板\n│   └── ONBOARDING.md  ← 本引导文件\n└── README.md          ← 技能说明文档\n```\n\n**关键区分**：\n- **通用文件** (SKILL.md, AGENTS.md, SOUL.md, IDENTITY.md, TOOLS.md) — 随 Skill 分享，不需要修改\n- **项目知识库** (knowledge/) — 每个用户独立，包含你的项目数据配置\n- **WorkBuddy 个人文件** (USER.md, MEMORY.md, memory/) — 在 WorkBuddy 主会话中维护，与 Skill 分离\n\n---\n\n## 🔧 常见问题\n\n### Q: 我的 Excel 数据格式和模板不一样怎么办？\nA: 没关系！在 `PROJECT_KB.md` 中描述你的工作表结构即可，我会自动适配。\n\n### Q: 可以不用企微通知吗？\nA: 可以。通知渠道是可选的，没有 Webhook 也能使用查询功能。\n\n### Q: 可以只启用部分技能吗？\nA: 当然可以！在 `PROJECT_KB.md` 的业务技能配置中选择启用/禁用。\n\n### Q: 数据文件可以放在哪里？\nA: 任何你能访问的本地路径都可以，建议放在固定位置并在知识库中记录完整路径。\n\n### Q: 以后想修改知识库怎么办？\nA: 直接编辑 `knowledge/PROJECT_KB.md` 即可，修改后告诉我，我会重新加载配置。\n\n---\n\n## ✅ 配置完成后\n\n你就可以使用以下功能了：\n\n- 📊 **查询客户** — `@企服助手 查询客户 T1-601`\n- 💰 **费用催缴** — `@企服助手 催缴检查`\n- 🔧 **创建工单** — `@企服助手 创建工单 位置 描述`\n- 📦 **库存检查** — `@企服助手 库存检查`\n- 📝 **续租检查** — `@企服助手 续租检查`\n\n开始创建你的知识库吧！ 🎉\n\nFile v3.6.0:knowledge/PROJECT_KB.md\n\n# 项目知识库 - 测试配置\n\n> 这是企服助手的测试配置文件\n\n---\n\n## 📋 项目基本信息\n\n- **项目名称**: 测试产业园\n- **项目类型**: 产业园区\n- **项目状态**: 测试环境\n- **创建日期**: 2026-06-11\n\n---\n\n## 📊 数据源配置\n\n### 主数据文件\n- **数据文件路径**: `<skill_dir>/test_data.xlsx`（skill 目录相对路径，本机实际路径由用户配置）\n- **数据文件说明**: 测试用Excel数据文件\n\n### 工作表清单\n| 工作表名 | 字段数 | 记录数 | 用途 |\n|---------|--------|--------|------|\n| 客户管理 | 20 | 10 | 客户档案管理 |\n| 费用收缴 | 15 | 50 | 费用催缴管理 |\n| 工单管理 | 12 | 30 | 报修工单管理 |\n| 库存管理 | 10 | 20 | 物资库存管理 |\n| 合同管理 | 18 | 10 | 合同续租管理 |\n| 走访记录 | 15 | 40 | C+服务走访记录 |\n\n---\n\n## 💬 通知渠道配置\n\n### 企微 Webhook（测试）\n- **Webhook URL**: `https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=TEST_KEY`\n- **群名称**: 测试群\n\n---\n\n## 🔒 隐私保护规则\n\n- **公司名脱敏规则**: 保留前2个字，其余用**替代\n- **联系人脱敏规则**: 保留姓氏，名字用*替代\n- **电话脱敏规则**: 保留前3位和后4位，中间用****替代\n\n---\n\n## 🏗️ 业务技能配置\n\n### 客户管理\n- **启用**: 是\n- **数据工作表**: 客户管理\n\n### 费用催缴\n- **启用**: 是\n- **逾期分级规则**: 1-7天静默/8-30天提醒/31天+升级\n- **催缴推送时间**: 每天10:00\n\n### 工单管理\n- **启用**: 是\n- **SLA分级**: 紧急1小时/普通24小时\n\n### 库存管理\n- **启用**: 是\n- **预警阈值**: 缺货<1个月/预警<3个月/关注<6个月\n\n### 合同续租\n- **启用**: 是\n- **预警天数**: 提前90天\n\n### C+服务匹配\n- **启用**: 是\n- **服务目录**: 政策申报、财税代账、法律顾问、知识产权\n\n### 走访管理\n- **启用**: 是\n- **走访频率规则**: A级每月/B级每季度/C级每半年\n\n---\n\n## 📋 定时任务配置\n\n| 任务名称 | 定时规则 | 触发技能 | 推送渠道 |\n|---------|---------|---------|---------|\n| 风险客户提醒日报 | 每天09:00 | 客户管理 | 企微群 |\n| 合同续租预警 | 每天09:00 | 合同续租 | 企微群 |\n| 费用催缴检查 | 每天10:00 | 费用催缴 | 企微群 |\n| C+服务需求分析 | 每天10:00 | C+服务匹配 | 企微群 |\n| 库存监控检查 | 每天09:00 | 库存监控 | 企微群 |\n| 工单SLA监控 | 每小时 | 工单管理 | 企微群 |\n| 走访计划生成 | 每周一09:00 | 走访管理 | 企微群 |\n\n---\n\n## 📝 备注\n\n这是一个测试配置文件，用于验证企服助手的功能是否正常。\n\n---\n\n**配置完成时间**: 2026-06-11 11:25\n\nFile v3.6.0:knowledge/TEMPLATE.md\n\n# 项目知识库模板\n\n> 复制此模板创建你自己的项目知识库。将文件命名为 `knowledge/PROJECT_KB.md`。\n\n---\n\n## 📋 项目基本信息\n\n- **项目名称**: _______________\n- **项目类型**: _______________（如：产业园区、写字楼、商业综合体等）\n- **项目状态**: _______________\n- **创建日期**: _______________\n\n---\n\n## 📊 数据源配置\n\n### 主数据文件\n<!-- 填写你的业务数据文件路径，支持 xlsx、csv 等 -->\n- **数据文件路径**: _______________\n- **数据文件说明**: _______________\n\n### 工作表清单\n<!-- 列出 Excel 中的工作表，包括字段数和用途 -->\n| 工作表名 | 字段数 | 记录数 | 用途 |\n|---------|--------|--------|------|\n| | | | |\n\n---\n\n## 💬 通知渠道配置\n\n### 企微 Webhook（如适用）\n- **Webhook URL**: _______________\n- **群名称**: _______________\n\n### 其他通知渠道\n- **邮件通知**: _______________\n- **短信通知**: _______________\n\n---\n\n## 🔒 隐私保护规则\n\n<!-- 定义你的隐私保护策略 -->\n- **公司名脱敏规则**: _______________\n- **联系人脱敏规则**: _______________\n- **电话脱敏规则**: _______________\n\n---\n\n## 🏗️ 业务技能配置\n\n<!-- 列出你要启用的业务技能及参数 -->\n\n### 客户管理\n- **启用**: 是/否\n- **数据工作表**: _______________\n\n### 费用催缴\n- **启用**: 是/否\n- **逾期分级规则**: _______________\n- **催缴推送时间**: _______________\n\n### 工单管理\n- **启用**: 是/否\n- **SLA分级**: _______________\n\n### 库存管理\n- **启用**: 是/否\n- **预警阈值**: _______________\n\n### 合同续租\n- **启用**: 是/否\n- **预警天数**: _______________\n\n### C+服务匹配\n- **启用**: 是/否\n- **服务目录**: _______________\n\n### 走访管理\n- **启用**: 是/否\n- **走访频率规则**: _______________\n\n---\n\n## 📋 定时任务配置\n\n| 任务名称 | 定时规则 | 触发技能 | 推送渠道 |\n|---------|---------|---------|---------|\n| | | | |\n\n---\n\n## 📋 常用命令\n\n<!-- 列出你常用的触发命令 -->\n- `@企服助手 _______________`\n\n---\n\n## 📝 备注\n\n<!-- 其他需要记录的项目信息 -->\n\n---\n\n## 🚀 新用户快速上手指南\n\n1. **复制模板**: 将此文件复制为 `knowledge/PROJECT_KB.md`\n2. **填写信息**: 根据你的项目填写上述各节\n3. **准备数据**: 将你的业务数据文件（Excel等）放到可访问的路径\n4. **配置通知**: 设置企微 Webhook 或其他通知渠道\n5. **启用技能**: 根据需要启用/禁用业务技能\n6. **测试验证**: 用简单命令测试各功能是否正常\n7. **调整参数**: 根据实际使用情况调整分级规则、阈值等\n\n详细步骤请参考 `knowledge/ONBOARDING.md`。\n\nFile v3.6.0:skill-card.md\n\n## Description:\n\nAssists park operations teams with daily work triage, tenant service management, follow-up tracking, local SQLite queries, and scheduled Tencent Docs synchronization.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[perrykono-debug](https://clawhub.ai/user/perrykono-debug)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEmployees and operations teams use this skill to manage park enterprise service workflows such as customer lookup, fee follow-up, work-order dispatch, inventory checks, contract-renewal warnings, visit planning, and KPI reporting.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can handle and mutate sensitive enterprise service data, including local SQLite and JSON records.\n\nMitigation: Review the skill before installation, back up Excel and SQLite data, and require transactional sync checks before enabling data writes.\n\nRisk: Scheduled sync, daemon mode, and automatic WeCom pushes can send or update operational data without timely human review.\n\nMitigation: Keep scheduled automation disabled until webhook allowlisting, redaction, and explicit approval controls are configured.\n\nRisk: Unpinned installation sources can make it harder to reproduce the reviewed release.\n\nMitigation: Install a pinned release matching the server release hash before deployment.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/perrykono-debug/skills/enterprise-service-assistant)\n- [README](artifact/README.md)\n- [Installation Guide](artifact/knowledge/INSTALL.md)\n- [Onboarding Guide](artifact/knowledge/ONBOARDING.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown responses with structured tables, inline commands, configuration examples, and Python code snippets.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May produce operational summaries, reminders, setup instructions, reports, and local data-management guidance.]\n\n## Skill Version(s):\n\n3.6.0 (source: SKILL.md frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.3.0: 53 files, 170313 bytes\n\nFiles: _meta.json (147b), agent-efficiency-manager/SKILL.md (5460b), AGENT.json (2489b), AGENTS.md (9443b), capabilities_overview_20260611.md (4922b), complaint-handling/SKILL.md (12122b), contract-renewal/SKILL.md (27660b), customer-management/SKILL.md (22586b), customer-onboarding/SKILL.md (55812b), enterprise-service-starter/SKILL.md (2999b), fee-collection/SKILL.md (8204b), HEARTBEAT.md (152b), IDENTITY.md (987b), inventory-monitor/SKILL.md (12253b), operations-analysis/SKILL.md (21837b), operations-monitoring/SKILL.md (26624b), performance-exception/SKILL.md (40817b), README.md (4035b), references/企业赋能_服务产品清单.md (4210b), references/安装指引.md (6802b), references/数据源_增值服务记录.md (1368b), references/数据源_客户管理表.md (1781b), references/数据源_费用收缴表.md (1636b), references/知识库配置.md (7334b), satisfaction-survey/SKILL.md (10131b), scripts/__init__.py (572b), scripts/contract_renewal.py (24194b), scripts/contract-renewal__data_manager.py (7436b), scripts/contract-renewal__example.py (591b), scripts/contract-renewal__reminder_generator.py (6671b), scripts/contract-renewal__wecom_sender.py (6140b), scripts/customer-management__example.py (597b), scripts/daily_check_simple.py (1526b), scripts/data_manager.py (3765b), scripts/example.py (587b), scripts/fee_calculator.py (5160b), scripts/inventory-monitor__example.py (593b), scripts/reminder_generator.py (8060b), scripts/service-matching__example.py (591b), scripts/visit_manager.py (11685b), scripts/visit_scoring.py (9403b), scripts/visit-management__data_manager.py (7556b), scripts/visit-management__example.py (591b), scripts/visit-management__reminder_generator.py (7003b), scripts/wecom_sender.py (6786b), scripts/workorder-dispatch__example.py (595b), service-matching/SKILL.md (16375b), skill-card.md (3454b), SKILL.md (44983b), SOUL.md (1946b), TOOLS.md (1012b), visit-management/SKILL.md (24577b), workorder-dispatch/SKILL.md (15278b)\n\nFile v2.3.0:agent-efficiency-manager/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: agent-efficiency-manager\ndescription: Agent 效率优化与自我进化管理器。定期分析所有 Agent 的 token 使用效率，识别可优化的技能配置，从 skillhub 发现并推荐新技能，自动推送优化建议，长期跟踪效率指标实现自我进化。触发场景：(1) 用户要求\"优化 agent\"、\"降低 token 成本\"、\"提升效率\", (2) 定期效率分析与推送, (3) 发现新技能并评估适用性, (4) 生成效率报告与优化建议\n---\n\n# Agent Efficiency Manager\n\nAgent 效率优化与自我进化管理器，通过定期分析、智能推荐和持续跟踪，实现 Agent 长期自我优化。\n\n## Workflow Decision Tree\n\n```\n用户请求优化\n    ├─ 分析模式 → Run analyze_agent_efficiency.py\n    ├─ 推荐模式 → Run fetch_skillhub_skills.py + generate_recommendations.py\n    ├─ 跟踪模式 → Run track_metrics.py\n    └─ 推送模式 → Run push_notifications.py\n```\n\n## Core Capabilities\n\n### 1. 效率分析（analyze_agent_efficiency.py）\n\n扫描 `openclaw.json` 中所有 Agent 配置，计算效率指标：\n\n**指标定义（参见 references/metrics_definitions.md）：**\n- `skill_count`：技能数量\n- `estimated_tokens`：预估 token 消耗（每个 skill 约 500-1000 tokens）\n- `efficiency_score`：效率评分（0-100，基于 skill 相关度）\n- `redundancy_count`：重复/无关技能数量\n\n**执行：**\n```bash\npython3 scripts/analyze_agent_efficiency.py --config ~/.qclaw/openclaw.json --output metrics.json\n```\n\n**输出：** JSON 格式效率报告，包含每个 Agent 的详细指标和优化建议。\n\n---\n\n### 2. 技能推荐（fetch_skillhub_skills.py + generate_recommendations.py）\n\n从 skillhub 获取可用技能列表，基于 Agent 角色推荐适配技能：\n\n**执行：**\n```bash\n# 步骤1：获取 skillhub 技能列表\npython3 scripts/fetch_skillhub_skills.py --output available_skills.json\n\n# 步骤2：生成推荐\npython3 scripts/generate_recommendations.py --config ~/.qclaw/openclaw.json --available available_skills.json --output recommendations.json\n```\n\n**推荐逻辑（参见 references/recommendation_logic.md）：**\n- 匹配 Agent 角色与技能描述\n- 排除已安装的技能\n- 优先推荐高评分、高频使用的技能\n- 检测技能冲突（功能重复）\n\n---\n\n### 3. 指标跟踪（track_metrics.py）\n\n长期记录效率指标，生成趋势分析：\n\n**执行：**\n```bash\npython3 scripts/track_metrics.py --config ~/.qclaw/openclaw.json --history metrics_history.json --output trend_report.md\n```\n\n**跟踪内容：**\n- Token 消耗趋势（按周/月）\n- 技能数量变化\n- 效率评分演变\n- 优化建议采纳率\n\n---\n\n### 4. 自动推送（push_notifications.py）\n\n通过企微/腾讯文档推送优化建议：\n\n**执行：**\n```bash\npython3 scripts/push_notifications.py --recommendations recommendations.json --channel wecom --webhook YOUR_WEBHOOK_URL\n```\n\n**推送内容：**\n- 每周效率报告\n- 新技能推荐（附使用场景说明）\n- 配置优化建议（具体 skills 增删列表）\n- 成本节省预估\n\n---\n\n## Quick Start\n\n### 场景 1：全量效率分析\n\n用户说：\"分析所有 Agent 的效率，给出优化建议\"\n\n**执行流程：**\n1. 运行 `analyze_agent_efficiency.py` 生成效率报告\n2. 运行 `fetch_skillhub_skills.py` 获取可用技能\n3. 运行 `generate_recommendations.py` 生成推荐\n4. 输出综合优化建议（Markdown 格式）\n\n### 场景 2：定期监控与推送\n\n用户说：\"每周一早上 9 点推送效率报告\"\n\n**执行流程：**\n1. 创建 cron 任务（`qclaw-cron-skill`）\n2. 定时运行分析脚本\n3. 生成报告并推送（企微/webchat）\n\n### 场景 3：技能发现与评估\n\n用户说：\"有没有新技能可以提升 Stock 大作手的效果？\"\n\n**执行流程：**\n1. 运行 `fetch_skillhub_skills.py`\n2. 针对 \"stock\" Agent 运行 `generate_recommendations.py`\n3. 输出推荐技能列表（含评分和理由）\n\n---\n\n## Optimization Patterns\n\n常见优化模式（详见 references/optimization_patterns.md）：\n\n| 模式 | 做法 | Token 节省 |\n|------|------|-------------|\n| **去重** | 移除 `another_them` / `another-them` 重复 | ~1000 |\n| **去无关** | 移除跨领域技能（股票 Agent 不留房产技能） | ~500-2000 |\n| **精简基础** | 只保留 1-2 个基础配置技能 | ~500-1000 |\n| **按需启用** | 一次性工具（如 `qclaw-migration`）不常驻 | ~500 |\n\n---\n\n## Resources\n\n### scripts/\n\n- `analyze_agent_efficiency.py`：效率分析脚本\n- `fetch_skillhub_skills.py`：获取 skillhub 技能列表\n- `generate_recommendations.py`：生成优化建议\n- `track_metrics.py`：跟踪长期指标\n- `push_notifications.py`：推送通知\n\n### references/\n\n- `metrics_definitions.md`：效率指标定义与计算方法\n- `optimization_patterns.md`：常见优化模式与案例\n- `recommendation_logic.md`：技能推荐逻辑详解\n\n### assets/\n\n（本技能无需静态资源）\n\n---\n\n## Notes\n\n- **预估 token 消耗**：每个 skill 的 SKILL.md 约 500-1000 tokens，实际消耗取决于模型和内容长度\n- **安全操作**：所有优化建议默认为\"建议\"模式，需用户确认后才执行 `config.patch`\n- **定期运行**：建议每周运行一次完整分析，每日运行快速检查\n- **自我进化**：跟踪优化建议的采纳情况，持续改进推荐算法\n\nFile v2.3.0:complaint-handling/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: complaint-handling\ndescription: 客户投诉处理技能。基于《C+基础保障服务手册-企服管理工作规程》第十三章，实现规范的投诉处理流程，包括投诉分类、处理时限、回访管理等。触发场景：(1) 客户投诉受理（电话/邮件/走访/400热线），(2) 投诉分类与定级（重大/升级/一般），(3) 投诉处理跟进与闭环，(4) 投诉回访与统计分析。\nlicense: Proprietary. LICENSE.txt has complete terms\n---\n\n# 客户投诉处理技能\n\n## 概述\n\n本技能基于《C+基础保障服务手册-企服（含产促中心）管理工作规程》（{TODO: 填写文件编号}）第十三章，实现规范的客户投诉处理流程。\n\n## 核心流程\n\n### 1. 投诉受理与分类\n\n#### 投诉定义\n投诉是指投诉人认为其合法权益受到损害或其需求没有得到满足而向物业公司或有关部门提出诉求的行为。\n\n#### 投诉分类\n\n**按责任边界分类：**\n- **有效投诉**：因物业管理责任导致客户不满意而产生的投诉\n- **无效投诉**：物业规范操作，因客户误解或第三方责任引发的投诉\n\n**按性质分类：**\n- **重大投诉**：\n  - 造成客户人身伤害、重大财产损失\n  - 对公司品牌形象和社会声誉产生重大负面影响\n\n- **升级投诉**：\n  1. 网络媒体投诉（主流媒体、电视台、报纸、网站、论坛负面报道）\n  2. 上级单位投诉（上级单位或政府部门转入）\n  3. 客户群诉（≥5人有组织联合投诉）\n  4. 重复投诉（对处理效率或结果不满意引发多次投诉）\n  5. 安全风险类投诉（重大安全隐患、设备运行故障）\n  6. 职业道德类投诉（侵占财物、泄露隐私、肢体冲突）\n  7. 涉及赔付类投诉（客户提出赔付诉求）\n\n- **一般投诉**：重大投诉、升级投诉之外的其他投诉\n\n**按内容分类：**\n1. 安全服务类：公共秩序维护、管理不到位\n2. 公共设施设备维护类：房屋毗连及附属设施维修养护不到位\n3. 保洁服务类：清洁卫生、垃圾清运、四害消杀不到位\n4. 绿化养护类：绿化植物、草坪养护不到位\n5. 装修管理类：噪音施工、违规搭建、装修垃圾清运不到位\n6. 服务人员类：专业能力不足或服务态度问题\n7. 其他类：收费管理、多种经营、园区文化工作不到位\n\n### 2. 投诉处理原则\n\n#### 及时响应原则\n- 所有客户投诉须在**30分钟内**作出响应\n- 投诉正常处理时限为**一周**（7日）内完成从受理到关闭\n- 不能及时处理完毕的需持续跟进，定期告知客户处理进度\n\n#### 诚信原则\n注重承诺和契约，以诚信为本，通过妥善处理建立客户信任。\n\n#### 专业原则\n秉持专业精神，利用专业知识、专业技能有效处理投诉问题。\n\n### 3. 投诉处理流程\n\n#### 步骤1：投诉接待受理\n- 遵循**\"首接责任制\"**\n- 首接责任人认真倾听并将投诉信息如实记录在**四格互联投诉平台**\n- 投诉受理渠道：\n  - 全国投诉监督服务热线：4009697966\n  - 四格互联服务平台\n  - 客户来访及邮件\n\n#### 步骤2：投诉处理及跟进\n\n**调查核实（24小时内）：**\n- 企服部负责人及时对客户投诉事件进行调查核实\n- 对于不清楚的信息，应在30分钟内与客户核实确认\n- 在投诉受理后**24小时内**回复客户解决方案或处理进度\n- 对于网络论坛的投诉，应在24小时内以园区公司分子公司/项目负责人身份在论坛中回复客户\n\n**联合处理：**\n- 客户投诉问题需公司多部门协商解决的，企服部负责人及时召集相关部门共同商讨\n- 联合制定投诉处理方案，协调并全程跟进直至关闭\n\n**重大投诉处理：**\n- 对于重大投诉，须启动**危机事件处理预案**\n- 将投诉信息上报物业事业部品质部协助处理\n\n**延期处理：**\n- 因维修配件采购时间较长或需要相关方协助处理的复杂投诉，可申请延期\n- 最长不超过**7天**\n- 升级投诉处理延期由物业事业部品质部负责批准\n\n#### 步骤3：投诉关闭及回访\n\n**回访要求：**\n- 客户投诉问题处理完毕后，企服部负责人对投诉性质进行判定\n- 企服部对**有效投诉客户进行电话回访，回访率为100%**\n\n**不满意处理：**\n- 如客户不同意处理方案或对处理结果不满意，投诉流程转责任人重新处理\n\n**特殊情况报备：**\n- 对特殊事件可能引发的客户群诉，项目可在四格互联服务平台添加项目紧急对客口径\n- 须向分子公司负责人及品质管理人员进行汇报\n- 如有必要应向物业事业部品质部报备相关情况\n\n### 4. 投诉管控考核\n\n#### 考核维度\n1. **指标考核**：\n   - 投诉数量\n   - 响应及时度\n   - 投诉处理\n   - 回访率\n   - 客户回访满意度\n\n2. **过程评价**：\n   - 对于投诉频发而未及时响应、无具体解决措施的单位，给予通报批评并纳入考核评价\n\n3. **问责处理**：\n   - 对于重大投诉、升级投诉的相关责任人给予问责及绩效考核处理\n\n## 职责分配\n\n### 物业事业部品质部\n1. 全面统筹投诉管理工作\n2. 设立4009697966监督投诉中心，对客户投诉进行监控、受理及回访调查\n3. 重大投诉、升级投诉上报园区公司领导，协助妥善处理，避免对公司品牌造成负面影响\n4. 对公司所有客户投诉数据进行统计分析，制定公司层面的投诉预防及改进机制\n5. 针对投诉管控效果进行年终考核目标评价\n\n### 分子公司\n1. 在物业事业部投诉管理制度的基础上，编制符合当地要求的投诉管控细则，完善投诉处理流程\n2. 对客户投诉进行调查核实，跟进投诉处理结果，协助项目处理疑难投诉问题\n3. 监督所属城市客户投诉实施情况，保证客户投诉渠道畅通\n4. 对所属公司客户投诉数据进行统计分析，定期编制客户投诉管控报表\n5. 针对客户投诉的焦点问题，形成系统性的整改措施\n6. 定期召开投诉管控专题会议，编制客户投诉处理经典案例，提升投诉处理能力\n\n### 物业服务中心（企服部）\n1. 负责客户投诉的日常接待、处理、结果反馈及回访\n2. 设置客户投诉接待场所，在园区、楼栋、企服中心等显要位置公布客户投诉监督电话（4009697966），保证投诉渠道畅通\n3. 针对投诉的客户开展客户回访，协助项目修复客户关系；持续改进和提升管理服务工作，预防投诉发生\n\n## 支持性文件及相关记录\n\n| 文件编号 | 支持性文件名称 | 版式 |\n|---------|--------------|------|\n| {TODO: 填写表单编号} | 《客户投诉记录表》 | 表单 |\n| {TODO: 填写表单编号} | 《投诉汇总表》 | 表单 |\n| {TODO: 填写表单编号} | 《投诉处理及回访记录表》 | 表单 |\n\n## 使用场景\n\n### 场景1：客户投诉受理\n**触发条件**：客户通过电话/邮件/走访/400热线提出投诉\n\n**处理流程**：\n1. 接待客户投诉遵循\"首接责任制\"\n2. 30分钟内响应，记录投诉信息到四格互联投诉平台\n3. 24小时内回复客户解决方案或处理进度\n4. 7日内完成从受理到关闭（可申请延期最长7天）\n\n### 场景2：投诉分类与定级\n**触发条件**：接收到客户投诉后\n\n**处理流程**：\n1. 判断投诉责任边界（有效/无效）\n2. 判断投诉性质（重大/升级/一般）\n3. 判断投诉内容分类（安全服务/设施设备/保洁/绿化/装修/服务人员/其他）\n4. 根据分类定级确定处理优先级和资源调配\n\n### 场景3：投诉处理跟进与闭环\n**触发条件**：投诉处理过程中\n\n**处理流程**：\n1. 企服部负责人及时调查核实\n2. 需要多部门协商的，召集相关部门共同商讨\n3. 重大投诉启动危机事件处理预案，上报物业事业部品质部\n4. 持续跟进直至投诉关闭\n5. 100%回访有效投诉客户\n\n### 场景4：投诉统计分析\n**触发条件**：定期（每月/每季度）\n\n**处理流程**：\n1. 统计投诉数量、响应及时度、处理情况、回访率、客户满意度\n2. 分析投诉焦点问题，形成系统性整改措施\n3. 编制客户投诉管控报表\n4. 召开投诉管控专题会议，编制经典案例\n\n## 数据源配置\n\n主数据源：`/Users/mac/示例产业园AC+服务.xlsx`\n\n**相关数据表**：\n- 客户信息表（用于客户身份核实）\n- 投诉记录表（用于记录投诉信息）\n- 投诉处理记录表（用于处理过程跟踪）\n- 回访记录表（用于回访管理）\n\n## 输出示例\n\n### 投诉记录表\n```\n投诉编号：TS-2024-001\n投诉日期：2024-01-15\n投诉客户：上海XX科技有限公司\n联系电话：1XX-XXXX-XXXX\n投诉方式：电话投诉\n投诉内容：办公楼走廊照明损坏，已损坏3天未修复\n投诉分类：有效投诉-一般投诉-公共设施设备维护类\n受理人：张三\n受理时间：2024-01-15 14:30\n response时限：2024-01-22 14:30\n处理状态：处理中\n调查情况：工程部已现场检查，需要更换LED灯管\n解决方案：已采购灯管，预计1月17日完成更换\n预计完成时间：2024-01-17\n实际完成时间：\n客户满意度：\n回访情况：\n```\n\n### 投诉汇总表\n```\n序号 | 投诉编号 | 投诉日期 | 客户名称 | 投诉分类 | 责任部门 | 处理状态 | 是否超时 | 客户满意度 | 备注\n1 | TS-2024-001 | 2024-01-15 | 上海XX科技 | 设施设备类 | 工程部 | 已完成 | 否 | 满意 | \n2 | TS-2024-002 | 2024-01-16 | 深圳XX贸易 | 安全服务类 | 安管部 | 处理中 | 否 | - | \n```\n\n## 关键指标\n\n### 服务质量指标\n- **响应及时率**：30分钟内响应率 = 100%\n- **处理及时率**：7日内完成率 ≥ 95%\n- **回访率**：有效投诉回访率 = 100%\n- **客户满意度**：回访满意度 ≥ 90%\n\n### 分类统计指标\n- 有效投诉 vs 无效投诉比例\n- 重大/升级/一般投诉比例\n- 各类内容投诉分布（安全/设施/保洁/绿化/装修/服务/其他）\n- 各部门投诉处理及时率和满意度\n\n## 与其他技能的协作\n\n### 与visit-management协作\n- 客户走访中发现的问题可能演变为投诉\n- 投诉处理后的客户满意度需要后续走访跟进\n\n### 与customer-management协作\n- 投诉客户的画像分析（投诉频率、投诉类型、处理满意度）\n- 高风险客户识别（多次投诉、重大投诉）\n\n### 与fee-collection协作\n- 因费用问题引发的投诉处理\n- 投诉客户可能拖欠费用\n\n### 与satisfaction-survey协作\n- 投诉处理满意度是客户满意度调查的重要组成部分\n- 投诉数据用于满意度分析\n\n## 注意事项\n\n1. **首接责任制**：第一个接待投诉的人员负责全程跟进（除非需要转交）\n2. **30分钟响应**：所有投诉必须30分钟内响应，这是红线要求\n3. **7日处理时限**：正常投诉7日内关闭，延期最长7天\n4. **100%回访**：有效投诉必须100%回访\n5. **重大投诉上报**：重大投诉必须启动预案并上报\n6. **数据保密**：投诉客户隐私信息必须保密\n7. **持续改进**：定期分析投诉数据，形成整改措施\n\n## 扩展功能\n\n### 智能预警\n- 识别重复投诉客户（同一客户多次投诉）\n- 识别处理超时风险（接近7日时限未关闭）\n- 识别重大投诉风险（可能涉及人身伤害、重大损失）\n\n### 自动化工单\n- 投诉受理后自动生成工单\n- 根据投诉分类自动分派给责任部门\n- 自动跟踪处理进度并提醒\n\n### 数据分析报告\n- 自动生成月度/季度投诉分析报告\n- 识别投诉热点问题和趋势\n- 提出针对性改进建议\n\n## 总结\n\n本技能基于《C+基础保障服务手册》第十三章，实现了规范的客户投诉处理流程。通过明确的分类标准、严格的处理时限、100%回访要求，确保客户投诉得到及时、专业、有效的处理，持续提升客户满意度。\n\nFile v2.3.0:contract-renewal/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: contract-renewal\ndescription: 合同续租预警与方案生成技能。基于真实Excel台账（示例产业园AC+服务.xlsx）提前识别到期合同，分析企业画像，生成续租方案。触发场景：(1) 定时任务每日09:00检查合同到期日期，(2) 提前3个月标记\"续租预警\"，(3) 手动触发续租检查（@企服助手 续租检查）。\n---\n\n> **📌 本技能已自包含，无需安装 customer-management**\n>\n> 所有客户管理逻辑（查询客户档案、构建客户画像、计算风险标记）已内联到本文件中，不依赖外部技能。\n\n# 合同续租预警与方案生成技能 (Contract Renewal Skill)\n\n## 功能概述\n\n本技能用于自动化合同续租管理，基于示例产业园A真实Excel台账，提前识别到期合同，分析企业画像，生成个性化续租方案，并推送给招商人员和管家进行审批。\n\n---\n\n## 数据源配置\n\n**数据文件**: `/Users/mac/示例产业园AC+服务.xlsx`\n\n**工作表映射**:\n| 功能模块 | 工作表名 | 用途 |\n|---------|---------|------|\n| **客户档案** | 👨客户管理👨 | 主数据源（截至日期、企业类型、等级） |\n| **费用收缴** | 👨💼费用收缴👨💼 | 补充数据（历史缴费记录） |\n| **C+服务记录** | C+服务记录 | 补充数据（历史服务记录） |\n| **客户画像** | customer-management技能 | 聚合分析企业画像 |\n\n---\n\n## 客户管理逻辑（内联）\n\n> 以下逻辑已从 customer-management 技能内联，无需外部依赖。\n\n### 数据结构与辅助函数\n\n```python\nimport openpyxl\nfrom datetime import datetime\n\ndef parse_excel_date(date_value):\n    \"\"\"\n    解析Excel日期（支持多种格式）\n    \"\"\"\n    if isinstance(date_value, datetime):\n        return date_value.date()\n    if isinstance(date_value, str):\n        # 尝试解析 \"2025年3月1日\" 格式\n        try:\n            return datetime.strptime(date_value, \"%Y年%m月%d日\").date()\n        except:\n            pass\n        # 尝试解析 \"2025-03-01\" 格式\n        try:\n            return datetime.strptime(date_value, \"%Y-%m-%d\").date()\n        except:\n            pass\n    return None\n\ndef build_customer_dict(headers, row):\n    \"\"\"\n    将Excel行数据构建为字典\n    \"\"\"\n    return dict(zip(headers, row))\n```\n\n### 1. query_customer_profile（查询客户档案）\n\n```python\ndef query_customer_profile(unit_no=None, tenant_name=None, contract_no=None):\n    \"\"\"\n    查询客户档案\n    \n    Args:\n        unit_no: 单元号（如 T1-601）\n        tenant_name: 租户名（支持模糊匹配）\n        contract_no: 合同号\n    \n    Returns:\n        dict: 客户完整档案信息\n    \"\"\"\n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    ws = wb['👨客户管理👨']\n    \n    headers = [cell.value for cell in ws[1]]\n    \n    for row in ws.iter_rows(min_row=2, values_only=True):\n        # 匹配条件\n        if unit_no and row[5] == unit_no:  # 单元号\n            return build_customer_dict(headers, row)\n        if tenant_name and tenant_name in str(row[6]):  # 租户名模糊匹配\n            return build_customer_dict(headers, row)\n        if contract_no and row[4] == contract_no:  # 合同号\n            return build_customer_dict(headers, row)\n    \n    return None\n```\n\n### 2. build_customer_portrait（构建客户画像）\n\n```python\ndef build_customer_portrait(unit_no):\n    \"\"\"\n    构建客户画像 - 聚合多个数据源\n    \n    Args:\n        unit_no: 单元号（主键）\n    \n    Returns:\n        dict: 客户画像（包含服务、费用、报修等汇总）\n    \"\"\"\n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    \n    portrait = {\n        \"基础信息\": query_customer_profile(unit_no),\n        \"服务记录\": [],\n        \"费用记录\": [],\n        \"能耗记录\": [],\n        \"报修记录\": [],\n        \"风险标记\": []\n    }\n    \n    # 1. 查询C+服务记录（关联字段：租户名）\n    ws_service = wb['C+服务记录']\n    tenant_name = portrait[\"基础信息\"][\"租户名\"] if portrait[\"基础信息\"] else \"\"\n    \n    for row in ws_service.iter_rows(min_row=2, values_only=True):\n        if row[0] == tenant_name:  # 关联客户字段\n            portrait[\"服务记录\"].append({\n                \"走访时间\": row[1],\n                \"走访管家\": row[2],\n                \"客户情绪\": row[3],\n                \"成交情况\": row[4],\n                \"服务类别\": row[5],\n                \"成交金额\": row[6],\n                \"详情记录\": row[7]\n            })\n    \n    # 2. 查询费用收缴记录（关联字段：单元号）\n    ws_fee = wb['👨💼费用收缴👨💼']\n    \n    for row in ws_fee.iter_rows(min_row=2, values_only=True):\n        if row[1] == unit_no:  # 单元号\n            portrait[\"费用记录\"].append({\n                \"合同编号\": row[0],\n                \"费项项目\": row[3],\n                \"应收金额\": row[4],\n                \"已收金额\": row[6],\n                \"欠收金额\": row[8],\n                \"是否支付\": row[9],\n                \"月份\": row[13]\n            })\n    \n    # 3. 查询能耗收缴记录（关联字段：单元号）\n    ws_energy = wb['👨💼能耗收缴👨💼']\n    \n    for row in ws_energy.iter_rows(min_row=2, values_only=True):\n        if row[0] == unit_no:  # 单元号\n            portrait[\"能耗记录\"].append({\n                \"租户名\": row[1],\n                \"应收金额\": row[2],\n                \"已收金额\": row[3],\n                \"欠费金额\": row[4],\n                \"是否支付\": row[5],\n                \"月份\": row[6]\n            })\n    \n    # 4. 查询报修记录（关联字段：楼层/单元）\n    ws_repair = wb['🛠️报修情况汇总🛠️']\n    \n    for row in ws_repair.iter_rows(min_row=2, values_only=True):\n        if unit_no in str(row[0]):  # 楼层/单元匹配\n            portrait[\"报修记录\"].append({\n                \"楼层/单元\": row[0],\n                \"紧急程度\": row[1],\n                \"报修细节描述\": row[2],\n                \"报修人员\": row[4],\n                \"报修时间\": row[5],\n                \"维修人员\": row[6],\n                \"维修跟进状态\": row[7]\n            })\n    \n    # 5. 计算风险标记\n    portrait[\"风险标记\"] = calculate_risk_tags(portrait)\n    \n    return portrait\n```\n\n### 3. calculate_risk_tags（计算风险标记）\n\n```python\ndef calculate_risk_tags(portrait):\n    \"\"\"\n    计算客户风险标记\n    \n    Returns:\n        list: 风险标记列表（如 [\"欠费风险\", \"流失风险\"]）\n    \"\"\"\n    risks = []\n    \n    # 1. 欠费风险判断\n    欠费总额 = 0\n    for fee in portrait[\"费用记录\"]:\n        if fee[\"是否支付\"] == \"否\":\n            欠费金额 = float(fee[\"欠收金额\"]) if fee[\"欠收金额\"] else 0\n            欠费总额 += 欠费金额\n    \n    if 欠费总额 > 50000:\n        risks.append(f\"🚨 高欠费风险（欠费¥{欠费总额:.2f}）\")\n    elif 欠费总额 > 10000:\n        risks.append(f\"⚠️ 中度欠费风险（欠费¥{欠费总额:.2f}）\")\n    elif 欠费总额 > 0:\n        risks.append(f\"📢 轻度欠费提醒（欠费¥{欠费总额:.2f}）\")\n    \n    # 2. 流失风险判断（续租预警）\n    基础信息 = portrait[\"基础信息\"]\n    if 基础信息:\n        截至日期 = parse_excel_date(基础信息.get(\"截至日期\"))\n        if 截至日期:\n            剩余天数 = (截至日期 - datetime.now().date()).days\n            \n            if 剩余天数 <= 30:\n                risks.append(f\"🚨 流失风险（合同剩余{剩余天数}天）\")\n            elif 剩余天数 <= 90:\n                risks.append(f\"⚠️ 续租预警（合同剩余{剩余天数}天）\")\n    \n    # 3. 投诉/报修频率判断\n    报修次数 = len(portrait[\"报修记录\"])\n    if 报修次数 >= 3:  # 最近报修次数>=3\n        risks.append(f\"⚠️ 高频报修（{报修次数}次）\")\n    \n    # 4. 服务满意度判断\n    满意记录 = [s for s in portrait[\"服务记录\"] if s[\"客户情绪\"] == \"满意\"]\n    总记录 = len(portrait[\"服务记录\"])\n    \n    if 总记录 > 0 and len(满意记录) / 总记录 < 0.5:\n        risks.append(f\"⚠️ 低满意度（满意率{len(满意记录)/总记录*100:.1f}%）\")\n    \n    return risks\n```\n\n---\n\n## 核心逻辑\n\n### 1. 续租预警扫描\n\n```python\ndef scan_renewal_alerts():\n    \"\"\"\n    扫描即将到期的合同，生成续租预警\n    \n    Returns:\n        dict: 分类预警清单\n    \"\"\"\n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    ws_customer = wb['👨客户管理👨']\n    \n    today = datetime.now().date()\n    \n    alerts = {\n        \"红色预警\": [],  # ≤30天\n        \"黄色预警\": [],  # 31-60天\n        \"绿色提醒\": []   # 61-90天\n    }\n    \n    # 遍历客户管理表\n    for row in ws_customer.iter_rows(min_row=2, values_only=True):\n        status = row[12]  # 状态\n        \n        if status == \"签约\":\n            unit_no = row[5]      # 单元号\n            tenant_name = row[6]  # 租户名\n            lease_end_str = row[11]  # 截至日期\n            \n            # 解析截至日期\n            lease_end = parse_excel_date(lease_end_str)\n            \n            # 计算剩余天数\n            days_remaining = (lease_end - today).days\n            \n            if days_remaining <= 90 and days_remaining > 0:\n                # 直接调用内联函数获取企业画像\n                customer_portrait = build_customer_portrait(unit_no)\n                \n                alert = {\n                    \"单元号\": unit_no,\n                    \"租户名\": tenant_name,\n                    \"截至日期\": lease_end,\n                    \"剩余天数\": days_remaining,\n                    \"企业画像\": customer_portrait\n                }\n                \n                # 分级归档\n                if days_remaining <= 30:\n                    alerts[\"红色预警\"].append(alert)\n                elif days_remaining <= 60:\n                    alerts[\"黄色预警\"].append(alert)\n                else:\n                    alerts[\"绿色提醒\"].append(alert)\n    \n    return alerts\n```\n\n### 2. 企业画像分析（基于客户画像数据）\n\n```python\ndef analyze_enterprise_for_renewal(unit_no):\n    \"\"\"\n    分析企业画像，为续租方案提供依据\n    \n    Args:\n        unit_no: 单元号\n    \n    Returns:\n        dict: 企业画像分析结果\n    \"\"\"\n    # 直接调用内联函数获取客户画像\n    portrait = build_customer_portrait(unit_no)\n    \n    # 1. 计算缴费准时率\n    费用记录 = portrait[\"费用记录\"]\n    已支付数 = len([f for f in 费用记录 if f[\"是否支付\"] == \"是\"])\n    总费用数 = len(费用记录)\n    缴费准时率 = 已支付数 / 总费用数 if 总费用数 > 0 else 0\n    \n    # 2. 计算服务满意度\n    服务记录 = portrait[\"服务记录\"]\n    满意数 = len([s for s in 服务记录 if s[\"客户情绪\"] == \"满意\"])\n    总服务数 = len(服务记录)\n    满意度 = 满意数 / 总服务数 if 总服务数 > 0 else 0\n    \n    # 3. 计算服务成交率\n    成交数 = len([s for s in 服务记录 if s[\"成交情况\"] == \"是\"])\n    成交率 = 成交数 / 总服务数 if 总服务数 > 0 else 0\n    \n    # 4. 风险标记\n    风险标记 = portrait[\"风险标记\"]\n    \n    return {\n        \"缴费准时率\": 缴费准时率,\n        \"满意度\": 满意度,\n        \"成交率\": 成交率,\n        \"风险标记\": 风险标记,\n        \"等级\": portrait[\"基础信息\"][\"等级\"],\n        \"企业类型\": portrait[\"基础信息\"][\"企业类型\"]\n    }\n```\n\n### 3. 续租方案生成算法\n\n```python\ndef generate_renewal_plan(unit_no):\n    \"\"\"\n    根据企业画像生成续租方案\n    \n    Args:\n        unit_no: 单元号\n    \n    Returns:\n        dict: 续租方案\n    \"\"\"\n    # 获取企业画像分析\n    analysis = analyze_enterprise_for_renewal(unit_no)\n    \n    # 直接调用内联函数获取客户档案\n    portrait = query_customer_profile(unit_no)\n    \n    # 根据画像选择方案模板\n    if analysis[\"缴费准时率\"] >= 0.95 and analysis[\"满意度\"] >= 0.8:\n        # 优质企业 → 原条件续租\n        plan_type = \"A\"\n        proposed_rent = portrait[\"首年合同单价\"]  # 维持原价\n        discount_rate = 1.0\n        incentive_policy = \"无\"\n    elif analysis[\"成交率\"] >= 0.3 or analysis[\"等级\"] == \"A\":\n        # 潜力企业 → 优惠续租\n        plan_type = \"B\"\n        proposed_rent = portrait[\"首年合同单价\"] * 1.05  # 小幅上涨\n        discount_rate = 0.95  # 95折\n        incentive_policy = \"首月租金减免10%\"\n    else:\n        # 一般企业 → 市场化续租\n        plan_type = \"C\"\n        proposed_rent = get_market_rent(unit_no)  # 市场价\n        discount_rate = 1.0\n        incentive_policy = \"无\"\n    \n    return {\n        \"方案类型\": plan_type,\n        \"建议租金\": proposed_rent,\n        \"优惠折扣\": discount_rate,\n        \"优惠政策\": incentive_policy,\n        \"企业画像\": analysis\n    }\n```\n\n---\n\n## 续租预警推送模板\n\n### 红色预警（≤30天）\n\n```\n━━━━━━━━━━━━━━━\n【续租红色预警】\n\n🏢 企业：{tenant_name}\n📍 单元：{unit_no}\n📅 合同到期：{lease_end}\n⏰ 剩余天数：{days_remaining}天\n\n━━━ 企业画像 ━━━\n等级：{level}\n企业类型：{enterprise_type}\n缴费准时率：{payment_rate*100:.1f}%\n服务满意度：{satisfaction*100:.1f}%\n\n━━━ 风险标记 ━━━\n{risks}\n\n━━━ 续租方案 ━━━\n方案类型：{plan_type}\n建议租金：¥{proposed_rent}/㎡/月\n优惠折扣：{discount_rate*100:.0f}折\n优惠政策：{incentive_policy}\n\n🚨 请 @招商人员 @管家 立即跟进！\n\n⚡ 操作链接：[腾讯文档-客户管理]\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 执行流程\n\n```\nStep 1 → 读取Excel客户管理表\n         工作表：👨客户管理👨\n         筛选：状态 = '签约'\n\nStep 2 → 计算合同剩余天数\n         剩余天数 = 截至日期 - 今日日期\n\nStep 3 → 调用内联函数获取企业画像\n         直接调用 build_customer_portrait()\n         获取企业画像（费用记录、服务记录、风险标记）\n\nStep 4 → 分级预警\n         ├─ ≤30天   → 红色预警（紧急）\n         ├─ 31-60天 → 黄色预警（高）\n         └─ 61-90天 → 绿色提醒（中）\n\nStep 5 → 生成续租方案\n         根据企业画像（缴费准时率、满意度、成交率）生成方案\n\nStep 6 → 推送企微\n         发送给招商人员和管家审批\n```\n\n---\n\n## 定时任务配置\n\n```json\n{\n  \"name\": \"合同续租预警\",\n  \"schedule\": {\n    \"kind\": \"cron\",\n    \"expr\": \"0 9 * * *\",\n    \"tz\": \"Asia/Shanghai\"\n  },\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"检查合同到期日期，提前3个月标记续租预警，提前2个月生成续租方案\"\n  },\n  \"sessionTarget\": \"isolated\"\n}\n```\n\n---\n\n## 手动触发方式\n\n1. **企微 @提及**: `@企服助手 续租检查`\n2. **OpenClaw指令**: `检查续租` / `生成续租方案 {单元号}`\n\n---\n\n## 配置参数\n\n```json\n{\n  \"contract_renewal\": {\n    \"excel_path\": \"/Users/mac/示例产业园AC+服务.xlsx\",\n    \"alert_days_before\": 90,\n    \"plan_generation_days_before\": 60,\n    \"auto_generate_plan\": true,\n    \"wecom_webhook\": \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx\"\n  }\n}\n```\n\n---\n\n## 使用示例\n\n**用户输入**: `@企服助手 续租检查`\n\n**输出**:\n```\n━━━━━━━━━━━━━━━\n【续租预警日报】2026-05-28\n\n━━━ 🚨 红色预警（≤30天）━━━\n  • T1-XXX，XXX公司，剩余XX天\n\n━━━ ⚠️ 黄色预警（31-60天）━━━\n  • T1-601，示例企业名称，剩余XX天\n\n━━━ ✅ 绿色提醒（61-90天）━━━\n  • T1-XXX，XXX公司，剩余XX天\n\n━━━ 统计 ━━━\n预警企业总数：XX个\n红色预警：XX个 | 黄色预警：XX个 | 绿色提醒：XX个\n\n⚡ 操作链接：[腾讯文档-客户管理]\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 核心逻辑（升级版）\n\n### 4. 客户价值评估算法\n\n```python\ndef evaluate_customer_value(unit_no):\n    \"\"\"\n    综合评估客户价值（基于租金、面积、企业规模、资质等维度）\n    \n    Args:\n        unit_no: 单元号\n    \n    Returns:\n        dict: 客户价值评估结果 {'总分': 85, '等级': 'A', '明细': {...}}\n    \"\"\"\n    # 直接调用内联函数获取客户档案\n    customer_profile = query_customer_profile(unit_no)\n    \n    if not customer_profile:\n        return {'总分': 0, '等级': 'C', '明细': {}}\n    \n    # 直接调用内联函数获取客户画像\n    portrait = build_customer_portrait(unit_no)\n    \n    score = 0\n    details = {}\n    \n    # 1. 租金贡献（权重30%）\n    monthly_rent = float(customer_profile.get(\"首年合同单价\", 0) or 0)\n    lease_area = float(customer_profile.get(\"租赁面积\", 0) or 0)\n    annual_rent = monthly_rent * lease_area * 12\n    \n    rent_score = 0\n    if annual_rent >= 500000:  # 50万以上\n        rent_score = 30\n    elif annual_rent >= 200000:  # 20-50万\n        rent_score = 20\n    elif annual_rent >= 100000:  # 10-20万\n        rent_score = 15\n    else:\n        rent_score = 10\n    \n    score += rent_score\n    details['租金贡献'] = {'得分': rent_score, '满分': 30, '年租金': annual_rent}\n    \n    # 2. 企业资质（权重25%）\n    enterprise_type = customer_profile.get(\"企业类型\", \"\")\n    qualification_score = 0\n    if \"高新\" in enterprise_type or \"上市\" in enterprise_type:\n        qualification_score = 25\n    elif \"科技\" in enterprise_type or \"研发\" in enterprise_type:\n        qualification_score = 20\n    elif \"贸易\" in enterprise_type or \"服务\" in enterprise_type:\n        qualification_score = 15\n    else:\n        qualification_score = 10\n    \n    score += qualification_score\n    details['企业资质'] = {'得分': qualification_score, '满分': 25, '类型': enterprise_type}\n    \n    # 3. 缴费准时率（权重20%）\n    费用记录 = portrait.get(\"费用记录\", [])\n    已支付数 = len([f for f in 费用记录 if f.get(\"是否支付\") == \"是\"])\n    总费用数 = len(费用记录)\n    缴费准时率 = 已支付数 / 总费用数 if 总费用数 > 0 else 0\n    \n    payment_score = 0\n    if 缴费准时率 >= 0.95:\n        payment_score = 20\n    elif 缴费准时率 >= 0.9:\n        payment_score = 15\n    elif 缴费准时率 >= 0.8:\n        payment_score = 10\n    else:\n        payment_score = 5\n    \n    score += payment_score\n    details['缴费准时率'] = {'得分': payment_score, '满分': 20, '准时率': 缴费准时率}\n    \n    # 4. 服务满意度（权重15%）\n    服务记录 = portrait.get(\"服务记录\", [])\n    满意数 = len([s for s in 服务记录 if s.get(\"客户情绪\") == \"满意\"])\n    总服务数 = len(服务记录)\n    满意度 = 满意数 / 总服务数 if 总服务数 > 0 else 0\n    \n    satisfaction_score = 0\n    if 满意度 >= 0.8:\n        satisfaction_score = 15\n    elif 满意度 >= 0.6:\n        satisfaction_score = 10\n    elif 满意度 >= 0.4:\n        satisfaction_score = 5\n    else:\n        satisfaction_score = 0\n    \n    score += satisfaction_score\n    details['服务满意度'] = {'得分': satisfaction_score, '满分': 15, '满意度': 满意度}\n    \n    # 5. 成交贡献（权重10%）\n    成交数 = len([s for s in 服务记录 if s.get(\"成交情况\") == \"是\"])\n    成交率 = 成交数 / 总服务数 if 总服务数 > 0 else 0\n    \n    deal_score = 0\n    if 成交率 >= 0.3:\n        deal_score = 10\n    elif 成交率 >= 0.2:\n        deal_score = 7\n    elif 成交率 >= 0.1:\n        deal_score = 5\n    else:\n        deal_score = 0\n    \n    score += deal_score\n    details['成交贡献'] = {'得分': deal_score, '满分': 10, '成交率': 成交率}\n    \n    # 确定价值等级\n    value_level = 'C'\n    if score >= 80:\n        value_level = 'A'\n    elif score >= 60:\n        value_level = 'B'\n    \n    return {\n        '总分': min(score, 100),\n        '等级': value_level,\n        '明细': details\n    }\n```\n\n### 5. 稳租方案自动生成算法（基于标准）\n\n```python\ndef generate_stable_rental_plan(unit_no):\n    \"\"\"\n    基于标准中的\"差异化稳租策略\"自动生成稳租方案\n    \n    Args:\n        unit_no: 单元号\n    \n    Returns:\n        dict: 稳租方案\n    \"\"\"\n    # 1. 评估客户价值\n    value_assessment = evaluate_customer_value(unit_no)\n    value_level = value_assessment['等级']\n    value_score = value_assessment['总分']\n    \n    # 直接调用内联函数获取客户档案\n    customer_profile = query_customer_profile(unit_no)\n    \n    tenant_name = customer_profile.get(\"租户名\", \"\")\n    current_rent = float(customer_profile.get(\"首年合同单价\", 0) or 0)\n    lease_area = float(customer_profile.get(\"租赁面积\", 0) or 0)\n    \n    # 3. 根据价值等级生成差异化稳租策略\n    plan = {\n        '客户名称': tenant_name,\n        '单元号': unit_no,\n        '价值等级': value_level,\n        '价值评分': value_score,\n        '策略组合': [],\n        '建议租金': current_rent,\n        '优惠方案': '无',\n        '预计成本': 0\n    }\n    \n    # A级客户（价值评分≥80）→ 全方位稳租策略\n    if value_level == 'A':\n        # 策略1：提高服务标准\n        plan['策略组合'].append('提高服务标准：增加走访频率（月度→双周），专属管家服务')\n        plan['预计成本'] += 5000\n        \n        # 策略2：关怀活动\n        plan['策略组合'].append('关怀活动：生日礼物、节日慰问、企业周年庆贺')\n        plan['预计成本'] += 3000\n        \n        # 策略3：服务赠送\n        plan['策略组合'].append('服务赠送：免费会议室使用（8小时/月）、免费停车券（2张/月）')\n        plan['预计成本'] += 2000\n        \n        # 策略4：合同条件调整\n        plan['建议租金'] = current_rent * 1.03  # 小幅上涨3%\n        plan['优惠方案'] = '续租3年享95折，免租期延长15天'\n        plan['策略组合'].append('合同条件调整：小幅上涨+长期优惠')\n    \n    # B级客户（价值评分60-79）→ 中度稳租策略\n    elif value_level == 'B':\n        # 策略1：提高服务标准（适度）\n        plan['策略组合'].append('提高服务标准：增加走访频率（季度→月度）')\n        plan['预计成本'] += 2000\n        \n        # 策略2：关怀活动（适度）\n        plan['策略组合'].append('关怀活动：节日慰问')\n        plan['预计成本'] += 1000\n        \n        # 策略3：服务赠送（适度）\n        plan['策略组合'].append('服务赠送：免费会议室使用（4小时/月）')\n        plan['预计成本'] += 1000\n        \n        # 策略4：合同条件调整\n        plan['建议租金'] = current_rent * 1.05  # 中等上涨5%\n        plan['优惠方案'] = '续租2年享98折' \n        plan['策略组合'].append('合同条件调整：中等上涨+适度优惠')\n    \n    # C级客户（价值评分<60）→ 基础稳租策略\n    else:\n        # 策略1：基础服务标准\n        plan['策略组合'].append('基础服务标准：保持当前走访频率')\n        \n        # 策略2：市场化租金\n        plan['建议租金'] = get_market_rent(unit_no)  # 市场价\n        plan['优惠方案'] = '无'\n        plan['策略组合'].append('合同条件调整：市场化定价')\n    \n    # 4. 计算稳租成本收益率\n    年租金收入 = plan['建议租金'] * lease_area * 12\n    稳租成本收益率 = (年租金收入 - plan['预计成本']) / plan['预计成本'] if plan['预计成本'] > 0 else 0\n    \n    plan['年租金收入'] = 年租金收入\n    plan['稳租成本收益率'] = round(稳租成本收益率, 2)\n    \n    return plan\n\n@staticmethod\ndef get_market_rent(unit_no):\n    \"\"\"\n    获取周边市场租金（模拟函数，实际需要对接市场数据）\n    \"\"\"\n    # TODO: 对接市场数据API\n    # 暂时返回固定值\n    return 120  # 元/㎡/月\n```\n\n### 6. 续租方案生成算法（升级版）\n\n```python\ndef generate_renewal_plan(unit_no):\n    \"\"\"\n    根据企业画像和稳租方案生成续租方案（升级版）\n    \n    Returns:\n        dict: 续租方案（含稳租策略）\n    \"\"\"\n    # 1. 获取企业画像分析\n    analysis = analyze_enterprise_for_renewal(unit_no)\n    \n    # 2. 生成稳租方案\n    stable_rental_plan = generate_stable_rental_plan(unit_no)\n    \n    # 直接调用内联函数获取客户档案\n    portrait = query_customer_profile(unit_no)\n    \n    # 4. 根据画像和稳租方案确定最终方案\n    缴费准时率 = analysis['缴费准时率']\n    满意度 = analysis['满意度']\n    成交率 = analysis['成交率']\n    价值等级 = stable_rental_plan['价值等级']\n    \n    # 方案决策矩阵\n    if 价值等级 == 'A' or (缴费准时率 >= 0.95 and 满意度 >= 0.8):\n        # 优质企业 → 原条件续租 + 稳租策略\n        plan_type = \"A\"\n        proposed_rent = stable_rental_plan['建议租金']\n        discount_rate = 0.95 if 价值等级 == 'A' else 1.0\n        incentive_policy = stable_rental_plan['优惠方案']\n        retention_strategy = stable_rental_plan['策略组合']\n    \n    elif 价值等级 == 'B' or 成交率 >= 0.3 or 缴费准时率 >= 0.9:\n        # 潜力企业 → 优惠续租 + 中度稳租策略\n        plan_type = \"B\"\n        proposed_rent = stable_rental_plan['建议租金']\n        discount_rate = 0.98\n        incentive_policy = stable_rental_plan['优惠方案']\n        retention_strategy = stable_rental_plan['策略组合']\n    \n    else:\n        # 一般企业 → 市场化续租 + 基础稳租策略\n        plan_type = \"C\"\n        proposed_rent = get_market_rent(unit_no)\n        discount_rate = 1.0\n        incentive_policy = \"无\"\n        retention_strategy = stable_rental_plan['策略组合']\n    \n    return {\n        \"方案类型\": plan_type,\n        \"建议租金\": proposed_rent,\n        \"优惠折扣\": discount_rate,\n        \"优惠政策\": incentive_policy,\n        \"稳租策略\": retention_strategy,\n        \"稳租成本收益率\": stable_rental_plan['稳租成本收益率'],\n        \"客户价值评估\": {\n            \"等级\": 价值等级,\n            \"总分\": stable_rental_plan['价值评分']\n        },\n        \"企业画像\": analysis\n    }\n```\n\n---\n\n## 后续扩展接口\n\n1. **谈判话术生成** - 基于企业画像和稳租方案生成个性化谈判策略\n2. **竞争对手分析** - 接入周边园区租金数据\n3. **续租成功率预测** - 基于历史数据训练预测模型\n4. **稳租成本预算管控** - 跟踪稳租成本实际使用情况进行预算管控\n\n---\n\n**当前状态**: ✅ 技能已完成自包含改造，所有客户管理逻辑已内联，无需安装 customer-management 技能。\n\n**核心改进**: \n- ✅ `query_customer_profile()` - 查询客户档案（内联）\n- ✅ `build_customer_portrait()` - 构建客户画像（内联）\n- ✅ `calculate_risk_tags()` - 计算风险标记（内联）\n- ✅ 删除所有 `call_skill(\"customer-management\", ...)` 引用\n\n**数据源**: `/Users/mac/示例产业园AC+服务.xlsx`（真实业务数据）\n\n**核心价值**: 合同续租预警与方案生成，基于客户画像的差异化稳租策略。\n\nFile v2.3.0:customer-management/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: customer-management\ndescription: 客户管理中心技能。提供客户档案管理、客户画像分析、风险提醒、客户时间线查询。基于示例产业园A真实业务数据（Excel台账）。触发场景：(1) 查询客户信息（@企服助手 查询客户 T1-601），(2) 查看客户画像（@企服助手 客户画像 示例企业），(3) 查询风险客户（@企服助手 查询风险客户），(4) 定时任务生成风险提醒日报。\n---\n\n# 客户管理中心技能 (Customer Management Center Skill)\n\n## 功能概述\n\n本技能为企服助手的**核心模块**，统一管理示例产业园A的客户信息，提供：\n- 📋 **客户档案** - 企业基础信息、合同信息、租期信息、联系人管理\n- 📊 **客户画像** - 服务记录汇总、报修记录、缴费记录、投诉记录、企业标签\n- ⚠️ **风险提醒** - 欠费风险、流失风险、高频投诉提醒、到期提醒\n- 📅 **客户时间线** - 统一查看所有历史记录（服务、沟通、工单、缴费、续租）\n\n---\n\n## 数据源配置（基于真实Excel台账）\n\n### 数据文件\n**文件路径**: `/Users/mac/示例产业园AC+服务.xlsx`\n\n### 工作表映射\n\n| 功能模块 | 工作表名 | 字段数 | 记录数 | 说明 |\n|---------|---------|--------|--------|------|\n| **客户档案** | 👨客户管理👨 | 27 | 151 | 企业基础信息、合同、租期 |\n| **费用收缴** | 👨💼费用收缴👨💼 | 14 | 396 | 固定租金、物业管理费等 |\n| **能耗收缴** | 👨💼能耗收缴👨💼 | 7 | 149 | 水电燃气费用 |\n| **C+服务记录** | C+服务记录 | 10 | 22 | 走访记录、服务成交 |\n| **报修情况** | 🛠️报修情况汇总🛠️ | 13 | 4 | 报修工单记录 |\n| **退租汇总** | 退租汇总 | 13 | 6 | 退租企业信息 |\n\n---\n\n## 核心功能详解\n\n### 1. 客户档案 (Customer Profile)\n\n#### 1.1 数据结构（真实字段映射）\n\n**客户管理表字段（27个）**:\n```\n基础信息字段:\n  - 项目名称: 美慧城四期T1\n  - 单元类型: 办公\n  - 名义楼层: 6\n  - 实际楼层: 5\n  - 单元号: T1-601 （主键，用于关联其他表）\n\n合同信息字段:\n  - 合同号: {TODO: 填写合同编号} （关联费用收缴表）\n  - 租户名: 示例企业名称\n  - 建筑面积: 143.95\n  - 馶年合同单价: 1.75\n  - 租期: 3年\n\n租期信息字段:\n  - 开始日期: 2025年3月1日\n  - 截至日期: 2028年2月29日\n  - 状态: 签约/退租/毛坯\n\n联系人信息:\n  - 租户联系人: 薛臻\n  - 电话: （从Excel读取）\n  - 注册地址: 上海市宝山区金石路1658弄11号4层410室\n\n企业画像字段:\n  - 等级: A/B/C\n  - 企业类型: 餐饮配套/制造业/商务配套等\n  - 经营范围: （具体业务）\n  - 纳税人资质: 一般纳税人/小规模纳税人\n  - 天眼评分: （天眼查评分）\n  - 招商: （招商人员）\n```\n\n#### 1.2 查询接口设计\n\n```python\ndef query_customer_profile(unit_no=None, tenant_name=None, contract_no=None):\n    \"\"\"\n    查询客户档案\n    \n    Args:\n        unit_no: 单元号（如 T1-601）\n        tenant_name: 租户名（支持模糊匹配）\n        contract_no: 合同号\n    \n    Returns:\n        dict: 客户完整档案信息\n    \"\"\"\n    # 使用 xlsx skill 读取 Excel\n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    ws = wb['👨客户管理👨']\n    \n    headers = [cell.value for cell in ws[1]]\n    \n    for row in ws.iter_rows(min_row=2, values_only=True):\n        # 匹配条件\n        if unit_no and row[5] == unit_no:  # 单元号\n            return build_customer_dict(headers, row)\n        if tenant_name and tenant_name in str(row[6]):  # 租户名模糊匹配\n            return build_customer_dict(headers, row)\n        if contract_no and row[4] == contract_no:  # 合同号\n            return build_customer_dict(headers, row)\n    \n    return None\n```\n\n#### 1.3 使用示例\n\n**用户输入**: `@企服助手 查询客户 T1-601`\n\n**输出**:\n```\n━━━━━━━━━━━━━━━\n【客户档案】T1-601\n\n🏢 租户名：示例企业名称\n📍 项目：美慧城四期T1 | 单元类型：办公\n📏 建筑面积：143.95㎡ | 楼层：名义6层/实际5层\n\n━━━ 合同信息 ━━━\n合同号：{TODO: 填写合同编号}\n租期：3年（2025-03-01 ~ 2028-02-29）\n状态：签约 ✅\n首年单价：¥1.75/㎡/月\n\n━━━ 联系人 ━━━\n联系人：薛臻\n电话：[查询Excel获取]\n注册地址：上海市宝山区金石路1658弄11号4层410室\n\n━━━ 企业画像 ━━━\n等级：[查询Excel获取]\n企业类型：[查询Excel获取]\n经营范围：食品生产销售\n纳税人资质：[查询Excel获取]\n天眼评分：[查询Excel获取]\n\n⚡ 操作链接：[腾讯文档-客户管理]\n━━━━━━━━━━━━━━━\n```\n\n---\n\n### 2. 客户画像 (Customer Portrait)\n\n#### 2.1 画像数据聚合逻辑\n\n客户画像需要**聚合多个工作表的数据**：\n\n```python\ndef build_customer_portrait(unit_no):\n    \"\"\"\n    构建客户画像 - 聚合多个数据源\n    \n    Args:\n        unit_no: 单元号（主键）\n    \n    Returns:\n        dict: 客户画像（包含服务、费用、报修等汇总）\n    \"\"\"\n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    \n    portrait = {\n        \"基础信息\": query_customer_profile(unit_no),\n        \"服务记录\": [],\n        \"费用记录\": [],\n        \"能耗记录\": [],\n        \"报修记录\": [],\n        \"风险标记\": []\n    }\n    \n    # 1. 查询C+服务记录（关联字段：租户名）\n    ws_service = wb['C+服务记录']\n    tenant_name = portrait[\"基础信息\"][\"租户名\"]\n    \n    for row in ws_service.iter_rows(min_row=2, values_only=True):\n        if row[0] == tenant_name:  # 关联客户字段\n            portrait[\"服务记录\"].append({\n                \"走访时间\": row[1],\n                \"走访管家\": row[2],\n                \"客户情绪\": row[3],\n                \"成交情况\": row[4],\n                \"服务类别\": row[5],\n                \"成交金额\": row[6],\n                \"详情记录\": row[7]\n            })\n    \n    # 2. 查询费用收缴记录（关联字段：单元号）\n    ws_fee = wb['👨💼费用收缴👨💼']\n    \n    for row in ws_fee.iter_rows(min_row=2, values_only=True):\n        if row[1] == unit_no:  # 单元号\n            portrait[\"费用记录\"].append({\n                \"合同编号\": row[0],\n                \"费项项目\": row[3],\n                \"应收金额\": row[4],\n                \"已收金额\": row[6],\n                \"欠收金额\": row[8],\n                \"是否支付\": row[9],\n                \"月份\": row[13]\n            })\n    \n    # 3. 查询能耗收缴记录（关联字段：单元号）\n    ws_energy = wb['👨💼能耗收缴👨💼']\n    \n    for row in ws_energy.iter_rows(min_row=2, values_only=True):\n        if row[0] == unit_no:  # 单元号\n            portrait[\"能耗记录\"].append({\n                \"租户名\": row[1],\n                \"应收金额\": row[2],\n                \"已收金额\": row[3],\n                \"欠费金额\": row[4],\n                \"是否支付\": row[5],\n                \"月份\": row[6]\n            })\n    \n    # 4. 查询报修记录（关联字段：楼层/单元）\n    ws_repair = wb['🛠️报修情况汇总🛠️']\n    \n    for row in ws_repair.iter_rows(min_row=2, values_only=True):\n        if unit_no in str(row[0]):  # 楼层/单元匹配\n            portrait[\"报修记录\"].append({\n                \"楼层/单元\": row[0],\n                \"紧急程度\": row[1],\n                \"报修细节描述\": row[2],\n                \"报修人员\": row[4],\n                \"报修时间\": row[5],\n                \"维修人员\": row[6],\n                \"维修跟进状态\": row[7]\n            })\n    \n    # 5. 计算风险标记\n    portrait[\"风险标记\"] = calculate_risk_tags(portrait)\n    \n    return portrait\n```\n\n#### 2.2 风险标记计算逻辑\n\n```python\ndef calculate_risk_tags(portrait):\n    \"\"\"\n    计算客户风险标记\n    \n    Returns:\n        list: 风险标记列表（如 [\"欠费风险\", \"流失风险\"]）\n    \"\"\"\n    risks = []\n    \n    # 1. 欠费风险判断\n    欠费总额 = 0\n    for fee in portrait[\"费用记录\"]:\n        if fee[\"是否支付\"] == \"否\":\n            欠费金额 = float(fee[\"欠收金额\"]) if fee[\"欠收金额\"] else 0\n            欠费总额 += 欠费金额\n    \n    if 欠费总额 > 50000:\n        risks.append(\"🚨 高欠费风险（欠费¥{欠费总额:.2f}）\")\n    elif 欠费总额 > 10000:\n        risks.append(\"⚠️ 中度欠费风险（欠费¥{欠费总额:.2f}）\")\n    elif 欠费总额 > 0:\n        risks.append(\"📢 轻度欠费提醒（欠费¥{欠费总额:.2f}）\")\n    \n    # 2. 流失风险判断（续租预警）\n    基础信息 = portrait[\"基础信息\"]\n    if 基础信息:\n        截至日期 = parse_date(基础信息[\"截至日期\"])\n        剩余天数 = (截至日期 - datetime.now()).days\n        \n        if 剩余天数 <= 30:\n            risks.append(f\"🚨 流失风险（合同剩余{剩余天数}天）\")\n        elif 剩余天数 <= 90:\n            risks.append(f\"⚠️ 续租预警（合同剩余{剩余天数}天）\")\n    \n    # 3. 投诉/报修频率判断\n    报修次数 = len(portrait[\"报修记录\"])\n    if 报修次数 >= 3:  # 最近报修次数>=3\n        risks.append(f\"⚠️ 高频报修（{报修次数}次）\")\n    \n    # 4. 服务满意度判断\n    满意记录 = [s for s in portrait[\"服务记录\"] if s[\"客户情绪\"] == \"满意\"]\n    总记录 = len(portrait[\"服务记录\"])\n    \n    if 总记录 > 0 and len(满意记录) / 总记录 < 0.5:\n        risks.append(f\"⚠️ 低满意度（满意率{len(满意记录)/总记录*100:.1f}%）\")\n    \n    return risks\n```\n\n#### 2.3 使用示例\n\n**用户输入**: `@企服助手 客户画像 示例企业`\n\n**输出**:\n```\n━━━━━━━━━━━━━━━\n【客户画像】示例企业名称\n\n📍 单元：T1-601 | 状态：签约 ✅\n\n━━━ 企业标签 ━━━\n等级：[查询Excel]\n企业类型：食品制造业\n纳税人资质：[查询Excel]\n天眼评分：[查询Excel]\n\n━━━ 服务记录（{服务次数}次）━━━\n最近走访：2026-02-02\n管家：戚亮先、刘瑞\n客户情绪：满意 ✅\n成交情况：否\n服务类别：室内保洁\n\n━━━ 费用记录 ━━━\n应收总额：¥{应收总额:.2f}\n已收总额：¥{已收总额:.2f}\n欠费金额：¥{欠费总额:.2f}\n支付状态：{欠费情况}\n\n━━━ 能耗记录 ━━━\n应收总额：¥{能耗应收:.2f}\n已收总额：¥{能耗已收:.2f}\n欠费金额：¥{能耗欠费:.2f}\n\n━━━ 报修记录 ━━━\n报修次数：{报修次数}次\n最近报修：[如果有]\n报修状态：[状态]\n\n━━━ 风险标记 ━━━\n{risks  # 显示所有风险标记，如果没有则显示\"无风险\"}\n\n━━━ 客户时间线 ━━━\n⚡ 点击查看完整时间线：[腾讯文档-客户画像]\n\n━━━━━━━━━━━━━━━\n```\n\n---\n\n### 3. 风险提醒 (Risk Alert)\n\n#### 3.1 风险类型定义\n\n| 风险类型 | 判断条件 | 提醒级别 | 推送渠道 |\n|---------|---------|---------|---------|\n| **高欠费风险** | 欠费 > ¥50,000 | 🚨 紧急 | @all |\n| **中度欠费风险** | 欠费 ¥10,000-50,000 | ⚠️ 高 | @财务 |\n| **轻度欠费提醒** | 欠费 < ¥10,000 | 📢 普通 | 静默记录 |\n| **流失风险** | 合同剩余 ≤ 30天 | 🚨 紧急 | @招商 @all |\n| **续租预警** | 合同剩余 ≤ 90天 | ⚠️ 高 | @招商 |\n| **高频报修** | 最近报修 ≥ 3次 | ⚠️ 高 | @工程 |\n| **低满意度** | 满意率 < 50% | ⚠️ 高 | @管家 |\n\n#### 3.2 风险扫描逻辑\n\n```python\ndef scan_all_risks():\n    \"\"\"\n    扫描所有客户风险\n    \n    Returns:\n        dict: 分类风险清单\n    \"\"\"\n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    ws_customer = wb['👨客户管理👨']\n    \n    risks_summary = {\n        \"高欠费风险\": [],\n        \"中度欠费风险\": [],\n        \"轻度欠费提醒\": [],\n        \"流失风险\": [],\n        \"续租预警\": [],\n        \"高频报修\": [],\n        \"低满意度\": []\n    }\n    \n    # 遍历所有签约客户\n    for row in ws_customer.iter_rows(min_row=2, values_only=True):\n        if row[12] == \"签约\":  # 状态 = 签约\n            unit_no = row[5]  # 单元号\n            tenant_name = row[6]  # 租户名\n            \n            # 构建客户画像\n            portrait = build_customer_portrait(unit_no)\n            risks = portrait[\"风险标记\"]\n            \n            # 分类归档\n            for risk in risks:\n                if \"高欠费风险\" in risk:\n                    risks_summary[\"高欠费风险\"].append({\n                        \"单元号\": unit_no,\n                        \"租户名\": tenant_name,\n                        \"风险详情\": risk\n                    })\n                elif \"中度欠费风险\" in risk:\n                    risks_summary[\"中度欠费风险\"].append({\n                        \"单元号\": unit_no,\n                        \"租户名\": tenant_name,\n                        \"风险详情\": risk\n                    })\n                # ... 其他风险类型\n    \n    return risks_summary\n```\n\n#### 3.3 使用示例\n\n**用户输入**: `@企服助手 查询风险客户`\n\n**输出**:\n```\n━━━━━━━━━━━━━━━\n【风险客户清单】2026-05-28\n\n━━━ 🚨 紧急风险 ━━━\n【流失风险】（合同剩余 ≤ 30天）\n  • T1-XXX，XXX公司，剩余XX天\n\n【高欠费风险】（欠费 > ¥50,000）\n  • T1-XXX，XXX公司，欠费¥XX,XXX\n\n━━━ ⚠️ 高风险 ━━━\n【中度欠费风险】（欠费 ¥10,000-50,000）\n  • T1-XXX，XXX公司，欠费¥XX,XXX\n  • T1-XXX，XXX公司，欠费¥XX,XXX\n\n【续租预警】（合同剩余 ≤ 90天）\n  • T1-601，示例企业名称，剩余XX天\n\n【高频报修】（报修 ≥ 3次）\n  • T1-XXX，XXX公司，报修X次\n\n━━━ 📢 普通提醒 ━━━\n【轻度欠费提醒】（欠费 < ¥10,000）\n  • T1-XXX，XXX公司，欠费¥X,XXX\n\n━━━ 统计 ━━━\n风险客户总数：XX个\n紧急风险：XX个 | 高风险：XX个 | 普通提醒：XX个\n\n⚡ 操作链接：[腾讯文档-风险清单]\n━━━━━━━━━━━━━━━\n```\n\n---\n\n### 4. 客户时间线 (Customer Timeline)\n\n#### 4.1 时间线数据整合\n\n```python\ndef build_customer_timeline(unit_no):\n    \"\"\"\n    构建客户时间线 - 按时间排序所有记录\n    \n    Args:\n        unit_no: 单元号\n    \n    Returns:\n        list: 时间线事件列表（按时间倒序）\n    \"\"\"\n    portrait = build_customer_portrait(unit_no)\n    \n    timeline = []\n    \n    # 1. 合同事件\n    基础信息 = portrait[\"基础信息\"]\n    if 基础信息:\n        timeline.append({\n            \"时间\": 基础信息[\"开始日期\"],\n            \"事件类型\": \"合同签约\",\n            \"事件描述\": f\"签约{基础信息['租期']}，单元{unit_no}\",\n            \"详情\": 基础信息\n        })\n    \n    # 2. 服务记录事件\n    for service in portrait[\"服务记录\"]:\n        timeline.append({\n            \"时间\": service[\"走访时间\"],\n            \"事件类型\": \"C+服务\",\n            \"事件描述\": f\"管家{service['走访管家']}走访，情绪{service['客户情绪']}\",\n            \"详情\": service\n        })\n    \n    # 3. 费用记录事件\n    for fee in portrait[\"费用记录\"]:\n        timeline.append({\n            \"时间\": fee[\"月份\"],\n            \"事件类型\": \"费用收缴\",\n            \"事件描述\": f\"{fee['费项项目']}，应收¥{fee['应收金额']}，已收¥{fee['已收金额']}\",\n            \"详情\": fee\n        })\n    \n    # 4. 报修记录事件\n    for repair in portrait[\"报修记录\"]:\n        timeline.append({\n            \"时间\": repair[\"报修时间\"],\n            \"事件类型\": \"报修工单\",\n            \"事件描述\": f\"{repair['报修细节描述']}, 状态{repair['维修跟进状态']}\",\n            \"详情\": repair\n        })\n    \n    # 5. 能耗记录事件\n    for energy in portrait[\"能耗记录\"]:\n        timeline.append({\n            \"时间\": energy[\"月份\"],\n            \"事件类型\": \"能耗收缴\",\n            \"事件描述\": f\"能耗应收¥{energy['应收金额']}，已收¥{energy['已收金额']}\",\n            \"详情\": energy\n        })\n    \n    # 按时间排序（倒序，最新在前）\n    timeline.sort(key=lambda x: parse_date(x[\"时间\"]), reverse=True)\n    \n    return timeline\n```\n\n#### 4.2 使用示例\n\n**用户输入**: `@企服助手 客户时间线 T1-601`\n\n**输出**:\n```\n━━━━━━━━━━━━━━━\n【客户时间线】示例企业名称（T1-601）\n\n━━━ 时间线（倒序，最新在前）━━━\n\n📅 2026-02-02 【C+服务】\n管家戚亮先、刘瑞走访\n客户情绪：满意 ✅\n服务类别：室内保洁\n成交情况：否\n\n📅 2026-01 【能耗收缴】\n应收：¥259.31 | 已收：¥259.31\n支付状态：是 ✅\n\n📅 2025-03 【合同签约】\n签约3年（2025-03-01 ~ 2028-02-29）\n单元：T1-601 | 建筑面积：143.95㎡\n\n━━━ 统计 ━━━\n总事件数：XX个\n服务记录：XX次 | 费用记录：XX条 | 报修记录：XX次\n\n⚡ 完整时间线：[腾讯文档-客户时间线]\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 执行流程\n\n```\nStep 1 → 用户输入\n          ├─ 查询客户信息（单元号/租户名/合同号）\n          ├─ 查看客户画像（租户名）\n          ├─ 查询风险客户\n          └─ 查看客户时间线（单元号）\n\nStep 2 → 数据读取\n          ├─ 使用 xlsx skill 读取 Excel\n          ├─ 主表：👨客户管理👨（客户档案）\n          ├─ 关联表：费用收缴、能耗收缴、C+服务记录、报修汇总\n\nStep 3 → 数据聚合\n          ├─ 关联字段：单元号、租户名、合同号\n          ├─ 构建客户画像（聚合所有记录）\n          └─ 计算风险标记\n\nStep 4 → 结果输出\n          ├─ 格式化输出（Markdown）\n          ├─ 推送企微群（可选）\n          └─ 生成腾讯文档（可选）\n\nStep 5 → 定时任务（可选）\n          ├─ 每天09:00：生成风险提醒日报\n          └─ 每天17:00：生成客户异常汇总\n```\n\n---\n\n## 定时任务配置\n\n```json\n{\n  \"name\": \"风险客户提醒日报\",\n  \"schedule\": {\n    \"kind\": \"cron\",\n    \"expr\": \"0 9 * * *\",\n    \"tz\": \"Asia/Shanghai\"\n  },\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"扫描所有客户风险，生成风险提醒日报并推送企微群\"\n  },\n  \"sessionTarget\": \"isolated\"\n}\n```\n\n---\n\n## 手动触发方式\n\n1. **查询客户档案**: `@企服助手 查询客户 {单元号}`\n   - 示例：`@企服助手 查询客户 T1-601`\n\n2. **查看客户画像**: `@企服助手 客户画像 {租户名}`\n   - 示例：`@企服助手 客户画像 示例企业`\n\n3. **查询风险客户**: `@企服助手 查询风险客户`\n\n4. **客户时间线**: `@企服助手 客户时间线 {单元号}`\n   - 示例：`@企服助手 客户时间线 T1-601`\n\n---\n\n## 配置参数\n\n```json\n{\n  \"customer_management\": {\n    \"excel_path\": \"/Users/mac/示例产业园AC+服务.xlsx\",\n    \"sheet_mapping\": {\n      \"客户档案\": \"👨客户管理👨\",\n      \"费用收缴\": \"👨💼费用收缴👨💼\",\n      \"能耗收缴\": \"👨💼能耗收缴👨💼\",\n      \"C+服务记录\": \"C+服务记录\",\n      \"报修汇总\": \"🛠️报修情况汇总🛠️\",\n      \"退租汇总\": \"退租汇总\"\n    },\n    \"risk_thresholds\": {\n      \"高欠费风险\": 50000,\n      \"中度欠费风险\": 10000,\n      \"流失风险_days\": 30,\n      \"续租预警_days\": 90,\n      \"高频报修_count\": 3,\n      \"低满意度_rate\": 0.5\n    },\n    \"wecom_webhook\": \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=14fb1170-2119-4f29-b400-67da770e3a3c\"\n  }\n}\n```\n\n---\n\n## 关键字段映射表\n\n### 客户管理表（主表）\n\n| 字段序号 | 字段名 | 用途 | 示例值 |\n|---------|--------|------|--------|\n| 5 | 合同号 | 关联费用收缴表 | {TODO: 填写合同编号} |\n| 6 | 单元号 | 主键，关联所有表 | T1-601 |\n| 7 | 租户名 | 关联C+服务记录 | 示例企业名称 |\n| 11 | 开始日期 | 合同起始 | 2025年3月1日 |\n| 12 | 截至日期 | 续租预警计算 | 2028年2月29日 |\n| 13 | 状态 | 筛选条件 | 签约/退租/毛坯 |\n| 15 | 租户联系人 | 联系信息 | 薛臻 |\n| 16 | 电话 | 联系信息 | [Excel] |\n| 18 | 等级 | 企业标签 | A/B/C |\n| 19 | 企业类型 | 企业标签 | 餐饮配套 |\n| 22 | 经营范围 | 企业标签 | 食品生产销售 |\n\n### 费用收缴表\n\n| 字段序号 | 字段名 | 用途 | 示例值 |\n|---------|--------|------|--------|\n| 1 | 合同编号 | 关联客户表 | {TODO: 填写合同编号} |\n| 2 | 单元号 | 关联客户表 | T1-601 |\n| 3 | 租户名 | 企业名称 | 示例企业名称 |\n| 4 | 费项项目 | 费用类型 | 固定租金/物业管理费 |\n| 5 | 应收金额 | 计算欠费 | 34270.94 |\n| 7 | 已收金额 | 计算欠费 | 34270.94 |\n| 9 | 欠收金额 | 风险判断 | 0 或 \"34270.94\" |\n| 10 | 是否支付 | 风险判断 | 是/否 |\n\n---\n\n## 后续扩展接口\n\n1. **客户搜索优化** - 支持模糊搜索、拼音搜索、企业类型筛选\n2. **客户标签管理** - 自动打标签（如\"优质客户\"、\"风险客户\"、\"意向客户\"）\n3. **客户分组统计** - 按等级、企业类型、租期分组统计\n4. **客户导出功能** - 导出客户画像到腾讯文档\n5. **客户对比分析** - 对比同一企业类型的不同客户表现\n\n---\n\n## 注意事项\n\n1. **数据隐私** - Excel包含客户敏感信息，禁止外泄\n2. **关联字段一致性** - 单元号、租户名在各个表中的格式必须一致\n3. **日期格式解析** - Excel日期格式多样（如\"2025年3月1日\"、\"2025-03-01\"），需要统一解析\n4. **数据更新** - Excel台账可能定期更新，需要重新读取最新数据\n\n---\n\n**当前状态**: 技能框架已完成，数据映射表已定义，可立即运行测试。\n\n**数据源**: `/Users/mac/示例产业园AC+服务.xlsx`（真实业务数据）\n\n**核心价值**: 客户管理中心作为企服助手的\"大脑\"，统一管理所有客户信息，为其他6个技能提供客户数据支持。\n\nFile v2.3.0:customer-onboarding/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: customer-onboarding\ndescription: 客户入驻管理技能。基于《园区运营项目客户服务标准指引》第四章\"客户入驻阶段\"，实现交圈会、场地验收、装修管理自动化。触发场景：(1) 合同审批完成后3个工作日内自动触发入驻流程，(2) 定时任务每日09:00检查入驻状态，(3) 手动触发（@企服助手 客户入驻）。\n---\n\n# 客户入驻管理技能 (Customer Onboarding Skill)\n\n**⚠️ 本技能已自包含，无需安装 customer-management 技能**\n\n本技能已内联客户查询和画像构建逻辑，可以直接独立运行。\n\n## 功能概述\n\n本技能用于自动化客户入驻流程，基于《园区运营项目客户服务标准指引》（{TODO: 填写文件编号}）第四章和《C+基础保障服务手册-企服（含产促中心）管理工作规程》（ZJWY-QFWI）第二章、第六章，实现：\n\n### 一、企业入驻办理服务规程（第二章）\n1. **核验客户身份、资料**：核查入伙通知书，核验客户身份，确认缴费情况\n2. **交房资料收集、表单填写**：建立客户档案，准备交楼资料，客户签署材料\n3. **移交资料**：向客户移交客户手册、装修指南，客户签收确认\n4. **收取费用**：财务部收取首月物业费及水电费周转金\n5. **房屋验收、水电查抄、记录查验问题**：工程部与客户共同验收，查抄水电读数\n6. **移交钥匙**：企服管家向客户移交钥匙，客户签字确认\n7. **留存钥匙**：如需要整改，客户可留存钥匙在物业服务中心\n8. **问题整改跟进**：工程部门返修，管家跟进整改情况\n9. **资料存档**：企服部建立客户档案，存档相关交付资料\n\n### 二、装修办理规程（第六章）\n1. **装修申请**：客户提交装修申请，企服部告知所需资料\n2. **签署文件**：三方签署《装修管理服务协议》等文件\n3. **审图**：工程部审核装修图纸（3个工作日内）\n4. **费用收缴**：收取装修保证金、垃圾清运费等\n5. **三方会议**：组织施工方、客户方、物业方召开三方会议\n6. **成品保护验收**：企服部、工程部验收成品保护\n7. **办理施工许可**：发放装修许可证，办理施工人员出入证\n8. **日常巡查**：安管部、工程部、企服部按职责分工巡查\n9. **违规行为处理**：材料入场、装修人员进出、违规施工管理\n10. **竣工验收**：初验（15天内整改）→ 复验 → 验收合格 → 退还保证金\n\n### 三、支持性文件\n- {TODO: 填写表单编号}《客户信息登记表》\n- {TODO: 填写表单编号}《客户收楼验房表（单元）》\n- {TODO: 填写表单编号}《装修施工许可证》\n- {TODO: 填写表单编号}《装修保证金退还申请表》\n\n---\n\n## 数据源配置\n\n**数据文件**: `/Users/mac/示例产业园AC+服务.xlsx`\n---\n\n## 客户管理逻辑（内联）\n\n> 本技能已内联客户档案查询和客户画像构建功能，无需依赖 customer-management 技能。\n> 以下函数直接在本技能中使用，从 Excel 文件读取客户数据。\n\n### 1. 查询客户档案 (query_customer_profile)\n\n```python\ndef query_customer_profile(unit_no=None, tenant_name=None, contract_no=None):\n    \"\"\"\n    查询客户档案（内联函数，无需调用外部技能）\n    \n    从 Excel 文件读取客户信息，支持按单元号、租户名或合同号查询。\n    \n    Args:\n        unit_no: 单元号（如 T1-601）\n        tenant_name: 租户名（支持模糊匹配）\n        contract_no: 合同号\n    \n    Returns:\n        dict: 客户完整档案信息\n    \"\"\"\n    import openpyxl\n    \n    # 使用 xlsx skill 读取 Excel\n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    ws = wb['👨客户管理👨']\n    \n    headers = [cell.value for cell in ws[1]]\n    \n    for row in ws.iter_rows(min_row=2, values_only=True):\n        # 匹配条件\n        if unit_no and row[5] == unit_no:  # 单元号\n            return build_customer_dict(headers, row)\n        if tenant_name and tenant_name in str(row[6]):  # 租户名模糊匹配\n            return build_customer_dict(headers, row)\n        if contract_no and row[4] == contract_no:  # 合同号\n            return build_customer_dict(headers, row)\n    \n    return None\n\ndef build_customer_dict(headers, row):\n    \"\"\"\n    将 Excel 行数据构建为字典\n    \n    Args:\n        headers: 表头列表\n        row: 数据行\n    \n    Returns:\n        dict: 客户档案字典\n    \"\"\"\n    customer = {}\n    for i, header in enumerate(headers):\n        if i < len(row):\n            customer[header] = row[i]\n    \n    # 字段映射（中英文）\n    mapping = {\n        \"单元号\": customer.get(\"单元号\"),\n        \"租户名\": customer.get(\"租户名\"),\n        \"合同号\": customer.get(\"合同号\"),\n        \"租赁面积\": customer.get(\"建筑面积\", 0),\n        \"起租日期\": customer.get(\"开始日期\", \"\"),\n        \"截至日期\": customer.get(\"截至日期\", \"\"),\n        \"首年合同单价\": customer.get(\"馶年合同单价\", 0),\n        \"租户联系人\": customer.get(\"租户联系人\", \"\"),\n        \"电话\": customer.get(\"电话\", \"\"),\n        \"等级\": customer.get(\"等级\", \"\"),\n        \"企业类型\": customer.get(\"企业类型\", \"\"),\n        \"经营范围\": customer.get(\"经营范围\", \"\"),\n        \"纳税人资质\": customer.get(\"纳税人资质\", \"\"),\n        \"天眼评分\": customer.get(\"天眼评分\", \"\")\n    }\n    \n    return mapping\n```\n\n### 2. 构建客户画像 (build_customer_portrait)\n\n```python\ndef build_customer_portrait(unit_no):\n    \"\"\"\n    构建客户画像 - 聚合多个数据源（内联函数）\n    \n    从多个工作表聚合数据，构建完整的客户画像。\n    \n    Args:\n        unit_no: 单元号（主键）\n    \n    Returns:\n        dict: 客户画像（包含服务、费用、报修等汇总）\n    \"\"\"\n    import openpyxl\n    \n    wb = openpyxl.load_workbook('/Users/mac/示例产业园AC+服务.xlsx')\n    \n    portrait = {\n        \"基础信息\": query_customer_profile(unit_no=unit_no),\n        \"服务记录\": [],\n        \"费用记录\": [],\n        \"能耗记录\": [],\n        \"报修记录\": [],\n        \"风险标记\": []\n    }\n    \n    if not portrait[\"基础信息\"]:\n        return None\n    \n    tenant_name = portrait[\"基础信息\"][\"租户名\"]\n    \n    # 1. 查询C+服务记录（关联字段：租户名）\n    ws_service = wb['C+服务记录']\n    \n    for row in ws_service.iter_rows(min_row=2, values_only=True):\n        if row[0] == tenant_name:  # 关联客户字段\n            portrait[\"服务记录\"].append({\n                \"走访时间\": row[1],\n                \"走访管家\": row[2],\n                \"客户情绪\": row[3],\n                \"成交情况\": row[4],\n                \"服务类别\": row[5],\n                \"成交金额\": row[6],\n                \"详情记录\": row[7]\n            })\n    \n    # 2. 查询费用收缴记录（关联字段：单元号）\n    ws_fee = wb['👨💼费用收缴👨💼']\n    \n    for row in ws_fee.iter_rows(min_row=2, values_only=True):\n        if row[1] == unit_no:  # 单元号\n            portrait[\"费用记录\"].append({\n                \"合同编号\": row[0],\n                \"费项项目\": row[3],\n                \"应收金额\": row[4],\n                \"已收金额\": row[6],\n                \"欠收金额\": row[8],\n                \"是否支付\": row[9],\n                \"月份\": row[13]\n            })\n    \n    # 3. 查询能耗收缴记录（关联字段：单元号）\n    ws_energy = wb['👨💼能耗收缴👨💼']\n    \n    for row in ws_energy.iter_rows(min_row=2, values_only=True):\n        if row[0] == unit_no:  # 单元号\n            portrait[\"能耗记录\"].append({\n                \"租户名\": row[1],\n                \"应收金额\": row[2],\n                \"已收金额\": row[3],\n                \"欠费金额\": row[4],\n                \"是否支付\": row[5],\n                \"月份\": row[6]\n            })\n    \n    # 4. 查询报修记录（关联字段：楼层/单元）\n    ws_repair = wb['🛠️报修情况汇总🛠️']\n    \n    for row in ws_repair.iter_rows(min_row=2, values_only=True):\n        if unit_no in str(row[0]):  # 楼层/单元匹配\n            portrait[\"报修记录\"].append({\n                \"楼层/单元\": row[0],\n                \"紧急程度\": row[1],\n                \"报修细节描述\": row[2],\n                \"报修人员\": row[4],\n                \"报修时间\": row[5],\n                \"维修人员\": row[6],\n                \"维修跟进状态\": row[7]\n            })\n    \n    # 5. 计算风险标记\n    portrait[\"风险标记\"] = calculate_risk_tags(portrait)\n    \n    return portrait\n\ndef calculate_risk_tags(portrait):\n    \"\"\"\n    计算客户风险标记\n    \n    Args:\n        portrait: 客户画像字典\n    \n    Returns:\n        list: 风险标记列表（如 [\"欠费风险\", \"流失风险\"]）\n    \"\"\"\n    risks = []\n    \n    # 1. 欠费风险判断\n    欠费总额 = 0\n    for fee in portrait[\"费用记录\"]:\n        if fee[\"是否支付\"] == \"否\":\n            欠费金额 = float(fee[\"欠收金额\"]) if fee[\"欠收金额\"] else 0\n            欠费总额 += 欠费金额\n    \n    if 欠费总额 > 50000:\n        risks.append(f\"🚨 高欠费风险（欠费¥{欠费总额:.2f}）\")\n    elif 欠费总额 > 10000:\n        risks.append(f\"⚠️ 中度欠费风险（欠费¥{欠费总额:.2f}）\")\n    elif 欠费总额 > 0:\n        risks.append(f\"📢 轻度欠费提醒（欠费¥{欠费总额:.2f}）\")\n    \n    # 2. 流失风险判断（续租预警）\n    基础信息 = portrait[\"基础信息\"]\n    if 基础信息:\n        from datetime import datetime\n        截至日期 = datetime.strptime(基础信息[\"截至日期\"], \"%Y年%m月%d日\")\n        剩余天数 = (截至日期 - datetime.now()).days\n        \n        if 剩余天数 <= 30:\n            risks.append(f\"🚨 流失风险（合同剩余{剩余天数}天）\")\n        elif 剩余天数 <= 90:\n            risks.append(f\"⚠️ 续租预警（合同剩余{剩余天数}天）\")\n    \n    # 3. 投诉/报修频率判断\n    报修次数 = len(portrait[\"报修记录\"])\n    if 报修次数 >= 3:  # 最近报修次数>=3\n        risks.append(f\"⚠️ 高频报修（{报修次数}次）\")\n    \n    # 4. 服务满意度判断\n    满意记录 = [s for s in portrait[\"服务记录\"] if s[\"客户情绪\"] == \"满意\"]\n    总记录 = len(portrait[\"服务记录\"])\n    \n    if 总记录 > 0 and len(满意记录) / 总记录 < 0.5:\n        risks.append(f\"⚠️ 低满意度（满意率{len(满意记录)/总记录*100:.1f}%）\")\n    \n    return risks\n```\n\n---\n\n\n\n**工作表映射**:\n| 功能模块 | 工作表名 | 用途 |\n|---------|----------|------|\n| **客户档案** | 👨客户管理👨 | 客户基本信息、合同信息 |\n| **合同信息** | 合同管理（待建） | 合同审批状态、入驻日期 |\n| **装修管理** | 装修管理（待建） | 装修方案、巡查记录、验收记录 |\n| **服务团队** | 服务团队配置（待建） | 管家、工程、安管等服务人员 |\n\n**依赖技能**:\n- `visit-management`：安排入驻后首次走访（可选）\n\n**客户管理逻辑（内联）**：本技能已内联客户档案查询和客户画像构建功能，无需依赖 customer-management 技能。\n\n---\n\n## 核心逻辑\n\n### 1. 企业入驻办理服务规程模块\n\n**依据**：《C+基础保障服务手册》第二章\n\n```python\n# 企业入驻办理详细流程（9个步骤）\ndef enterprise_onboarding_process(contract_no):\n    \"\"\"\n    企业入驻办理完整流程（依据{TODO: 填写文件编号}）\n    \n    流程步骤：\n    1. 核验客户身份、资料\n    2. 交房资料收集、表单填写\n    3. 移交资料（客户手册、装修指南）\n    4. 收取费用（首月物业费+水电周转金）\n    5. 房屋验收、水电查抄、记录查验问题\n    6. 移交钥匙（客户签字确认）\n    7. 留存钥匙（如需整改，填写《钥匙代管委托书》）\n    8. 问题整改跟进（工程部返修，管家跟进）\n    9. 资料存档（建立客户档案）\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 入驻办理结果\n    \"\"\"\n    # 1. 核验客户身份、资料\n    identity_verification = verify_customer_identity(contract_no)\n    if identity_verification['状态'] != '通过':\n        return {'状态': '失败', '原因': '客户身份核验失败', '详情': identity_verification}\n    \n    # 2. 交房资料收集、表单填写\n    document_collection = collect_onboarding_documents(contract_no)\n    \n    # 3. 移交资料（客户手册、装修指南）\n    material_handover = handover_materials(contract_no)\n    \n    # 4. 收取费用\n    fee_collection = collect_onboarding_fees(contract_no)\n    \n    # 5. 房屋验收、水电查抄\n    property_inspection = inspect_property(contract_no)\n    \n    # 6. 移交钥匙\n    key_handover = handover_keys(contract_no, property_inspection)\n    \n    # 7. 留存钥匙（如需整改）\n    if property_inspection['验收结果'] == '不合格':\n        key_retention = retain_keys_for_rectification(contract_no)\n    else:\n        key_retention = {'状态': '无需留存', '原因': '验收合格'}\n    \n    # 8. 问题整改跟进（如验收不合格）\n    if property_inspection['验收结果'] == '不合格':\n        rectification_tracking = track_rectification_progress(contract_no, property_inspection)\n    else:\n        rectification_tracking = {'状态': '无需整改', '原因': '验收合格'}\n    \n    # 9. 资料存档\n    document_archiving = archive_onboarding_documents(contract_no, {\n        '身份核验': identity_verification,\n        '资料收集': document_collection,\n        '资料移交': material_handover,\n        '费用收取': fee_collection,\n        '房屋验收': property_inspection,\n        '钥匙移交': key_handover,\n        '钥匙留存': key_retention,\n        '整改跟进': rectification_tracking\n    })\n    \n    # 生成《客户入驻办理报告》\n    report = generate_onboarding_report(contract_no, {\n        '身份核验': identity_verification,\n        '资料收集': document_collection,\n        '费用收取': fee_collection,\n        '房屋验收': property_inspection,\n        '钥匙移交': key_handover,\n        '整改跟进': rectification_tracking,\n        '资料存档': document_archiving\n    })\n    \n    return {\n        '状态': '成功',\n        '合同编号': contract_no,\n        '流程步骤': '9/9 完成',\n        '验收结果': property_inspection['验收结果'],\n        '整改状态': rectification_tracking.get('状态', '无需整改'),\n        '报告': report\n    }\n\ndef verify_customer_identity(contract_no):\n    \"\"\"\n    核验客户身份、资料（步骤1）\n    \n    所需资料：\n    - 《入伙通知书》\n    - 《房屋买卖合同》或《房屋租赁合同》\n    - 《营业执照》\n    - 产权人/租户身份证复印件/法人身份证复印件\n    - 授权委托书\n    - 经办人身份信息复印件\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 身份核验结果\n    \"\"\"\n    # TODO: 实现身份核验逻辑\n    # 1. 读取合同信息\n    # 2. 核对入伙通知书\n    # 3. 核对客户提供的资料\n    # 4. 确认缴费情况\n    \n    return {\n        '状态': '通过',\n        '核验时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),\n        '核验人': '企服管家',\n        '备注': '所有资料齐全，身份核验通过'\n    }\n\ndef collect_onboarding_documents(contract_no):\n    \"\"\"\n    交房资料收集、表单填写（步骤2）\n    \n    物业应准备资料：\n    - 《客户收楼验房表》\n    - 《客户信息登记表》\n    - 已盖章的《临时管理规约》\n    - 《物业服务协议》\n    - 《消防安全责任书》\n    \n    客户应签署材料：\n    - 《临时管理规约》\n    - 《前期物业服务协议》\n    - 《消防安全责任书》\n    - 《社会治安综合治理责任书》\n    - 《委托扣款协议》\n    - 《客户信息登记表》\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 资料收集结果\n    \"\"\"\n    # TODO: 实现资料收集逻辑\n    # 1. 准备物业方资料\n    # 2. 引导客户填写/签署资料\n    # 3. 检查资料完整性\n    \n    return {\n        '状态': '完成',\n        '物业准备资料': ['客户收楼验房表', '客户信息登记表', '临时管理规约', '物业服务协议', '消防安全责任书'],\n        '客户签署资料': ['临时管理规约', '前期物业服务协议', '消防安全责任书', '社会治安综合治理责任书', '委托扣款协议', '客户信息登记表'],\n        '完整性检查': '通过'\n    }\n\ndef handover_materials(contract_no):\n    \"\"\"\n    移交资料（步骤3）\n    \n    移交资料：\n    - 客户手册\n    - 装修指南\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 资料移交结果\n    \"\"\"\n    # TODO: 实现资料移交逻辑\n    # 1. 准备客户手册、装修指南\n    # 2. 客户签收确认\n    \n    return {\n        '状态': '完成',\n        '移交资料': ['客户手册', '装修指南'],\n        '客户签收': '已签收',\n        '签收时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S')\n    }\n\ndef collect_onboarding_fees(contract_no):\n    \"\"\"\n    收取费用（步骤4）\n    \n    收费项目：\n    - 首月物业费\n    - 水电费周转金（两个月物业管理费等额费用）\n    - 首月不足自然月时，收取首月及次月物业费\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 费用收取结果\n    \"\"\"\n    # TODO: 实现费用收取逻辑\n    # 1. 计算应缴费用\n    # 2. 财务部收取费用\n    # 3. 出具缴费凭证\n    \n    return {\n        '状态': '完成',\n        '收费项目': ['首月物业费', '水电费周转金'],\n        '应收总额': 0.00,  # TODO: 从Excel读取计算\n        '实收总额': 0.00,  # TODO: 从Excel读取\n        '收据编号': 'TODO',\n        '收费时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S')\n    }\n\ndef inspect_property(contract_no):\n    \"\"\"\n    房屋验收、水电查抄（步骤5）\n    \n    验收内容：\n    - 客户单元设备数量清点、验收\n    - 房屋质量问题查验\n    - 水表读数查抄\n    - 电表读数查抄\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 房屋验收结果\n    \"\"\"\n    # TODO: 实现房屋验收逻辑\n    # 1. 工程部与客户共同验收\n    # 2. 填写《客户收楼验房表》\n    # 3. 查抄水、电表读数\n    # 4. 记录查验问题\n    \n    return {\n        '状态': '完成',\n        '验收结果': '合格',  # 或'不合格'\n        '验收时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),\n        '工程部验收人': '李工',\n        '客户代表': '客户联系人',\n        '水表读数': 0,  # TODO: 从现场读取\n        '电表读数': 0,  # TODO: 从现场读取\n        '查验问题': []  # 如有问题，填写此处\n    }\n\ndef handover_keys(contract_no, inspection_result):\n    \"\"\"\n    移交钥匙（步骤6）\n    \n    操作流程：\n    - 客户单元钥匙在与客户进行单元移交确认时移交\n    - 在《客户收楼验房表》中注明数量\n    - 客户授权委托人确认签字\n    \n    Args:\n        contract_no: 合同编号\n        inspection_result: 房屋验收结果\n    \n    Returns:\n        dict: 钥匙移交结果\n    \"\"\"\n    if inspection_result['验收结果'] != '合格':\n        return {'状态': '暂缓', '原因': '房屋验收不合格，待整改完成后移交'}\n    \n    # TODO: 实现钥匙移交逻辑\n    # 1. 准备客户单元钥匙\n    # 2. 客户授权委托人确认\n    # 3. 在《客户收楼验房表》中注明数量\n    # 4. 客户签字确认\n    \n    return {\n        '状态': '完成',\n        '钥匙数量': 0,  # TODO: 根据实际情况填写\n        '移交时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),\n        '客户签字': '客户授权委托人签字',\n        '备注': '钥匙已移交，客户确认签收'\n    }\n\ndef retain_keys_for_rectification(contract_no):\n    \"\"\"\n    留存钥匙（步骤7）\n    \n    适用情况：\n    - 交付单元内问题需要整改\n    - 客户选择将钥匙留存在物业服务中心\n    \n    操作流程：\n    - 客户填写《钥匙代管委托书》\n    - 一式两份\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 钥匙留存结果\n    \"\"\"\n    # TODO: 实现钥匙留存逻辑\n    # 1. 客户填写《钥匙代管委托书》\n    # 2. 一式两份，客户和物业各执一份\n    # 3. 钥匙留存于物业服务中心\n    \n    return {\n        '状态': '已留存',\n        '留存原因': '房屋验收不合格，需要整改',\n        '留存时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),\n        '钥匙代管委托书': '已签署',\n        '备注': '整改完成后，通知客户领取钥匙'\n    }\n\ndef track_rectification_progress(contract_no, inspection_result):\n    \"\"\"\n    问题整改跟进（步骤8）\n    \n    操作流程：\n    - 房屋问题登记应详细具体、清晰明了\n    - 问题统一交由工程部门进行返修\n    - 较难故障无法当日解决的需与客户沟通后处理\n    - 验收当日记录的遗留问题需统一整理形成台账\n    \n    Args:\n        contract_no: 合同编号\n        inspection_result: 房屋验收结果（包含查验问题）\n    \n    Returns:\n        dict: 整改跟进结果\n    \"\"\"\n    # TODO: 实现整改跟进逻辑\n    # 1. 整理遗留问题台账\n    # 2. 工程部门安排返修\n    # 3. 管家跟进整改进度\n    # 4. 整改完成后复验\n    \n    return {\n        '状态': '跟进中',\n        '查验问题数量': len(inspection_result.get('查验问题', [])),\n        '整改开始时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),\n        '预计完成时间': (datetime.now() + timedelta(days=15)).strftime('%Y-%m-%d'),\n        '工程负责人': '李工',\n        '管家跟进人': '戚亮先',\n        '备注': '整改期限为15天，管家每日跟进'\n    }\n\ndef archive_onboarding_documents(contract_no, process_data):\n    \"\"\"\n    资料存档（步骤9）\n    \n    存档内容：\n    - 客户档案（客户信息登记表、营业执照复印件等）\n    - 交付资料（收楼验房表、钥匙代管委托书等）\n    - 签署资料（临时管理规约、物业服务协议等）\n    \n    Args:\n        contract_no: 合同编号\n        process_data: 全流程数据\n    \n    Returns:\n        dict: 资料存档结果\n    \"\"\"\n    # TODO: 实现资料存档逻辑\n    # 1. 建立客户档案\n    # 2. 将相关交付资料和签署资料进行存档\n    # 3. 录入电脑系统\n    \n    return {\n        '状态': '已存档',\n        '存档时间': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),\n        '存档地点': '物业服务中心档案室',\n        '电子版存档': '已录入系统',\n        '备注': '客户档案已建立，资料已存档'\n    }\n\ndef generate_onboarding_report(contract_no, process_data):\n    \"\"\"\n    生成《客户入驻办理报告》\n    \n    Args:\n        contract_no: 合同编号\n        process_data: 全流程数据\n    \n    Returns:\n        str: 报告文件路径\n    \"\"\"\n    # 构建报告内容\n    report_content = f\"\"\"\n# 客户入驻办理报告\n\n**合同编号**：{contract_no}\n**报告时间**：{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n**编制**：企服助手 (Enterprise Service Assistant)\n\n---\n\n## 一、流程概览\n\n| 步骤 | 流程内容 | 状态 | 完成时间 |\n|------|----------|------|----------|\n| 1 | 核验客户身份、资料 | {process_data['身份核验']['状态']} | {process_data['身份核验']['核验时间']} |\n| 2 | 交房资料收集、表单填写 | {process_data['资料收集']['状态']} |  |\n| 3 | 移交资料 | {process_data['资料移交']['状态']} | {process_data['资料移交']['客户签收时间']} |\n| 4 | 收取费用 | {process_data['费用收取']['状态']} | {process_data['费用收取']['收费时间']} |\n| 5 | 房屋验收、水电查抄 | {process_data['房屋验收']['状态']} | {process_data['房屋验收']['验收时间']} |\n| 6 | 移交钥匙 | {process_data['钥匙移交']['状态']} | {process_data['钥匙移交'].get('移交时间', 'N/A')} |\n| 7 | 留存钥匙（如需整改） | {process_data['钥匙留存']['状态']} |  |\n| 8 | 问题整改跟进（如需整改） | {process_data['整改跟进']['状态']} |  |\n| 9 | 资料存档 | {process_data['资料存档']['状态']} | {process_data['资料存档']['存档时间']} |\n\n---\n\n## 二、详细记录\n\n### 2.1 身份核验\n\n- 核验时间：{process_data['身份核验']['核验时间']}\n- 核验人：{process_data['身份核验']['核验人']}\n- 核验结果：{process_data['身份核验']['状态']}\n- 备注：{process_data['身份核验']['备注']}\n\n### 2.2 费用收取\n\n- 收费项目：{', '.join(process_data['费用收取']['收费项目'])}\n- 应收总额：¥{process_data['费用收取']['应收总额']:.2f}\n- 实收总额：¥{process_data['费用收取']['实收总额']:.2f}\n- 收据编号：{process_data['费用收取']['收据编号']}\n\n### 2.3 房屋验收\n\n- 验收结果：{process_data['房屋验收']['验收结果']}\n- 验收时间：{process_data['房屋验收']['验收时间']}\n- 工程部验收人：{process_data['房屋验收']['工程部验收人']}\n- 客户代表：{process_data['房屋验收']['客户代表']}\n- 水表读数：{process_data['房屋验收']['水表读数']}\n- 电表读数：{process_data['房屋验收']['电表读数']}\n\n### 2.4 整改跟进（如有）\n\n- 整改状态：{process_data['整改跟进']['状态']}\n- 查验问题数量：{process_data['整改跟进']['查验问题数量']}\n- 整改开始时间：{process_data['整改跟进']['整改开始时间']}\n- 预计完成时间：{process_data['整改跟进']['预计完成时间']}\n- 工程负责人：{process_data['整改跟进']['工程负责人']}\n- 管家跟进人：{process_data['整改跟进']['管家跟进人']}\n\n---\n\n## 三、支持性文件\n\n| 文件编号 | 文件名称 | 版式 |\n|----------|----------|------|\n| {TODO: 填写表单编号} | 《客户信息登记表》 | 表格 |\n| {TODO: 填写文件编号} | 《钥匙代管委托书》 | 文档 |\n| {TODO: 填写表单编号} | 《客户收楼验房表（单元）》 | 表格 |\n| {TODO: 填写文件编号} | 《客户收楼验房表（共有部位）》 | 表格 |\n\n---\n\n**备注**：\n1. 本报告依据《C+基础保障服务手册-企服（含产促中心）管理工作规程》（ZJWY-QFWI）第二章编制\n2. 本报告一式两份，客户、物业服务中心各执一份\n3. 房屋验收不合格需整改的，整改完成后需进行复验\n\n**编制**：企服助手 (Enterprise Service Assistant)\n**版本**：V2.0\n\"\"\"\n    \n    # 保存为Markdown文件\n    output_dir = \"/Users/mac/客户入驻办理报告/\"\n    os.makedirs(output_dir, exist_ok=True)\n    \n    file_path = f\"{output_dir}{contract_no}_客户入驻办理报告_{datetime.now().strftime('%Y%m%d')}.md\"\n    \n    with open(file_path, 'w', encoding='utf-8') as f:\n        f.write(report_content)\n    \n    return file_path\n```\n    # 1. 获取客户信息（使用内联的客户档案查询函数）\n    customer_profile = query_customer_profile(contract_no=contract_no)\n    \n    if not customer_profile:\n        return {'状态': '失败', '原因': '客户信息未找到'}\n    \n    unit_no = customer_profile.get(\"单元号\", \"\")\n    tenant_name = customer_profile.get(\"租户名\", \"\")\n    lease_start = customer_profile.get(\"起租日期\", \"\")\n    lease_area = customer_profile.get(\"租赁面积\", 0)\n    \n    # 2. 组建服务团队（基于单元号分配）\n    service_team = assign_service_team(unit_no)\n    \n    # 3. 创建企微服务群（模拟）\n    wecom_group = create_wecom_service_group(unit_no, tenant_name, service_team)\n    \n    # 4. 生成《客户入驻信息交接单》\n    handover_form = generate_handover_form(contract_no, customer_profile, service_team)\n    \n    # 5. 推送交圈会通知\n    notification = send_handover_meeting_notification(contract_no, service_team, handover_form)\n    \n    return {\n        '状态': '成功',\n        '合同编号': contract_no,\n        '单元号': unit_no,\n        '租户名': tenant_name,\n        '服务团队': service_team,\n        '企微群': wecom_group,\n        '交接单': handover_form,\n        '通知状态': notification\n    }\n\ndef assign_service_team(unit_no):\n    \"\"\"\n    根据单元号分配服务团队\n    \n    Args:\n        unit_no: 单元号\n    \n    Returns:\n        dict: 服务团队名单\n    \"\"\"\n    # 服务团队配置（可配置）\n    team_config = {\n        \"管家\": {\n            \"T1-6F\": \"戚亮先\",\n            \"T1-7F\": \"戚亮先\",\n            \"T1-8F\": \"戚亮先\",\n            \"T1-9F\": \"刘瑞\",\n            \"T1-10F\": \"刘瑞\",\n            \"T1-11F\": \"刘瑞\",\n            \"T1-12F\": \"张三\",\n            \"T1-13F\": \"张三\",\n            \"T1-14F\": \"张三\"\n        },\n        \"工程专员\": \"李工\",\n        \"安管专员\": \"王队\",\n        \"环境专员\": \"张姐\",\n        \"产业服务专员\": \"赵经理\"\n    }\n    \n    # 提取楼层\n    floor = unit_no.split(\"-\")[1][:2] + \"F\"  # T1-601 → 6F\n    \n    service_team = {\n        \"管家\": team_config[\"管家\"].get(floor, \"未分配\"),\n        \"工程专员\": team_config[\"工程专员\"],\n        \"安管专员\": team_config[\"安管专员\"],\n        \"环境专员\": team_config[\"环境专员\"],\n        \"产业服务专员\": team_config[\"产业服务专员\"]\n    }\n    \n    return service_team\n\ndef create_wecom_service_group(unit_no, tenant_name, service_team):\n    \"\"\"\n    创建企微服务群（模拟函数）\n    \n    Args:\n        unit_no: 单元号\n        tenant_name: 租户名\n        service_team: 服务团队\n    \n    Returns:\n        str: 企微群名称或ID\n    \"\"\"\n    # TODO: 对接企微API创建群组\n    group_name = f\"【{unit_no}】{tenant_name} - 入驻服务群\"\n    \n    # 模拟创建成功\n    return group_name\n\ndef generate_handover_form(contract_no, customer_profile, service_team):\n    \"\"\"\n    生成《客户入驻信息交接单》\n    \n    Args:\n        contract_no: 合同编号\n        customer_profile: 客户档案\n        service_team: 服务团队\n    \n    Returns:\n        str: 交接单文件路径\n    \"\"\"\n    # 构建交接单内容\n    form_content = f\"\"\"\n# 客户入驻信息交接单\n\n**合同编号**：{contract_no}\n**生成时间**：{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n---\n\n## 一、客户基本信息\n\n| 字段 | 内容 |\n|------|------|\n| 单元号 | {customer_profile.get('单元号', '')} |\n| 租户名 | {customer_profile.get('租户名', '')} |\n| 租户联系人 | {customer_profile.get('租户联系人', '')} |\n| 联系电话 | {customer_profile.get('电话', '')} |\n| 租赁面积 | {customer_profile.get('租赁面积', 0)} ㎡ |\n| 起租日期 | {customer_profile.get('起租日期', '')} |\n| 截至日期 | {customer_profile.get('截至日期', '')} |\n| 首年合同单价 | ¥{customer_profile.get('首年合同单价', 0)}/㎡/月 |\n\n---\n\n## 二、服务团队分配\n\n| 角色 | 姓名 | 联系电话 | 职责 |\n|------|------|----------|------|\n| 管家 | {service_team.get('管家', '未分配')} | 138XXXXXXX | 日常对接、需求响应 |\n| 工程专员 | {service_team.get('工程专员', '未分配')} | 139XXXXXXX | 装修审批、工程维修 |\n| 安管专员 | {service_team.get('安管专员', '未分配')} | 137XXXXXXX | 安全管理、停车管理 |\n| 环境专员 | {service_team.get('环境专员', '未分配')} | 136XXXXXXX | 保洁、绿化、垃圾分类 |\n| 产业服务专员 | {service_team.get('产业服务专员', '未分配')} | 135XXXXXXX | C+服务、政策服务 |\n\n---\n\n## 三、交接事项清单\n\n### 3.1 招商部 → 产服部、物业服务中心\n\n- [ ] 客户档案移交（集客荟系统录入）\n- [ ] 合同副本移交（行政部存档）\n- [ ] 客户特殊需求移交（如有）\n- [ ] 租金、物业费标准确认\n\n### 3.2 物业服务中心 → 各班组\n\n- [ ] 管家接管客户，建立服务档案\n- [ ] 工程部检查单元水电设施\n- [ ] 安管部办理门禁卡、停车权限\n- [ ] 环境部安排保洁、绿化\n\n### 3.3 产业服务部 → 客户\n\n- [ ] 添加企业微信，邀请进入服务群\n- [ ] 介绍C+服务内容\n- [ ] 了解企业需求，制定服务计划\n\n---\n\n## 四、时间节点\n\n| 事项 | 责任部门 | 完成时限 |\n|------|----------|----------|\n| 交圈会召开 | 招商部组织 | 合同审批完成后3个工作日内 |\n| 场地交付验收 | 物业服务中心 | 起租日前5个工作日 |\n| 装修方案审核 | 工程部 | 收到方案后3个工作日内 |\n| 竣工验收 | 工程部 | 装修完成后3个工作日内 |\n\n---\n\n## 五、签字确认\n\n| 部门 | 签字 | 日期 |\n|------|------|------|\n| 招商部 |  |  |\n| 产业服务部 |  |  |\n| 物业服务中心 |  |  |\n| 财务部 |  |  |\n\n---\n\n**备注**：本交接单一式四份，招商部、产业服务部、物业服务中心、财务部各执一份。\n\n**编制**：企服助手 (Enterprise Service Assistant)\n**版本**：V1.0\n\"\"\"\n    \n    # 保存为Markdown文件\n    output_dir = \"/Users/mac/客户入驻交接单/\"\n    os.makedirs(output_dir, exist_ok=True)\n    \n    file_path = f\"{output_dir}{contract_no}_客户入驻信息交接单_{datetime.now().strftime('%Y%m%d')}.md\"\n    \n    with open(file_path, 'w', encoding='utf-8') as f:\n        f.write(form_content)\n    \n    # TODO: 可选：转换为PDF或上传到腾讯文档\n    \n    return file_path\n\ndef send_handover_meeting_notification(contract_no, service_team, handover_form):\n    \"\"\"\n    发送交圈会通知（模拟函数）\n    \n    Args:\n        contract_no: 合同编号\n        service_team: 服务团队\n        handover_form: 交接单文件路径\n    \n    Returns:\n        str: 通知状态\n    \"\"\"\n    # TODO: 对接企微API发送通知\n    notification_message = f\"\"\"\n━━━━━━━━━━━━━━━\n【客户入驻交圈会通知】\n\n📋 合同编号：{contract_no}\n📅 会议时间：{datetime.now().strftime('%Y-%m-%d')} 14:00\n📍 会议地点：项目会议室\n\n━━━ 参会人员 ━━━\n• 管家：{service_team.get('管家', '未分配')}\n• 工程专员：{service_team.get('工程专员', '未分配')}\n• 安管专员：{service_team.get('安管专员', '未分配')}\n• 环境专员：{service_team.get('环境专员', '未分配')}\n• 产业服务专员：{service_team.get('产业服务专员', '未分配')}\n\n━━━ 会议议程 ━━━\n1. 招商部介绍客户基本情况\n2. 讨论客户特殊需求和注意事项\n3. 明确各部门职责分工\n4. 确定时间节点和交付标准\n\n📎 附件：{handover_form}\n\n请各位准时参加！\n━━━━━━━━━━━━━━━\n\"\"\"\n    \n    # 模拟发送成功\n    print(notification_message)\n    return \"通知已发送\"\n```\n\n### 2. 场地交付验收模块\n\n```python\ndef schedule_delivery_inspection(contract_no, inspection_date=None):\n    \"\"\"\n    预约场地交付验收\n    \n    Args:\n        contract_no: 合同编号\n        inspection_date: 验收日期（默认为起租日前5个工作日）\n    \n    Returns:\n        dict: 验收安排\n    \"\"\"\n    # 1. 获取客户信息（使用内联的客户档案查询函数）\n    customer_profile = query_customer_profile(contract_no=contract_no)\n    \n    if not customer_profile:\n        return {'状态': '失败', '原因': '客户信息未找到'}\n    \n    unit_no = customer_profile.get(\"单元号\", \"\")\n    tenant_name = customer_profile.get(\"租户名\", \"\")\n    lease_start = parse_excel_date(customer_profile.get(\"起租日期\", \"\"))\n    \n    # 2. 计算验收日期（默认为起租日前5个工作日）\n    if not inspection_date:\n        inspection_date = lease_start - timedelta(days=7)  # 简化：7天，实际应扣除周末\n    \n    # 3. 分配验收人员\n    inspection_team = {\n        \"管家\": assign_service_team(unit_no).get(\"管家\", \"未分配\"),\n        \"工程专员\": \"李工\",\n        \"客户代表\": customer_profile.get(\"租户联系人\", \"负责人\")\n    }\n    \n    # 4. 生成《场地交付验收单》\n    inspection_form = generate_delivery_inspection_form(contract_no, customer_profile, inspection_team, inspection_date)\n    \n    # 5. 发送验收通知\n    notification = send_inspection_notification(contract_no, inspection_team, inspection_date, inspection_form)\n    \n    return {\n        '状态': '成功',\n        '合同编号': contract_no,\n        '单元号': unit_no,\n        '验收日期': inspection_date.strftime('%Y-%m-%d'),\n        '验收人员': inspection_team,\n        '验收单': inspection_form,\n        '通知状态': notification\n    }\n\ndef generate_delivery_inspection_form(contract_no, customer_profile, inspection_team, inspection_date):\n    \"\"\"\n    生成《场地交付验收单》\n    \n    Args:\n        contract_no: 合同编号\n        customer_profile: 客户档案\n        inspection_team: 验收人员\n        inspection_date: 验收日期\n    \n    Returns:\n        str: 验收单文件路径\n    \"\"\"\n    unit_no = customer_profile.get(\"单元号\", \"\")\n    lease_area = customer_profile.get(\"租赁面积\", 0)\n    \n    # 构建验收单内容\n    form_content = f\"\"\"\n# 场地交付验收单\n\n**合同编号**：{contract_no}\n**验收日期**：{inspection_date.strftime('%Y-%m-%d')}\n**验收时间**：{inspection_date.strftime('%H:%M')}\n\n---\n\n## 一、场地基本信息\n\n| 字段 | 内容 |\n|------|------|\n| 单元号 | {unit_no} |\n| 租赁面积 | {lease_area} ㎡ |\n| 租户名 | {customer_profile.get('租户名', '')} |\n| 客户代表 | {inspection_team.get('客户代表', '')} |\n\n---\n\n## 二、验收项目清单\n\n### 2.1 主体结构\n\n| 序号 | 验收项目 | 标准要求 | 验收结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 墙面 | 无裂缝、无渗水 | □合格 □不合格 |  |\n| 2 | 地面 | 平整、无空鼓 | □合格 □不合格 |  |\n| 3 | 天花板 | 无裂缝、无渗水 | □合格 □不合格 |  |\n| 4 | 门窗 | 开启灵活、密封良好 | □合格 □不合格 |  |\n| 5 | 玻璃 | 完好、无划痕 | □合格 □不合格 |  |\n\n### 2.2 强弱电系统\n\n| 序号 | 验收项目 | 标准要求 | 验收结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 配电箱 | 回路标识清晰、开关正常 | □合格 □不合格 |  |\n| 2 | 插座 | 通电正常、接地良好 | □合格 □不合格 |  |\n| 3 | 照明 | 灯具完好、开关正常 | □合格 □不合格 |  |\n| 4 | 网络接口 | 通断测试正常 | □合格 □不合格 |  |\n| 5 | 电话接口 | 通断测试正常 | □合格 □不合格 |  |\n\n### 2.3 给排水系统\n\n| 序号 | 验收项目 | 标准要求 | 验收结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 自来水 | 水压正常、无渗漏 | □合格 □不合格 |  |\n| 2 | 下水 | 排水通畅、无堵塞 | □合格 □不合格 |  |\n| 3 | 卫生间 | 设施完好、无渗漏 | □合格 □不合格 |  |\n\n### 2.4 空调系统\n\n| 序号 | 验收项目 | 标准要求 | 验收结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 空调主机 | 制冷/制热正常 | □合格 □不合格 |  |\n| 2 | 空调末端 | 出风正常、无噪音 | □合格 □不合格 |  |\n| 3 | 控制系统 | 遥控/面板正常 | □合格 □不合格 |  |\n\n### 2.5 消防设施\n\n| 序号 | 验收项目 | 标准要求 | 验收结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 烟感探测器 | 报警正常 | □合格 □不合格 |  |\n| 2 | 喷淋系统 | 水压正常 | □合格 □不合格 |  |\n| 3 | 消火栓 | 配件齐全、水压正常 | □合格 □不合格 |  |\n| 4 | 应急照明 | 备用电源正常 | □合格 □不合格 |  |\n\n### 2.6 其他设施\n\n| 序号 | 验收项目 | 标准要求 | 验收结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 门禁系统 | 读卡正常、开锁正常 | □合格 □不合格 |  |\n| 2 | 视频监控 | 画面清晰、存储正常 | □合格 □不合格 |  |\n| 3 | 停车场系统 | 抬杆正常、计费准确 | □合格 □不合格 |  |\n\n---\n\n## 三、验收结果\n\n### 3.1 验收结论\n\n□ 合格，同意交付\n□ 基本合格， minor issues 需整改\n□ 不合格，需重大整改\n\n### 3.2 整改事项（如有）\n\n| 序号 | 整改项目 | 整改要求 | 责任方 | 完成时限 |\n|------|----------|----------|----------|----------|\n| 1 |  |  |  |  |\n| 2 |  |  |  |  |\n| 3 |  |  |  |  |\n\n---\n\n## 四、签字确认\n\n| 角色 | 姓名 | 签字 | 日期 |\n|------|------|------|------|\n| 客户代表 | {inspection_team.get('客户代表', '')} |  |  |\n| 管家 | {inspection_team.get('管家', '')} |  |  |\n| 工程专员 | {inspection_team.get('工程专员', '')} |  |  |\n\n---\n\n**备注**：\n1. 本标准依据《园区运营项目客户服务标准指引》制定\n2. 验收不合格项需在3个工作日内完成整改\n3. 整改完成后需重新验收\n\n**编制**：企服助手 (Enterprise Service Assistant)\n**版本**：V1.0\n\"\"\"\n    \n    # 保存为Markdown文件\n    output_dir = \"/Users/mac/场地交付验收单/\"\n    os.makedirs(output_dir, exist_ok=True)\n    \n    file_path = f\"{output_dir}{contract_no}_场地交付验收单_{inspection_date.strftime('%Y%m%d')}.md\"\n    \n    with open(file_path, 'w', encoding='utf-8') as f:\n        f.write(form_content)\n    \n    return file_path\n\ndef send_inspection_notification(contract_no, inspection_team, inspection_date, inspection_form):\n    \"\"\"\n    发送验收通知（模拟函数）\n    \n    Args:\n        contract_no: 合同编号\n        inspection_team: 验收人员\n        inspection_date: 验收日期\n        inspection_form: 验收单文件路径\n    \n    Returns:\n        str: 通知状态\n    \"\"\"\n    # TODO: 对接企微API发送通知\n    notification_message = f\"\"\"\n━━━━━━━━━━━━━━━\n【场地交付验收通知】\n\n📋 合同编号：{contract_no}\n📅 验收日期：{inspection_date.strftime('%Y-%m-%d %H:%M')}\n📍 验收地点：{inspection_team.get('管家', '')} 集合\n\n━━━ 验收人员 ━━━\n• 客户代表：{inspection_team.get('客户代表', '负责人')}\n• 管家：{inspection_team.get('管家', '未分配')}\n• 工程专员：{inspection_team.get('工程专员', '未分配')}\n\n━━━ 验收准备 ━━━\n1. 请客户代表携带身份证原件\n2. 请工程专员准备验收工具（手电筒、卷尺、相位仪等）\n3. 请管家准备《场地交付验收单》和签字笔\n\n📎 附件：{inspection_form}\n\n请各位准时到达！\n━━━━━━━━━━━━━━━\n\"\"\"\n    \n    # 模拟发送成功\n    print(notification_message)\n    return \"通知已发送\"\n\ndef track_inspection_rectification(contract_no, inspection_form):\n    \"\"\"\n    跟踪验收问题整改情况\n    \n    Args:\n        contract_no: 合同编号\n        inspection_form: 验收单文件路径\n    \n    Returns:\n        dict: 整改进度\n    \"\"\"\n    # TODO: 读取验收单，检查是否有整改事项\n    # TODO: 跟踪整改进度，提醒责任方按时完成\n    # TODO: 整改完成后，安排复验\n    \n    return {'状态': '功能开发中...'}\n```\n\n### 3. 场地装修管理模块\n\n```python\ndef track_renovation_management(contract_no):\n    \"\"\"\n    跟踪装修管理全流程\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 装修管理状态\n    \"\"\"\n    # 1. 获取客户信息（使用内联的客户档案查询函数）\n    customer_profile = query_customer_profile(contract_no=contract_no)\n    \n    if not customer_profile:\n        return {'状态': '失败', '原因': '客户信息未找到'}\n    \n    unit_no = customer_profile.get(\"单元号\", \"\")\n    tenant_name = customer_profile.get(\"租户名\", \"\")\n    \n    # 2. 读取装修管理台账（待建）\n    # TODO: 创建\"装修管理\"工作表\n    renovation_status = get_renovation_status(contract_no)\n    \n    # 3. 根据装修状态触发相应动作\n    if renovation_status['状态'] == '方案待审核':\n        # 提醒工程部审核\n        notification = send_renovation_review_reminder(contract_no, renovation_status)\n        return {'状态': '提醒已发送', '通知': notification}\n    \n    elif renovation_status['状态'] == '装修中':\n        # 生成巡查记录\n        patrol_record = generate_renovation_patrol_record(contract_no, renovation_status)\n        return {'状态': '巡查记录已生成', '记录': patrol_record}\n    \n    elif renovation_status['状态'] == '装修完成待验收':\n        # 提醒工程部验收\n        notification = send_renovation_acceptance_reminder(contract_no, renovation_status)\n        return {'状态': '提醒已发送', '通知': notification}\n    \n    else:\n        return {'状态': '无需操作', '当前状态': renovation_status['状态']}\n\ndef get_renovation_status(contract_no):\n    \"\"\"\n    读取装修管理台账，获取装修状态\n    \n    Args:\n        contract_no: 合同编号\n    \n    Returns:\n        dict: 装修状态\n    \"\"\"\n    # TODO: 创建\"装修管理\"工作表\n    # 模拟返回\n    return {\n        '状态': '方案待审核',\n        '合同编号': contract_no,\n        '单元号': 'T1-601',\n        '租户名': '示例企业',\n        '装修公司': 'XX装饰公司',\n        '方案提交日期': '2026-06-01',\n        '预计开工日期': '2026-06-10',\n        '预计竣工日期': '2026-08-10'\n    }\n\ndef send_renovation_review_reminder(contract_no, renovation_status):\n    \"\"\"\n    发送装修方案审核提醒\n    \n    Args:\n        contract_no: 合同编号\n        renovation_status: 装修状态\n    \n    Returns:\n        str: 提醒状态\n    \"\"\"\n    # TODO: 对接企微API发送提醒\n    reminder_message = f\"\"\"\n━━━━━━━━━━━━━━━\n【装修方案审核提醒】\n\n📋 合同编号：{contract_no}\n🏢 单元号：{renovation_status['单元号']}\n🏗️ 装修公司：{renovation_status['装修公司']}\n\n━━━ 审核信息 ━━━\n• 方案提交日期：{renovation_status['方案提交日期']}\n• 预计开工日期：{renovation_status['预计开工日期']}\n• 审核时限：3个工作日\n\n⚠️ 请工程部于{ (datetime.now() + timedelta(days=3)).strftime('%Y-%m-%d')}前完成审核！\n\n如有问题，请及时联系管家。\n━━━━━━━━━━━━━━━\n\"\"\"\n    \n    # 模拟发送成功\n    print(reminder_message)\n    return \"提醒已发送\"\n\ndef generate_renovation_patrol_record(contract_no, renovation_status):\n    \"\"\"\n    生成装修巡查记录\n    \n    Args:\n        contract_no: 合同编号\n        renovation_status: 装修状态\n    \n    Returns:\n        str: 巡查记录文件路径\n    \"\"\"\n    # 构建巡查记录内容\n    record_content = f\"\"\"\n# 装修巡查记录\n\n**合同编号**：{contract_no}\n**巡查日期**：{datetime.now().strftime('%Y-%m-%d')}\n**巡查时间**：{datetime.now().strftime('%H:%M')}\n\n---\n\n## 一、基本信息\n\n| 字段 | 内容 |\n|------|------|\n| 单元号 | {renovation_status['单元号']} |\n| 租户名 | {renovation_status['租户名']} |\n| 装修公司 | {renovation_status['装修公司']} |\n| 巡查人员 | 李工 |\n| 巡查类型 | □日常巡查 □专项巡查 □随机抽查 |\n\n---\n\n## 二、巡查项目\n\n### 2.1 施工安全\n\n| 序号 | 巡查项目 | 标准要求 | 巡查结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 动火作业 | 有动火证、有监护人员 | □符合 □不符合 |  |\n| 2 | 高空作业 | 有高空作业证、有安全防护 | □符合 □不符合 |  |\n| 3 | 临时用电 | 有临时用电许可证、电线无破损 | □符合 □不符合 |  |\n| 4 | 消防设施 | 灭火器配备到位、完好有效 | □符合 □不符合 |  |\n\n### 2.2 施工规范\n\n| 序号 | 巡查项目 | 标准要求 | 巡查结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 施工时间 | 工作日8:00-12:00, 14:00-18:00 | □符合 □不符合 |  |\n| 2 | 材料堆放 | 指定区域、整齐有序 | □符合 □不符合 |  |\n| 3 | 垃圾清运 | 日产日清、分类处置 | □符合 □不符合 |  |\n| 4 | 噪音控制 | 符合环保标准 | □符合 □不符合 |  |\n\n### 2.3 施工质量\n\n| 序号 | 巡查项目 | 标准要求 | 巡查结果 | 备注 |\n|------|----------|----------|----------|------|\n| 1 | 主体结构 | 无擅自改动 | □符合 □不符合 |  |\n| 2 | 水电管线 | 按图施工、规范敷设 | □符合 □不符合 |  |\n| 3 | 消防设施 | 未遮挡、未改动 | □符合 □不符合 |  |\n| 4 | 外观效果 | 符合设计方案 | □符合 □不符合 |  |\n\n---\n\n## 三、巡查结论\n\n### 3.1 巡查结论\n\n□ 合格，继续施工\n□ 基本合格，minor issues 需整改\n□ 不合格，需停工整改\n\n### 3.2 整改事项（如有）\n\n| 序号 | 整改项目 | 整改要求 | 责任方 | 完成时限 |\n|------|----------|----------|----------|----------|\n| 1 |  |  |  |  |\n| 2 |  |  |  |  |\n\n---\n\n## 四、签字确认\n\n| 角色 | 姓名 | 签字 | 日期 |\n|------|------|------|------|\n| 巡查人员 | 李工 |  |  |\n| 装修公司代表 |  |  |  |\n\n---\n\n**备注**：\n1. 本标准依据《园区运营项目客户服务标准指引》制定\n2. 不合格项需立即停工整改，整改完成后需复查\n3. 巡查记录将作为竣工验收的依据之一\n\n**编制**：企服助手 (Enterprise Service Assistant)\n**版本**：V1.0\n\"\"\"\n    \n    # 保存为Markdown文件\n    output_dir = \"/Users/mac/装修巡查记录/\"\n    os.makedirs(output_dir, exist_ok=True)\n    \n    file_path = f\"{output_dir}{contract_no}_装修巡查记录_{datetime.now().strftime('%Y%m%d')}.md\"\n    \n    with open(file_path, 'w', encoding='utf-8') as f:\n        f.write(record_content)\n    \n    return file_path\n\ndef send_renovation_acceptance_reminder(contract_no, renovation_status):\n    \"\"\"\n    发送竣工验收提醒\n    \n    Args:\n        contract_no: 合同编号\n        renovation_status: 装修状态\n    \n    Returns:\n        str: 提醒状态\n    \"\"\"\n    # TODO: 对接企微API发送提醒\n    reminder_message = f\"\"\"\n━━━━━━━━━━━━━━━\n【竣工验收提醒】\n\n📋 合同编号：{contract_no}\n🏢 单元号：{renovation_status['单元号']}\n🏗️ 装修公司：{renovation_status['装修公司']}\n\n━━━ 验收信息 ━━━\n• 装修完成日期：{renovation_status['预计竣工日期']}\n• 验收时限：装修完成后3个工作日内\n\n⚠️ 请工程部于{(datetime.now() + timedelta(days=3)).strftime('%Y-%m-%d')}前完成竣工验收！\n\n验收合格后，方可投入使用。\n━━━━━━━━━━━━━━━\n\"\"\"\n    \n    # 模拟发送成功\n    print(reminder_message)\n    return \"提醒已发送\"\n```\n\n---\n\n## 执行流程\n\n```\nStep 1 → 触发入驻流程\n         合同审批完成后3个工作日内\n         或手动触发：@企服助手 客户入驻 [合同编号]\n\nStep 2 → 客户入驻内部交圈\n         组建服务团队\n         创建企微服务群\n         生成《客户入驻信息交接单》\n         召开交圈会\n\nStep 3 → 场地交付验收\n         预约验收时间（起租日前5个工作日）\n         生成《场地交付验收单》\n         现场验收\n         跟踪整改（如有）\n\nStep 4 → 场地装修管理（如有）\n         提醒工程部审核装修方案（3个工作日内）\n         装修巡查（每周至少1次）\n         提醒工程部竣工验收（装修完成后3个工作日内）\n\nStep 5 → 入驻完成\n         更新客户状态为\"已入驻\"\n         安排首次走访（入住后1周内）\n```\n\n---\n\n## 定时任务配置\n\n```json\n{\n  \"name\": \"客户入驻流程检查\",\n  \"schedule\": {\n    \"kind\": \"cron\",\n    \"expr\": \"0 9 * * *\",\n    \"tz\": \"Asia/Shanghai\"\n  },\n  \"payload\": {\n    \"kind\": \"agentTurn\",\n    \"message\": \"检查合同审批状态，触发客户入驻流程；检查验收和装修状态，发送提醒通知\"\n  },\n  \"sessionTarget\": \"isolated\"\n}\n```\n\n**说明**：每天09:00自动检查入住流程状态，触发相应动作。\n\n---\n\n## 手动触发方式\n\n1. **企微 @提及**: `@企服助手 客户入驻 [合同编号]`\n2. **OpenClaw指令**: `触发客户入驻 [合同编号]`\n   - 示例：`触发客户入驻 {TODO: 填写合同编号}`\n\n---\n\n## 配置参数\n\n```json\n{\n  \"customer_onboarding\": {\n    \"excel_path\": \"/Users/mac/示例产业园AC+服务.xlsx\",\n    \"handover_meeting_days\": 3,  // 合同审批完成后3个工作日内召开交圈会\n    \"inspection_days_before_lease_start\": 5,  // 起租日前5个工作日验收\n    \"renovation_review_days\": 3,  // 装修方案3个工作日内审核\n    \"renovation_acceptance_days\": 3,  // 装修完成后3个工作日内验收\n    \"wecom_webhook\": \"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx\",\n    \"service_team_config\": {\n      \"管家\": {\n        \"T1-6F\": \"戚亮先\",\n        \"T1-7F\": \"戚亮先\",\n        \"T1-8F\": \"戚亮先\",\n        \"T1-9F\": \"刘瑞\",\n        \"T1-10F\": \"刘瑞\",\n        \"T1-11F\": \"刘瑞\",\n        \"T1-12F\": \"张三\",\n        \"T1-13F\": \"张三\",\n        \"T1-14F\": \"张三\"\n      },\n      \"工程专员\": \"李工\",\n      \"安管专员\": \"王队\",\n      \"环境专员\": \"张姐\",\n      \"产业服务专员\": \"赵经理\"\n    }\n  }\n}\n```\n\n---\n\n## 使用示例\n\n**用户输入**: `@企服助手 客户入驻 {TODO: 填写合同编号}`\n\n**输出**:\n```\n━━━━━━━━━━━━━━━\n【客户入驻流程已触发】\n\n📋 合同编号：{TODO: 填写合同编号}\n🏢 单元号：T1-601\n🏢 租户名：上海XX有限公司\n\n━━━ 服务团队分配 ━━━\n• 管家：戚亮先\n• 工程专员：李工\n• 安管专员：王队\n• 环境专员：张姐\n• 产业服务专员：赵经理\n\n━━━ 流程进度 ━━━\n✅ 1. 内部交圈会已安排（2026-06-05 14:00）\n✅ 2. 《客户入驻信息交接单》已生成\n   📎 /Users/mac/客户入驻交接单/{TODO: 填写合同编号}_客户入驻信息交接单_20260602.md\n⏳ 3. 场地交付验收待安排（起租日前5个工作日）\n⏳ 4. 装修管理（如有）\n\n━━━ 下一步操作 ━━━\n请各部门准备交圈会，准时参加！\n━━━━━━━━━━━━━━━\n```\n\n---\n\n## 后续扩展接口\n\n1. **对接集客荟系统 API** - 实时获取合同审批状态\n2. **对接企微 API** - 自动创建服务群、发送通知\n3. **创建\"装修管理\"工作表** - 记录装修全流程\n4. **生成PDF格式的验收单和巡查记录** - 支持电子签名\n5. **对接腾讯文档 API** - 在线协作编辑交接单、验收单\n\n---\n\n## 注意事项\n\n1. **时效性** - 各环节需在规定时限内完成（交圈会3个工作日、验收和审核3-5个工作日）\n2. **责任明确** - 每个环节明确责任部门和责任人\n3. **闭环管理** - 验收不合格、整改未完成需跟踪闭环\n4. **文档归档** - 所有交接单、验收单、巡查记录需归档保存\n\n---\n\n**当前状态**: 技能已创建，核心逻辑已定义，待与实际系统集成。\n\n**核心功能**: 客户入驻内部交圈、场地交付验收、场地装修管理。\n\n**未来扩展**: 对接各系统API，实现全流程自动化。\n\nFile v2.3.0:enterprise-service-starter/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: enterprise-service-starter\ndescription: 企服助手一键初始化技能。当新用户输入\"@企服助手初始化\"、\"@企服助手 install\"、\"安装企服助手\"、\"enterprise-service install\"时触发。自动检测并安装8个核心依赖技能（contract-renewal、fee-collection、enterprise-customer-management、inventory-monitor、service-matching、workorder-dispatch、visit-management、enterprise-service-assistant），然后引导用户配置项目知识库。\n---\n\n# 企服助手 - 一键初始化技能\n\n## 🚀 触发方式\n\n当新用户输入以下**任一关键词**时，此技能自动触发：\n\n- `@企服助手初始化`\n- `@企服助手 install`\n- `/install enterprise-service`\n- `安装企服助手`\n- `enterprise-service install`\n\n---\n\n## 📋 自动化安装流程\n\n### 第一步：检测并安装依赖技能\n\n使用 `skillhub_install` 工具依次安装以下8个核心技能：\n\n1. contract-renewal - 合同续租预警\n2. fee-collection - 费用催缴管理\n3. enterprise-customer-management - 客户管理中心\n4. inventory-monitor - 库存监控与补货提醒\n5. service-matching - C+服务需求匹配\n6. workorder-dispatch - 工单分派与SLA监控\n7. visit-management -走访计划管理与提醒\n8. enterprise-service-assistant -企业服务智能助手主技能\n\n**执行方式**：\n```\n对每个技能调用：skillhub_install(action=\"install_skill\", skillName=\"<skill-name>\")\n```\n\n###第二步：验证安装echo\"\"===验证安袭===\"\"foreach skill in \"${SKILLS[@]}\"; do\n\n\n      if!openclaw sk lls list|grep-q \"$skill\"; then\n\n\n        echo \"\"❌$sk ill installation failed!\"\"\"\n        exit1fi\n\n\n\n    done\n \nech o \"\"✅ All dependencies installed successfully!\"\"\n\n---\n\n## 📝第三步：引导配置项目知识库（重要！）\n\n安装完成后，**必须引导用户创建自己的项目知识库**。\n\n⚠️ **重要提示**：每个用户的项目配置是独立的，包含：\n- Excel数据源路径（如 `/Users/yourname/示例产业园AC+服务.xlsx`）\n-  企业微信 Webhook URL\n  \n### 📋下一步操作指南（告诉用户）：```markdown🎉企服助手核心技有安袭完成！\n\n###📂创建你的项目知识库：\n\n1.**找到你的workspace目录**（通常是 `~/.openclaw /workspace/`或自定义路径）\n\n2.**创建knowledge目录**（如果不存在）：\n   bashmkdir-p knowledge\n  \n3.**创建 PROJECT_KB.md**：参考以下模板创建你自己的配置文件中txt#项目名称项目名称：-数据类型：`你的Excel文件路径`-企业微信Webhook：`你的Webhook地址`-业务规则：根据自身需求调整\n    \n4.**重启OpenCla **，让配置生效！\n\n---\n\n##💡注意事项\n\n\n\n不要复制他人的PROJECT_KB.md直接使只作参考模板！\n每个用户的Excel文件路径不同，必须修改！\n企业微信Webhook是敏感信息，不要泄露！\n\n是否需要我帮你生成一个性的PROJECT_KB.md模板？\n```\n\nFile v2.3.0:fee-collection/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: fee-collection\ndescription: 费用催缴管理技能。基于《C+基础保障服务手册-企服管理工作规程》第十一章，实现规范的费用催缴流程，包括智能分级催缴、个性化话术、能耗欠费合并计算等。触发场景：(1) 定时检查费用收缴状态（每天10:00），(2) 手动触发催缴检查（@企服助手 催缴检查），(3) 企微群关键词触发（@催缴），(4) 逾期分级处理（1-7天静默、8-30天推送、31天+ @all）。\nlicense: Proprietary. LICENSE.txt has complete terms\n---\n\n# 费用催缴管理技能\n\n## 概述\n\n本技能基于《C+基础保障服务手册-企服（含产促中心）管理工作规程》（{TODO: 填写文件编号}）第十一章，实现规范的费用催缴流程。\n\n## 核心流程\n\n### 1. 费用收缴管理\n\n#### 费用类型\n1. **入伙费用**：首月管理费、专项维修资金及水电周转金\n2. **二次装修费用**：装修保证金、垃圾清运费、出入证保证金、出入证工本费、消防水费、临时施工用水、电费等\n3. **管理费、电费**：每月5日前打印收费通知书，20日前客户须付清\n4. **有偿服务费**：维修、清洁、空调加时费等，每月25日前汇总\n\n#### 收费通知流程\n1. 财务人员打印《收费通知书》\n2. 企服管家将通知书送达客户并签收\n3. 客户在每月20日前付清费用\n4. 企服管家跟进催款\n\n### 2. 智能催缴策略\n\n#### 三级分级体系\n\n**第一级：1-7天（静默期）**\n- **策略**：静默处理，仅内部记录\n- **动作**：不主动联系客户，仅系统记录逾期状态\n- **话术**：无（不发送提醒）\n\n**第二级：8-30天（提醒期）**\n- **策略**：主动提醒，推送催缴通知\n- **动作**：发送催缴通知，电话提醒\n- **话术模板**：\n  - \"尊敬的{客户名称}，您的{费用类型}（{金额}元）已逾期{逾期天数}天，请尽快缴纳。\"\n  - \"【催缴通知】{客户名称}：请于{限缴日期}前缴纳{费用类型}{金额}元。\"\n\n**第三级：31天+（升级期）**\n- **策略**：升级处理，@all通知\n- **动作**：@all通知，上报负责人，考虑法律途径\n- **话术模板**：\n  - \"@all 【紧急催缴】{客户名称} - {费用类型} 已逾期{逾期天数}天，请立即处理！\"\n  - \"【最后通知】您的{费用类型}（{金额}元）已逾期{逾期天数}天，请于{限缴日期}前缴纳，否则将采取进一步措施。\"\n\n### 3. 个性化话术生成\n\n#### 话术个性化维度\n1. **客户类型**：\n   - VIP客户：尊敬的VIP客户{客户名称}...\n   - 普通客户：尊敬的{客户名称}...\n   - 新客户：欢迎入驻{客户名称}，请按时缴纳...\n\n2. **逾期历史**：\n   - 首次逾期：首次逾期，请尽快处理...\n   - 多次逾期：您已多次逾期，请高度重视...\n\n3. **费用类型**：\n   - 管理费：物业管理费...\n   - 电费：电费...\n   - 租金：租金...\n\n4. **催缴阶段**：\n   - 提醒阶段：温馨提醒...\n   - 警告阶段：正式警告...\n   - 最后通知：最后通知...\n\n### 4. 能耗欠费合并计算\n\n#### 合并逻辑\n1. **按客户合并**：同一客户的所有欠费合并计算\n2. **按费用类型分组**：管理费、电费、租金等分别统计\n3. **计算总额**：本金 + 滞纳金（如适用）\n4. **生成合并通知**：一次性通知所有欠费\n\n#### 合并通知示例\n```\n【合并缴费提醒】上海XX科技有限公司：\n\n您有以下费用待缴纳：\n1. 2024年1月管理费：12,500元（逾期5天）\n2. 2024年1月电费：3,200元（逾期5天）\n3. 2023年4季度租金：50,000元（逾期35天）\n\n总金额：65,700元\n请尽快安排缴纳，避免产生更多滞纳金。\n```\n\n## 职责分配\n\n### 财务部\n1. 负责每月按时核算、出具管理费以及其他各项费用《收费通知书》\n2. 收取相关费用\n\n### 企服部\n1. 负责将《物业收费通知书》送达客户，给客户签收\n2. 跟进催款\n3. 列出用户欠款情况表\n\n### 项目负责人\n1. 审查欠款情况表\n2. 批示对仍欠款用户采取适当催款措施\n\n## 支持性文件及相关记录\n\n| 文件编号 | 支持性文件名称 | 版式 |\n|---------|--------------|------|\n| {TODO: 填写文件编号}-F01 | 《收费通知单》 | 表单 |\n| {TODO: 填写文件编号}-F02 | 《欠费催款通知书》 | 表单 |\n| {TODO: 填写文件编号}-F03 | 《欠费逾期通知书》 | 表单 |\n| {TODO: 填写文件编号}-F04 | 《暂停服务通知书》 | 表单 |\n\n## 使用场景\n\n### 场景1：定时检查费用收缴状态\n**触发条件**：每天10:00定时任务\n\n**处理流程**：\n1. 读取Excel中的费用数据\n2. 计算逾期天数\n3. 按三级分级体系分类\n4. 生成催缴提醒\n5. 发送通知（8-30天推送，31天+ @all）\n\n### 场景2：手动触发催缴检查\n**触发条件**：@企服助手 催缴检查\n\n**处理流程**：\n1. 立即执行费用催缴检查\n2. 生成催缴报告\n3. 返回逾期费用清单\n\n### 场景3：企微群关键词触发\n**触发条件**：企微群中@催缴\n\n**处理流程**：\n1. 识别关键词\n2. 执行催缴检查\n3. 在群中发送催缴通知\n\n### 场景4：逾期分级处理\n**触发条件**：系统自动判断逾期天数\n\n**处理流程**：\n1. 1-7天：静默处理，仅记录\n2. 8-30天：推送催缴通知\n3. 31天+：@all通知，升级处理\n\n## 数据源配置\n\n主数据源：`/Users/mac/示例产业园AC+服务.xlsx`\n\n**相关数据表**：\n- 费用收缴表（用于费用数据读取）\n- 客户信息表（用于客户信息关联）\n- 催缴记录表（用于催缴历史记录）\n\n## 输出示例\n\n### 催缴提醒消息\n```\n【催缴通知】示例企业餐饮管理有限公司：\n\n您的2024年1月管理费（12,500元）已逾期12天，请尽快缴纳。\n\n缴费账户：XXX银行 XXX账户\n缴费截止日期：2024年1月31日\n\n如有疑问，请联系物业服务中心。\n```\n\n### 逾期费用清单\n```\n示例集团示例产业园A逾期费用清单\n生成时间：2024-01-15 10:00\n\n一、1-7天逾期（静默处理）\n1. 上海XX科技有限公司 - 管理费 - 12,500元 - 逾期3天\n\n二、8-30天逾期（提醒通知）\n1. 深圳XX贸易有限公司 - 电费 - 3,200元 - 逾期12天\n2. 广州XX技术有限公司 - 租金 - 50,000元 - 逾期25天\n\n三、31天+逾期（升级通知）\n1. 上海YY餐饮有限公司 - 管理费 - 12,500元 - 逾期35天\n2. 深圳ZZ科技有限公司 - 综合服务费 - 8,000元 - 逾期42天\n\n总计：7笔，总金额：94,200元\n```\n\n## 关键指标\n\n### 催缴效果指标\n- **催缴响应率**：收到催缴后7日内缴费的比例 ≥ 70%\n- **催缴成功率**：催缴后30日内缴费的比例 ≥ 90%\n- **平均催缴次数**：成功催缴前的平均提醒次数 ≤ 3次\n\n### 时效性指标\n- **催缴及时率**：逾期后8日内首次催缴的比例 = 100%\n- **升级处理及时率**：逾期31日后升级处理的比例 = 100%\n\n## 与其他技能的协作\n\n### 与customer-management协作\n- 客户缴费历史用于个性化话术生成\n- 欠费客户标记为风险客户\n\n### 与contract-renewal协作\n- 欠费客户可能影响续租决策\n- 续租时核对费用缴纳情况\n\n### 与visit-management协作\n- 走访时提醒客户缴费\n- 催缴结果在走访记录中更新\n\n## 注意事项\n\n1. **尊重客户**：话术要尊重客户，避免强硬措辞\n2. **准确计算**：逾期天数、滞纳金等要准确计算\n3. **及时跟进**：按规定时限及时跟进\n4. **记录完整**：每次催缴都要完整记录\n5. **合规操作**：催缴行为要符合法律法规\n\n## 扩展功能\n\n### 智能预测\n- 预测客户缴费概率\n- 预测欠费风险\n\n### 自动化流程\n- 自动生成催缴计划\n- 自动发送催缴通知\n- 自动记录催缴结果\n\n### 数据分析\n- 欠费原因分析\n- 催缴效果评估\n- 优化催缴策略\n\n## 总结\n\n本技能基于《C+基础保障服务手册》第十一章，实现了规范的费用催缴流程。通过智能分级、个性化话术、合并计算等功能，提高催缴效率和成功率，保障园区运营收入。\n\nFile v2.3.0:inventory-monitor/SKILL.md\n\n# SKILL.md\n\n**License:** MIT  \n**Copyright:** 2026 perrykono-debug\n\n---\n\n---\nname: inventory-monitor\ndescription: 库存监控与补货提醒技能。基于真实Excel台账（示例产业园AC+服务.xlsx）监控库存水位，计算可用月数，生成补货提醒。触发场景：(1) 实时监听库存变化（出入库操作），(2) 定时任务每日09:00检查库存状态，(3) 手动触发库存检查（@企服助手 库存检查）。\n---\n\n# 库存监控与补货提醒技能 (Inventory Monitor Skill)\n\n## 功能概述\n\n本技能用于实时监控园区库存物资的水位，基于示例产业园A真实Excel台账，自动计算可用月数，当库存低于安全阈值时生成补货提醒并推送到企微。\n\n---\n\n## 数据源配置\n\n**数据文件**: `/Users/mac/示例产业园AC+服务.xlsx`\n\n**工作表映射**:\n| 功能模块 | 工作表名 | 用途 |\n|---------|---------|------|\n| **秩序环境库存** | 📦库存管理📦秩序环境 | 主数据源（日常消耗品） |\n| **固定资产库存** | 📦库存管理📦固定资产 | 补充数据（固定资产） |\n| **工程库存** | 📦库存管理📦工程 | 补充数据（工程工具） |\n\n---\n\n## 数据接口（真实Excel字段映射）\n\n### 秩序环境库存表字段（11个）\n\n**关键字段**:\n| Excel列序号 | 字段名 | 类型 | 说明 | 示例值 |\n|-------------|--------|------|------|--------|\n| 1 | 名称 | TEXT | 物资名称 | 香薰液 |\n| 2 | 规格/单位 | TEXT | 规格 | 桶 / 5片/包 |\n| 3 | 总库存 | NUMERIC | 总量 | 9 |\n| 4 | 可用月数 | NUMERIC/TEXT | 计算字段 | 9 或 \"计算错误\" |\n| 5 | 图片 | TEXT | 图片链接 | （可选） |\n| 6 | \n\nArchive v1.0.1: 36 files, 64114 bytes\n\nFiles: _meta.json (147b), AGENT.json (1953b), AGENTS.md (7643b), HEARTBEAT.md (152b), IDENTITY.md (987b), knowledge/HOW_TO_SHARE.md (2403b), knowledge/INSTALL.md (2131b), knowledge/ONBOARDING.md (4247b), knowledge/TEMPLATE.md (2751b), LICENSE (1072b), README.md (4035b), scripts/__init__.py (572b), scripts/contract_renewal.py (24194b), scripts/contract-renewal__data_manager.py (7436b), scripts/contract-renewal__example.py (591b), scripts/contract-renewal__reminder_generator.py (6671b), scripts/contract-renewal__wecom_sender.py (6140b), scripts/customer-management__example.py (597b), scripts/daily_check_simple.py (1541b), scripts/data_manager.py (3765b), scripts/example.py (587b), scripts/fee_calculator.py (5160b), scripts/inventory-monitor__example.py (593b), scripts/reminder_generator.py (8060b), scripts/service-matching__example.py (591b), scripts/visit_manager.py (11685b), scripts/visit_scoring.py (9403b), scripts/visit-management__data_manager.py (7556b), scripts/visit-management__example.py (591b), scripts/visit-management__reminder_generator.py (7003b), scripts/wecom_sender.py (6786b), scripts/workorder-dispatch__example.py (595b), skill-card.md (2512b), SKILL.md (27207b), SOUL.md (1946b), TOOLS.md (1012b)\n\nArchive v2.0.1: 35 files, 63389 bytes\n\nFiles: AGENT.json (1953b), AGENTS.md (7643b), HEARTBEAT.md (152b), IDENTITY.md (987b), knowledge/HOW_TO_SHARE.md (2403b), knowledge/INSTALL.md (2131b), knowledge/ONBOARDING.md (4247b), knowledge/TEMPLATE.md (2751b), README.md (4035b), scripts/__init__.py (572b), scripts/contract_renewal.py (24194b), scripts/contract-renewal__data_manager.py (7436b), scripts/contract-renewal__example.py (591b), scripts/contract-renewal__reminder_generator.py (6671b), scripts/contract-renewal__wecom_sender.py (6140b), scripts/customer-management__example.py (597b), scripts/daily_check_simple.py (1541b), scripts/data_manager.py (3765b), scripts/example.py (587b), scripts/fee_calculator.py (5160b), scripts/inventory-monitor__example.py (593b), scripts/reminder_generator.py (8060b), scripts/service-matching__example.py (591b), scripts/visit_manager.py (11685b), scripts/visit_scoring.py (9403b), scripts/visit-management__data_manager.py (7556b), scripts/visit-management__example.py (591b), scripts/visit-management__reminder_generator.py (7003b), scripts/wecom_sender.py (6786b), scripts/workorder-dispatch__example.py (595b), skill-card.md (2783b), SKILL.md (27134b), SOUL.md (1946b), TOOLS.md (1012b), _meta.json (147b)\n\nArchive v2.0.0: 35 files, 63566 bytes\n\nFiles: AGENT.json (1953b), AGENTS.md (7643b), HEARTBEAT.md (152b), IDENTITY.md (987b), knowledge/HOW_TO_SHARE.md (2396b), knowledge/INSTALL.md (2129b), knowledge/ONBOARDING.md (4247b), knowledge/TEMPLATE.md (2751b), README.md (4035b), scripts/__init__.py (572b), scripts/contract_renewal.py (24212b), scripts/contract-renewal__data_manager.py (7450b), scripts/contract-renewal__example.py (591b), scripts/contract-renewal__reminder_generator.py (6671b), scripts/contract-renewal__wecom_sender.py (6144b), scripts/customer-management__example.py (597b), scripts/daily_check_simple.py (1541b), scripts/data_manager.py (3781b), scripts/example.py (587b), scripts/fee_calculator.py (5160b), scripts/inventory-monitor__example.py (593b), scripts/reminder_generator.py (8060b), scripts/service-matching__example.py (591b), scripts/visit_manager.py (11711b), scripts/visit_scoring.py (9403b), scripts/visit-management__data_manager.py (7572b), scripts/visit-management__example.py (591b), scripts/visit-management__reminder_generator.py (7003b), scripts/wecom_sender.py (6790b), scripts/workorder-dispatch__example.py (595b), skill-card.md (3156b), SKILL.md (27143b), SOUL.md (1946b), TOOLS.md (1012b), _meta.json (147b)\n\nArchive v1.5.0: 15 files, 23241 bytes\n\nFiles: AGENT.json (1953b), AGENTS.md (7643b), HEARTBEAT.md (152b), IDENTITY.md (987b), knowledge/HOW_TO_SHARE.md (2396b), knowledge/INSTALL.md (2129b), knowledge/ONBOARDING.md (4247b), knowledge/TEMPLATE.md (2751b), README.md (4035b), scripts/daily_check_simple.py (1541b), skill-card.md (2912b), SKILL.md (9592b), SOUL.md (1946b), TOOLS.md (1012b), _meta.json (147b)\n\nArchive v1.4.0: 15 files, 23387 bytes\n\nFiles: AGENT.json (1953b), AGENTS.md (7643b), HEARTBEAT.md (152b), IDENTITY.md (987b), knowledge/HOW_TO_SHARE.md (2396b), knowledge/INSTALL.md (2129b), knowledge/ONBOARDING.md (4247b), knowledge/TEMPLATE.md (2751b), README.md (4035b), scripts/daily_check_simple.py (1541b), skill-card.md (2727b), SKILL.md (9526b), SOUL.md (1946b), TOOLS.md (1012b), _meta.json (147b)\n\nArchive v1.3.1: 15 files, 23308 bytes\n\nFiles: AGENT.json (1953b), AGENTS.md (7643b), HEARTBEAT.md (152b), IDENTITY.md (987b), knowledge/HOW_TO_SHARE.md (2400b), knowledge/INSTALL.md (2120b), knowledge/ONBOARDING.md (4249b), knowledge/TEMPLATE.md (2751b), README.md (4035b), scripts/daily_check_simple.py (1541b), skill-card.md (2987b), SKILL.md (9526b), SOUL.md (1946b), TOOLS.md (1012b), _meta.json (147b)\n\nArchive v1.3.0: 14 files, 23790 bytes\n\nFiles: AGENTS.md (10626b), HEARTBEAT.md (152b), IDENTITY.md (987b), MEMORY.md (2653b), references/数据安全机制.md (6100b), references/新用户引导.md (4247b), references/知识库模板.md (2751b), SECURITY.md (2695b), skill-card.md (2779b), SKILL.md (6844b), SOUL.md (2763b), TOOLS.md (1012b), USER.md (477b), _meta.json (147b)\n\nArchive v1.2.0: 13 files, 18106 bytes\n\nFiles: AGENTS.md (7643b), HEARTBEAT.md (152b), IDENTITY.md (987b), MEMORY.md (2653b), references/新用户引导.md (4247b), references/知识库模板.md (2751b), SECURITY.md (1840b), skill-card.md (2574b), SKILL.md (5699b), SOUL.md (1946b), TOOLS.md (1012b), USER.md (477b), _meta.json (147b)","readmeExcerpt":"Skill: enterprise-service-assistant Owner: perrykono-debug Summary: 园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。 Tags: business:2.0.1, enterprise:2.0.1, excel:2.0.0, latest:3.6.0, park:2.0.1, property-management:2.0.0, wecom:2.0.0 Version history: v3.6.0 | 2026-09-05T04:04:32.298Z | user 更新发布 v2.3.0 | 2026-06-13T16:27:39.019Z | auto **大幅升级：10大核心模块，功能覆盖企业服务全流程。","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Step 0 → 检查本地缓存（最快，<0.001秒）\n         cache_file = ~/.workbuddy/workspace/enterprise-service-assistant/cache/{table_name}.json\n         检查 cache_file 是否存在 且 修改时间 <30分钟前\n         → 若存在且未过期 → 直接使用，跳过 Step 1\n\nStep 1 → 缓存未命中，调用腾讯文档MCP工具读取数据\n         方式A（推荐，无需sheet_id）：mcp__tencent-docs__get_content(file_id)\n         方式B（需sheet_id）：mcp__tencent-docs__smartsheet.list_records(file_id, sheet_id)\n         方式C：mcp__tencent-docs__smartsheet.get_cell_data(doc_id, table_id, record_id, field_id)\n         💡 get_content 不需要sheet_id，一次调用返回所有子表markdown数据，优先使用\n\nStep 2 → 将数据写入本地缓存\n         cache_file = ~/.workbuddy/workspace/enterprise-service-assistant/cache/{table_name}.json\n         写入格式：{\"updated_at\": \"ISO时间戳\", \"data\": [...]}\n\nStep 3 → 按本文档中的逻辑处理数据\n         - 计算、判断、分级\n\nStep 4 → 格式化输出（使用本文档中的模板）\n\nStep 5 → 推送企微（如需要，使用本文档中的webhook配置）"},{"language":"text","snippet":"~/.workbuddy/workspace/enterprise-service-assistant/local_db.sqlite"},{"language":"text","snippet":"Step -1 → 读取配置 force_local / mcp_available（来自 knowledge_base_config.json）\n          if config.get(\"force_local\") is True or config.get(\"mcp_available\") is False:\n              → 跳过所有 MCP 调用，直接查本地 SQLite（Step 3）\n              → 适用场景：腾讯文档 MCP 未连接 / 单机演示 / 弱网环境\n              → 这是最快路径，响应 <5ms，零网络等待\n\nStep 0 → 检查本地数据库是否存在且新鲜（<24小时）"},{"language":"text","snippet":"### 同步逻辑\n\n**触发词：**\n- 「同步数据库」\n- 「刷新数据库」\n- 「更新本地数据」\n\n**AI行为：**\n1. 调用 `mcp__tencent-docs__get_content(file_id)` 读取所有工作表数据（不需要sheet_id）\n2. 用Python解析返回的markdown表格数据\n3. **同步校验（data-security-verifier 能力③，铁律）**：覆盖前对比 源表行数 vs 目标表行数、主键去重、必填字段非空率（单元号/企业名/金额）\n   - 校验通过 → 才执行覆盖写入\n   - **校验失败 → 不覆盖**：保留旧库，`sync_log.status='failed'`，输出差异明细，等人工确认\n4. 更新 `sync_log` 表记录同步时间（含 `data_as_of` 时间戳，供时效分级使用）\n\n**💡 为什么用 get_content 不用 list_records：**\n- `get_content` 只需要 `file_id`，不需要 `sheet_id`\n- 一次调用返回所有子表数据（客户管理、费用收缴、报修情况汇总、库存管理、C+服务记录、能耗汇总、投诉记录、退租汇总等）\n- 没有分页问题，没有权限门槛\n- 解析markdown表格比调多个MCP更简单可靠\n\n**AI同步流程（AI执行）：**"},{"language":"text","snippet":"### 查询逻辑\n\n**触发词（任选一）：**\n- 普通查询（如「查询客户 T1-601」）\n- 「快速查询」（明确指定读DB）\n\n**AI行为：**\n1. 检查DB是否存在且新鲜（<24小时）\n2. 若新鲜 → 直接查SQLite\n3. 若否则过期 → 先同步，再查询\n\n**示例代码（AI执行）：**"},{"language":"text","snippet":"### 数据库表结构\n\n| 表名 | 说明 | 主要字段 |\n|------|------|---------|\n| `customers` | 客户管理 | unit_no (UNIQUE), tenant_name, level, end_date, phone**（脱敏存储 138\\*\\*\\*\\*1234）**, contact**（姓+首字）** |\n| `fees` | 费用收缴 | unit_no, fee_type, receivable_amount, status |\n| `repair_orders` | 报修情况汇总 | unit_no, urgency, status, report_time |\n| `work_orders` | 📋客户工单台账 | work_order_id (UNIQUE), unit_no, type, status, handler |\n| `staff_assignment` | ⚙️处理人员配置 | work_type, keywords, default_handler, sla_urgent_hours |\n| `inventory` | 库存管理 | name (UNIQUE), current_stock, monthly_usage |\n| `cservice_records` | C+服务记录 | tenant_name, visit_time, service_type, detail |\n| `equity_warrants` | 认股权台账 | company_name, unit_no, expiry_date, status |\n| `sync_log` | 同步日志 | table_name, sync_time, status, data_as_of |\n\n> 🛡️ **脱敏字段说明**：`customers.phone` / `contact` 落库即脱敏（见「注意事项 3 落库脱敏策略」）；完整号码需用时从腾讯文档源实时读取。\n\n### 定时同步设置\n\n**创建每日同步任务：**"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: enterprise-service-assistant\ndescription: 园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。\nversion: 3.6.0\n---\n\n# 企服助手 (Enterprise Service Assistant)\n\n## 📋 概述\n\n企服助手是面向园区运营管理的智能助手，基于《C+基础保障服务手册》设计，按照企服人员的日常工作组织：\n\n> 每日常工作只有四个步骤：今日工作（看什么）→ 企业情况（为什么）→ 办理业务（怎么做）→ 处理完成（自动归档）\n\n## 三板块\n\n| 板块 | 职责 | 数据源 |\n|------|------|--------|\n| **今日工作** | 筛选今天需要处理的工作项，按紧急度排序 | 全部表 |\n| **服务企业** | 管家直接执行：查询企业、催缴费用、沟通续租、处理投诉、协调退租、C+增值服务、客户微信工单 | 👨客户管理👨、👨💼费用收缴👨💼、💡能耗汇总💡、C+服务记录（含政策日历、认股权台账）、投诉记录、退租汇总、📋客户工单台账、⚙️处理人员配置 |\n| **事项跟进** | 管家推进别人做：跟进报修、督办整改、提醒保养、协调库存/资产/工程、跟进能耗、客户工单SLA监控 | 🛠️报修情况汇总、安全巡检计划、设备保养台账、📦库存管理📦秩序环境、秩序环境入库/出库、库存-工程、库存-固定资产、📋客户工单台账、⚙️处理人员配置 |\n\n> 管家不做报修、巡检、保养、库存这些事，但负责推进——AI帮盯时限、防遗漏。政策日历、认股权台账均属于C+增值服务，不独立成模块。\n\n---\n\n## 🛡️ 自由度—可控性声明（出厂标配）\n\n> 依据 `writing-for-agents` v1.2.0 第 8 项自检：每个 skill 必须显式声明其「自由度—可控性」位置。高自由度 ≠ 拥有控制权。\n\n| 维度 | 本 Skill 声明 |\n|------|--------------|\n| **自由度** | 中—高（高自主执行辅助，不获决策权）。主动同步、本地落盘、定时推送均为既定设计 |\n| **执行权** | 用户确认后执行：对客财务/法律动作（费用催缴、分派通知、涉及客户告知的敏感外部推送）；限自主执行：数据同步（腾讯文档→SQLite）、写本地DB/缓存/JSON、内部提醒推送（每日日报/风险提醒/工单SLA升级） |\n| **人在环** | 必须 confirm：催缴、分派、任何对客户有财务/法律影响的对外消息；已授权自动化：每日定时推送（用户首次配置即授权）、工单SLA超时@all升级 |\n| **Memory** | `agent-writable`：可写 SQLite(tracking/completion_log/sync_log)、本地缓存JSON、本地JSON；不可写 腾讯文档源数据（只读同步不写回）、IMA知识库（只读源）、已确认工单结论、外发未授权第三方 |\n| **外部行动** | 允许触达：腾讯文档MCP（读/拉取同步）、本地SQLite写、本地缓存写、本地JSON写、企微webhook推送（已配置key）、Python(sqlite3)；禁止触达：邮件/短信/未授权第三方、写回腾讯文档源、外部API（除已配置企微webhook）、暴露隐私数据（铁律） |\n| **不可越界** | 不替客户/管家做法律·财务决定（减免/赔付）；不修改腾讯文档源数据；不向未配置webhook外的地址发消息；不替代人工审批/签收 |\n\n---\n\n## ⚠️ AI执行原则（重要）\n\n**本skill通过腾讯文档MCP工具读取数据，支持本地缓存加速，所有逻辑由AI直接执行。**\n\n### 缓存机制（必须遵循）\n\n每次查询前，AI 必须按以下顺序执行：\n\n```\nStep 0 → 检查本地缓存（最快，<0.001秒）\n         cache_file = ~/.workbuddy/workspace/enterprise-service-assistant/cache/{table_name}.json\n         检查 cache_file 是否存在 且 修改时间 <30分钟前\n         → 若存在且未过期 → 直接使用，跳过 Step 1\n\nStep 1 → 缓存未命中，调用腾讯文档MCP工具读取数据\n         方式A（推荐，无需sheet_id）：mcp__tencent-docs__get_content(file_id)\n         方式B（需sheet_id）：mcp__tencent-docs__smartsheet.list_records(file_id, sheet_id)\n         方式C：mcp__tencent-docs__smartsheet.get_cell_data(doc_id, table_id, record_id, field_id)\n         💡 get_content 不需要sheet_id，一次调用返回所有子表markdown数据，优先使用\n\nStep 2 → 将数据写入本地缓存\n         cache_file = ~/.workbuddy/workspace/enterprise-service-assistant/cache/{table_name}.json\n         写入格式：{\"updated_at\": \"ISO时间戳\", \"data\": [...]}\n\nStep 3 → 按本文档中的逻辑处理数据\n         - 计算、判断、分级\n\nStep 4 → 格式化输出（使用本文档中的模板）\n\nStep 5 → 推送企微（如需要，使用本文档中的webhook配置）\n```\n\n### 缓存TTL配置\n\n| 表格 | 缓存TTL | 说明 |\n|-------|---------|------|\n| 客户管理 | 60分钟 | 客户信息变化频率低 |\n| 费用收缴 | 30分钟 | 缴费状态变化较频繁 |\n| 能耗汇总 | 30分钟 | 能耗欠费变化频繁 |\n| 报修情况汇总 | 15分钟 | 工单状态变化频繁 |\n| 📋客户工单台账 | 5分钟 | 微信工单实时性要求高 |\n| ⚙️处理人员配置 | 1440分钟(24h) | 人员配置几乎不变 |\n| 库存管理 | 60分钟 | 库存变化频率低 |\n| C+服务记录 | 30分钟 | 走访记录变化频率中等 |\n| 认股权台账 | 60分钟 | 行权状态变化频率低 |\n| 安全巡检计划 | 60分钟 | 巡检记录变化频率低 |\n| 设备保养台账 | 60分钟 | 保养记录变化频率低 |\n\n### 快速模式（用户主动触发）\n\n**触发词（任选一）：**\n- 「快速查询 XX」\n- 「用缓存，别调MCP」\n- 「本地数据有吗？先看本地的」\n\n**AI 行为"},{"path":"README.md","content":"# 🏢 企服助手 Skill\n\n> 专业的园区企业服务智能助手（完全自包含版 v2.0.0）\n\n---\n\n## 简介\n\n企服助手是一个专为园区企业服务设计的智能助手，可以帮助你完成：\n\n- 📊 **客户管理** — 档案管理、画像分析、风险提醒\n- 💰 **费用催缴** — 监控逾期、分级提醒、跟进记录\n- 🔧 **工单分派** — 自动分派、SLA监控、超时升级\n- 📦 **库存监控** — 水位监控、补货提醒、出入库管理\n- 📝 **续租预警** — 提前预警、生成续租方案\n- 🤝 **C+服务** — 需求挖掘、服务匹配、资源调度\n- 📋 **走访管理** — 计划生成、任务提醒、记录归档\n- 📈 **KPI报告** — 自动生成、趋势分析\n\n---\n\n## 快速安装\n\n### 方式一：WorkBuddy 一键安装（推荐）\n\n在 WorkBuddy 对话框中输入：\n\n```\n@WorkBuddy 安装技能 enterprise-service-assistant\n```\n\n### 方式二：手动安装\n\n1. 将 `enterprise-service-assistant` 文件夹复制到：\n   ```\n   ~/.workbuddy/skills/enterprise-service-assistant/\n   ```\n\n2. 重启 WorkBuddy 会话\n\n3. 首次启动时，按照引导完成配置\n\n---\n\n## 首次配置\n\n启动后，企服助手会自动检测到你是新用户，并展示配置引导。\n\n### 必填项\n- 项目名称\n- 数据文件路径（Excel）\n\n### 可选项\n- 企微 Webhook（用于消息推送）\n- 隐私脱敏规则\n- 业务技能开关\n\n### 配置步骤\n\n1. 复制模板：\n   ```\n   knowledge/TEMPLATE.md → knowledge/PROJECT_KB.md\n   ```\n\n2. 填写信息：\n   ```markdown\n   - 项目名称: [你的项目名]\n   - 数据文件路径: [你的Excel文件完整路径]\n   ```\n\n3. 验证配置：\n   ```\n   @企服助手 知识库已配置，帮我验证一下\n   ```\n\n---\n\n## 使用示例\n\n| 命令 | 功能 |\n|------|------|\n| `@企服助手 查询客户 A栋-601` | 查询客户信息 |\n| `@企服助手 客户画像 示例企业` | 查看客户画像 |\n| `@企服助手 催缴检查` | 检查费用收缴状态 |\n| `@企服助手 库存检查` | 检查库存水位 |\n| `@企服助手 续租检查` | 检查合同到期情况 |\n| `@企服助手 创建工单 A栋-601 水管漏水` | 创建报修工单 |\n\n---\n\n## 文件结构\n\n```\nenterprise-service-assistant/\n├── SKILL.md                ← 技能说明和触发词\n├── AGENTS.md               ← 通用配置\n├── SOUL.md                 ← 人格设定\n├── IDENTITY.md             ← 身份设定\n├── TOOLS.md                ← 工具说明\n├── AGENT.json              ← 技能元数据\n├── scripts/                ← 📂 核心业务逻辑（Python脚本）\n│   ├── data_manager.py\n│   ├── fee_calculator.py\n│   ├── contract_renewal.py\n│   ├── visit_manager.py\n│   └── ...（共22个脚本）\n├── knowledge/              ← 📂 项目知识库\n│   ├── PROJECT_KB.md       ← 你的项目配置（核心！）\n│   ├── TEMPLATE.md         ← 配置模板\n│   ├── ONBOARDING.md       ← 首次引导\n│   ├── INSTALL.md          ← 安装指南\n│   └── HOW_TO_SHARE.md     ← 分享指南\n└── README.md               ← 本文件\n```\n\n**关键区分**：\n- 通用文件（SKILL.md, AGENTS.md 等） → 随 Skill 分享，不需要修改\n- 项目知识库（knowledge/） → 每个用户独立，包含你的项目数据配置\n\n---\n\n## 依赖技能\n\n企服助手核心逻辑已完全自包含（`scripts/` 目录），以下技能为可选增强：\n\n| 技能 | 用途 |\n|------|------|\n| `docx` | Word 文档处理（可选） |\n| `pdf` | PDF 文档处理（可选） |\n| `xlsx` | Excel 表格处理（可选） |\n| `tencent-docs` | 腾讯文档 MCP 工具（可选） |\n| `online-search` | 联网搜索（可选） |\n| `agent-browser` | 浏览器自动化（可选） |\n\n---\n\n## 常见问题\n\n### Q: 我的 Excel 格式和模板不一样怎么办？\nA: 在 `PROJECT_KB.md` 中描述你的工作表结构即可，助手会自动适配。\n\n### Q: 可以不用企微通知吗？\nA: 可以。通知渠道是可选的，没有 Webhook 也能使用查询功能。\n\n### Q: 数据安全吗？\nA: 所有数据都在你的本地电脑上，不会上传到云端。助手只读取你指定的文件。\n\n### Q: 如何分享给其他同事？\nA: 参考 `knowledge/HOW_TO_SHARE.md`，将技能包文件夹打包分享即可。\n\n---\n\n## 技术支持\n\n如有问题，请查阅：\n- `knowledge/ONBOARDING.md` — 新用户引导\n- `knowledge/INSTALL.md` — 安装指南\n- `knowledge/HOW_TO_SHARE.md` — 分享指南\n\n---\n\n**让企服助手帮你提升服务效率！** 🚀"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn76b71hdvjbaetmpr601b967x82bz18\",\n  \"slug\": \"enterprise-service-assistant\",\n  \"version\": \"3.6.0\",\n  \"publishedAt\": 1788581072298\n}"},{"path":"AGENTS.md","content":"# AGENTS.md - Your Workspace\n\n本文件夹是企服助手 Skill 的根目录。\n\n## 首次运行\n\n如果 `knowledge/PROJECT_KB.md` 不存在或为空，企服助手会自动展示新用户引导流程，帮助你创建项目知识库。\n\n## 会话启动\n\n优先使用 WorkBuddy 提供的启动上下文。\n\n该上下文可能已经包含：\n- `SKILL.md`、`AGENTS.md`、`SOUL.md` 和 `IDENTITY.md`\n- 最近的对话历史\n\n不要手动重新读取启动文件，除非：\n1. 用户明确要求\n2. 提供的上下文缺少你需要的内容\n\n## 📂 文件分层架构\n\n本 Skill 采用**通用层 + 项目知识库层**的分层架构：\n\n### 通用层（随 Skill 分享，新用户可见）\n- `SKILL.md` — 技能说明和触发词\n- `AGENTS.md` — 通用行为规则\n- `SOUL.md` — 通用人格设定\n- `IDENTITY.md` — 通用身份设定\n- `TOOLS.md` — 通用工具说明\n- `scripts/` — 核心 Python 业务逻辑（22个脚本）\n\n### 项目知识库层（每用户独立，不随 Skill 分享）\n- `knowledge/PROJECT_KB.md` — **项目专属知识库**（数据源、通知渠道、业务规则）\n- `knowledge/TEMPLATE.md` — 知识库模板（供新用户复制使用）\n- `knowledge/ONBOARDING.md` — 新用户引导文档\n- `knowledge/INSTALL.md` — 安装指南\n- `knowledge/HOW_TO_SHARE.md` — 分享指南\n\n### 分享规则\n- **分享 Skill 给其他用户时**：通用层文件会被分享，项目知识库文件不会被分享\n- **新用户首次使用时**：自动检测缺少项目知识库，触发首次引导流程\n\n## 记忆\n\n企服助手的核心配置在 `knowledge/PROJECT_KB.md` 中。\n\n- **项目记忆**：在 `knowledge/PROJECT_KB.md` 中记录项目配置\n- **会话记忆**：WorkBuddy 会自动管理会话上下文\n\n不要依赖\"心理笔记\"——重要配置都要写在文件里。\n\n## 红线\n\n- 永远不要泄露私人数据\n- 不要在没有询问的情况下运行破坏性命令\n- 当有疑问时，询问用户\n\n## 工具\n\n技能提供你的工具。当你需要一个工具时，检查它的文档。\n\n**企服助手核心逻辑已自包含在 `scripts/` 目录中**，优先使用内置 Python 脚本完成任务。\n\n可选的 WorkBuddy 技能（增强功能）：\n- `tencent-docs` — 腾讯文档 MCP 工具\n- `docx` / `pdf` / `xlsx` — 文档处理\n- `online-search` — 联网搜索\n- `agent-browser` — 浏览器自动化\n\n## 企服助手特定说明\n\n你是一个专业的园区企业服务助手。你的通用职责包括：\n\n- 企业数据管理和分析\n- 企业文档智能处理（腾讯文档、PDF、Excel）\n- 费用催缴提醒和服务跟进\n- 企业工单管理和调度\n- KPI 报告自动生成\n- C+ 增值服务管理\n- 企微消息推送和通知\n\n**具体的项目数据、业务规则和通知配置**都在 `knowledge/PROJECT_KB.md` 中定义。\n\n使用内置脚本或已配置的技能来完成这些任务。"},{"path":"HEARTBEAT.md","content":"# Keep this file empty (or with only comments) to skip heartbeat API calls.\n\n# Add tasks below when you want the agent to check something periodically."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。 Skill: enterprise-service-assistant Owner: perrykono-debug Summary: 园区企业服务智能助手。覆盖今日工作、服务企业、事项跟进三大板块，优先查询本地SQLite数据库（<0.1秒，零token消耗），支持定时同步腾讯文档数据。当用户需要管理园区企业服务事务时使用此skill。 Tags: business:2.0.1, enterprise:2.0.1, excel:2.0.0, latest:3.6.0, park:2.0.1, property-management:2.0.0, wecom:2.0.0 Version history: v3.6.0 | 2026-09-05T04:04:32.298Z | user 更新发布 v2.3.0 | 2026-06-13T16:27:39.019Z | auto **大幅升级：10大核心模块，功能覆盖企业服务全流程。","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":672,"uniquenessScore":57,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T02:41:50.355Z","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-11T02:41:50.355Z","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-11T04:34:46.982Z","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"}]}}}