{"id":"4fa2a9b5-e3ff-4195-980a-6ecd91e22a0b","entityType":"agent","slug":"clawhub-legionspace-hackathon-ai-coach-batch-session-summary","name":"Ai Coach Batch Session Summary","canonicalUrl":"https://www.xpersona.co/agent/clawhub-legionspace-hackathon-ai-coach-batch-session-summary","canonicalPath":"/agent/clawhub-legionspace-hackathon-ai-coach-batch-session-summary","generatedAt":"2026-10-11T20:56:56.469Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T18:02:21.629Z","emptyReason":null},"description":"批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、 总结、音频总结、拜访记录总结。 当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。 注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。 Skill: Ai Coach Batch Session Summary Owner: legionspace-hackathon Summary: 批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、 总结、音频总结、拜访记录总结。 当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。 注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。 Tags: latest:1.1.1 Version history: v1.1.1 | 2026-07-07T22:35:48.918Z | user Initial release v1.1.0 | 2026-05-19T09:30:27.712Z | user Add resolve-openclaw-identity.mjs for automatic userId/orgId resolut","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17ecqe25y9chvw0dc8skt25qx83h73c:ai-coach-batch-session-summary","sourceUrl":"https://clawhub.ai/legionspace-hackathon/ai-coach-batch-session-summary","homepage":"https://clawhub.ai/legionspace-hackathon/skills/ai-coach-batch-session-summary","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/legionspace-hackathon/ai-coach-batch-session-summary","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/legionspace-hackathon/skills/ai-coach-batch-session-summary","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、 总结、音频总结、拜访记录总结。 当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。 注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。 Skill: Ai Coach Ba"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:02:21.629Z","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-11T18:02:21.629Z","emptyReason":null},"stars":null,"forks":null,"downloads":1013,"packageName":null,"latestVersion":"1.1.1","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:02:21.562Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T18:02:21.629Z","lastCrawledAt":"2026-10-11T18:02:21.562Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T18:02:21.562Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.1","createdAt":"2026-07-07T22:35:48.918Z","changelog":"Initial release","fileCount":17,"zipByteSize":65221},{"version":"1.1.0","createdAt":"2026-05-19T09:30:27.712Z","changelog":"Add resolve-openclaw-identity.mjs for automatic userId/orgId resolution from model field","fileCount":10,"zipByteSize":16748},{"version":"1.0.0","createdAt":"2026-05-19T08:09:58.913Z","changelog":"Initial release: AI 教练批量会话总结，聚焦教练反馈/场景对练/教练点评的汇总分析","fileCount":8,"zipByteSize":13272}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17ecqe25y9chvw0dc8skt25qx83h73c:ai-coach-batch-session-summary","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","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-legionspace-hackathon-ai-coach-batch-session-summary/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/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-11T20:56:56.469Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-legionspace-hackathon-ai-coach-batch-session-summary/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-11T18:02:21.629Z","emptyReason":null},"readme":"Skill: Ai Coach Batch Session Summary\n\nOwner: legionspace-hackathon\n\nSummary: 批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、 总结、音频总结、拜访记录总结。 当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。 注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。\n\nTags: latest:1.1.1\n\nVersion history:\n\nv1.1.1 | 2026-07-07T22:35:48.918Z | user\n\nInitial release\n\nv1.1.0 | 2026-05-19T09:30:27.712Z | user\n\nAdd resolve-openclaw-identity.mjs for automatic userId/orgId resolution from model field\n\nv1.0.0 | 2026-05-19T08:09:58.913Z | user\n\nInitial release: AI 教练批量会话总结，聚焦教练反馈/场景对练/教练点评的汇总分析\n\nArchive index:\n\nArchive v1.1.1: 17 files, 65221 bytes\n\nFiles: asr_insight_template.html (10472b), DIMENSIONS.md (3585b), scripts/generate_asr_insight_html.py (20552b), scripts/publish_asr_report.py (5902b), skill-card.md (2329b), SKILL.md (25020b), test-output/asr_completed_live.json (25372b), test-output/asr_insight_20260521_204814.html (22823b), test-output/asr_insight_20260521_204814.meta.json (306b), test-output/asr_insight_20260521_211222.html (22823b), test-output/asr_insight_20260521_211222.meta.json (306b), test-output/asr_request.json (94b), test-output/fix_test.html (20570b), test-output/fixture_asr_completed.json (341b), test-output/last_publish.json (1714b), test-output/template_verify.html (20864b), _meta.json (149b)\n\nFile v1.1.1:SKILL.md\n\n---\nname: ai-coach-batch-session-summary\ndescription: >-\n  批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、\n  总结、音频总结、拜访记录总结。\n  当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。\n  注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。\ndisable-model-invocation: false\n---\n\n# AI Coach · 批量会话 ASR 洞察报告\n\n## 目标\n\n1. **直接调用宿主「当前会话」查询**（OpenClaw：`session_status`，`sessionKey=\"current\"`），从返回的 `sessionKey` / `agentId` 解析 **agentid**（规则与 [fetch-legionclaw-invite-code](../fetch-legionclaw-invite-code/SKILL.md) 一致）。\n2. 调用录音服务 **`POST /api/recordings/asr-completed`**，以 **`userId` = agentid** 拉取已完成 ASR 的录音列表。\n3. 按 **十维拓客**（或用户自定义维度）统计转写文本，生成与 [`asr_insight_template.html`](asr_insight_template.html) 同结构的 **HTML 洞察报告** 。\n4. 将生成的 HTML **上传文件服务**，向用户返回 **公网可下载链接**（勿暴露 `/tmp/...` 等本地路径）。**优先**按 [openclaw-file-share](../openclaw-file-share/SKILL.md) 完成上传与回复改写；仅当该技能**未加载或不可用**时，改用下文「[交付 HTML 给用户](#交付-html-给用户文件上传)」中的兜底流程。无论哪条路径，**不得**只返回本地路径。\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| 生成 + 录音/拜访 + 报告 | 「生成录音报告」「弄个拜访报告」 |\n| 看看 + 最近 + 录音/拜访/通话 + 情况 | 「看看最近录音情况」「看看拜访怎么样」 |\n| 录音/拜访/通话 + 数据/情况 + 怎么样 | 「录音数据怎么样」「拜访情况如何」 |\n\n### 中置信度触发（必须先确认再执行）\n\n用户消息**仅包含**以下关键词、且**不含高置信度组合词**时，Agent **必须先向用户确认意图**，得到明确肯定后才执行本技能：\n\n| 触发词 | 用户可能说法 | 确认话术 |\n|--------|-------------|---------|\n| 录音 | 「看看录音」「录音怎么样」 | 「您是想对近期录音做批量分析，还是查看某条录音的详情？」 |\n| 拜访 | 「看看拜访情况」「拜访记录」 | 「您是想生成拜访录音的批量分析报告，还是查看某次拜访的详情？」 |\n| 通话 | 「看看通话情况」 | 「您是想分析通话记录的整体情况，还是查看某条通话的详情？」 |\n| 教练 | 「教练数据」「教练报告」 | 「您是想查看 AI 教练的批量录音分析结果，还是其他功能？」 |\n| 最近的录音 | 「最近的录音怎么样」 | 「您是想对近期所有录音做批量分析，还是查看某一条？」 |\n\n**口语化/模糊表达**（也需确认）：\n\n| 用户可能说法 | 确认话术 |\n|-------------|---------|\n| 「帮我弄一下录音」 | 「您是想生成录音分析报告吗？」 |\n| 「看看最近的数据」 | 「您是想分析最近的录音数据吗？」 |\n| 「总结一下」 | 「您是想总结最近的录音/拜访情况吗？」 |\n| 「搞个报告」 | 「您是想生成录音分析报告吗？」 |\n\n**确认流程**：\n\n1. Agent 识别到中置信度触发词\n2. Agent 使用上表中的确认话术（或语义等价的自然表述）向用户提问\n3. 用户明确回复「是批量分析」「做洞察报告」等肯定意图 → 执行本技能\n4. 用户回复「看某一条」「播放」「详情」等 → **不触发**本技能，引导至对应功能\n5. 用户未回复或意图仍模糊 → **不执行**，等待用户进一步说明\n\n### 不触发场景\n\n| 场景 | 用户说法示例 | Agent 处理 |\n|------|-------------|-----------|\n| 查看单条录音详情 | 「播放录音」「下载这条录音」「看看那条录音」 | 不触发，引导至录音详情功能 |\n| 录音设备问题 | 「录音笔怎么用」「设备连接失败」 | 不触发，引导至设备帮助 |\n| 手动上传录音 | 「上传录音文件」 | 不触发，引导至上传功能 |\n| 纯闲聊 | 「今天天气不错」 | 不触发 |\n\n### 语音转文字同音容错（Agent 必做）\n\n用户输入可能来自**语音转文字（ASR）**，存在同音字/近音字错误。Agent 在匹配触发词时**必须做语义容错**，按以下映射表还原用户真实意图：\n\n| 正确关键词 | 常见 ASR 错误（同音/近音） | 容错处理 |\n|-----------|--------------------------|---------|\n| 录音 | 路音、禄音、录映、录应 | 视为「录音」 |\n| 分析 | 分西、份析、粉析、分细 | 视为「分析」 |\n| 报告 | 抱告、暴告、豹告 | 视为「报告」 |\n| 拜访 | 拜访、拜防、拜饭、拜范 | 视为「拜访」 |\n| 总结 | 总接、总节、总洁 | 视为「总结」 |\n| 通话 | 通化、通画、通花 | 视为「通话」 |\n| 记录 | 记路、记绿、计录 | 视为「记录」 |\n| 转写 | 专写、砖写、转些 | 视为「转写」 |\n| 批量 | 皮量、批亮、皮批 | 视为「批量」 |\n| 数据 | 树据、数具、树据 | 视为「数据」 |\n| 报告 | 抱告、暴告 | 视为「报告」 |\n| 会话 | 会化、会画、回话 | 视为「会话」 |\n\n**容错原则**：\n\n1. **语义优先**：当用户消息中出现上表中的 ASR 错误，但整体语义可判断为「录音分析/报告」意图时，按正确关键词处理\n2. **上下文推断**：即使个别字识别错误，只要句子结构包含「动词 + 对象」模式（如「帮我分西路音」→「帮我分析录音」），应正确识别\n3. **不确定时确认**：如果 ASR 错误导致语义模糊无法判断，按中置信度流程向用户确认\n4. **不要纠正用户**：在回复中**不要**指出用户的错别字，直接按正确语义执行即可\n\n## LegionClaw 运行约定\n\n- **会话形态**：`agent:<agentid>:<渠道>:<用户 id>`；渠道为空时为三段 `agent:<agentid>:<用户 id>`（无 `::`）。**`userId` 请求体仅填第 2 段 agentid**。\n- **执行位置**：`curl` 与生成脚本须在 **LegionClaw 任务运行环境**执行；环境需能访问录音服务（见下文接口）。对用户说明网络问题时用「录音服务」等泛称，**勿**在面向用户的报错中写内网 IP/端口（技能内保留地址供 Agent 调用）。\n- **成功判定**：HTTP 2xx 且响应 JSON **`code === 0`**（数值零）且 **`msg` 含 success 语义**；业务数据在 **`data.records`**。\n- **零条录音**：`data.records` 为空数组或长度为 **0** 时，**停止后续流程**——**不**生成 HTML、**不**调用 openclaw-file-share / 兜底上传；直接向用户说明统计窗口内无已完成 ASR 的录音，并建议核对 agentid 或调整时间范围。\n\n### 数据真实性约束（严禁违反）\n\n**所有统计数据必须且只能来自本次 API 调用返回的 `data.records`**，严禁以下行为：\n\n| 禁止行为 | 说明 |\n|----------|------|\n| 使用历史数据 | 不得使用之前会话、之前请求返回的数据 |\n| 使用缓存数据 | 不得复用本地缓存文件或内存中的旧数据 |\n| 使用测试数据 | 不得使用示例数据、Mock 数据、测试用例数据 |\n| 捏造数据 | 不得编造、虚构任何录音内容、转写文本、统计数据 |\n| 补充数据 | 不得在 API 返回数据之外添加任何额外内容 |\n\n**每次触发技能必须**：\n1. 重新调用 `session_status` 获取 agentid\n2. 重新调用 `/api/recordings/asr-completed` 获取录音数据\n3. 仅使用本次 API 响应中的 `data.records` 进行分析和统计\n\n**违反后果**：生成的报告将包含虚假数据，误导用户决策，属于严重错误。\n\n### 请求体参数\n\n| 字段 | 必填 | 格式 | 说明 |\n|------|------|------|------|\n| `userId` | **是** | 字符串 | 取会话标识解析出的 **agentid**（第 2 段） |\n| `startTime` | 条件必填 | **`YYYY-MM-DD`** | 统计窗口起始日（含），由用户话术换算；见下文 |\n| `endTime` | 条件必填 | **`YYYY-MM-DD`** | 统计窗口结束日（含），通常取**当天**；示例 `2026-05-21` |\n\n- 用户**未明确**查询时间范围：**固定按「近一个月」** 换算并传入 `startTime` / `endTime`（`endTime` = 今天，`startTime` = 今天 − 30 天）。**不要**只传 `userId` 省略时间字段。\n- 用户**明确说了**范围（如「近三天」「上周」「4 月 1 日到 4 月 30 日」）：按话术换算为 **`YYYY-MM-DD`**（带 `-`）后传入；**禁止**传 `YYYYMMDD` 无横线格式或中文原文。\n- 每次请求应同时包含 **`userId`、`startTime`、`endTime`** 三个字段（除非接口文档后续另有约定）。\n\n```json\n{\n  \"userId\": \"<agentid>\",\n  \"startTime\": \"2026-04-21\",\n  \"endTime\": \"2026-05-21\"\n}\n```\n\n### 从用户话术换算时间（Agent 必做）\n\n在运行环境用**当天日期**作 `endTime`（除非用户明确指定结束日，如「到 5 月 1 日」）。`startTime` = 结束日往前推对应天数或按自然周/月边界计算。\n\n| 用户说法（示例） | startTime | endTime |\n|------------------|-----------|---------|\n| **未说明时间（默认）** | 今天 − 30 天 | 今天 |\n| 近三天 / 最近 3 天 | 今天 − 3 天 | 今天 |\n| 近一周 / 最近 7 天 | 今天 − 7 天 | 今天 |\n| 近一个月 / 最近 30 天 | 今天 − 30 天 | 今天 |\n| 近三个月 | 今天 − 90 天 | 今天 |\n| 本月 | 本月 1 日 | 今天 |\n| 上周 | 上周一 | 上周日 |\n| 指定区间「4 月 1 日到 4 月 30 日」 | `2026-04-01` | `2026-04-30` |\n\n**macOS**（`date -v`）示例——近一个月：\n\n```bash\nEND_TIME=$(date +%Y-%m-%d)\nSTART_TIME=$(date -v-30d +%Y-%m-%d)\n```\n\n**Linux**（`date -d`）示例——近三天：\n\n```bash\nEND_TIME=$(date +%Y-%m-%d)\nSTART_TIME=$(date -d '3 days ago' +%Y-%m-%d)\n```\n\n传参与对用户说明均使用 **`YYYY-MM-DD`**（如 `2026-04-21` 至 `2026-05-21`）。\n\n### 成功响应（示例结构）\n\n```json\n{\n  \"code\": 0,\n  \"msg\": \"success\",\n  \"data\": {\n    \"userId\": \"<agentid>\",\n    \"orgId\": null,\n    \"startTime\": \"2026-02-21T10:55:33.284902311\",\n    \"endTime\": \"2026-05-21T10:55:33.284902311\",\n    \"records\": [\n      {\n        \"recordTime\": \"2026-05-13T10:00:00\",\n        \"transcript\": \"…ASR 全文…\"\n      }\n    ]\n  }\n}\n```\n\n**`records` 元素字段**（按优先级取转写与时间）：\n\n| 用途 | 尝试字段名 |\n|------|------------|\n| 转写正文 | `transcript`、`asrText`、`asr_text`、`text`、`content`、`dialogue`、`asrContent` |\n| 录音日期 | `recordTime`、`createdAt`、`startTime`、`recordingTime`、`date`、`recordDate`（取 ISO 日期前 10 位 `YYYY-MM-DD`） |\n\n`data.startTime` / `data.endTime` 表示接口统计窗口，用于页眉「统计窗口」文案。\n\n### 失败处理\n\n- **HTTP 非 2xx** 或非 JSON：提示无法访问录音服务，勿回显完整 URL。\n- **`code` 非 0**：优先用 `msg` 做简短友好说明；无则固定文案「获取录音数据失败，请联系管理员。」\n- **会话标识无效**：重新调用 **`session_status`（`sessionKey=\"current\"`）** 解析 agentid，勿把第 3 段（无渠道时的用户 id）当作 agentid。\n\n## agentId 自动获取（必做 · 直接查当前会话）\n\n**用户未提供 agentid 时，必须先调用宿主「当前会话」查询agentid，再拉数。** 不得在未调用 **步骤 1** 前回复「无法获取 agentId / 请提供会话标识」。对话上下文里的字段**不算**；须以 **session 工具返回值** 为准。\n\n### 禁止行为\n\n| 禁止 | 正确做法 |\n|------|----------|\n| 首句就向用户索要 agentid 或整串 `agent:...` | **先**调 `session_status`（`sessionKey=\"current\"`）或平台等价「当前会话查询」 |\n| 未调会话工具就声称「当前对话没有 agentId」 | 对话里没有是正常的；用 **当前会话查询** 拿 获取当前会话的agentid  |\n| 把会话串第 3 段用户 id 当成 agentid | 仅第 2 段，或工具返回的 `agentId` 字段 |\n| 向用户展示完整会话串 | 只说明「已根据当前 LegionClaw 会话解析 agentid」 |\n\n### 获取步骤（按序执行）\n\n**步骤 0 — 用户消息已带 agentid**\n\n- 用户明确给出 32 位 agentid（或「agentid 是 xxx」）→ 直接采用，可跳过步骤 1。\n\n**步骤 1 — 当前会话查询（主路径，必须执行）**\n\n在 **LegionClaw / OpenClaw 宿主**上调用内置会话工具（**不要用** `exec` 猜环境变量代替）：\n\n| 项 | 值 |\n|----|-----|\n| 工具 | `session_status` |\n| 参数 | `sessionKey`: **`\"current\"`**（表示**当前正在对话的会话**） |\n\n**Agent 操作说明（照做）：**\n\n1. 调用 **`session_status`**，传入 **`sessionKey=\"current\"`**。\n2. 从返回 JSON / 状态卡中读取（字段名以宿主为准，常见如下）：\n   - 若有 **`agentId`** 且非空 → **直接作为 `AGENTID`**（首选）。\n   - 否则读取 **`sessionKey`** / **`key`**（完整串，形如 `agent:<agentid>:...`）→ 按下文规则解析第 2 段。\n3. 校验 `AGENTID` 非空后，再执行 `curl` 拉数；请求体 **`userId` = agentid**，禁止填入整串 `sessionKey`。\n\n**步骤 1b — 仍缺 agentid 时（可选一次）**\n\n若 `session_status` 未返回可用字段，再调用 **`sessions_list`**（可见性默认 `tree`），取**当前会话对应行**的 `agentId` 或 `key`，同样解析。仍禁止先让用户粘贴。\n\n**步骤 2 — 环境变量兜底（仅步骤 1/1b 失败时）**\n\n```bash\nAGENTID=$(printf '%s' \"$RAW\" | awk -F: '$1==\"agent\" && NF>=2 && length($2)>0 {print $2; exit}')\n```\n\n**步骤 3 — 仍为空（仅此情况可索要）**\n\n```markdown\n已调用当前会话查询（session_status current），仍无法解析 agentid。\n请确认本任务是否绑定当前 LegionClaw 会话，或直接提供 **agentid**（`agent:` 后第二段，32 位）。\n```\n\n### 从 sessionKey 解析 agentid（统一规则）\n\n当工具只返回 `sessionKey` / `key` 时：按 `:` 拆分；`$1==\"agent\"` 且第 2 段非空 → **agentid = 第 2 段**。\n\n| 会话 key 示例 | agentid |\n|---------------|---------|\n| `agent:b7a19493cabc42e290c3d6c8a6243a7c:web:user001` | `b7a19493cabc42e290c3d6c8a6243a7c` |\n| `agent:b7a19493cabc42e290c3d6c8a6243a7c:user001`（三段） | `b7a19493cabc42e290c3d6c8a6243a7c` |\n\n### 执行前自检\n\n- [ ] 已调用 **`session_status` + `sessionKey=\"current\"`**（或等价当前会话 API）\n- [ ] 已从返回的 **`agentId`** 或 **`sessionKey` 第 2 段** 得到非空 `AGENTID`\n- [ ] 拉数 body 的 `userId` = agentid，不是整串 sessionKey\n\n## 分析维度\n\n三种模式（互斥，按优先级理解用户意图）：\n\n| 模式 | 何时使用 | 生成方式 |\n|------|----------|----------|\n| **默认十维** | 用户未限定要看哪些维度 | 不传 `--only` / `--dimensions` |\n| **用户选子集** | 用户只要其中几个默认维度，如「只看客户需求、跟进动作」 | `--only`，名称与 [DIMENSIONS.md](DIMENSIONS.md) 表内**完全一致**；报告**仅含**所选维度 |\n| **全新自定义** | 用户给出默认表以外的维度名或专属关键词 | `--dimensions` 指向 JSON 文件，**替换**整个维度表 |\n\n**子集示例**：用户说「只看客户需求、跟进动作」→ 只分析 2 维，HTML 里只有这 2 行的统计表、图表与卡片，不要带上其余 8 维。\n\n```bash\npython3 skills/ai-coach-batch-session-summary/scripts/generate_asr_insight_html.py \\\n  -i /tmp/asr_completed.json \\\n  --only 客户需求 --only 跟进动作 \\\n  -o \"$OUT\"\n```\n\n名称写错时脚本会报错并列出可选维度；Agent 应先对照 [DIMENSIONS.md](DIMENSIONS.md) 纠正，勿静默跳过用户点名的维度。\n\n### 维度分析规则\n\n- 每条 `records` 转写文本中，若命中某维度任一关键词，则该条录音计为该维度 **命中 1 次**（每条录音每维度最多计 1 次）。\n- **覆盖率** = 命中录音数 / 总录音数 × 100%（保留 1 位小数）。\n- **典型摘录**：取首个命中关键词所在片段（约 120 字内），摘录标签为命中词。\n- **图表**：录音按日计数、各维度覆盖率雷达/柱状、命中数 Top 维度按日折线（与参考 HTML 一致）。\n\n## 执行步骤\n\n1. **【必做】** 调用 **`session_status`（`sessionKey=\"current\"`）** 解析 **AGENTID**（见 [agentId 自动获取](#agentid-自动获取必做--直接查当前会话)）；不得跳过。\n2. 根据用户对话换算 **`YYYY-MM-DD`**（见上表）：用户**未明确时间则固定近一个月**；否则按用户说法计算 `START_TIME` / `END_TIME`。\n3. 拉取录音数据（注意 JSON 转义；**始终带** `startTime`、`endTime`）：\n\n```bash\nEND_TIME=$(date +%Y-%m-%d)\n# 默认近一个月；若用户指定了其它范围，按上表重算 START_TIME\nSTART_TIME=$(date -v-30d +%Y-%m-%d)   # Linux 默认: date -d '30 days ago' +%Y-%m-%d\n# 示例：用户说近三天 → START_TIME=$(date -v-3d +%Y-%m-%d)  # Linux: date -d '3 days ago' +%Y-%m-%d\n\ncurl -sS -X POST \"http://192.168.96.17:8900/api/recordings/asr-completed\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json\" \\\n  -d \"{\\\"userId\\\":\\\"${AGENTID}\\\",\\\"startTime\\\":\\\"${START_TIME}\\\",\\\"endTime\\\":\\\"${END_TIME}\\\"}\" \\\n  -o /tmp/asr_completed.json\n```\n\n回复用户时，若使用的是默认窗口，应写明「近一个月（yyyy-mm-dd 至 yyyy-mm-dd）」。\n\n4. 校验 `code` 为 0；读取 `data.records`。\n5. **若 `records` 条数为 0**：**到此结束**。友好告知用户（见下「零条录音」回复示例），**不要**执行步骤 6～7（不跑 `generate_asr_insight_html.py`、不上传）。\n6. 生成 HTML（**仅当** `records` 非空；**推荐**使用本技能脚本）：\n\n```bash\nSTAMP=$(date +%Y%m%d_%H%M%S)\nOUT=\"/tmp/asr_insight_${STAMP}.html\"\npython3 skills/ai-coach-batch-session-summary/scripts/generate_asr_insight_html.py \\\n  -i /tmp/asr_completed.json \\\n  -o \"$OUT\"\n```\n\n用户**只选默认维度中的若干项**时（与 `--dimensions` 二选一）：\n\n```bash\npython3 skills/ai-coach-batch-session-summary/scripts/generate_asr_insight_html.py \\\n  -i /tmp/asr_completed.json \\\n  --only 客户需求 --only 跟进动作 \\\n  -o \"$OUT\"\n```\n\n用户给出**全新维度**（名称/关键词不在默认十维）时：\n\n```bash\npython3 skills/ai-coach-batch-session-summary/scripts/generate_asr_insight_html.py \\\n  -i /tmp/asr_completed.json \\\n  --dimensions /tmp/custom_dimensions.json \\\n  -o \"$OUT\"\n```\n\n脚本路径以仓库根为基准；若工作目录在技能目录内，可使用 `scripts/generate_asr_insight_html.py` 相对路径。脚本在 **0 条录音** 时以退出码 **3** 退出且不写输出文件，Agent 应视为正常短路而非执行失败。\n\n7. **上传 `$OUT` 并生成交付链接**（**仅当** 已生成 HTML；**优先** [openclaw-file-share](../openclaw-file-share/SKILL.md)，不可用再按下文「交付 HTML」兜底）。\n8. **回复用户**（Markdown）建议包含：\n   - 一句话摘要：样本条数、**实际查询的时间范围**（用户原话 + 换算后的起止日期）、**本次分析的维度名称**（若为用户子集须写明）、有命中维度数 / 本次维度总数；\n   - HTML 交付链接须 **可点击预览**（格式见下节，**禁止**仅用行内代码包 URL）。\n\n### 向用户展示链接（可点击预览）\n\nLegionClaw / 对话端对 **`https://...` 行内代码** 通常**不能点击、不能预览**。交付时必须用 **Markdown 超链接** + **裸链**。\n\n| 禁止（不可点击） | 必须（可点击） |\n|------------------|----------------|\n| `` **`https://...`** `` | `[HTML 洞察报告（点击打开）](https://...)` |\n| 链接藏在代码块 ``` 内 | 链接单独成行，前后空行 |\n| 只写「下载 HTML：」+ 代码样式 URL | 先超链接，再可选一行裸链 |\n\n**标准模板（每个文件各用一次）**：\n\n```markdown\n## 完整报告\n\n- [HTML 洞察报告（十维分析 + 图表，点击打开）](https://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_103000.html)\n\nhttps://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_103000.html\n```\n\n- 第一行：**`[描述](URL)`** — 用户点描述即可打开（多数客户端支持预览 HTML）。\n- 第二行：**裸 URL**（无反引号、无加粗）— 供自动识别为链接；与上行 URL **必须完全相同**。\n- 若另有 Markdown 总结等附件，同样用 `[Markdown 沟通总结](URL)`，**不要**用行内代码包 URL。\n\n**回复示例（默认十维）**：\n\n```markdown\n已根据最近统计窗口内 **4** 条 ASR 转写生成十维拓客洞察报告（6/10 个维度有相关表述）。\n\n## 完整报告\n\n- [HTML 洞察报告（十维分析 + 图表，点击打开）](https://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_103000.html)\n\nhttps://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_103000.html\n```\n\n**回复示例（用户仅选 2 维）**：\n\n```markdown\n已按您选择的 **客户需求、跟进动作** 两个维度，对最近统计窗口内 **4** 条 ASR 转写生成洞察报告（1/2 个维度有相关表述）。\n\n## 完整报告\n\n- [HTML 洞察报告（点击打开）](https://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_103000.html)\n\nhttps://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_103000.html\n```\n\n**回复示例（零条录音，不生成 HTML、不上传）**：\n\n```markdown\n在 **2026-04-21 至 2026-05-21**（近一个月）内，未查询到已完成 ASR 的录音（0 条），因此未生成洞察报告。\n\n建议您核对当前账号/agentid 是否正确，或尝试扩大时间范围后再试。\n```\n\n## 交付 HTML 给用户（文件上传）\n\n**前置条件**：`data.records` **至少 1 条**。为零条时**不适用**本节，勿上传空报告。\n\n本技能产出的 HTML **必须**以公网下载链接交付用户。\n\n### 优先：openclaw-file-share\n\n**默认且首选**：若运行环境**已提供** [openclaw-file-share](../openclaw-file-share/SKILL.md) 技能，Agent **必须先读取并完整遵循**其上传流程；上传得到 URL 后，**对本技能面向用户的最终回复**仍须按 [向用户展示链接（可点击预览）](#向用户展示链接可点击预览) 写成可点击的 `[描述](URL)` + 裸链（不要仅照搬 file-share 的行内代码 URL 样式）。**不要**跳过 file-share 直接走下方兜底，除非已确认该技能不可用。\n\n对本任务，将 `$OUT`（如 `/tmp/asr_insight_${STAMP}.html`）作为待上传的生成文件即可；`objectName` 建议与本地文件名一致（`asr_insight_${STAMP}.html`），并满足 file-share 对 ASCII、无空格、无未展开 `%` 占位符的要求。\n\n**下载链接**（不解析上传响应体中的 URL，按固定格式拼接）：\n\n`https://chat-minio.tongfudun.com/legionclaw/{objectName}`\n\n### 交付前检查清单\n\n- [ ] 已通过 **当前会话查询**（`session_status` current）得到 **AGENTID**\n- [ ] `data.records` 非空（为 0 则已提前结束，不进入本清单）\n- [ ] HTML 已生成且 `$OUT` 文件存在\n- [ ] **已优先尝试** openclaw-file-share；仅在不可用时才走本节兜底上传\n- [ ] `objectName` 为 ASCII、无空格、无未展开 `%` 占位符\n- [ ] 已 `POST` 上传且 `bucket=legionclaw`\n- [ ] 已用 `https://chat-minio.tongfudun.com/legionclaw/{objectName}` 作为用户可见下载地址\n- [ ] 最终回复无本地路径；链接为 **Markdown 超链接 + 裸链**，非行内代码 URL\n\n## 变更接口或版式时\n\n若 URL、请求字段、`records` 结构或默认维度变更，请同步更新本文件、[DIMENSIONS.md](DIMENSIONS.md) 与 `scripts/generate_asr_insight_html.py`。\n\nFile v1.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn72qbt59dqfz0b09hgncr7vk583g8nz\",\n  \"slug\": \"ai-coach-batch-session-summary\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1783463748918\n}\n\nFile v1.1.1:DIMENSIONS.md\n\n# 十维拓客 · 默认分析维度\n\n用户**未指定** HTML 展示维度时，使用下列 **10 个维度**（顺序固定）。每个维度用「关键词命中」在 ASR 转写文本中统计覆盖率与摘录；命中规则见 [SKILL.md](SKILL.md) 中「维度分析规则」。\n\n| # | 维度名称 | 默认关键词（可扩展） | 典型标签（摘录展示） |\n|---|----------|----------------------|----------------------|\n| 1 | 拓客场景 | 陌拜、上门、网点、电话营销、进社区、路演、扫楼 | 陌拜、网点 |\n| 2 | 触达人群 | 老板、客户、王总、李总、朱总、经理、主任、厂长 | 老板、客户 |\n| 3 | 开口获客话术 | 您好、你好、打扰、请问、方便、拜访 | 您好 |\n| 4 | 客户需求 | 额度、利率、期限、还款、资金、周转、采购 | 额度 |\n| 5 | 客户拒绝原因 | 不需要、考虑一下、没兴趣、太忙、再说、不行 | 不需要 |\n| 6 | 有效意向分类 | 有意向、高意向、再联系、签约、办手续、尽快 | 有意向 |\n| 7 | 产品匹配 | 产品、贷款、信贷、快贷、杭信贷、经营贷 | 产品 |\n| 8 | 成交阻碍痛点 | 材料、抵押、担保、审批、流程、麻烦、慢 | 材料 |\n| 9 | 跟进动作 | 回访、再约、发资料、加微信、明天、下周 | 回访 |\n| 10 | 拓客成效数据 | 放款、到账、批复、审批通过、额度批复 | 放款 |\n\n## 用户选择维度（子集）\n\n用户可**只分析其中若干维**，名称须与上表「维度名称」列**完全一致**（如「客户需求」「跟进动作」）。HTML 中**仅保留**所选维度：统计表、图表、分维度卡片都不再出现未选维度。\n\n示例话术 → 脚本参数：\n\n| 用户说法 | Agent 执行 |\n|----------|------------|\n| 只看客户需求、跟进动作 | `--only 客户需求 --only 跟进动作` |\n| 分析触达人群和开口获客话术 | `--only \"触达人群,开口获客话术\"` |\n\n```bash\npython3 scripts/generate_asr_insight_html.py \\\n  -i /tmp/asr_completed.json \\\n  --only 客户需求 --only 跟进动作 \\\n  -o /tmp/asr_insight.html\n```\n\n页眉标题在非 10 维时为「N维分析 · 录音转写洞察报告」；摘要中说明本次为选定的 N 个维度。\n\n若用户提到的名称不在上表，应先对照本表澄清或给出可选维度列表，**不要**静默忽略。\n\n## 用户自定义维度（全新维度）\n\n若用户给出**不在默认十维内**的维度（名称 ± 关键词），则**完全替换**上表，仍保持与 [asr_insight_template.html](asr_insight_template.html) 相同的页面结构（统计表、图表、分维度卡片），仅维度名称与关键词集合按用户定义。此时用 `--dimensions`，**不要**用 `--only`。\n\n自定义示例（JSON，供脚本 `--dimensions` 使用）：\n\n```json\n[\n  {\"name\": \"竞品提及\", \"keywords\": [\"宁波银行\", \"工行\", \"农行\"]},\n  {\"name\": \"利率对比\", \"keywords\": [\"年化\", \"利率\", \"4.2\", \"4.35\"]}\n]\n```\n\n## 与参考 HTML 的对应关系\n\n参考样例 [`asr_insight_template.html`](asr_insight_template.html) 中：\n\n- 页眉标题：**十维拓客 · 录音转写洞察报告**\n- **各维度统计一览** 表：维度 / 覆盖率 / 命中条数\n- **图表**：录音样本量按日、各维度覆盖率雷达/柱状、Top 维度命中趋势\n- **分维度卡片**：findings、命中录音数、覆盖率、典型摘录（带 tag）、建议\n\n生成报告时样式与区块顺序以该文件为准；数据来自接口 `records` 与上述关键词统计，而非硬编码样例数值。\n\nFile v1.1.1:skill-card.md\n\n## Description:\n\nBatch-analyzes ASR recording transcripts and generates a multidimensional outreach insight report.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[legionspace-hackathon](https://clawhub.ai/user/legionspace-hackathon)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nSales and operations teams use this skill to turn batches of completed ASR recordings into outreach-dimension statistics, charts, excerpts, and a shareable HTML report.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Recording transcripts can contain private or identifying information and may be exposed through shareable report links.\n\nMitigation: Use private or expiring authenticated report delivery and redact identifiers and raw excerpts by default before approval.\n\nRisk: Bundled live-looking test artifacts may disclose transcript content or operational details.\n\nMitigation: Remove live transcript test artifacts from the release package or replace them with minimal synthetic fixtures.\n\nRisk: Custom dimensions and upload destinations can change what content is extracted and where reports are delivered.\n\nMitigation: Validate custom dimension files and approved upload destinations before execution.\n\nRisk: Report rendering depends on external browser scripts.\n\nMitigation: Bundle report scripts locally or pin external script integrity where supported.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/legionspace-hackathon/skills/ai-coach-batch-session-summary)\n- [DIMENSIONS.md](artifact/DIMENSIONS.md)\n- [ASR insight template](artifact/asr_insight_template.html)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, HTML, Shell commands, JSON, Guidance]\n\n**Output Format:** [Markdown response with a shareable HTML report link and optional JSON metadata]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Generates report files only when ASR records are present; may write local temporary files before upload.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.1.1:test-output/asr_completed_live.json\n\n{\"code\":0,\"data\":{\"endTime\":\"2026-05-21T23:59:59\",\"orgId\":null,\"records\":[{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"f3760659-a4dc-400a-80e4-1e3acad041a3\\\",\\\"workflow_run_id\\\":\\\"55b47e58-9809-4166-bb0f-9ca811fc24c0\\\",\\\"data\\\":{\\\"id\\\":\\\"55b47e58-9809-4166-bb0f-9ca811fc24c0\\\",\\\"workflow_id\\\":\\\"8c5178f9-7e16-452d-90e2-ff3073e66aba\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"class_name\\\":\\\"其他类型话题\\\",\\\"summary_result\\\":\\\"### 综合评分\\\\n\\\\n| 维度 | 评分（/10） | 评语 |\\\\n|------|-------------|------|\\\\n| 沟通质量 | 3 | 表达极其简短，缺乏互动和信息传递，仅为一个回应词。 |\\\\n| 目的达成度 | 2 | 目的不明确，可能仅表示确认，但未涉及具体目标或进展。 |\\\\n| 信息价值 | 1 | 几乎没有有价值的信息或新洞察，内容空洞。 |\\\\n| 整体评价 | 2 | 对话极简，未形成有效交流，整体质量差。 |\\\\n\\\\n### 内容摘要\\\\n\\\\n#### 2.1 对话主题\\\\n简短的确认或回应。\\\\n\\\\n#### 2.2 核心要点\\\\n- 话题：基本回应\\\\n- 关键内容：用户表示\\\\\\\"好的\\\\\\\"，可能表示同意或理解。\\\\n- 结论/共识：无具体结论，仅为一个简单回应。\\\\n\\\\n#### 2.3 后续事项\\\\n本次对话暂无明确的后续事项。\\\\n\\\\n### 问题与建议\\\\n\\\\n#### 3.1 值得关注的问题\\\\n- 沟通内容过于简略，可能导致信息缺失或误解（如仅\\\\\\\"好的\\\\\\\"无法传达具体意图）。\\\\n\\\\n#### 3.2 改进建议\\\\n- 建议在后续沟通中明确表达目的和细节，以提升信息完整性和互动效果。\\\"},\\\"error\\\":null,\\\"elapsed_time\\\":73.919999,\\\"total_tokens\\\":3917,\\\"total_steps\\\":4,\\\"created_at\\\":1779172035,\\\"finished_at\\\":1779172109}}\",\"aiSummaryContent\":\"# **[Git版本控制介绍]会议纪要**\\n\\n## **[会议信息]**\\n\\n- **[参与人数]**：约 1人\\n- **[内容类型]**：培训会议\\n\\n## **[会议总结]**\\n\\n本次会议主要介绍了版本控制系统Git的基本概念和工作原理：\\n\\n- 版本控制的历史发展\\n  - 最初采用纯人工方式进行版本控制\\n  - 随着项目规模扩大（成千上万文件、成百上千人协同），人工方式变得极其复杂\\n\\n- Git的诞生\\n  - 为解决版本控制难题而开发\\n  - 目前是世界上使用最广泛的版本控制系统\\n\\n- Git的基本工作原理\\n  - 通过.git子文件夹存储版本控制信息\\n  - 使用commit作为基本控制单元\\n    - 每次commit保存仓库状态的完整快照\\n    - 形成commit历史链路记录所有文件变更\\n\\n## **[待办事项]**\\n\\n暂无明确待办事项\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-19T14:27:21\",\"aiWorkflowId\":\"8deb3686-7f51-41fa-8447-345bd56a29de\",\"asrTaskId\":\"ded9a51c-0067-4d5f-a151-5ffba3f4bb22\",\"asrTaskStatus\":1,\"asrText\":\"我们就可以很容易的从历史文献把它找回来，这个保存了多个历史版本的操作，就是最原始的版本控制，不过这是一种纯人工的方式，想象一下如果一个项目里面有成千上万的文件，又有成百上千的人对这些文件进行协同开发，版本控制会变成一个极其复杂的工作。\\r\\n纯人工的方式肯定为了解决版本控制的难题，Git 诞生了。\\r\\n事实上，Git 是世界上最多人使用的版本控制系统。\\r\\n当一个文件夹被 git 管理起来以后，就变成了一个 git 仓库，被 git 仓库管理的文件夹下面会生成一个点 git 的子文件夹，用来存放 Git 的版本控制信息。\\r\\ngit 使用 commit，也就是提交作为版本控制的基本单元，每完成一次 commit，git 都保存了一个仓库此时状态的快照文件夹里所有文件的状态都被记录了下来。\\r\\n随着 commit 的越来越多，会形成一条 commit 的历史链路\",\"createDate\":\"2026-05-19T14:27:15\",\"deviceId\":null,\"downloadTime\":\"2026-05-19T14:27:15\",\"duration\":58,\"fileAlias\":null,\"fileHash\":null,\"fileName\":\"local-1779172034753.webm\",\"filePath\":\"QmcTF9PFJ4ykACkQWqwm8BesgfEPL78EU7h8CzWYi7cUrS\",\"fileSize\":1584279,\"floatingShow\":0,\"id\":\"2056622694096609281\",\"keys\":null,\"orgId\":null,\"recordingTime\":\"2026-05-19T14:26:15\",\"status\":1,\"updateDate\":\"2026-05-19T14:28:29\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"521edf92-540f-4537-951c-005502a0ac02\\\",\\\"workflow_run_id\\\":\\\"d4c8988b-95d1-4858-a2c4-9ae2aa20399b\\\",\\\"data\\\":{\\\"id\\\":\\\"d4c8988b-95d1-4858-a2c4-9ae2aa20399b\\\",\\\"workflow_id\\\":\\\"8c5178f9-7e16-452d-90e2-ff3073e66aba\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"class_name\\\":\\\"金融相关话题\\\",\\\"summary_result\\\":{\\\"requirement_score\\\":60,\\\"objection_score\\\":60,\\\"compliance_score\\\":75,\\\"speech_score\\\":70,\\\"topic\\\":[{\\\"title\\\":\\\"银行利差盈利模式\\\",\\\"label\\\":\\\"合规\\\",\\\"status\\\":0,\\\"problem\\\":\\\"符合合规红线\\\"},{\\\"title\\\":\\\"贷款类型解析\\\",\\\"label\\\":\\\"竞品\\\",\\\"status\\\":0,\\\"problem\\\":\\\"确权可追溯\\\"},{\\\"title\\\":\\\"信贷业务复杂性\\\",\\\"label\\\":\\\"异议\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需加强话术\\\"}],\\\"suggestion\\\":{\\\"label\\\":\\\"KYC强化;场景对练\\\",\\\"text_array\\\":[\\\"加强客户需求挖掘，通过KYC提问了解具体贷款用途和偏好\\\",\\\"针对不同贷款类型准备场景化话术，提升利率差异解释能力\\\"]}}},\\\"error\\\":null,\\\"elapsed_time\\\":210.225405,\\\"total_tokens\\\":14769,\\\"total_steps\\\":4,\\\"created_at\\\":1779171502,\\\"finished_at\\\":1779171712}}\",\"aiSummaryContent\":\"# **[银行信贷业务讲解]会议纪要**\\n\\n## **会议信息**\\n\\n- **参与人数**：约 1人\\n- **内容类型**：培训会议\\n\\n## **会议总结**\\n\\n本次会议主要讲解了银行信贷业务的基本原理和贷款类型。核心内容包括银行通过利差盈利的模式、贷款业务的复杂性以及不同类型的贷款特点。\\n\\n### **主要内容**\\n- **银行盈利模式**：\\n  - 银行主要通过存贷利差盈利\\n  - 贷款利率高于存款利率形成利差\\n- **信贷业务范围**：\\n  - 不限于贷款业务，还包括保函等信用业务\\n  - 本质是银行提供资金形成债权债务关系\\n- **贷款多样性**：\\n  - 期限差异：从3个月到30年不等\\n  - 担保方式多样：房产抵押、车辆质押、存单质押等\\n  - 利率差异：从2%到10%+不等（历史最高）\\n\\n## **待办事项**\\n\\n- 暂无明确待办事项\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-19T14:18:31\",\"aiWorkflowId\":\"3b1487cf-c7ab-4413-bd20-193988e9a6e8\",\"asrTaskId\":\"33bffd7c-6895-45b3-9dae-15147a2a4368\",\"asrTaskStatus\":1,\"asrText\":\"因为银行作为金融行业里面最大的金融机构，它所赚钱的方式无外乎存在利差，这是它赚钱最主要的渠道。\\r\\n什么叫存在利差呢？\\r\\n就是说银行它放出一笔贷款去，它的利率会高一些，它吸收存款进来，它的利率会低一点，这样形成的利率差就是银行赚钱的主要方式。\\r\\n那么很多小伙伴就有问题了，银行是怎么放贷的呢？\\r\\n虽然表面上我们可能会对一些，就是民间的借贷，我们知道一些借条就借出去了，那么银行内部它借贷。\\r\\n走过一些手续，那么银行内部还有哪些的贷款种类？\\r\\n它其他的贷款的形式是否一样呢？\\r\\n这些问题可能会困扰着很多对于金融，或者说对于银行感兴趣的朋友。\\r\\n于是呢，我们在知识星球里面就对这个话题进行了详细的梳理啊，大家需要更详细的资料的话，欢迎加入我的知识星球来进一步了解。\\r\\n今天呢，我们就通过这期视频给大家梳理一下银行是怎么放贷款的。\\r\\n银行放贷款，这就是大家俗语了。\\r\\n银行的信贷业务这个范围啊非常的广泛。\\r\\n它不单单是指贷款业务，这里面可能还包含一些银行承担的一些呃信用的，但是没有出资金的业务，比如说保函业务，但是呢它的主体呢？\\r\\n其实就是贷款。\\r\\n说复杂也也复杂，说简单的它无外乎就是银行提供给你资金，然后有客户呢？\\r\\n在银行这形成了一一笔债务，银行呢？\\r\\n形成一笔债权，然后在后面呢客户完成了他所要达到的目的或者用途之后，再把钱还给银行，银行回收资金的这样一个业务。\\r\\n那么说复杂的，他也复杂，因为不同的贷款之间它的期限不一样，有的可能三个月，有的可能30年。\\r\\n抵押的这个措施也不一样，可能有的是用房子抵押，有的是拿车辆去做质押，有的呢？\\r\\n可能是存单的质押，同时还有利率也不同，有的利率可能只有二点几，有的利率能高到四点几、五点几，要放在前几年的话，有18年那会可能利率十点几也不是不可能。\\r\\n首先我们来看一下银行信贷，也就是贷款吧？分哪些类型\",\"createDate\":\"2026-05-19T14:18:21\",\"deviceId\":null,\"downloadTime\":\"2026-05-19T14:18:21\",\"duration\":172,\"fileAlias\":null,\"fileHash\":null,\"fileName\":\"local-1779171500592.webm\",\"filePath\":\"QmWdQb2TbD2LnkkZxXTmJP5Q1BncwdcjeaiYYBbtoCbJ3A\",\"fileSize\":4619103,\"floatingShow\":0,\"id\":\"2056620455876165633\",\"keys\":\"KYC强化;场景对练\",\"orgId\":null,\"recordingTime\":\"2026-05-19T14:15:23\",\"status\":1,\"updateDate\":\"2026-05-19T14:21:52\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"8e7c95f1-00ff-438a-94fc-4c7475441e0c\\\",\\\"workflow_run_id\\\":\\\"0a56af5b-13da-48d8-bb52-0299af1c6155\\\",\\\"data\\\":{\\\"id\\\":\\\"0a56af5b-13da-48d8-bb52-0299af1c6155\\\",\\\"workflow_id\\\":\\\"8c5178f9-7e16-452d-90e2-ff3073e66aba\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"class_name\\\":\\\"金融相关话题\\\",\\\"summary_result\\\":{\\\"requirement_score\\\":65,\\\"objection_score\\\":60,\\\"compliance_score\\\":70,\\\"speech_score\\\":75,\\\"topic\\\":[{\\\"title\\\":\\\"宏观经济环境分析\\\",\\\"label\\\":\\\"合规\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需加强合规\\\"},{\\\"title\\\":\\\"A股结构配置建议\\\",\\\"label\\\":\\\"合规\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需注意合规\\\"},{\\\"title\\\":\\\"港股估值与机会\\\",\\\"label\\\":\\\"合规\\\",\\\"status\\\":1,\\\"problem\\\":\\\"合规待提升\\\"}],\\\"suggestion\\\":{\\\"label\\\":\\\"新规;KYC强化\\\",\\\"text_array\\\":[\\\"在提供投资建议前加强风险提示和免责声明，确保合规要求\\\",\\\"主动询问客户投资偏好和资金情况，强化KYC流程挖掘需求\\\"]}}},\\\"error\\\":null,\\\"elapsed_time\\\":53.755336,\\\"total_tokens\\\":5130,\\\"total_steps\\\":4,\\\"created_at\\\":1779161134,\\\"finished_at\\\":1779161188}}\",\"aiSummaryContent\":\"# **[宏观经济与投资策略会议纪要]**\\n\\n## **[会议信息]**\\n\\n- **参与人数**：2人\\n- **内容类型**：投资策略讨论\\n\\n## **[会议总结]**\\n\\n本次会议主要讨论了下半年宏观经济环境及投资策略配置建议。\\n\\n### **宏观经济环境**\\n- 美国经济大概率实现软着陆，但降息节奏可能晚于市场预期。\\n  - 鲍威尔暗示需要连续看到2-3个月的通胀数据回落才会启动降息。\\n- 国内地产支持持续乏力，需关注财政政策发力效果，特别是国债落地节奏。\\n\\n### **A股投资策略**\\n- **红利资产**：受益于无风险利率下行，有稳定分红，适合作为底仓配置。\\n- **科技板块**：重点关注AI、半导体、低空经济方向。\\n  - 科技板块波动较大，建议控制仓位并进行波动操作。\\n\\n### **港股投资机会**\\n- 目前估值处于历史低位，需关注外资回流情况。\\n\\n## **[待办事项]**\\n\\n- **适当加仓黄金**：长期看好，建议在回调时适当加仓。\\n- **关注财政政策落地**：特别是国债的落地节奏。\\n- **监控外资动向**：关注港股外资回流情况。\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-19T11:07:45\",\"aiWorkflowId\":\"e6e819a3-e452-4d40-8be4-2c4015704cb9\",\"asrTaskId\":\"b060e381-300c-474f-b0a4-6736d4018cf0\",\"asrTaskStatus\":1,\"asrText\":\"啊，张总你好，我们开始下一题，你不是，你先讲讲对于下半年宏观环境的判断。\\r\\n好的，张总，从目前的数据来看，我们认为美国经济大概率实现软着陆，但降息节奏可能会晚于市场预期。\\r\\n报，鲍威尔最近的发言暗示需要连续看到两三个月的通胀数据回落，才会启动降息，所以黄金的阶段回调压力还在，但长期来看，我们依然看好，建议回调的回调的适当加仓，国内这边地产支持持续乏力，但明杠的居民杠杆效率鉴定，后续关注财政政策的发力效果，特别是国债的落地节奏。\\r\\n嗯，那明白，那么这 a 股这边结构怎么看？\\r\\n红利和科技两头配置吧，红利资产受益于无风险利率下行，而且有稳定分红，适合底仓。\\r\\n科技方面，AI、半导体、低空经济这些是正则复制的方向，不过科技波动会大，建议空控制仓位做波动操作。\\r\\n港股目前估值处于历史低位，一旦外资回落，结果可能等吧。好的，收到\",\"createDate\":\"2026-05-19T11:07:35\",\"deviceId\":null,\"downloadTime\":\"2026-05-19T11:07:35\",\"duration\":83,\"fileAlias\":null,\"fileHash\":null,\"fileName\":\"local-1779160054531.webm\",\"filePath\":\"QmRzhW6Swah8QZsQhun8r3jUNHxF4kUEep32vCZgwqWFQe\",\"fileSize\":2251948,\"floatingShow\":0,\"id\":\"2056572445810413569\",\"keys\":\"新规;KYC强化\",\"orgId\":null,\"recordingTime\":\"2026-05-19T11:06:09\",\"status\":1,\"updateDate\":\"2026-05-19T11:26:28\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"b891dd98-39d0-4924-b8af-1fee30462158\\\",\\\"workflow_run_id\\\":\\\"064f102b-ed1e-49f0-84e6-3fcc914e51c0\\\",\\\"data\\\":{\\\"id\\\":\\\"064f102b-ed1e-49f0-84e6-3fcc914e51c0\\\",\\\"workflow_id\\\":\\\"073298bb-2a44-4104-bb02-0bd1055046c8\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"json_result\\\":{\\\"requirement_score\\\":50,\\\"objection_score\\\":40,\\\"compliance_score\\\":70,\\\"speech_score\\\":60,\\\"topic\\\":[{\\\"title\\\":\\\"会议结束混乱\\\",\\\"label\\\":\\\"沟通\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需加强流程\\\"},{\\\"title\\\":\\\"时间管理延误\\\",\\\"label\\\":\\\"效率\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需优化管理\\\"},{\\\"title\\\":\\\"准备不足问题\\\",\\\"label\\\":\\\"准备\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需提前规划\\\"}],\\\"suggestion\\\":{\\\"label\\\":\\\"场景对练\\\",\\\"text_array\\\":[\\\"改进会议结束流程，确保清晰沟通和记录，避免混乱。\\\",\\\"加强时间管理训练，提前规划访谈时间，减少延误。\\\"]}}},\\\"error\\\":null,\\\"elapsed_time\\\":57.430297,\\\"total_tokens\\\":2969,\\\"total_steps\\\":4,\\\"created_at\\\":1778167210,\\\"finished_at\\\":1778167268}}\",\"aiSummaryContent\":\"# **会议纪要**\\n\\n## 会议信息\\n\\n- **参与人数**：约1人\\n- **内容类型**：会议\\n\\n## 会议总结\\n\\n本次会议的核心主题和主要成果无法从提供的文本中明确提取。会议内容较为零散，缺乏明确的讨论点和成果。\\n\\n## 待办事项\\n\\n- **[负责人]**：无明确任务描述\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-07T23:20:03\",\"aiWorkflowId\":\"c3361778-3781-4341-8e04-adf89ef8ca7d\",\"asrTaskId\":\"c0c72d2b-f5f8-4f8a-a0f4-36585625f818\",\"asrTaskStatus\":1,\"asrText\":\"睡着了最后录一个在在录在录在录还是撤回了。还有几个啊你都弄完了？肖丽你弄完了？半小时了我本来以为我排第一第一个走现在我剩最后一个走哈哈哈你看这些 11:20 好的好的好的好了吗？啊好嘞好嘞好嘞我结束吧。那准备。\",\"createDate\":\"2026-05-07T23:19:37\",\"deviceId\":\"6BFD103E-AF3A-23AA-A0D7-17A7E496C63C\",\"downloadTime\":\"2026-05-07T23:19:37\",\"duration\":0,\"fileAlias\":null,\"fileHash\":\"6b416367d53e2cb76ac111e98b5a3589872bc61542a22343b2a97848af82aad6\",\"fileName\":\"20260507231903\",\"filePath\":\"QmfM5VzsvbKYj7Dii5d8sWLmSqhtuRX8esXJXS4W8ez9Qd\",\"fileSize\":90252,\"floatingShow\":0,\"id\":\"2052408015707090945\",\"keys\":\"场景对练\",\"orgId\":\"1684487565205\",\"recordingTime\":null,\"status\":1,\"updateDate\":\"2026-05-07T23:21:08\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"9f63a617-587b-41a2-8e3f-c22fdd14fbe1\\\",\\\"workflow_run_id\\\":\\\"5ac7714f-7744-46b8-b0a9-7921f4449012\\\",\\\"data\\\":{\\\"id\\\":\\\"5ac7714f-7744-46b8-b0a9-7921f4449012\\\",\\\"workflow_id\\\":\\\"073298bb-2a44-4104-bb02-0bd1055046c8\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"json_result\\\":{\\\"requirement_score\\\":65,\\\"objection_score\\\":55,\\\"compliance_score\\\":95,\\\"speech_score\\\":75,\\\"topic\\\":[{\\\"title\\\":\\\"孩子打比赛承诺\\\",\\\"label\\\":\\\"异议\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需加强话术\\\"},{\\\"title\\\":\\\"无法接送问题\\\",\\\"label\\\":\\\"场景\\\",\\\"status\\\":1,\\\"problem\\\":\\\"未解决需求\\\"},{\\\"title\\\":\\\"对话结束处理\\\",\\\"label\\\":\\\"合规\\\",\\\"status\\\":0,\\\"problem\\\":\\\"符合红线\\\"}],\\\"suggestion\\\":{\\\"label\\\":\\\"场景对练;KYC 强化\\\",\\\"text_array\\\":[\\\"建议进行场景对练来提升需求挖掘能力，针对客户具体需求定制解决方案。\\\",\\\"加强KYC强化以改进异议处理话术，确保有效回应客户顾虑。\\\"]}}},\\\"error\\\":null,\\\"elapsed_time\\\":45.22248,\\\"total_tokens\\\":2639,\\\"total_steps\\\":4,\\\"created_at\\\":1778167092,\\\"finished_at\\\":1778167137}}\",\"aiSummaryContent\":\"# **会议纪要**\\n\\n## 会议信息\\n\\n- **参与人数**：约2人\\n- **内容类型**：会议\\n\\n## 会议总结\\n\\n本次会议主要讨论了关于孩子参与训练和比赛的安排问题，涉及家长与孩子的意愿以及实际可行性。\\n\\n### 训练与比赛安排\\n\\n- 讨论了孩子一旦开始训练和比赛，可能需要长期投入：\\n  - 提到训练和比赛的签约周期为一年一签。\\n  - 家长感觉一旦开始，就会被“绑定”需要持续带孩子参加训练和比赛。\\n- 讨论了孩子的意愿：\\n  - 孩子明确表示想去参加训练和比赛。\\n  - 家长表示无法接送，因此可能无法满足孩子的意愿。\\n\\n## 待办事项\\n\\n- **[家长]**：进一步与孩子沟通训练和比赛的实际安排，评估可行性。\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-07T23:10:14\",\"aiWorkflowId\":\"b3c29f68-304d-4237-942d-bf2a284158c9\",\"asrTaskId\":\"6905874c-fb5c-466f-a9fd-dfa450f5010f\",\"asrTaskStatus\":1,\"asrText\":\"就是就是一旦你要进来了，一旦去在他们那个里边进去了，你就少不了每天都得去练签几年？一年一签嘛1年以前那还好呀1年以前你你你你就在感觉就绑进去了你你不停地带着孩子去打比赛，去训练打比赛更高更高级别的比赛好呀我我在这里还是得问一下小孩的想法小孩去啊他肯定想去然后我说我没法送啊那好吧不去也行哈哈哈我结束了还哪有。\",\"createDate\":\"2026-05-07T23:05:18\",\"deviceId\":\"6BFD103E-AF3A-23AA-A0D7-17A7E496C63C\",\"downloadTime\":\"2026-05-07T23:05:18\",\"duration\":0,\"fileAlias\":null,\"fileHash\":\"14ee6606ca3f205a525c0193ddb889591eedfc9ab1a0e373bf678fbc225ab35a\",\"fileName\":\"20260507230423\",\"filePath\":\"QmbxjtmAeJZkRdYycEq6yvtWbcwgf6HuANkWV24yyWJZ18\",\"fileSize\":150275,\"floatingShow\":0,\"id\":\"2052404412485406721\",\"keys\":\"场景对练;KYC 强化\",\"orgId\":\"1684487565205\",\"recordingTime\":null,\"status\":1,\"updateDate\":\"2026-05-07T23:18:57\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"14fe6a4a-ed94-45bf-b0bc-bfcd95a58e6a\\\",\\\"workflow_run_id\\\":\\\"6ef4018d-45a5-4f47-9ecd-93e9d107b33f\\\",\\\"data\\\":{\\\"id\\\":\\\"6ef4018d-45a5-4f47-9ecd-93e9d107b33f\\\",\\\"workflow_id\\\":\\\"073298bb-2a44-4104-bb02-0bd1055046c8\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"json_result\\\":{\\\"requirement_score\\\":65,\\\"objection_score\\\":60,\\\"compliance_score\\\":85,\\\"speech_score\\\":75,\\\"topic\\\":[{\\\"title\\\":\\\"孩子足球比赛安排\\\",\\\"label\\\":\\\"场景\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需求不明确\\\"},{\\\"title\\\":\\\"行李打包事宜\\\",\\\"label\\\":\\\"日常\\\",\\\"status\\\":1,\\\"problem\\\":\\\"偏离主题\\\"},{\\\"title\\\":\\\"睡眠时间协调\\\",\\\"label\\\":\\\"沟通\\\",\\\"status\\\":1,\\\"problem\\\":\\\"节奏混乱\\\"}],\\\"suggestion\\\":{\\\"label\\\":\\\"场景对练；KYC强化\\\",\\\"text_array\\\":[\\\"建议通过生活场景自然切入金融需求话题，如从足球培训费引出教育金规划\\\",\\\"加强KYC基础训练，在客户表达混乱时用开放式提问引导关键信息\\\"]}}},\\\"error\\\":null,\\\"elapsed_time\\\":18.588476,\\\"total_tokens\\\":1855,\\\"total_steps\\\":4,\\\"created_at\\\":1778166841,\\\"finished_at\\\":1778166860}}\",\"aiSummaryContent\":\"# **会议纪要**\\n\\n## 会议信息\\n\\n- **参与人数**：约2人\\n- **内容类型**：家庭讨论会议\\n\\n## 会议总结\\n\\n本次会议主要围绕家庭生活安排和孩子足球比赛的相关事宜展开讨论。\\n\\n### 家庭生活安排\\n\\n- 客厅被用作临时卧室，导致睡眠空间紧张\\n- 雅诗需要先去客厅隔离\\n- 家庭成员正在打包物品，可能涉及搬家或空间调整\\n\\n### 孩子足球比赛\\n\\n- 孩子近期参加足球活动\\n- 五一期间有比赛安排\\n- 家长对此事感到纠结\\n\\n## 待办事项\\n\\n- **[家庭成员]**：解决客厅睡眠空间问题\\n- **[家庭成员]**：完成物品打包工作\\n- **[家长]**：处理孩子五一足球比赛相关事宜\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-07T23:10:07\",\"aiWorkflowId\":\"c3a3cc4d-150b-4107-8e52-2a3f74324cf0\",\"asrTaskId\":\"aafdb672-6d21-4e84-b215-583025b9d531\",\"asrTaskStatus\":1,\"asrText\":\"客厅都是床，雅诗一天啊先去隔离隔离的客厅了。哦哦哦，不然怎么睡哦。唉我我们家我这两天在纠啊，肯定有问题的。快点快快快快快来快来，我们聊聊天来聊聊天快点快点，我要睡觉！等等肖玲呀等等肖玲啊啊我在打包呢我打包？等等一下哪个明天再打我明天再发给可以吗？好我我我最近遇到一个但是很纠结的事嗯先听我讲听你讲对我不行我就识别多然后那个那个那个我们家娃不是踢足球吗？嗯然后那个几分钟了然后接着最近五一比赛。\",\"createDate\":\"2026-05-07T23:00:44\",\"deviceId\":\"6BFD103E-AF3A-23AA-A0D7-17A7E496C63C\",\"downloadTime\":\"2026-05-07T23:00:44\",\"duration\":0,\"fileAlias\":null,\"fileHash\":\"93114b11c8783467f67013212e35f7a78fb69ee9211d54e6068e0f50fbdd7160\",\"fileName\":\"20260507225926\",\"filePath\":\"QmdfBEVRsV4KE9mZ6cntj92eCdfcgsgeBwT4UFHeyNrp7P\",\"fileSize\":217233,\"floatingShow\":0,\"id\":\"2052403265060732929\",\"keys\":\"场景对练；KYC强化\",\"orgId\":\"1684487565205\",\"recordingTime\":null,\"status\":1,\"updateDate\":\"2026-05-07T23:14:20\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"fab1d66c-2ca4-4fd2-bb32-bb97378ff67a\\\",\\\"workflow_run_id\\\":\\\"6e9dc6a6-2d73-418d-b7d3-aeaeffc2ece5\\\",\\\"data\\\":{\\\"id\\\":\\\"6e9dc6a6-2d73-418d-b7d3-aeaeffc2ece5\\\",\\\"workflow_id\\\":\\\"073298bb-2a44-4104-bb02-0bd1055046c8\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"json_result\\\":{\\\"requirement_score\\\":85,\\\"objection_score\\\":75,\\\"compliance_score\\\":95,\\\"speech_score\\\":90,\\\"topic\\\":[{\\\"title\\\":\\\"流程中断处理\\\",\\\"label\\\":\\\"流程\\\",\\\"status\\\":1,\\\"problem\\\":\\\"需加强话术\\\"},{\\\"title\\\":\\\"系统操作规范\\\",\\\"label\\\":\\\"合规\\\",\\\"status\\\":0,\\\"problem\\\":\\\"确权可追溯\\\"},{\\\"title\\\":\\\"话术完整性\\\",\\\"label\\\":\\\"话术\\\",\\\"status\\\":0,\\\"problem\\\":\\\"符合规范\\\"}],\\\"suggestion\\\":{\\\"label\\\":\\\"场景对练；话术\\\",\\\"text_array\\\":[\\\"建议增加中断场景的应对演练，提升流程稳定性\\\",\\\"优化结束流程话术，确保操作指引清晰完整\\\"]}}},\\\"error\\\":null,\\\"elapsed_time\\\":44.159013,\\\"total_tokens\\\":3864,\\\"total_steps\\\":4,\\\"created_at\\\":1778165998,\\\"finished_at\\\":1778166043}}\",\"aiSummaryContent\":\"# **会议纪要**\\n\\n## 会议信息\\n\\n- **内容类型**：会议\\n\\n## 会议总结\\n\\n本次会议主要讨论了设备操作流程中的问题及注意事项。\\n\\n### 设备操作流程问题\\n\\n- 设备在正常操作下流程是OK的，但需要注意以下问题：\\n  - 不要频繁点击暂停关闭，应等待设备完整运行。\\n  - 有一块任务结束音后未跳转到完成状态，会直接中断口播。\\n\\n### 菜单操作注意事项\\n\\n- 菜单操作一定不能报错。\\n- 整个菜单的样子是存在的，只要不乱操作是正常的。\\n\\n## 待办事项\\n\\n- **[负责人]**：检查设备任务结束音后跳转完成状态的问题。\\n- **[负责人]**：确保菜单操作不报错。\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-07T22:50:45\",\"aiWorkflowId\":\"90f385f3-e568-44bd-b666-8411087676bc\",\"asrTaskId\":\"7deed9d1-c85c-4942-af93-3b594f2e413d\",\"asrTaskStatus\":1,\"asrText\":\"看一看会不会生成我是不能知道，看一看能不能生成，好的，然后测一下好像上架好像问题肯定存在的，但是只要像你刚刚说菜单那个一定不能报错是吧，菜单那个然后我的那个整个样子是有的，然后里面你让我看一下，如果说你不不乱操作，这是正常的，就是你正常的等他那个设备完完整的就设备你不要那个来不停的点暂停关闭，暂停关闭只是正常的让他进入一个网易，点击结束音，这个流程是  OK  的哦，有一块那个有一块任务结束音以后没有等他跳转到比如说上上完成，他就会直接中断，中断口播，但是你如果说。\",\"createDate\":\"2026-05-07T22:50:31\",\"deviceId\":\"6BFD103E-AF3A-23AA-A0D7-17A7E496C63C\",\"downloadTime\":\"2026-05-07T22:50:31\",\"duration\":0,\"fileAlias\":null,\"fileHash\":\"3997b02fcb0725bd5e94f094eccd3e4a8111056413e664fef484792c15fd174b\",\"fileName\":\"20260507224915\",\"filePath\":\"QmaAQ3Pw22Y1fQ8UEPVenPiUyBUHZz26KNNTGjAbBpwMA4\",\"fileSize\":262766,\"floatingShow\":0,\"id\":\"2052400690803912706\",\"keys\":\"场景对练；话术\",\"orgId\":\"1684487565205\",\"recordingTime\":null,\"status\":1,\"updateDate\":\"2026-05-07T23:00:43\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"}],\"startTime\":\"2026-04-21T00:00:00\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},\"msg\":\"success\"}\n\nFile v1.1.1:test-output/asr_insight_20260521_204814.meta.json\n\n{\r\n  \"title\": \"十维拓客 · 录音转写洞察报告\",\r\n  \"executiveSummary\": \"基于 7 条 ASR 转写，按十维拓客框架完成统计；7/10 个维度在样本中出现相关表述。\",\r\n  \"recordCount\": 7,\r\n  \"covered_dims\": 7,\r\n  \"dim_count\": 10,\r\n  \"window_label\": \"2026-04-21 至 2026-05-21\"\r\n}\n\nFile v1.1.1:test-output/asr_insight_20260521_211222.meta.json\n\n{\r\n  \"title\": \"十维拓客 · 录音转写洞察报告\",\r\n  \"executiveSummary\": \"基于 7 条 ASR 转写，按十维拓客框架完成统计；7/10 个维度在样本中出现相关表述。\",\r\n  \"recordCount\": 7,\r\n  \"covered_dims\": 7,\r\n  \"dim_count\": 10,\r\n  \"window_label\": \"2026-04-21 至 2026-05-21\"\r\n}\n\nFile v1.1.1:test-output/asr_request.json\n\n{\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\",\"startTime\":\"2026-04-21\",\"endTime\":\"2026-05-21\"}\n\nFile v1.1.1:test-output/fixture_asr_completed.json\n\n{\"code\":0,\"msg\":\"success\",\"data\":{\"userId\":\"test\",\"startTime\":\"2026-04-21\",\"endTime\":\"2026-05-21\",\"records\":[{\"recordTime\":\"2026-05-10T09:00:00\",\"asrText\":\"王总您好，经营贷额度利率可谈，客户有意向回访。\"},{\"recordTime\":\"2026-05-12T14:30:00\",\"asrText\":\"快贷产品，客户考虑一下，下周回访发资料。\"}]}}\n\nFile v1.1.1:test-output/last_publish.json\n\n��{\"ok\": true, \"report\": {\"reportUrl\": \"https://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_211222.html\", \"title\": \"W�zO�m���dy� � 0��fvq^g�SU2Z�pBv���0�a\", \"executiveSummary\": \"i�p�,| 7 ɓ?ASR ^g�SU\u001b�~\\�[W�zO�m���dy�Y�Ufp9p~\\�W\u0001�qx�\u001b�?/10 �mF��m4d@�jn͓\u000b�pn�m^�V\u001c�nbImO��[\u00030ig,�� ?, \"recordCount\": 7, \"covered_dims\": 7, \"dim_count\": 10, \"window_label\": \"2026-04-21 w�?2026-05-21\"}, \"deliverable\": {\"reportUrl\": \"https://chat-minio.tongfudun.com/legionclaw/asr_insight_20260521_211222.html\", \"objectName\": \"asr_insight_20260521_211222.html\", \"title\": \"W�zO�m���dy� � 0��fvq^g�SU2Z�pBv���0�a\", \"executiveSummary\": \"i�p�,| 7 ɓ?ASR ^g�SU\u001b�~\\�[W�zO�m���dy�Y�Ufp9p~\\�W\u0001�qx�\u001b�?/10 �mF��m4d@�jn͓\u000b�pn�m^�V\u001c�nbImO��[\u00030ig,�� ?, \"recordCount\": 7, \"covered_dims\": 7, \"dim_count\": 10, \"window_label\": \"2026-04-21 w�?2026-05-21\"}, \"agentInstructions\": \"Z� bde���uQ~e�?deliverable.reportUrl\u001b�\u001dX\u001f]\u0019����z\u001bt�\\�Q https URL\u001b�}\\�XZ��^���Y 2=_�[�f_\u001b�\tY\f{ deliverable.executiveSummary\u001b�#X�Zȓ\u001bY\u001a}\u001b��m���Y\"2�w�tQg+^�o-[FmP�\u0010k�W��\u000bY�f JSON��?}\n\nArchive v1.1.0: 10 files, 16748 bytes\n\nFiles: scripts/fetch-asr-recordings.mjs (6685b), scripts/parse-analysis-focus.mjs (3587b), scripts/parse-time-range.mjs (4691b), scripts/parse-user-intent.mjs (1024b), scripts/resolve-openclaw-identity.mjs (2609b), scripts/resolve-user-intent.mjs (5859b), skill-card.md (2721b), SKILL.md (8917b), templates/insight-report-page.md (441b), _meta.json (149b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: ai-coach-batch-session-summary\ndescription: >-\n  录音转写洞察：先 parse-user-intent 反问确认时间与维度，再 fetch 拉数；默认近 1 个月 + 十维；默认报告页面。\n  触发：对象词（含教练/coach）+ 动作词，或完整口令，或显式 intent=ai-coach-batch-session-summary。\n---\n\n# AI Coach Batch Session Summary\n\n## 目标\n\n拉取 **legion-hardware** 的 ASR 转写并生成报告。**仅依据 `asrText`**，禁止使用 `aiJiaolianResultJson` / `aiSummaryContent` 作为结论依据。\n\n---\n\n## 工作流程（必须按序，禁止跳步）\n\n```text\n1. parse-user-intent.mjs     → 解析时间 / 维度 / 交付形态\n2. needClarification=true    → 反问用户，结束（禁止执行 fetch）\n3. 用户补充或 skipClarification / confirmed* → 再执行 fetch-asr-recordings.mjs\n4. 按 reportPlan + themeRelated + outputFormat 生成报告\n```\n\n**禁止只跑 `fetch-asr-recordings.mjs` 而不先意图解析**（fetch 内置相同解析，若需反问会直接 `ok:false` 且不拉数）。\n\n### 脚本调用\n\n```bash\n# 步骤 1：意图（不拉数）\necho '{\"user\":\"u\",\"model\":\"openclaw:u123\",\"userMessage\":\"帮我总结录音\"}' | \\\n  node \"{baseDir}/scripts/parse-user-intent.mjs\"\n\n# 步骤 2：确认后拉数（token 仅来自 Header / LEGION_AUTH_TOKEN）\nexport LEGION_AUTH_TOKEN=\"<JWT>\"\necho '{\"user\":\"u\",\"model\":\"openclaw:u123\",\"userMessage\":\"总结最近 5 天录音\",\"skipClarification\":true}' | \\\n  node \"{baseDir}/scripts/fetch-asr-recordings.mjs\"\n```\n\n### 默认值（反问后仍不明确，或用户说「按默认」）\n\n| 项 | 默认 | 报告说明 |\n|----|------|----------|\n| 时间 | 近 **1** 个月 | 「未确认具体时间，已按默认最近 1 个月统计」 |\n| 维度 | **十维拓客** | 「因未提取到明确的分析维度信息，已使用默认十维拓客统计框架处理」 |\n\n---\n\n## 反问沟通\n\n`parse-user-intent` / `fetch` 在以下情况 **`needClarification: true`**：\n\n| 信号 | 反问要点 |\n|------|----------|\n| `timeRange.confidence` = `ambiguous` | 几天 / 几周 / 几个月 |\n| `timeRange.confidence` = `missing` | 统计窗口；不答则默认 1 个月 |\n| `analysisFocus.confidence` = `ambiguous` | 拓客 / 话术 / 教练 / 客户需求 / 或默认十维 |\n| `analysisFocus.confidence` = `missing` | 分析方向；不答则默认十维 |\n\n**跳过反问：**\n\n- 用户话术中「就按默认 / 你看着办 / 用默认」\n- body：`skipClarification: true`（网关在用户回复后设置）\n- body：`confirmedTime` / `confirmedDimension`（见下）\n\n### 多轮合并 `userMessage`\n\n网关将 **首轮 + 追问回复** 写入同一 body：\n\n```json\n{\n  \"userMessage\": \"帮我总结录音\",\n  \"followUpMessage\": \"最近 5 天，按拓客复盘\",\n  \"skipClarification\": true\n}\n```\n\n或拼接为单字段 `userMessage`。脚本会合并 `userMessage` + `query` + `followUpMessage`。\n\n### 网关确认字段（可选）\n\n| 字段 | 示例 | 作用 |\n|------|------|------|\n| `skipClarification` | `true` | 不再反问，按解析结果或默认拉数 |\n| `confirmedTime` | `\"default\"` 或 `{ \"startTime\":\"...\",\"endTime\":\"...\" }` | 锁定时间窗 |\n| `confirmedDimension` | `\"default_ten\"` / `\"ten\"` / `\"AI 教练\"` / `\"股票趋势\"` | 锁定维度或专题 |\n\n---\n\n## 触发词速查\n\n**激活（其一）：** 对象词 + 动作词；[完整口令](#完整口令)；`intent=ai-coach-batch-session-summary`。\n\n**动作词：** 总结、汇总、归纳、梳理、概括、小结、复盘、盘点、整合、整理、摘要、报告、结论（及英文同义，须配对象词）。\n\n**对象词：**\n\n| 类别 | 中文 | 英文 |\n|------|------|------|\n| 录音 / 转写 | 录音、转写、ASR | recording, transcript, ASR |\n| 拓客 | 拓客、走访、地推 | outreach, field sales |\n| 话术 / 客户 | 话术、客户拜访 | pitch, script, customer visit |\n| **教练** | 教练、AI 教练、教练反馈、教练点评 | coach, coaching, AI coach, coach feedback |\n| 系统 | legion-hardware | legion, hardware |\n\n### 完整口令\n\n- 总结最近 5 天录音\n- 十维拓客报告\n- 总结一下教练反馈\n- AI coach recap for last month\n\n**不触发：** 仅「总结一下」无对象词；**仅**调用 `POST /api/recordings/ai-jiaolian` 且无话术总结类动作词（走 AI 教练单次能力，不走本 skill）。\n\n---\n\n## 入站参数（OpenClaw / 网关）\n\n```json\n{\n  \"user\": \"OpenClaw 用户标识（必填，映射为 hardware userId）\",\n  \"model\": \"openclaw:{user}{orgId} 或 openclaw:{user}person\",\n  \"userMessage\": \"用户原话（必填，可在 metadata）\",\n  \"followUpMessage\": \"可选，第二轮补充\",\n  \"skipClarification\": false,\n  \"confirmedTime\": \"default\",\n  \"confirmedDimension\": \"default_ten\",\n  \"orgId\": \"可选；网关已从 model 解析时可直传\"\n}\n```\n\nHeader：`Authorization: Bearer {JWT}`（**禁止** body.token）\n\n### userId / orgId 取值（`resolve-openclaw-identity.mjs`）\n\n与 tfd-api `AiService` 的 model 组装一致：\n\n| model 形态 | 含义 | hardware 调用 |\n|------------|------|-----------------|\n| `openclaw:{user}{orgId}` | 组织上下文 | `userId=user`，`orgId` 为去掉前缀 `openclaw:{user}` 后的后缀 |\n| `openclaw:{user}person` | 个人上下文 | `userId=user`，**不传 orgId**（或为空） |\n\n规则：\n\n1. **userId** = 请求体字段 **`user`**（兼容 `userId`）。\n2. **model 以 `person` 结尾**（不区分大小写）→ 个人模式，**不传 orgId**。\n3. **model 非 person** → `orgId = model` 去掉前缀 `openclaw:` + `user` 后的剩余部分。\n4. 若 body 已带非空 **`orgId`**（如网关 metadata）→ 优先使用，不再从 model 解析。\n5. 若 body 显式 `orgId: \"\"` → 视为个人模式。\n\n示例（`user=abc`）：\n\n| model | orgId（查询） |\n|-------|----------------|\n| `openclaw:abc123` | `123` |\n| `openclaw:abcperson` | 不传（个人） |\n| `openclaw:abc` | 不传（后缀为空） |\n\n---\n\n## 时间规则（`parse-time-range.mjs`）\n\n| 表述 | confidence | 行为 |\n|------|------------|------|\n| 最近 5 天 / 近 2 个月 | explicit | 按解析查询 |\n| 最近 / 近期（无数字） | ambiguous | 先反问 |\n| 无时间 | missing | 先反问 |\n| 反问后仍无 | default | 近 **1** 个月 |\n\n时区 `Asia/Shanghai`；上限：月 ≤12，天 ≤366。\n\n---\n\n## 维度与报告分支\n\n| 条件 | 输出 |\n|------|------|\n| 无显式专题（走十维） | 十维拓客报告 + 默认维度说明（若适用） |\n| 用户明确「十维 / 默认十维」 | 十维（无需「未提取维度」说明） |\n| 显式专题且 `themeRelated=true` | 仅 `## 用户关注：{主题}` |\n| 显式专题且 `themeRelated=false` | **仅**：`## 分析结果` → **无相关内容**（禁止十维、禁止编造） |\n\n`themeRelated` 由脚本用 **主题核心词** 匹配 `asrText`（已避免单独「KYC」「趋势」误命中）。\n\n### 样本量\n\n| recordCount | 处理 |\n|-------------|------|\n| `0` | 十维骨架或专题内写明「样本为空」 |\n| `< 5` | 标注「小样本，结论仅供参考」 |\n| `> 80`（默认） | 见 stdout `recordsHint`，分析时优先近期并抽样 |\n\n---\n\n## 数据拉取与部署\n\n| 项 | 说明 |\n|----|------|\n| 默认 baseUrl | `http://192.168.109.50:8900`（`LEGION_HARDWARE_BASE_URL` 可覆盖） |\n| 接口 | `GET` 或 `POST` `/api/recordings/asr-completed` + `startTime`/`endTime` |\n| **部署** | 须 **新 jar**（POST 支持 body 内时间）；旧版 POST 仅 3 个月固定窗，自定义时间会失效 |\n\nfetch 成功时 stdout 含：`query`、`analysisFocus`、`themeRelated`、`reportPlan`、`outputFormat`、`records[]`。\n\n---\n\n## 交付形态（`outputFormat`）\n\n| mode | 行为 |\n|------|------|\n| `page`（默认） | 按 `templates/insight-report-page.md` 生成**完整报告页**（Markdown/HTML） |\n| `text` | 用户要求「只要文字/不要页面」 |\n| `custom` | 用户要求导出/邮件等，**从其要求** |\n\n---\n\n## 十维拓客（默认维度）\n\n1. 拓客场景 2. 触达人群 3. 开口获客话术 4. 客户需求 5. 客户拒绝原因  \n6. 有效意向分类 7. 产品匹配 8. 成交阻碍痛点 9. 跟进动作 10. 拓客成效数据  \n\n每维：关键发现 / 典型摘录 / 量化指标 / 优化建议。\n\n---\n\n## 错误与安全\n\n- 缺 `user` / `Authorization` → 不调 hardware；个人模式可无 `orgId`\n- `needClarification` 时禁止编造数据\n- 勿暴露 token、内网 IP/端口\n- `user` / 解析出的 `orgId` 宜与业务身份一致（建议网关校验）\n\n## 检查清单\n\n- [ ] 已跑 `parse-user-intent`；`needClarification` 时已反问且未 fetch\n- [ ] 默认时间/维度说明已写入报告（若适用）\n- [ ] `themeUnrelated` 时仅输出「无相关内容」\n- [ ] 交付形态符合 `outputFormat`\n- [ ] 未使用 body.token\n- [ ] `user` / `model` 已按规则解析；`person` 模式未传 orgId\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn72qbt59dqfz0b09hgncr7vk583g8nz\",\n  \"slug\": \"ai-coach-batch-session-summary\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1779183027712\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nGenerates AI coach and outreach insight reports from authorized ASR transcript records after clarifying the user's time range, analysis focus, and delivery format. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[legionspace-hackathon](https://clawhub.ai/user/legionspace-hackathon) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nOpenClaw or Legion agents use this skill to summarize batches of ASR recordings into user-requested AI coach, outreach, sales script, or customer-need reports. The workflow asks for missing scope details before fetching data and grounds final conclusions in transcript text. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill handles private ASR transcripts and bearer-token API access. <br>\nMitigation: Install and run it only in trusted Legion/OpenClaw environments where authorization headers, LEGION_* environment variables, and the API base URL are controlled by trusted configuration. <br>\nRisk: Untrusted LEGION_USER_MESSAGE or LEGION_SKIP_CLARIFICATION values can change the requested time range or analysis scope. <br>\nMitigation: Do not set those environment variables from untrusted sources; require explicit user or gateway confirmation when time range or analysis focus is ambiguous. <br>\nRisk: Reports could include unsupported conclusions if they use non-transcript fields or infer content when the selected theme is absent. <br>\nMitigation: Ground conclusions only in asrText, avoid aiJiaolianResultJson and aiSummaryContent as evidence, and return no related content when transcript text does not match the requested theme. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/legionspace-hackathon/ai-coach-batch-session-summary) <br>\n- [Report page template](templates/insight-report-page.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, JSON, Guidance] <br>\n**Output Format:** [Markdown report page or text summary; helper scripts return JSON for intent parsing, clarification, fetch results, and report planning.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May ask a clarification question before fetching recordings; large result sets include a hint to prioritize recent samples and sample excerpts.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.0:templates/insight-report-page.md\n\n# {{title}}\n\n> 统计窗口：{{startTime}} ～ {{endTime}}（{{timeLabel}}）  \n> 样本：{{recordCount}} 条录音转写  \n> {{#if dimensionNotice}}{{dimensionNotice}}{{/if}}\n\n---\n\n## 执行摘要\n\n{{executiveSummary}}\n\n---\n\n{{#if useTenDimensions}}\n{{tenDimensionsContent}}\n{{else}}\n## 用户关注：{{userTheme}}\n\n{{userThemeContent}}\n{{/if}}\n\n---\n\n<footer>本页依据 ASR 转写生成，结论均来自录音文本证据。</footer>\n\nArchive v1.0.0: 8 files, 13272 bytes\n\nFiles: scripts/fetch-asr-recordings.mjs (6372b), scripts/parse-analysis-focus.mjs (3587b), scripts/parse-time-range.mjs (4691b), scripts/parse-user-intent.mjs (887b), scripts/resolve-user-intent.mjs (5859b), SKILL.md (7196b), templates/insight-report-page.md (441b), _meta.json (149b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: ai-coach-batch-session-summary\ndescription: >-\n  AI 教练批量会话总结：拉取 legion-hardware 的 ASR 转写并生成教练反馈/对练会话的批量总结报告。\n  触发：教练/coach/AI 教练 + 总结/复盘/汇总/批处理等动作词，或显式 intent。\n---\n\n# AI Coach Batch Session Summary\n\n## 目标\n\n拉取 **legion-hardware** 的 ASR 转写并生成 **AI 教练会话批量总结报告**。聚焦于教练反馈、场景对练、教练点评等内容的汇总分析。**仅依据 `asrText`**，禁止使用 `aiJiaolianResultJson` / `aiSummaryContent` 作为结论依据。\n\n---\n\n## 工作流程（必须按序，禁止跳步）\n\n```text\n1. parse-user-intent.mjs     → 解析时间 / 分析焦点 / 交付形态\n2. needClarification=true    → 反问用户，结束（禁止执行 fetch）\n3. 用户补充或 skipClarification / confirmed* → 再执行 fetch-asr-recordings.mjs\n4. 按 reportPlan + themeRelated + outputFormat 生成报告\n```\n\n**禁止只跑 `fetch-asr-recordings.mjs` 而不先意图解析**（fetch 内置相同解析，若需反问会直接 `ok:false` 且不拉数）。\n\n### 脚本调用\n\n```bash\n# 步骤 1：意图（不拉数）\necho '{\"userId\":\"u\",\"orgId\":\"o\",\"userMessage\":\"帮我总结教练反馈\"}' | \\\n  node \"{baseDir}/scripts/parse-user-intent.mjs\"\n\n# 步骤 2：确认后拉数（token 仅来自 Header / LEGION_AUTH_TOKEN）\nexport LEGION_AUTH_TOKEN=\"<JWT>\"\necho '{\"userId\":\"u\",\"orgId\":\"o\",\"userMessage\":\"总结最近 5 天教练反馈\",\"skipClarification\":true}' | \\\n  node \"{baseDir}/scripts/fetch-asr-recordings.mjs\"\n```\n\n### 默认值（反问后仍不明确，或用户说「按默认」）\n\n| 项 | 默认 | 报告说明 |\n|----|------|----------|\n| 时间 | 近 **1** 个月 | 「未确认具体时间，已按默认最近 1 个月统计」 |\n| 分析范围 | **AI 教练会话** | 「已按 AI 教练会话总结框架处理，聚焦教练反馈/对练内容」 |\n\n---\n\n## 反问沟通\n\n`parse-user-intent` / `fetch` 在以下情况 **`needClarification: true`**：\n\n| 信号 | 反问要点 |\n|------|----------|\n| `timeRange.confidence` = `ambiguous` | 几天 / 几周 / 几个月 |\n| `timeRange.confidence` = `missing` | 统计窗口；不答则默认 1 个月 |\n| `analysisFocus.confidence` = `ambiguous` | 教练反馈 / 场景对练 / 教练点评 / 或默认 AI 教练会话总结 |\n| `analysisFocus.confidence` = `missing` | 分析方向；不答则默认 AI 教练会话总结 |\n\n**跳过反问：**\n\n- 用户话术中「就按默认 / 你看着办 / 用默认」\n- body：`skipClarification: true`（网关在用户回复后设置）\n- body：`confirmedTime` / `confirmedFocus`（见下）\n\n### 多轮合并 `userMessage`\n\n网关将 **首轮 + 追问回复** 写入同一 body：\n\n```json\n{\n  \"userMessage\": \"帮我总结教练反馈\",\n  \"followUpMessage\": \"最近 5 天，按场景对练复盘\",\n  \"skipClarification\": true\n}\n```\n\n或拼接为单字段 `userMessage`。脚本会合并 `userMessage` + `query` + `followUpMessage`。\n\n### 网关确认字段（可选）\n\n| 字段 | 示例 | 作用 |\n|------|------|------|\n| `skipClarification` | `true` | 不再反问，按解析结果或默认拉数 |\n| `confirmedTime` | `\"default\"` 或 `{ \"startTime\":\"...\",\"endTime\":\"...\" }` | 锁定时间窗 |\n| `confirmedFocus` | `\"coach_feedback\"` / `\"session_practice\"` / `\"coach_report\"` | 锁定分析焦点 |\n\n---\n\n## 触发词速查\n\n**激活（其一）：** 教练相关对象词 + 批量/总结类动作词；[完整口令](#完整口令)；`intent=ai-coach-batch-session-summary`。\n\n**动作词：** 总结、汇总、归纳、梳理、概括、小结、复盘、盘点、整合、整理、摘要、报告、结论、批处理、批量（及英文同义，须配对象词）。\n\n**对象词：**\n\n| 类别 | 中文 | 英文 |\n|------|------|------|\n| **教练** | 教练、AI 教练、智能教练、教练反馈、教练点评、对练、场景对练 | coach, AI coach, coaching, coach feedback, coach report, session |\n| 录音 / 转写 | 录音、转写、ASR | recording, transcript, ASR |\n| 系统 | legion-hardware | legion, hardware |\n\n### 完整口令\n\n- 总结最近 5 天的教练反馈\n- AI 教练会话批量总结\n- 汇总最近的教练点评\n- AI coach batch session summary for last month\n- 批量复盘场景对练记录\n\n**不触发：** 仅「总结一下」无对象词；**仅**调用 `POST /api/recordings/ai-jiaolian` 且无批量总结类动作词（走 AI 教练单次能力，不走本 skill）。\n\n---\n\n## 入站参数\n\n```json\n{\n  \"userId\": \"...\",\n  \"orgId\": \"...\",\n  \"userMessage\": \"用户原话（必填）\",\n  \"followUpMessage\": \"可选，第二轮补充\",\n  \"skipClarification\": false,\n  \"confirmedTime\": \"default\",\n  \"confirmedFocus\": \"coach_feedback\"\n}\n```\n\nHeader：`Authorization: Bearer {JWT}`（**禁止** body.token）\n\n---\n\n## 时间规则（`parse-time-range.mjs`）\n\n| 表述 | confidence | 行为 |\n|------|------------|------|\n| 最近 5 天 / 近 2 个月 | explicit | 按解析查询 |\n| 最近 / 近期（无数字） | ambiguous | 先反问 |\n| 无时间 | missing | 先反问 |\n| 反问后仍无 | default | 近 **1** 个月 |\n\n时区 `Asia/Shanghai`；上限：月 ≤12，天 ≤366。\n\n---\n\n### 样本量\n\n| recordCount | 处理 |\n|-------------|------|\n| `0` | 报告内写明「样本为空」 |\n| `< 5` | 标注「小样本，结论仅供参考」 |\n| `> 80`（默认） | 见 stdout `recordsHint`，分析时优先近期并抽样 |\n\n---\n\n## 数据拉取与部署\n\n| 项 | 说明 |\n|----|------|\n| 默认 baseUrl | `http://192.168.109.50:8900`（`LEGION_HARDWARE_BASE_URL` 可覆盖） |\n| 接口 | `GET` 或 `POST` `/api/recordings/asr-completed` + `startTime`/`endTime` |\n| **部署** | 须 **新 jar**（POST 支持 body 内时间）；旧版 POST 仅 3 个月固定窗，自定义时间会失效 |\n\nfetch 成功时 stdout 含：`query`、`analysisFocus`、`themeRelated`、`reportPlan`、`outputFormat`、`records[]`。\n\n---\n\n## 交付形态（`outputFormat`）\n\n| mode | 行为 |\n|------|------|\n| `page`（默认） | 按 `templates/insight-report-page.md` 生成**完整报告页**（Markdown/HTML） |\n| `text` | 用户要求「只要文字/不要页面」 |\n| `custom` | 用户要求导出/邮件等，**从其要求** |\n\n---\n\n## 分析维度（AI 教练会话总结）\n\n报告聚焦以下维度（根据 `asrText` 内容自动提取）：\n\n1. 教练反馈要点 2. 场景对练表现 3. 常见错误/改进建议 4. 优秀话术摘录  \n5. 学员进步轨迹 6. 教练点评高频词 7. 对练场景分布 8. 后续训练建议\n\n每维：关键发现 / 典型摘录 / 量化指标（若适用）/ 优化建议。\n\n---\n\n## 错误与安全\n\n- 缺 `userId` / `orgId` / `Authorization` → 不调 hardware\n- `needClarification` 时禁止编造数据\n- 勿暴露 token、内网 IP/端口\n- body `userId`/`orgId` 宜与 JWT 一致（建议网关校验）\n\n## 检查清单\n\n- [ ] 已跑 `parse-user-intent`；`needClarification` 时已反问且未 fetch\n- [ ] 默认时间/分析范围说明已写入报告（若适用）\n- [ ] `themeUnrelated` 时仅输出「无相关内容」\n- [ ] 交付形态符合 `outputFormat`\n- [ ] 未使用 body.token\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn72qbt59dqfz0b09hgncr7vk583g8nz\",\n  \"slug\": \"ai-coach-batch-session-summary\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779178198913\n}\n\nFile v1.0.0:templates/insight-report-page.md\n\n# {{title}}\n\n> 统计窗口：{{startTime}} ～ {{endTime}}（{{timeLabel}}）  \n> 样本：{{recordCount}} 条录音转写  \n> {{#if dimensionNotice}}{{dimensionNotice}}{{/if}}\n\n---\n\n## 执行摘要\n\n{{executiveSummary}}\n\n---\n\n{{#if useTenDimensions}}\n{{tenDimensionsContent}}\n{{else}}\n## 用户关注：{{userTheme}}\n\n{{userThemeContent}}\n{{/if}}\n\n---\n\n<footer>本页依据 ASR 转写生成，结论均来自录音文本证据。</footer>","readmeExcerpt":"Skill: Ai Coach Batch Session Summary Owner: legionspace-hackathon Summary: 批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、 总结、音频总结、拜访记录总结。 当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。 注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。 Tags: latest:1.1.1 Version history: v1.1.1 | 2026-07-07T22:35:48.918Z | user Initial release v1.1.0 | 2026-05-19T09:30:27.712Z | user Add resolve-openclaw-identity.mjs for automatic userId/orgId resolut","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"用户消息\n  │\n  ├─ 命中「高置信度」触发词 ──→ 直接执行，无需确认\n  │\n  ├─ 命中「中置信度」触发词 ──→ 向用户确认意图后再执行\n  │\n  └─ 命中「不触发」场景 ──→ 不触发本技能"},{"language":"json","snippet":"{\n  \"userId\": \"<agentid>\",\n  \"startTime\": \"2026-04-21\",\n  \"endTime\": \"2026-05-21\"\n}"},{"language":"bash","snippet":"END_TIME=$(date +%Y-%m-%d)\nSTART_TIME=$(date -v-30d +%Y-%m-%d)"},{"language":"bash","snippet":"END_TIME=$(date +%Y-%m-%d)\nSTART_TIME=$(date -d '3 days ago' +%Y-%m-%d)"},{"language":"json","snippet":"{\n  \"code\": 0,\n  \"msg\": \"success\",\n  \"data\": {\n    \"userId\": \"<agentid>\",\n    \"orgId\": null,\n    \"startTime\": \"2026-02-21T10:55:33.284902311\",\n    \"endTime\": \"2026-05-21T10:55:33.284902311\",\n    \"records\": [\n      {\n        \"recordTime\": \"2026-05-13T10:00:00\",\n        \"transcript\": \"…ASR 全文…\"\n      }\n    ]\n  }\n}"},{"language":"bash","snippet":"AGENTID=$(printf '%s' \"$RAW\" | awk -F: '$1==\"agent\" && NF>=2 && length($2)>0 {print $2; exit}')"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: ai-coach-batch-session-summary\ndescription: >-\n  批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、\n  总结、音频总结、拜访记录总结。\n  当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。\n  注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。\ndisable-model-invocation: false\n---\n\n# AI Coach · 批量会话 ASR 洞察报告\n\n## 目标\n\n1. **直接调用宿主「当前会话」查询**（OpenClaw：`session_status`，`sessionKey=\"current\"`），从返回的 `sessionKey` / `agentId` 解析 **agentid**（规则与 [fetch-legionclaw-invite-code](../fetch-legionclaw-invite-code/SKILL.md) 一致）。\n2. 调用录音服务 **`POST /api/recordings/asr-completed`**，以 **`userId` = agentid** 拉取已完成 ASR 的录音列表。\n3. 按 **十维拓客**（或用户自定义维度）统计转写文本，生成与 [`asr_insight_template.html`](asr_insight_template.html) 同结构的 **HTML 洞察报告** 。\n4. 将生成的 HTML **上传文件服务**，向用户返回 **公网可下载链接**（勿暴露 `/tmp/...` 等本地路径）。**优先**按 [openclaw-file-share](../openclaw-file-share/SKILL.md) 完成上传与回复改写；仅当该技能**未加载或不可用**时，改用下文「[交付 HTML 给用户](#交付-html-给用户文件上传)」中的兜底流程。无论哪条路径，**不得**只返回本地路径。\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| 生成 + 录音/拜访 + 报告 | 「生成录音报告」「弄个拜访报告」 |\n| 看看 + 最近 + 录音/拜访/通话 + 情况 | 「看看最近录音情况」「看看拜访怎么样」 |\n| 录音/拜访/通话 + 数据/情况 + 怎么样 | 「录音数据怎么样」「拜访情况如何」 |\n\n### 中置信度触发（必须先确认再执行）\n\n用户消息**仅包含**以下关键词、且**不含高置信度组合词**时，Agent **必须先向用户确认意图**，得到明确肯定后才执行本技能：\n\n| 触发词 | 用户可能说法 | 确认话术 |\n|--------|-------------|---------|\n| 录音 | 「看看录音」「录音怎么样」 | 「您是想对近期录音做批量分析，还是查看某条录音的详情？」 |\n| 拜访 | 「看看拜访情况」「拜访记录」 | 「您是想生成拜访录音的批量分析报告，还是查看某次拜访的详情？」 |\n| 通话 | 「看看通话情况」 | 「您是想分析通话记录的整体情况，还是查看某条通话的详情？」 |\n| 教练 | 「教练数据」「教练报告」 | 「您是想查看 AI 教练的批量录音分析结果，还是其他功能？」 |\n| 最近的录音 | 「最近的录音怎么样」 | 「您是想对近期所有录音做批量分析，还是查看某一条？」 |\n\n**口语化/模糊表达**（也需确认）：\n\n| 用户可能说法 | 确认话术 |\n|-------------|---------|\n| 「帮我弄一下录音」 | 「您是想生成录音分析报告吗？」 |\n| 「看看最近的数据」 | 「您是想分析最近的录音数据吗？」 |\n| 「总结一下」 | 「您是想总结最近的录音/拜访情况吗？」 |\n| 「搞个报告」 | 「您是想生成录音分析报告吗？」 |\n\n**确认流程**：\n\n1. Agent 识别到中置信度触发词\n2. Agent 使用上表中的确认话术（或语义等价的自然表述）向用户提问\n3. 用户明确回复「是批量分析」「做洞察报告」等肯定意图 → 执行本技能\n4. 用户回复「看某一条」「播放」「详情」等 → **不触发**本技能，引导至对应功能\n5. 用户未回复或意图仍模糊 → **不执行**，等待用户进一步说明\n\n### 不触发场景\n\n| 场景 | 用户说法示例 | Agent 处理 |\n|------|-------------|-----------|\n| 查看单条录音详情 | 「播放录音」「下载这条录音」「看看那条录音」 | 不触发，引导至录音详情功能 |\n| 录音设备问题 | 「录音笔怎么用」「设备连接失败」 | 不触发，引导至设备帮助 |\n| 手动上传录音 | 「上传录音文件」 | 不触发，引导至上传功能 |\n| 纯闲聊 | 「今天天气不错」 | 不触发 |\n\n### 语音转文字同音容错（Agent 必做）\n\n用户输入可能来自**语音转文字（ASR）**，存在同音字/近音字错误。Agent 在匹配触发词时**必须做语义容错**，按以下映射表还原用户真实意图：\n\n| 正确关键词 | 常见 ASR 错误（同音/近音） | 容错处理 |\n|-----------|--------------------------|---------|\n| 录音 | 路音、禄音、录映、录应 | 视为「录音」 |\n| 分析 | 分西、份析、粉析、分细 | 视为「分析」 |\n| 报告 | 抱告、暴告、豹告 | 视为「报告」 |\n| 拜访 | 拜访、拜防、拜饭、拜范 | 视为「拜访」 |\n| 总结 | 总接、总节、总洁 | 视为「总结」 |\n| 通话 | 通化、通画、通花 | 视为「通话」 |\n| 记录 | 记路、记绿、计录 | 视为「记录」 |\n| "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn72qbt59dqfz0b09hgncr7vk583g8nz\",\n  \"slug\": \"ai-coach-batch-session-summary\",\n  \"version\": \"1.1.1\",\n  \"publishedAt\": 1783463748918\n}"},{"path":"DIMENSIONS.md","content":"# 十维拓客 · 默认分析维度\n\n用户**未指定** HTML 展示维度时，使用下列 **10 个维度**（顺序固定）。每个维度用「关键词命中」在 ASR 转写文本中统计覆盖率与摘录；命中规则见 [SKILL.md](SKILL.md) 中「维度分析规则」。\n\n| # | 维度名称 | 默认关键词（可扩展） | 典型标签（摘录展示） |\n|---|----------|----------------------|----------------------|\n| 1 | 拓客场景 | 陌拜、上门、网点、电话营销、进社区、路演、扫楼 | 陌拜、网点 |\n| 2 | 触达人群 | 老板、客户、王总、李总、朱总、经理、主任、厂长 | 老板、客户 |\n| 3 | 开口获客话术 | 您好、你好、打扰、请问、方便、拜访 | 您好 |\n| 4 | 客户需求 | 额度、利率、期限、还款、资金、周转、采购 | 额度 |\n| 5 | 客户拒绝原因 | 不需要、考虑一下、没兴趣、太忙、再说、不行 | 不需要 |\n| 6 | 有效意向分类 | 有意向、高意向、再联系、签约、办手续、尽快 | 有意向 |\n| 7 | 产品匹配 | 产品、贷款、信贷、快贷、杭信贷、经营贷 | 产品 |\n| 8 | 成交阻碍痛点 | 材料、抵押、担保、审批、流程、麻烦、慢 | 材料 |\n| 9 | 跟进动作 | 回访、再约、发资料、加微信、明天、下周 | 回访 |\n| 10 | 拓客成效数据 | 放款、到账、批复、审批通过、额度批复 | 放款 |\n\n## 用户选择维度（子集）\n\n用户可**只分析其中若干维**，名称须与上表「维度名称」列**完全一致**（如「客户需求」「跟进动作」）。HTML 中**仅保留**所选维度：统计表、图表、分维度卡片都不再出现未选维度。\n\n示例话术 → 脚本参数：\n\n| 用户说法 | Agent 执行 |\n|----------|------------|\n| 只看客户需求、跟进动作 | `--only 客户需求 --only 跟进动作` |\n| 分析触达人群和开口获客话术 | `--only \"触达人群,开口获客话术\"` |\n\n```bash\npython3 scripts/generate_asr_insight_html.py \\\n  -i /tmp/asr_completed.json \\\n  --only 客户需求 --only 跟进动作 \\\n  -o /tmp/asr_insight.html\n```\n\n页眉标题在非 10 维时为「N维分析 · 录音转写洞察报告」；摘要中说明本次为选定的 N 个维度。\n\n若用户提到的名称不在上表，应先对照本表澄清或给出可选维度列表，**不要**静默忽略。\n\n## 用户自定义维度（全新维度）\n\n若用户给出**不在默认十维内**的维度（名称 ± 关键词），则**完全替换**上表，仍保持与 [asr_insight_template.html](asr_insight_template.html) 相同的页面结构（统计表、图表、分维度卡片），仅维度名称与关键词集合按用户定义。此时用 `--dimensions`，**不要**用 `--only`。\n\n自定义示例（JSON，供脚本 `--dimensions` 使用）：\n\n```json\n[\n  {\"name\": \"竞品提及\", \"keywords\": [\"宁波银行\", \"工行\", \"农行\"]},\n  {\"name\": \"利率对比\", \"keywords\": [\"年化\", \"利率\", \"4.2\", \"4.35\"]}\n]\n```\n\n## 与参考 HTML 的对应关系\n\n参考样例 [`asr_insight_template.html`](asr_insight_template.html) 中：\n\n- 页眉标题：**十维拓客 · 录音转写洞察报告**\n- **各维度统计一览** 表：维度 / 覆盖率 / 命中条数\n- **图表**：录音样本量按日、各维度覆盖率雷达/柱状、Top 维度命中趋势\n- **分维度卡片**：findings、命中录音数、覆盖率、典型摘录（带 tag）、建议\n\n生成报告时样式与区块顺序以该文件为准；数据来自接口 `records` 与上述关键词统计，而非硬编码样例数值。"},{"path":"skill-card.md","content":"## Description:\n\nBatch-analyzes ASR recording transcripts and generates a multidimensional outreach insight report.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[legionspace-hackathon](https://clawhub.ai/user/legionspace-hackathon)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nSales and operations teams use this skill to turn batches of completed ASR recordings into outreach-dimension statistics, charts, excerpts, and a shareable HTML report.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Recording transcripts can contain private or identifying information and may be exposed through shareable report links.\n\nMitigation: Use private or expiring authenticated report delivery and redact identifiers and raw excerpts by default before approval.\n\nRisk: Bundled live-looking test artifacts may disclose transcript content or operational details.\n\nMitigation: Remove live transcript test artifacts from the release package or replace them with minimal synthetic fixtures.\n\nRisk: Custom dimensions and upload destinations can change what content is extracted and where reports are delivered.\n\nMitigation: Validate custom dimension files and approved upload destinations before execution.\n\nRisk: Report rendering depends on external browser scripts.\n\nMitigation: Bundle report scripts locally or pin external script integrity where supported.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/legionspace-hackathon/skills/ai-coach-batch-session-summary)\n- [DIMENSIONS.md](artifact/DIMENSIONS.md)\n- [ASR insight template](artifact/asr_insight_template.html)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, HTML, Shell commands, JSON, Guidance]\n\n**Output Format:** [Markdown response with a shareable HTML report link and optional JSON metadata]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Generates report files only when ASR records are present; may write local temporary files before upload.]\n\n## Skill Version(s):\n\n1.1.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"test-output/asr_completed_live.json","content":"{\"code\":0,\"data\":{\"endTime\":\"2026-05-21T23:59:59\",\"orgId\":null,\"records\":[{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"f3760659-a4dc-400a-80e4-1e3acad041a3\\\",\\\"workflow_run_id\\\":\\\"55b47e58-9809-4166-bb0f-9ca811fc24c0\\\",\\\"data\\\":{\\\"id\\\":\\\"55b47e58-9809-4166-bb0f-9ca811fc24c0\\\",\\\"workflow_id\\\":\\\"8c5178f9-7e16-452d-90e2-ff3073e66aba\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"class_name\\\":\\\"其他类型话题\\\",\\\"summary_result\\\":\\\"### 综合评分\\\\n\\\\n| 维度 | 评分（/10） | 评语 |\\\\n|------|-------------|------|\\\\n| 沟通质量 | 3 | 表达极其简短，缺乏互动和信息传递，仅为一个回应词。 |\\\\n| 目的达成度 | 2 | 目的不明确，可能仅表示确认，但未涉及具体目标或进展。 |\\\\n| 信息价值 | 1 | 几乎没有有价值的信息或新洞察，内容空洞。 |\\\\n| 整体评价 | 2 | 对话极简，未形成有效交流，整体质量差。 |\\\\n\\\\n### 内容摘要\\\\n\\\\n#### 2.1 对话主题\\\\n简短的确认或回应。\\\\n\\\\n#### 2.2 核心要点\\\\n- 话题：基本回应\\\\n- 关键内容：用户表示\\\\\\\"好的\\\\\\\"，可能表示同意或理解。\\\\n- 结论/共识：无具体结论，仅为一个简单回应。\\\\n\\\\n#### 2.3 后续事项\\\\n本次对话暂无明确的后续事项。\\\\n\\\\n### 问题与建议\\\\n\\\\n#### 3.1 值得关注的问题\\\\n- 沟通内容过于简略，可能导致信息缺失或误解（如仅\\\\\\\"好的\\\\\\\"无法传达具体意图）。\\\\n\\\\n#### 3.2 改进建议\\\\n- 建议在后续沟通中明确表达目的和细节，以提升信息完整性和互动效果。\\\"},\\\"error\\\":null,\\\"elapsed_time\\\":73.919999,\\\"total_tokens\\\":3917,\\\"total_steps\\\":4,\\\"created_at\\\":1779172035,\\\"finished_at\\\":1779172109}}\",\"aiSummaryContent\":\"# **[Git版本控制介绍]会议纪要**\\n\\n## **[会议信息]**\\n\\n- **[参与人数]**：约 1人\\n- **[内容类型]**：培训会议\\n\\n## **[会议总结]**\\n\\n本次会议主要介绍了版本控制系统Git的基本概念和工作原理：\\n\\n- 版本控制的历史发展\\n  - 最初采用纯人工方式进行版本控制\\n  - 随着项目规模扩大（成千上万文件、成百上千人协同），人工方式变得极其复杂\\n\\n- Git的诞生\\n  - 为解决版本控制难题而开发\\n  - 目前是世界上使用最广泛的版本控制系统\\n\\n- Git的基本工作原理\\n  - 通过.git子文件夹存储版本控制信息\\n  - 使用commit作为基本控制单元\\n    - 每次commit保存仓库状态的完整快照\\n    - 形成commit历史链路记录所有文件变更\\n\\n## **[待办事项]**\\n\\n暂无明确待办事项\",\"aiSummaryStatus\":2,\"aiSummaryTime\":\"2026-05-19T14:27:21\",\"aiWorkflowId\":\"8deb3686-7f51-41fa-8447-345bd56a29de\",\"asrTaskId\":\"ded9a51c-0067-4d5f-a151-5ffba3f4bb22\",\"asrTaskStatus\":1,\"asrText\":\"我们就可以很容易的从历史文献把它找回来，这个保存了多个历史版本的操作，就是最原始的版本控制，不过这是一种纯人工的方式，想象一下如果一个项目里面有成千上万的文件，又有成百上千的人对这些文件进行协同开发，版本控制会变成一个极其复杂的工作。\\r\\n纯人工的方式肯定为了解决版本控制的难题，Git 诞生了。\\r\\n事实上，Git 是世界上最多人使用的版本控制系统。\\r\\n当一个文件夹被 git 管理起来以后，就变成了一个 git 仓库，被 git 仓库管理的文件夹下面会生成一个点 git 的子文件夹，用来存放 Git 的版本控制信息。\\r\\ngit 使用 commit，也就是提交作为版本控制的基本单元，每完成一次 commit，git 都保存了一个仓库此时状态的快照文件夹里所有文件的状态都被记录了下来。\\r\\n随着 commit 的越来越多，会形成一条 commit 的历史链路\",\"createDate\":\"2026-05-19T14:27:15\",\"deviceId\":null,\"downloadTime\":\"2026-05-19T14:27:15\",\"duration\":58,\"fileAlias\":null,\"fileHash\":null,\"fileName\":\"local-1779172034753.webm\",\"filePath\":\"QmcTF9PFJ4ykACkQWqwm8BesgfEPL78EU7h8CzWYi7cUrS\",\"fileSize\":1584279,\"floatingShow\":0,\"id\":\"2056622694096609281\",\"keys\":null,\"orgId\":null,\"recordingTime\":\"2026-05-19T14:26:15\",\"status\":1,\"updateDate\":\"2026-05-19T14:28:29\",\"userId\":\"b7a19493cabc42e290c3d6c8a6243a7c\"},{\"aiJiaolianResultJson\":\"{\\\"task_id\\\":\\\"521edf92-540f-4537-951c-005502a0ac02\\\",\\\"workflow_run_id\\\":\\\"d4c8988b-95d1-4858-a2c4-9ae2aa20399b\\\",\\\"data\\\":{\\\"id\\\":\\\"d4c8988b-95d1-4858-a2c4-9ae2aa20399b\\\",\\\"workflow_id\\\":\\\"8c5178f9-7e16-452d-90e2-ff3073e66aba\\\",\\\"status\\\":\\\"succeeded\\\",\\\"outputs\\\":{\\\"class_name\\\":\\\"金融相关话题\\\",\\\"summary_result\\\":{\\\"requirement_score\\\":60,\\\"objection_score\\\":60,\\\"compliance_score\\\":75,\\\"speech_score\\\":70,\\\"topic\\\""}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、 总结、音频总结、拜访记录总结。 当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。 注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。 Skill: Ai Coach Batch Session Summary Owner: legionspace-hackathon Summary: 批量分析录音转写，生成多维度拓客分析报告。触发词：录音分析、 总结、音频总结、拜访记录总结。 当用户提到「分析录音」「看看录音数据」「最近的录音」「通话记录」且意图是批量统计/分析时触发。 注意：单独出现「录音」「拜访」时需结合上下文判断，若用户只是查看单条录音详情则不触发本技能。 Tags: latest:1.1.1 Version history: v1.1.1 | 2026-07-07T22:35:48.918Z | user Initial release v1.1.0 | 2026-05-19T09:30:27.712Z | user Add resolve-openclaw-identity.mjs for automatic userId/orgId resolut","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":973,"uniquenessScore":58,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T18:02:21.629Z","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-11T18:02:21.629Z","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-11T20:56:56.469Z","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"}]}}}