{"id":"8a8e19f0-4035-43d0-ba7e-667b612b7fe2","entityType":"agent","slug":"clawhub-yescan-ai-yescan-ocr-universal","name":"夸克扫描王 OCR文字识别 - yescan ocr universal","canonicalUrl":"https://www.xpersona.co/agent/clawhub-yescan-ai-yescan-ocr-universal","canonicalPath":"/agent/clawhub-yescan-ai-yescan-ocr-universal","generatedAt":"2026-10-09T23:43:05.165Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T06:26:46.560Z","emptyReason":null},"description":"由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。 Skill: 夸克扫描王 OCR文字识别 - yescan ocr universal Owner: yescan-ai Summary: 由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。 Tags: latest:1.0.14 Version history: v1.0.14 | 2026-07-09T07:43:16.309Z | user - No code or documentation changes detected in this version. - Functionality, configurati","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 3.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17cpsmkvb7rwpbns3vsexnv0n882f2y:yescan-ocr-universal","sourceUrl":"https://clawhub.ai/yescan-ai/yescan-ocr-universal","homepage":"https://clawhub.ai/yescan-ai/skills/yescan-ocr-universal","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/yescan-ai/yescan-ocr-universal","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/yescan-ai/skills/yescan-ocr-universal","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":72,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:26:46.560Z","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-09T06:26:46.560Z","emptyReason":null},"stars":null,"forks":null,"downloads":3904,"packageName":null,"latestVersion":"1.0.14","tractionLabel":"3.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:26:46.541Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T06:26:46.560Z","lastCrawledAt":"2026-10-09T06:26:46.541Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T06:26:46.541Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.14","createdAt":"2026-07-09T07:43:16.309Z","changelog":"- No code or documentation changes detected in this version. - Functionality, configuration, and usage remain unchanged from the previous release.","fileCount":12,"zipByteSize":19054},{"version":"1.0.12","createdAt":"2026-07-09T07:26:03.346Z","changelog":"- Skill renamed from \"yescan-ocr-universal\" to \"alibaba-quark-ocr\". - skill-card.md file has been removed. - Updated description emphasizing broader scene coverage (OCR: print, handwriting, table, multiple languages, formulas, etc.). - All technical usage and limitations remain unchanged.","fileCount":12,"zipByteSize":19064},{"version":"1.0.9","createdAt":"2026-04-16T12:16:31.743Z","changelog":"- 改进了环境变量配置说明，推荐使用 OpenClaw CLI 方式进行持久配置。 - 简化和优化了主描述文本，使能力覆盖和应用场景表述更清晰。 - 技能执行命令示例从 Python subprocess 方式切换为直接 Bash 命令格式，强化约束仅允许指定结构。 - 增加了禁止自行拼接 --scene 参数的专门提示。 - 移除了 _meta.json 文件。","fileCount":12,"zipByteSize":19099},{"version":"1.0.8","createdAt":"2026-03-26T02:49:37.190Z","changelog":"fix: 使用 subprocess 安全参数传递，避免 shell 注入风险","fileCount":11,"zipByteSize":18615},{"version":"1.0.7","createdAt":"2026-03-26T02:46:33.502Z","changelog":"本地安全检查","fileCount":11,"zipByteSize":18479},{"version":"1.0.6","createdAt":"2026-03-24T07:17:59.877Z","changelog":"- 精简并重写了流程文档，删除全部 references/scenarios 目录及示例意图文件，改用简洁集中意图匹配规则及执行规范。 - 新增 scripts/common 目录及基础模块，优化代码结构与可维护性。 - 明确所有场景和意图的唯一匹配顺序与场景标识，并固定化执行命令格式，严禁自行拼接参数。 - 环境变量与图片输入检查流程更明确，所有异常均有唯一 JSON 响应规范。 - 统一结果直接原样透出，无需自定义包装或美化响应内容。","fileCount":9,"zipByteSize":16873},{"version":"1.0.5","createdAt":"2026-03-19T08:54:52.945Z","changelog":"yescan-ocr-universal 1.0.4 - No file changes detected in this version. - Functionality, documentation, and configuration remain unchanged from the previous version.","fileCount":22,"zipByteSize":55114},{"version":"1.0.4","createdAt":"2026-03-19T08:53:00.138Z","changelog":"yescan-ocr-universal 1.0.4 Changelog - No functional or content changes in this version. - No file changes detected; this is a metadata-only release. - All features and documented behaviors remain unchanged.","fileCount":22,"zipByteSize":55114}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17cpsmkvb7rwpbns3vsexnv0n882f2y:yescan-ocr-universal","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-yescan-ai-yescan-ocr-universal/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/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-09T23:43:05.162Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-yescan-ai-yescan-ocr-universal/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-09T06:26:46.560Z","emptyReason":null},"readme":"Skill: 夸克扫描王 OCR文字识别 - yescan ocr universal\n\nOwner: yescan-ai\n\nSummary: 由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。\n\nTags: latest:1.0.14\n\nVersion history:\n\nv1.0.14 | 2026-07-09T07:43:16.309Z | user\n\n- No code or documentation changes detected in this version.\n- Functionality, configuration, and usage remain unchanged from the previous release.\n\nv1.0.12 | 2026-07-09T07:26:03.346Z | user\n\n- Skill renamed from \"yescan-ocr-universal\" to \"alibaba-quark-ocr\".\n- skill-card.md file has been removed.\n- Updated description emphasizing broader scene coverage (OCR: print, handwriting, table, multiple languages, formulas, etc.).\n- All technical usage and limitations remain unchanged.\n\nv1.0.9 | 2026-04-16T12:16:31.743Z | user\n\n- 改进了环境变量配置说明，推荐使用 OpenClaw CLI 方式进行持久配置。\n- 简化和优化了主描述文本，使能力覆盖和应用场景表述更清晰。\n- 技能执行命令示例从 Python subprocess 方式切换为直接 Bash 命令格式，强化约束仅允许指定结构。\n- 增加了禁止自行拼接 --scene 参数的专门提示。\n- 移除了 _meta.json 文件。\n\nv1.0.8 | 2026-03-26T02:49:37.190Z | user\n\nfix: 使用 subprocess 安全参数传递，避免 shell 注入风险\n\nv1.0.7 | 2026-03-26T02:46:33.502Z | user\n\n本地安全检查\n\nv1.0.6 | 2026-03-24T07:17:59.877Z | user\n\n- 精简并重写了流程文档，删除全部 references/scenarios 目录及示例意图文件，改用简洁集中意图匹配规则及执行规范。\n- 新增 scripts/common 目录及基础模块，优化代码结构与可维护性。\n- 明确所有场景和意图的唯一匹配顺序与场景标识，并固定化执行命令格式，严禁自行拼接参数。\n- 环境变量与图片输入检查流程更明确，所有异常均有唯一 JSON 响应规范。\n- 统一结果直接原样透出，无需自定义包装或美化响应内容。\n\nv1.0.5 | 2026-03-19T08:54:52.945Z | user\n\nyescan-ocr-universal 1.0.4\n\n- No file changes detected in this version.\n- Functionality, documentation, and configuration remain unchanged from the previous version.\n\nv1.0.4 | 2026-03-19T08:53:00.138Z | user\n\nyescan-ocr-universal 1.0.4 Changelog\n\n- No functional or content changes in this version.\n- No file changes detected; this is a metadata-only release.\n- All features and documented behaviors remain unchanged.\n\nv1.0.3 | 2026-03-18T15:44:33.952Z | user\n\nv1.0.3 changelog\n\n- No file changes detected in this release.\n- Documentation, usage instructions, and skill routing logic remain unchanged.\n- Version updated for release consistency; functionality and interface stay the same.\n\nv1.0.2 | 2026-03-18T12:18:26.123Z | user\n\nyescan-ocr-universal 1.0.2 Changelog\n\n- 更新 network 权限，加入 `https://scan-business.quark.cn/vision` 允许域名访问。\n- 放宽 filesystem read 权限，允许读取“任意用户提供的本地文件路径”。\n- 其余配置和调用协议、意图匹配规则等保持不变。\n\nv1.0.1 | 2026-03-18T12:07:40.780Z | user\n\nyescan-ocr-universal 1.0.0\n\n- 增加了重要隐私与数据流向提示，明确图片会发送至第三方服务器（夸克官方）进行 OCR 识别。\n- 在「使用前必读」部分新增了安全与数据可见性说明，提升用户透明度。\n- 其他内容与规范未作变更，功能和路由规则与前一版本保持一致。\n\nv1.0.0 | 2026-03-18T11:07:08.858Z | user\n\n• 支持图片中的文字、表格、手写、证件、发票、票据、公式、营业执照、商品等多类型文字识别。\n\nArchive index:\n\nArchive v1.0.14: 12 files, 19054 bytes\n\nFiles: scripts/common/__init__.py (1402b), scripts/common/constants.py (663b), scripts/common/file_saver.py (9484b), scripts/common/ocr_client.py (7188b), scripts/common/result_handlers.py (2943b), scripts/common/runner.py (3438b), scripts/common/scene_configs.py (3237b), scripts/common/validators.py (1943b), scripts/scan.py (254b), skill-card.md (2282b), SKILL.md (12740b), _meta.json (140b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: alibaba-quark-ocr\ndescription: 由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。\nmetadata: {\"openclaw\":{\"emoji\":\"🔍︎\",\"requires\":{\"bins\":[\"python3\"],\"env\":[\"SCAN_WEBSERVICE_KEY\"]},\"primaryEnv\":\"SCAN_WEBSERVICE_KEY\"},\"homepage\":\"https://scan.quark.cn/business\"}\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 发送至夸克扫描王官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n**推荐方式：CLI 配置（永久生效）**\n\n配置 `SCAN_WEBSERVICE_KEY` 环境变量到 OpenClaw：\n```bash\nopenclaw config set skills.entries.yescan-ocr-universal.env.SCAN_WEBSERVICE_KEY \"your_scan_webservice_key_here\"\n```\n> ⚠️ 配置后需要**重启或开启新会话**才能生效（技能列表在 session 启动时加载）。\n\n**如何获取密钥？夸克扫描王官方入口在此**\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。  \n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n---\n\n# Constraints\n- **单一意图原则：每次请求只执行一个意图类型，命中即执行**\n- **严禁自行构造任何命令参数，严禁伪造、拼接内部配置**\n- **严禁幻觉，禁止伪造请求和响应，不得沿用上一次的场景、参数进行假设**\n- **必须严格按照本指南指定的固定格式执行，不允许自行修改命令**\n\n#  技能执行指南(强制执行)\n\n第一步：**环境变量检查**\n- 若 `SCAN_WEBSERVICE_KEY` 未配置，立即返回：\n```json\n{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}\n```\n\n第二步：**输入处理**\n\n识别用户传入的图片类型，只能是以下三种之一：\n\n- 图片URL: url\n- 本地文件路径: path\n- 图片BASE64: base64\n\n未提供任何有效图片时，直接返回：\n```json\n{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}\n```\n\n第三步：**意图匹配&场景确定**\n- 按照下面列出的意图*从上到下顺序匹配。命中第一个即停止*\n- 命中后，*只确定当前意图对应的scene标识*\n\n第四步：**构建执行命令(固定格式，严禁修改)**：\n\n根据图片类型，严格使用下面对应格式：\n```bash\n# URL类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --url \"${IMAGE_URL}\"\n\n# 本地文件类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --path \"${IMAGE_FILE_PATH}\"\n\n# BASE64类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --base64 \"${IMAGE_BASE64}\"\n```\n- 把`${IMAGE_URL}`/`${IMAGE_FILE_PATH}`/`${IMAGE_BASE64}`替换为真实值\n- 把`${SCENE_VALUE}`替换为当前意图对应的scene值\n- 直接执行命令，不增删任何参数，不修改JSON，不加引号，不换行\n\n第五步：**结果透出**：\n- 执行完成后，*原样返回执行结果*，不修改，不翻译，不美化，不总结\n- 成功 失败均直接透出，不重试\n\n\n## 场景与意图列表(按匹配优先级排序)\n\n1. 手写文档识别\n- 触发意图：当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图。\n- 场景scene标识：handwritten-ocr\n- 参考示例指令：\n  - \"帮我把这张手写笔记转成文字\"\n  - \"识别这张作文图片里的内容\"\n2. 表格识别\n- 触发意图：当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图。\n- 场景scene标识：table-ocr\n- 参考示例指令：\n  - \"提取这张表格里的数据\"\n  - \"把这张报销单的表格转成 Excel 格式\"\n3. 身份证识别\n- 触发意图：当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图。\n- 场景scene标识：idcard-ocr\n- 参考示例指令：\n  - \"帮我读一下这张身份证\"\n  - \"提取身份证上的姓名和号码\"\n4. 社保卡识别\n- 触发意图：当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图。\n- 场景scene标识：social-security-card-ocr\n- 参考示例指令：\n  - \"识别这张社保卡的信息\"\n  - \"提取社保卡上的姓名和社保号\"\n5. 港澳通行证识别\n- 触发意图：当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图。\n- 场景scene标识：travel-permit-ocr\n- 参考示例指令：\n  - \"读一下这张港澳通行证\"\n  - \"提取通行证上的姓名和证件号\"\n6. 学位证识别\n- 触发意图：当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图。\n- 场景scene标识：degree-certificate-ocr\n- 参考示例指令：\n  - \"识别这张学位证的内容\"\n  - \"提取学位证上的学校和专业\"\n7. 增值税发票识别\n- 触发意图：当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图。\n- 场景scene标识：vat-invoice-ocr\n- 参考示例指令：\n  - \"提取这张增值税发票的信息\"\n  - \"识别发票上的金额和开票日期\"\n8. 火车票识别\n- 触发意图：当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图。\n- 场景scene标识：train-ticket-ocr\n- 参考示例指令：\n  - \"读一下这张火车票\"\n  - \"提取火车票的出发站和车次\"\n9. 公式识别\n- 触发意图：当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图。\n- 场景scene标识：formula-ocr\n- 参考示例指令：\n  - \"把这张公式图片转成 LaTeX\"\n  - \"识别这个数学公式的结构\"\n10. 题目识别\n- 触发意图：当用户上传包含习题/考题的图片，需**仅提取题目文本**（不含解答、批注或无关内容），并保留题号、题干结构，用于教育题库构建或题目检索。\n- 场景scene标识：question-ocr\n- 参考示例指令：\n  - \"提取这道题的关键信息\"\n  - \"识别题目中的问题部分\"\n11. 驾驶证识别\n- 触发意图：当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图。\n- 场景scene标识：driver-license-ocr\n- 参考示例指令：\n  - \"读一下这张驾驶证\"\n  - \"提取驾驶证上的姓名和有效期\"\n12. 行驶证识别\n- 触发意图：当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图。\n- 场景scene标识：vehicle-license-ocr\n- 参考示例指令：\n  - \"识别这张行驶证\"\n  - \"提取行驶证上的车牌号和所有人\"\n13. 英文发票识别\n- 触发意图：当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图。\n- 场景scene标识：commercial-invoice-ocr\n- 参考示例指令：\n  - \"提取这张英文发票的信息\"\n  - \"识别发票上的总金额和日期\"\n14. 医疗报告单识别\n- 触发意图：当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图。\n- 场景scene标识：medical-report-ocr\n- 参考示例指令：\n  - \"读一下这张化验单\"\n  - \"提取报告中的异常指标\"\n15. 营业执照识别\n- 触发意图：当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图。\n- 场景scene标识：business-license-ocr\n- 参考示例指令：\n  - \"识别这张营业执照\"\n  - \"提取公司名称和法人代表\"\n16. 商品图片识别\n- 触发意图：当用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类。\n- 场景scene标识：product-image-ocr\n- 参考示例指令：\n  - \"这是什么商品？\"\n  - \"识别这张图片里的产品品牌\"\n17. 通用文字提取（兜底意图）\n- 触发意图：当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时。\n- 场景scene标识：general-ocr\n- 参考示例指令：\n  - \"把这张图转成文字\"\n  - \"提取图中所有文字\"\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **禁止修改固定格式**,只能替换场景标识和图片占位符\n2. **严禁自行构造 --scene 参数值，必须使用本文档指定的场景名**\n3. **图片大小限制：本地文件不超过5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式**\n\n---\n\n## 🔗 相关资源\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `scripts/common/*.py` —  基础类库\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1783582996309\n}\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nProvides OCR for images, screenshots, and scanned documents through Quark Scan King, including printed text, handwriting, tables, formulas, IDs, invoices, tickets, medical reports, business licenses, and other supported document types.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yescan-ai](https://clawhub.ai/user/yescan-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit a single image, local image file, or base64 image to Quark Scan King's OCR service and receive extracted text or structured OCR data for supported document scenes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Submitted images, including sensitive documents, are sent to Quark's remote OCR service using the configured API key.\n\nMitigation: Use only with documents approved for third-party OCR processing, and avoid submitting sensitive images unless that data flow is acceptable.\n\nRisk: Crafted image inputs could be run unsafely as shell commands under the current command template.\n\nMitigation: Invoke Python with a non-shell argument array before routine use, and avoid untrusted image URLs, paths, or base64 strings until the run instructions are changed.\n\nRisk: OCR POST requests allow redirects, which can broaden where submitted content and credentials are sent.\n\nMitigation: Disable or constrain redirects for OCR POST requests before routine use.\n\n## Reference(s):\n\n- [Quark Scan King Business Platform](https://scan.quark.cn/business)\n- [ClawHub Skill Page](https://clawhub.ai/yescan-ai/skills/yescan-ocr-universal)\n\n## Skill Output:\n\n**Output Type(s):** [text, JSON, structured data]\n\n**Output Format:** [JSON OCR response with code, message, and data fields]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires SCAN_WEBSERVICE_KEY and sends submitted image content to Quark's remote OCR service.]\n\n## Skill Version(s):\n\n1.0.14 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.12: 12 files, 19064 bytes\n\nFiles: scripts/common/__init__.py (1402b), scripts/common/constants.py (663b), scripts/common/file_saver.py (9484b), scripts/common/ocr_client.py (7188b), scripts/common/result_handlers.py (2943b), scripts/common/runner.py (3438b), scripts/common/scene_configs.py (3237b), scripts/common/validators.py (1943b), scripts/scan.py (254b), skill-card.md (2434b), SKILL.md (12740b), _meta.json (140b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: alibaba-quark-ocr\ndescription: 由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。\nmetadata: {\"openclaw\":{\"emoji\":\"🔍︎\",\"requires\":{\"bins\":[\"python3\"],\"env\":[\"SCAN_WEBSERVICE_KEY\"]},\"primaryEnv\":\"SCAN_WEBSERVICE_KEY\"},\"homepage\":\"https://scan.quark.cn/business\"}\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 发送至夸克扫描王官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n**推荐方式：CLI 配置（永久生效）**\n\n配置 `SCAN_WEBSERVICE_KEY` 环境变量到 OpenClaw：\n```bash\nopenclaw config set skills.entries.yescan-ocr-universal.env.SCAN_WEBSERVICE_KEY \"your_scan_webservice_key_here\"\n```\n> ⚠️ 配置后需要**重启或开启新会话**才能生效（技能列表在 session 启动时加载）。\n\n**如何获取密钥？夸克扫描王官方入口在此**\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。  \n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n---\n\n# Constraints\n- **单一意图原则：每次请求只执行一个意图类型，命中即执行**\n- **严禁自行构造任何命令参数，严禁伪造、拼接内部配置**\n- **严禁幻觉，禁止伪造请求和响应，不得沿用上一次的场景、参数进行假设**\n- **必须严格按照本指南指定的固定格式执行，不允许自行修改命令**\n\n#  技能执行指南(强制执行)\n\n第一步：**环境变量检查**\n- 若 `SCAN_WEBSERVICE_KEY` 未配置，立即返回：\n```json\n{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}\n```\n\n第二步：**输入处理**\n\n识别用户传入的图片类型，只能是以下三种之一：\n\n- 图片URL: url\n- 本地文件路径: path\n- 图片BASE64: base64\n\n未提供任何有效图片时，直接返回：\n```json\n{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}\n```\n\n第三步：**意图匹配&场景确定**\n- 按照下面列出的意图*从上到下顺序匹配。命中第一个即停止*\n- 命中后，*只确定当前意图对应的scene标识*\n\n第四步：**构建执行命令(固定格式，严禁修改)**：\n\n根据图片类型，严格使用下面对应格式：\n```bash\n# URL类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --url \"${IMAGE_URL}\"\n\n# 本地文件类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --path \"${IMAGE_FILE_PATH}\"\n\n# BASE64类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --base64 \"${IMAGE_BASE64}\"\n```\n- 把`${IMAGE_URL}`/`${IMAGE_FILE_PATH}`/`${IMAGE_BASE64}`替换为真实值\n- 把`${SCENE_VALUE}`替换为当前意图对应的scene值\n- 直接执行命令，不增删任何参数，不修改JSON，不加引号，不换行\n\n第五步：**结果透出**：\n- 执行完成后，*原样返回执行结果*，不修改，不翻译，不美化，不总结\n- 成功 失败均直接透出，不重试\n\n\n## 场景与意图列表(按匹配优先级排序)\n\n1. 手写文档识别\n- 触发意图：当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图。\n- 场景scene标识：handwritten-ocr\n- 参考示例指令：\n  - \"帮我把这张手写笔记转成文字\"\n  - \"识别这张作文图片里的内容\"\n2. 表格识别\n- 触发意图：当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图。\n- 场景scene标识：table-ocr\n- 参考示例指令：\n  - \"提取这张表格里的数据\"\n  - \"把这张报销单的表格转成 Excel 格式\"\n3. 身份证识别\n- 触发意图：当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图。\n- 场景scene标识：idcard-ocr\n- 参考示例指令：\n  - \"帮我读一下这张身份证\"\n  - \"提取身份证上的姓名和号码\"\n4. 社保卡识别\n- 触发意图：当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图。\n- 场景scene标识：social-security-card-ocr\n- 参考示例指令：\n  - \"识别这张社保卡的信息\"\n  - \"提取社保卡上的姓名和社保号\"\n5. 港澳通行证识别\n- 触发意图：当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图。\n- 场景scene标识：travel-permit-ocr\n- 参考示例指令：\n  - \"读一下这张港澳通行证\"\n  - \"提取通行证上的姓名和证件号\"\n6. 学位证识别\n- 触发意图：当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图。\n- 场景scene标识：degree-certificate-ocr\n- 参考示例指令：\n  - \"识别这张学位证的内容\"\n  - \"提取学位证上的学校和专业\"\n7. 增值税发票识别\n- 触发意图：当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图。\n- 场景scene标识：vat-invoice-ocr\n- 参考示例指令：\n  - \"提取这张增值税发票的信息\"\n  - \"识别发票上的金额和开票日期\"\n8. 火车票识别\n- 触发意图：当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图。\n- 场景scene标识：train-ticket-ocr\n- 参考示例指令：\n  - \"读一下这张火车票\"\n  - \"提取火车票的出发站和车次\"\n9. 公式识别\n- 触发意图：当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图。\n- 场景scene标识：formula-ocr\n- 参考示例指令：\n  - \"把这张公式图片转成 LaTeX\"\n  - \"识别这个数学公式的结构\"\n10. 题目识别\n- 触发意图：当用户上传包含习题/考题的图片，需**仅提取题目文本**（不含解答、批注或无关内容），并保留题号、题干结构，用于教育题库构建或题目检索。\n- 场景scene标识：question-ocr\n- 参考示例指令：\n  - \"提取这道题的关键信息\"\n  - \"识别题目中的问题部分\"\n11. 驾驶证识别\n- 触发意图：当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图。\n- 场景scene标识：driver-license-ocr\n- 参考示例指令：\n  - \"读一下这张驾驶证\"\n  - \"提取驾驶证上的姓名和有效期\"\n12. 行驶证识别\n- 触发意图：当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图。\n- 场景scene标识：vehicle-license-ocr\n- 参考示例指令：\n  - \"识别这张行驶证\"\n  - \"提取行驶证上的车牌号和所有人\"\n13. 英文发票识别\n- 触发意图：当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图。\n- 场景scene标识：commercial-invoice-ocr\n- 参考示例指令：\n  - \"提取这张英文发票的信息\"\n  - \"识别发票上的总金额和日期\"\n14. 医疗报告单识别\n- 触发意图：当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图。\n- 场景scene标识：medical-report-ocr\n- 参考示例指令：\n  - \"读一下这张化验单\"\n  - \"提取报告中的异常指标\"\n15. 营业执照识别\n- 触发意图：当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图。\n- 场景scene标识：business-license-ocr\n- 参考示例指令：\n  - \"识别这张营业执照\"\n  - \"提取公司名称和法人代表\"\n16. 商品图片识别\n- 触发意图：当用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类。\n- 场景scene标识：product-image-ocr\n- 参考示例指令：\n  - \"这是什么商品？\"\n  - \"识别这张图片里的产品品牌\"\n17. 通用文字提取（兜底意图）\n- 触发意图：当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时。\n- 场景scene标识：general-ocr\n- 参考示例指令：\n  - \"把这张图转成文字\"\n  - \"提取图中所有文字\"\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **禁止修改固定格式**,只能替换场景标识和图片占位符\n2. **严禁自行构造 --scene 参数值，必须使用本文档指定的场景名**\n3. **图片大小限制：本地文件不超过5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式**\n\n---\n\n## 🔗 相关资源\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `scripts/common/*.py` —  基础类库\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1783581963346\n}\n\nFile v1.0.12:skill-card.md\n\n## Description: <br>\nThis OpenClaw skill uses Quark Scan OCR to extract text and structured fields from user-provided images, including handwriting, tables, identity documents, invoices, formulas, medical reports, business licenses, and product images. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[yescan-ai](https://clawhub.ai/user/yescan-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nOpenClaw users and developers use this skill to route a single image URL, local image, or base64 image to Quark Scan OCR and return extracted text or structured data for supported document scenarios. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: User-provided images, including IDs, invoices, licenses, or medical documents, are sent to Quark's OCR service for processing. <br>\nMitigation: Use the skill only with images approved for external OCR processing and avoid submitting sensitive documents unless that data flow is acceptable. <br>\nRisk: The SCAN_WEBSERVICE_KEY credential is required for OCR requests. <br>\nMitigation: Store the API key in OpenClaw configuration or an equivalent secret store, limit who can access it, and rotate it if exposure is suspected. <br>\nRisk: The artifact includes additional scene and helper code beyond the documented OCR commands. <br>\nMitigation: Use the documented OCR commands and review future releases when the skill scope changes. <br>\n\n\n## Reference(s): <br>\n- [Quark Scan business platform](https://scan.quark.cn/business) <br>\n- [ClawHub skill page](https://clawhub.ai/yescan-ai/skills/yescan-ocr-universal) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, JSON, Shell commands, Configuration] <br>\n**Output Format:** [JSON OCR response with code, message, and data fields; setup guidance may include shell commands.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires Python 3 and SCAN_WEBSERVICE_KEY; accepts exactly one image URL, local image path, or base64 image per run.] <br>\n\n## Skill Version(s): <br>\n1.0.12 (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\nArchive v1.0.9: 12 files, 19099 bytes\n\nFiles: scripts/common/__init__.py (1402b), scripts/common/constants.py (663b), scripts/common/file_saver.py (9484b), scripts/common/ocr_client.py (7188b), scripts/common/result_handlers.py (2943b), scripts/common/runner.py (3438b), scripts/common/scene_configs.py (3237b), scripts/common/validators.py (1943b), scripts/scan.py (254b), skill-card.md (2682b), SKILL.md (12677b), _meta.json (139b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: yescan-ocr-universal\ndescription: 由夸克扫描王提供的专业 OCR 文字识别与处理工具。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。\nmetadata: {\"openclaw\":{\"emoji\":\"🔍︎\",\"requires\":{\"bins\":[\"python3\"],\"env\":[\"SCAN_WEBSERVICE_KEY\"]},\"primaryEnv\":\"SCAN_WEBSERVICE_KEY\"},\"homepage\":\"https://scan.quark.cn/business\"}\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 发送至夸克扫描王官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n**推荐方式：CLI 配置（永久生效）**\n\n配置 `SCAN_WEBSERVICE_KEY` 环境变量到 OpenClaw：\n```bash\nopenclaw config set skills.entries.yescan-ocr-universal.env.SCAN_WEBSERVICE_KEY \"your_scan_webservice_key_here\"\n```\n> ⚠️ 配置后需要**重启或开启新会话**才能生效（技能列表在 session 启动时加载）。\n\n**如何获取密钥？夸克扫描王官方入口在此**\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。  \n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n---\n\n# Constraints\n- **单一意图原则：每次请求只执行一个意图类型，命中即执行**\n- **严禁自行构造任何命令参数，严禁伪造、拼接内部配置**\n- **严禁幻觉，禁止伪造请求和响应，不得沿用上一次的场景、参数进行假设**\n- **必须严格按照本指南指定的固定格式执行，不允许自行修改命令**\n\n#  技能执行指南(强制执行)\n\n第一步：**环境变量检查**\n- 若 `SCAN_WEBSERVICE_KEY` 未配置，立即返回：\n```json\n{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}\n```\n\n第二步：**输入处理**\n\n识别用户传入的图片类型，只能是以下三种之一：\n\n- 图片URL: url\n- 本地文件路径: path\n- 图片BASE64: base64\n\n未提供任何有效图片时，直接返回：\n```json\n{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}\n```\n\n第三步：**意图匹配&场景确定**\n- 按照下面列出的意图*从上到下顺序匹配。命中第一个即停止*\n- 命中后，*只确定当前意图对应的scene标识*\n\n第四步：**构建执行命令(固定格式，严禁修改)**：\n\n根据图片类型，严格使用下面对应格式：\n```bash\n# URL类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --url \"${IMAGE_URL}\"\n\n# 本地文件类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --path \"${IMAGE_FILE_PATH}\"\n\n# BASE64类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --base64 \"${IMAGE_BASE64}\"\n```\n- 把`${IMAGE_URL}`/`${IMAGE_FILE_PATH}`/`${IMAGE_BASE64}`替换为真实值\n- 把`${SCENE_VALUE}`替换为当前意图对应的scene值\n- 直接执行命令，不增删任何参数，不修改JSON，不加引号，不换行\n\n第五步：**结果透出**：\n- 执行完成后，*原样返回执行结果*，不修改，不翻译，不美化，不总结\n- 成功 失败均直接透出，不重试\n\n\n## 场景与意图列表(按匹配优先级排序)\n\n1. 手写文档识别\n- 触发意图：当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图。\n- 场景scene标识：handwritten-ocr\n- 参考示例指令：\n  - \"帮我把这张手写笔记转成文字\"\n  - \"识别这张作文图片里的内容\"\n2. 表格识别\n- 触发意图：当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图。\n- 场景scene标识：table-ocr\n- 参考示例指令：\n  - \"提取这张表格里的数据\"\n  - \"把这张报销单的表格转成 Excel 格式\"\n3. 身份证识别\n- 触发意图：当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图。\n- 场景scene标识：idcard-ocr\n- 参考示例指令：\n  - \"帮我读一下这张身份证\"\n  - \"提取身份证上的姓名和号码\"\n4. 社保卡识别\n- 触发意图：当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图。\n- 场景scene标识：social-security-card-ocr\n- 参考示例指令：\n  - \"识别这张社保卡的信息\"\n  - \"提取社保卡上的姓名和社保号\"\n5. 港澳通行证识别\n- 触发意图：当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图。\n- 场景scene标识：travel-permit-ocr\n- 参考示例指令：\n  - \"读一下这张港澳通行证\"\n  - \"提取通行证上的姓名和证件号\"\n6. 学位证识别\n- 触发意图：当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图。\n- 场景scene标识：degree-certificate-ocr\n- 参考示例指令：\n  - \"识别这张学位证的内容\"\n  - \"提取学位证上的学校和专业\"\n7. 增值税发票识别\n- 触发意图：当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图。\n- 场景scene标识：vat-invoice-ocr\n- 参考示例指令：\n  - \"提取这张增值税发票的信息\"\n  - \"识别发票上的金额和开票日期\"\n8. 火车票识别\n- 触发意图：当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图。\n- 场景scene标识：train-ticket-ocr\n- 参考示例指令：\n  - \"读一下这张火车票\"\n  - \"提取火车票的出发站和车次\"\n9. 公式识别\n- 触发意图：当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图。\n- 场景scene标识：formula-ocr\n- 参考示例指令：\n  - \"把这张公式图片转成 LaTeX\"\n  - \"识别这个数学公式的结构\"\n10. 题目识别\n- 触发意图：当用户上传包含习题/考题的图片，需**仅提取题目文本**（不含解答、批注或无关内容），并保留题号、题干结构，用于教育题库构建或题目检索。\n- 场景scene标识：question-ocr\n- 参考示例指令：\n  - \"提取这道题的关键信息\"\n  - \"识别题目中的问题部分\"\n11. 驾驶证识别\n- 触发意图：当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图。\n- 场景scene标识：driver-license-ocr\n- 参考示例指令：\n  - \"读一下这张驾驶证\"\n  - \"提取驾驶证上的姓名和有效期\"\n12. 行驶证识别\n- 触发意图：当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图。\n- 场景scene标识：vehicle-license-ocr\n- 参考示例指令：\n  - \"识别这张行驶证\"\n  - \"提取行驶证上的车牌号和所有人\"\n13. 英文发票识别\n- 触发意图：当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图。\n- 场景scene标识：commercial-invoice-ocr\n- 参考示例指令：\n  - \"提取这张英文发票的信息\"\n  - \"识别发票上的总金额和日期\"\n14. 医疗报告单识别\n- 触发意图：当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图。\n- 场景scene标识：medical-report-ocr\n- 参考示例指令：\n  - \"读一下这张化验单\"\n  - \"提取报告中的异常指标\"\n15. 营业执照识别\n- 触发意图：当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图。\n- 场景scene标识：business-license-ocr\n- 参考示例指令：\n  - \"识别这张营业执照\"\n  - \"提取公司名称和法人代表\"\n16. 商品图片识别\n- 触发意图：当用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类。\n- 场景scene标识：product-image-ocr\n- 参考示例指令：\n  - \"这是什么商品？\"\n  - \"识别这张图片里的产品品牌\"\n17. 通用文字提取（兜底意图）\n- 触发意图：当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时。\n- 场景scene标识：general-ocr\n- 参考示例指令：\n  - \"把这张图转成文字\"\n  - \"提取图中所有文字\"\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **禁止修改固定格式**,只能替换场景标识和图片占位符\n2. **严禁自行构造 --scene 参数值，必须使用本文档指定的场景名**\n3. **图片大小限制：本地文件不超过5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式**\n\n---\n\n## 🔗 相关资源\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `scripts/common/*.py` —  基础类库\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1776341791743\n}\n\nFile v1.0.9:skill-card.md\n\n## Description: <br>\nThis skill routes a single image URL, local image file, or Base64 image to Quark Scan King's OCR service for text extraction and structured recognition across documents, identity cards, invoices, forms, formulas, medical reports, business licenses, product images, and general images. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[mozhihuidage](https://clawhub.ai/user/mozhihuidage) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill when an agent needs to extract text or structured fields from one static image using Quark Scan King's OCR scenes. It is suited to OCR workflows for handwritten notes, tables, IDs, tickets, invoices, formulas, questions, medical reports, business licenses, product images, and general text. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Submitted images and the API key are sent to Quark's OCR service. <br>\nMitigation: Use the skill only when third-party processing is acceptable, and prefer a dedicated or revocable SCAN_WEBSERVICE_KEY. <br>\nRisk: OCR inputs may contain sensitive identity, medical, financial, or business documents. <br>\nMitigation: Avoid submitting highly sensitive documents unless the user or organization has approved Quark's handling of that data. <br>\nRisk: The skill supports only one static image per invocation and local files are limited to 5 MB. <br>\nMitigation: Pre-process unsupported files by extracting a single image, converting to a supported image type, or compressing/cropping before use. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/mozhihuidage/yescan-ocr-universal) <br>\n- [Publisher profile](https://clawhub.ai/user/mozhihuidage) <br>\n- [Quark Scan King business OCR platform](https://scan.quark.cn/business) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, JSON, Shell commands, Guidance] <br>\n**Output Format:** [JSON responses from the OCR service, with setup and execution guidance in Markdown and bash command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires python3 and SCAN_WEBSERVICE_KEY; each invocation accepts exactly one image input as a URL, local file path, or Base64 string.] <br>\n\n## Skill Version(s): <br>\n1.0.9 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.8: 11 files, 18615 bytes\n\nFiles: _meta.json (139b), scripts/common/__init__.py (1452b), scripts/common/constants.py (663b), scripts/common/file_saver.py (9189b), scripts/common/ocr_client.py (8188b), scripts/common/result_handlers.py (2932b), scripts/common/runner.py (3480b), scripts/common/scene_configs.py (8451b), scripts/common/validators.py (1943b), scripts/scan.py (308b), SKILL.md (12988b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: yescan-ocr-universal\ndescription: 专业的OCR文字识别路由与处理专家。支持OCR 通用文字提取 | OCR 手写文档 | 提取表格内容 | 识别身份证 | 识别社保卡 | 识别港澳通行证 | 识别学位证 | 识别增值税发票 | 识别火车票 | 识别数学公式 | 识别习题题目 | 识别驾驶证 | 识别行驶证 | 识别英文发票 | 识别医疗报告单 | 识别营业执照 | 识别商品图片 | 把这张图转成文字 | 提取图中所有文字 | 读一下这张证件\nmetadata: {\"openclaw\": { \"emoji\": \"🔍︎\",  \"requires\": { \"bins\": [\"python3\"], \"env\":[\"SCAN_WEBSERVICE_KEY\"]},\"primaryEnv\":\"SCAN_WEBSERVICE_KEY\" },\"homepage\":\"https://scan.quark.cn/business\"}\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 发送至夸克官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n**推荐方式：环境变量（免权限、即时生效、webchat 友好）**  \n在终端中运行（本次会话立即可用）：\n```bash\nexport SCAN_WEBSERVICE_KEY=\"your_scan_webservice_key_here\"\n```\n\n**如何获取密钥？官方入口在此**\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。  \n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n---\n\n# Constraints\n- **单一意图原则：每次请求只执行一个意图类型，命中即执行**\n- **严禁自行构造任何命令参数，严禁伪造、拼接内部配置**\n- **严禁幻觉，禁止伪造请求和响应，不得沿用上一次的场景、参数进行假设**\n- **必须严格按照本指南指定的固定格式执行，不允许自行修改命令**\n\n#  技能执行指南(强制执行)\n\n第一步：**环境变量检查**\n- 若 `SCAN_WEBSERVICE_KEY` 未配置，立即返回：\n```json\n{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}\n```\n\n第二步：**输入处理**\n\n识别用户传入的图片类型，只能是以下三种之一：\n\n- 图片URL: url\n- 本地文件路径: path\n- 图片BASE64: base64\n\n未提供任何有效图片时，直接返回：\n```json\n{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}\n```\n\n第三步：**意图匹配&场景确定**\n- 按照下面列出的意图*从上到下顺序匹配。命中第一个即停止*\n- 命中后，*只确定当前意图对应的scene标识*\n\n第四步：**执行 Python 脚本**（安全参数传递）：\n\n使用 `subprocess` 模块执行脚本，**参数以列表形式传递**（避免 shell 注入风险）：\n\n```python\nimport subprocess\n\n# URL 类型\nsubprocess.run([\n    \"python3\", \"scripts/scan.py\",\n    \"--scene\", \"SCENE_VALUE\",\n    \"--url\", \"IMAGE_URL\"\n], capture_output=True, text=True)\n\n# 本地文件类型\nsubprocess.run([\n    \"python3\", \"scripts/scan.py\",\n    \"--scene\", \"SCENE_VALUE\",\n    \"--path\", \"IMAGE_FILE_PATH\"\n], capture_output=True, text=True)\n\n# BASE64 类型\nsubprocess.run([\n    \"python3\", \"scripts/scan.py\",\n    \"--scene\", \"SCENE_VALUE\",\n    \"--base64\", \"IMAGE_BASE64\"\n], capture_output=True, text=True)\n```\n\n**安全说明**：\n- ✅ 参数以列表形式传递，`subprocess` 会自动处理转义\n- ✅ Python 脚本内部使用 `argparse` 验证参数\n- ✅ 文件路径/URL 由脚本内部验证器校验\n- ❌ 不要使用 `shell=True` 或直接拼接 shell 字符串\n\n第五步：**结果透出**：\n- 执行完成后，*原样返回执行结果*，不修改，不翻译，不美化，不总结\n- 成功 失败均直接透出，不重试\n\n\n## 场景与意图列表(按匹配优先级排序)\n\n1. 手写文档识别\n- 触发意图：当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图。\n- 场景scene标识：handwritten-ocr\n- 参考示例指令：\n  - “帮我把这张手写笔记转成文字”\n  - “识别这张作文图片里的内容”\n2. 表格识别\n- 触发意图：当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图。\n- 场景scene标识：table-ocr\n- 参考示例指令：\n  - “提取这张表格里的数据”\n  - “把这张报销单的表格转成 Excel 格式”\n3. 身份证识别\n- 触发意图：当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图。\n- 场景scene标识：idcard-ocr\n- 参考示例指令：\n  - “帮我读一下这张身份证”\n  - “提取身份证上的姓名和号码”\n4. 社保卡识别\n- 触发意图：当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图。\n- 场景scene标识：social-security-card-ocr\n- 参考示例指令：\n  - “识别这张社保卡的信息”\n  - “提取社保卡上的姓名和社保号”\n5. 港澳通行证识别\n- 触发意图：当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图。\n- 场景scene标识：travel-permit-ocr\n- 参考示例指令：\n  - “读一下这张港澳通行证”\n  - “提取通行证上的姓名和证件号”\n6. 学位证识别\n- 触发意图：当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图。\n- 场景scene标识：degree-certificate-ocr\n- 参考示例指令：\n  - “识别这张学位证的内容”\n  - “提取学位证上的学校和专业”\n7. 增值税发票识别\n- 触发意图：当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图。\n- 场景scene标识：vat-invoice-ocr\n- 参考示例指令：\n  - “提取这张增值税发票的信息”\n  - “识别发票上的金额和开票日期”\n8. 火车票识别\n- 触发意图：当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图。\n- 场景scene标识：train-ticket-ocr\n- 参考示例指令：\n  - “读一下这张火车票”\n  - “提取火车票的出发站和车次”\n9. 公式识别\n- 触发意图：当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图。\n- 场景scene标识：formula-ocr\n- 参考示例指令：\n  - “把这张公式图片转成 LaTeX”\n  - “识别这个数学公式的结构”\n10. 题目识别\n- 触发意图：当用户上传包含习题/考题的图片，需**仅提取题目文本**（不含解答、批注或无关内容），并保留题号、题干结构，用于教育题库构建或题目检索。\n- 场景scene标识：question-ocr\n- 参考示例指令：\n  - “提取这道题的关键信息”\n  - “识别题目中的问题部分”\n11. 驾驶证识别\n- 触发意图：当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图。\n- 场景scene标识：driver-license-ocr\n- 参考示例指令：\n  - “读一下这张驾驶证”\n  - “提取驾驶证上的姓名和有效期”\n12. 行驶证识别\n- 触发意图：当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图。\n- 场景scene标识：vehicle-license-ocr\n- 参考示例指令：\n  - “识别这张行驶证”\n  - “提取行驶证上的车牌号和所有人”\n13. 英文发票识别\n- 触发意图：当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图。\n- 场景scene标识：commercial-invoice-ocr\n- 参考示例指令：\n  - “提取这张英文发票的信息”\n  - “识别发票上的总金额和日期”\n14. 医疗报告单识别\n- 触发意图：当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图。\n- 场景scene标识：medical-report-ocr\n- 参考示例指令：\n  - “读一下这张化验单”\n  - “提取报告中的异常指标”\n15. 营业执照识别\n- 触发意图：当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图。\n- 场景scene标识：business-license-ocr\n- 参考示例指令：\n  - “识别这张营业执照”\n  - “提取公司名称和法人代表”\n16. 商品图片识别\n- 触发意图：当用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类。\n- 场景scene标识：product-image-ocr\n- 参考示例指令：\n  - “这是什么商品？”\n  - “识别这张图片里的产品品牌”\n17. 通用文字提取（兜底意图）\n- 触发意图：当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时。\n- 场景scene标识：general-ocr\n- 参考示例指令：\n  - “把这张图转成文字”\n  - “提取图中所有文字”\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **禁止修改固定格式**,只能替换场景标识和图片占位符\n2. **严禁自行构造 input-configs、output-configs 等内部参数**\n3. **图片大小限制：本地文件不超过5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式**\n\n---\n\n## 🔗 相关资源\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `scripts/common/*.py` —  基础类库]()\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1774493377190\n}\n\nArchive v1.0.7: 11 files, 18479 bytes\n\nFiles: _meta.json (139b), scripts/common/__init__.py (1452b), scripts/common/constants.py (663b), scripts/common/file_saver.py (9189b), scripts/common/ocr_client.py (8188b), scripts/common/result_handlers.py (2932b), scripts/common/runner.py (3480b), scripts/common/scene_configs.py (8451b), scripts/common/validators.py (1943b), scripts/scan.py (308b), SKILL.md (12661b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: yescan-ocr-universal\ndescription: 专业的OCR文字识别路由与处理专家。支持OCR 通用文字提取 | OCR 手写文档 | 提取表格内容 | 识别身份证 | 识别社保卡 | 识别港澳通行证 | 识别学位证 | 识别增值税发票 | 识别火车票 | 识别数学公式 | 识别习题题目 | 识别驾驶证 | 识别行驶证 | 识别英文发票 | 识别医疗报告单 | 识别营业执照 | 识别商品图片 | 把这张图转成文字 | 提取图中所有文字 | 读一下这张证件\nmetadata: {\"openclaw\": { \"emoji\": \"🔍︎\",  \"requires\": { \"bins\": [\"python3\"], \"env\":[\"SCAN_WEBSERVICE_KEY\"]},\"primaryEnv\":\"SCAN_WEBSERVICE_KEY\" },\"homepage\":\"https://scan.quark.cn/business\"}\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 发送至夸克官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n**推荐方式：环境变量（免权限、即时生效、webchat 友好）**  \n在终端中运行（本次会话立即可用）：\n```bash\nexport SCAN_WEBSERVICE_KEY=\"your_scan_webservice_key_here\"\n```\n\n**如何获取密钥？官方入口在此**\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。  \n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n---\n\n# Constraints\n- **单一意图原则：每次请求只执行一个意图类型，命中即执行**\n- **严禁自行构造任何命令参数，严禁伪造、拼接内部配置**\n- **严禁幻觉，禁止伪造请求和响应，不得沿用上一次的场景、参数进行假设**\n- **必须严格按照本指南指定的固定格式执行，不允许自行修改命令**\n\n#  技能执行指南(强制执行)\n\n第一步：**环境变量检查**\n- 若 `SCAN_WEBSERVICE_KEY` 未配置，立即返回：\n```json\n{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}\n```\n\n第二步：**输入处理**\n\n识别用户传入的图片类型，只能是以下三种之一：\n\n- 图片URL: url\n- 本地文件路径: path\n- 图片BASE64: base64\n\n未提供任何有效图片时，直接返回：\n```json\n{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}\n```\n\n第三步：**意图匹配&场景确定**\n- 按照下面列出的意图*从上到下顺序匹配。命中第一个即停止*\n- 命中后，*只确定当前意图对应的scene标识*\n\n第四步：**构建执行命令(固定格式，严禁修改)**：\n\n根据图片类型，严格使用下面对应格式：\n```bash\n# URL类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --url \"${IMAGE_URL}\"\n\n# 本地文件类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --path \"${IMAGE_FILE_PATH}\"\n\n# BASE64类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --base64 \"${IMAGE_BASE64}\"\n```\n- 把`${IMAGE_URL}`/`${IMAGE_FILE_PATH}`/`${IMAGE_BASE64}`替换为真实值\n- 把`${SCENE_VALUE}`替换为当前意图对应的scene值\n- 直接执行命令，不增删任何参数，不修改JSON，不加引号，不换行\n\n第五步：**结果透出**：\n- 执行完成后，*原样返回执行结果*，不修改，不翻译，不美化，不总结\n- 成功 失败均直接透出，不重试\n\n\n## 场景与意图列表(按匹配优先级排序)\n\n1. 手写文档识别\n- 触发意图：当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图。\n- 场景scene标识：handwritten-ocr\n- 参考示例指令：\n  - “帮我把这张手写笔记转成文字”\n  - “识别这张作文图片里的内容”\n2. 表格识别\n- 触发意图：当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图。\n- 场景scene标识：table-ocr\n- 参考示例指令：\n  - “提取这张表格里的数据”\n  - “把这张报销单的表格转成 Excel 格式”\n3. 身份证识别\n- 触发意图：当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图。\n- 场景scene标识：idcard-ocr\n- 参考示例指令：\n  - “帮我读一下这张身份证”\n  - “提取身份证上的姓名和号码”\n4. 社保卡识别\n- 触发意图：当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图。\n- 场景scene标识：social-security-card-ocr\n- 参考示例指令：\n  - “识别这张社保卡的信息”\n  - “提取社保卡上的姓名和社保号”\n5. 港澳通行证识别\n- 触发意图：当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图。\n- 场景scene标识：travel-permit-ocr\n- 参考示例指令：\n  - “读一下这张港澳通行证”\n  - “提取通行证上的姓名和证件号”\n6. 学位证识别\n- 触发意图：当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图。\n- 场景scene标识：degree-certificate-ocr\n- 参考示例指令：\n  - “识别这张学位证的内容”\n  - “提取学位证上的学校和专业”\n7. 增值税发票识别\n- 触发意图：当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图。\n- 场景scene标识：vat-invoice-ocr\n- 参考示例指令：\n  - “提取这张增值税发票的信息”\n  - “识别发票上的金额和开票日期”\n8. 火车票识别\n- 触发意图：当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图。\n- 场景scene标识：train-ticket-ocr\n- 参考示例指令：\n  - “读一下这张火车票”\n  - “提取火车票的出发站和车次”\n9. 公式识别\n- 触发意图：当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图。\n- 场景scene标识：formula-ocr\n- 参考示例指令：\n  - “把这张公式图片转成 LaTeX”\n  - “识别这个数学公式的结构”\n10. 题目识别\n- 触发意图：当用户上传包含习题/考题的图片，需**仅提取题目文本**（不含解答、批注或无关内容），并保留题号、题干结构，用于教育题库构建或题目检索。\n- 场景scene标识：question-ocr\n- 参考示例指令：\n  - “提取这道题的关键信息”\n  - “识别题目中的问题部分”\n11. 驾驶证识别\n- 触发意图：当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图。\n- 场景scene标识：driver-license-ocr\n- 参考示例指令：\n  - “读一下这张驾驶证”\n  - “提取驾驶证上的姓名和有效期”\n12. 行驶证识别\n- 触发意图：当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图。\n- 场景scene标识：vehicle-license-ocr\n- 参考示例指令：\n  - “识别这张行驶证”\n  - “提取行驶证上的车牌号和所有人”\n13. 英文发票识别\n- 触发意图：当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图。\n- 场景scene标识：commercial-invoice-ocr\n- 参考示例指令：\n  - “提取这张英文发票的信息”\n  - “识别发票上的总金额和日期”\n14. 医疗报告单识别\n- 触发意图：当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图。\n- 场景scene标识：medical-report-ocr\n- 参考示例指令：\n  - “读一下这张化验单”\n  - “提取报告中的异常指标”\n15. 营业执照识别\n- 触发意图：当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图。\n- 场景scene标识：business-license-ocr\n- 参考示例指令：\n  - “识别这张营业执照”\n  - “提取公司名称和法人代表”\n16. 商品图片识别\n- 触发意图：当用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类。\n- 场景scene标识：product-image-ocr\n- 参考示例指令：\n  - “这是什么商品？”\n  - “识别这张图片里的产品品牌”\n17. 通用文字提取（兜底意图）\n- 触发意图：当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时。\n- 场景scene标识：general-ocr\n- 参考示例指令：\n  - “把这张图转成文字”\n  - “提取图中所有文字”\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **禁止修改固定格式**,只能替换场景标识和图片占位符\n2. **严禁自行构造 input-configs、output-configs 等内部参数**\n3. **图片大小限制：本地文件不超过5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式**\n\n---\n\n## 🔗 相关资源\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `scripts/common/*.py` —  基础类库]()\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1774493193502\n}\n\nArchive v1.0.6: 9 files, 16873 bytes\n\nFiles: scripts/common/__init__.py (1229b), scripts/common/constants.py (663b), scripts/common/file_saver.py (9189b), scripts/common/ocr_client.py (8188b), scripts/common/scene_configs.py (8451b), scripts/common/validators.py (1943b), scripts/scan.py (2783b), SKILL.md (12661b), _meta.json (139b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: yescan-ocr-universal\ndescription: 专业的OCR文字识别路由与处理专家。支持OCR 通用文字提取 | OCR 手写文档 | 提取表格内容 | 识别身份证 | 识别社保卡 | 识别港澳通行证 | 识别学位证 | 识别增值税发票 | 识别火车票 | 识别数学公式 | 识别习题题目 | 识别驾驶证 | 识别行驶证 | 识别英文发票 | 识别医疗报告单 | 识别营业执照 | 识别商品图片 | 把这张图转成文字 | 提取图中所有文字 | 读一下这张证件\nmetadata: {\"openclaw\": { \"emoji\": \"🔍︎\",  \"requires\": { \"bins\": [\"python3\"], \"env\":[\"SCAN_WEBSERVICE_KEY\"]},\"primaryEnv\":\"SCAN_WEBSERVICE_KEY\" },\"homepage\":\"https://scan.quark.cn/business\"}\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 发送至夸克官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n**推荐方式：环境变量（免权限、即时生效、webchat 友好）**  \n在终端中运行（本次会话立即可用）：\n```bash\nexport SCAN_WEBSERVICE_KEY=\"your_scan_webservice_key_here\"\n```\n\n**如何获取密钥？官方入口在此**\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。  \n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n---\n\n# Constraints\n- **单一意图原则：每次请求只执行一个意图类型，命中即执行**\n- **严禁自行构造任何命令参数，严禁伪造、拼接内部配置**\n- **严禁幻觉，禁止伪造请求和响应，不得沿用上一次的场景、参数进行假设**\n- **必须严格按照本指南指定的固定格式执行，不允许自行修改命令**\n\n#  技能执行指南(强制执行)\n\n第一步：**环境变量检查**\n- 若 `SCAN_WEBSERVICE_KEY` 未配置，立即返回：\n```json\n{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}\n```\n\n第二步：**输入处理**\n\n识别用户传入的图片类型，只能是以下三种之一：\n\n- 图片URL: url\n- 本地文件路径: path\n- 图片BASE64: base64\n\n未提供任何有效图片时，直接返回：\n```json\n{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}\n```\n\n第三步：**意图匹配&场景确定**\n- 按照下面列出的意图*从上到下顺序匹配。命中第一个即停止*\n- 命中后，*只确定当前意图对应的scene标识*\n\n第四步：**构建执行命令(固定格式，严禁修改)**：\n\n根据图片类型，严格使用下面对应格式：\n```bash\n# URL类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --url \"${IMAGE_URL}\"\n\n# 本地文件类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --path \"${IMAGE_FILE_PATH}\"\n\n# BASE64类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --base64 \"${IMAGE_BASE64}\"\n```\n- 把`${IMAGE_URL}`/`${IMAGE_FILE_PATH}`/`${IMAGE_BASE64}`替换为真实值\n- 把`${SCENE_VALUE}`替换为当前意图对应的scene值\n- 直接执行命令，不增删任何参数，不修改JSON，不加引号，不换行\n\n第五步：**结果透出**：\n- 执行完成后，*原样返回执行结果*，不修改，不翻译，不美化，不总结\n- 成功 失败均直接透出，不重试\n\n\n## 场景与意图列表(按匹配优先级排序)\n\n1. 手写文档识别\n- 触发意图：当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图。\n- 场景scene标识：handwritten-ocr\n- 参考示例指令：\n  - “帮我把这张手写笔记转成文字”\n  - “识别这张作文图片里的内容”\n2. 表格识别\n- 触发意图：当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图。\n- 场景scene标识：table-ocr\n- 参考示例指令：\n  - “提取这张表格里的数据”\n  - “把这张报销单的表格转成 Excel 格式”\n3. 身份证识别\n- 触发意图：当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图。\n- 场景scene标识：idcard-ocr\n- 参考示例指令：\n  - “帮我读一下这张身份证”\n  - “提取身份证上的姓名和号码”\n4. 社保卡识别\n- 触发意图：当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图。\n- 场景scene标识：social-security-card-ocr\n- 参考示例指令：\n  - “识别这张社保卡的信息”\n  - “提取社保卡上的姓名和社保号”\n5. 港澳通行证识别\n- 触发意图：当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图。\n- 场景scene标识：travel-permit-ocr\n- 参考示例指令：\n  - “读一下这张港澳通行证”\n  - “提取通行证上的姓名和证件号”\n6. 学位证识别\n- 触发意图：当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图。\n- 场景scene标识：degree-certificate-ocr\n- 参考示例指令：\n  - “识别这张学位证的内容”\n  - “提取学位证上的学校和专业”\n7. 增值税发票识别\n- 触发意图：当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图。\n- 场景scene标识：vat-invoice-ocr\n- 参考示例指令：\n  - “提取这张增值税发票的信息”\n  - “识别发票上的金额和开票日期”\n8. 火车票识别\n- 触发意图：当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图。\n- 场景scene标识：train-ticket-ocr\n- 参考示例指令：\n  - “读一下这张火车票”\n  - “提取火车票的出发站和车次”\n9. 公式识别\n- 触发意图：当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图。\n- 场景scene标识：formula-ocr\n- 参考示例指令：\n  - “把这张公式图片转成 LaTeX”\n  - “识别这个数学公式的结构”\n10. 题目识别\n- 触发意图：当用户上传包含习题/考题的图片，需**仅提取题目文本**（不含解答、批注或无关内容），并保留题号、题干结构，用于教育题库构建或题目检索。\n- 场景scene标识：question-ocr\n- 参考示例指令：\n  - “提取这道题的关键信息”\n  - “识别题目中的问题部分”\n11. 驾驶证识别\n- 触发意图：当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图。\n- 场景scene标识：driver-license-ocr\n- 参考示例指令：\n  - “读一下这张驾驶证”\n  - “提取驾驶证上的姓名和有效期”\n12. 行驶证识别\n- 触发意图：当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图。\n- 场景scene标识：vehicle-license-ocr\n- 参考示例指令：\n  - “识别这张行驶证”\n  - “提取行驶证上的车牌号和所有人”\n13. 英文发票识别\n- 触发意图：当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图。\n- 场景scene标识：commercial-invoice-ocr\n- 参考示例指令：\n  - “提取这张英文发票的信息”\n  - “识别发票上的总金额和日期”\n14. 医疗报告单识别\n- 触发意图：当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图。\n- 场景scene标识：medical-report-ocr\n- 参考示例指令：\n  - “读一下这张化验单”\n  - “提取报告中的异常指标”\n15. 营业执照识别\n- 触发意图：当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图。\n- 场景scene标识：business-license-ocr\n- 参考示例指令：\n  - “识别这张营业执照”\n  - “提取公司名称和法人代表”\n16. 商品图片识别\n- 触发意图：当用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类。\n- 场景scene标识：product-image-ocr\n- 参考示例指令：\n  - “这是什么商品？”\n  - “识别这张图片里的产品品牌”\n17. 通用文字提取（兜底意图）\n- 触发意图：当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时。\n- 场景scene标识：general-ocr\n- 参考示例指令：\n  - “把这张图转成文字”\n  - “提取图中所有文字”\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **禁止修改固定格式**,只能替换场景标识和图片占位符\n2. **严禁自行构造 input-configs、output-configs 等内部参数**\n3. **图片大小限制：本地文件不超过5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式**\n\n---\n\n## 🔗 相关资源\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `scripts/common/*.py` —  基础类库]()\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1774336679877\n}\n\nArchive v1.0.5: 22 files, 55114 bytes\n\nFiles: references/API.md (4206b), references/scenarios/00-auth-check.md (2461b), references/scenarios/01-general-ocr.md (4105b), references/scenarios/02-handwritten-ocr.md (6118b), references/scenarios/03-table-ocr.md (6596b), references/scenarios/04-idcard-ocr.md (5631b), references/scenarios/05-social-security-card-ocr.md (5236b), references/scenarios/06-travel-permit-ocr.md (5827b), references/scenarios/07-degree-certificate-ocr.md (5712b), references/scenarios/08-vat-invoice-ocr.md (10692b), references/scenarios/09-train-ticket-ocr.md (5342b), references/scenarios/10-formula-ocr.md (5180b), references/scenarios/11-question-ocr.md (4704b), references/scenarios/12-driver-license-ocr.md (5824b), references/scenarios/13-vehicle-license-ocr.md (8237b), references/scenarios/14-commercial-invoice-ocr.md (6773b), references/scenarios/15-medical-report-ocr.md (6653b), references/scenarios/16-business-license-ocr.md (5086b), references/scenarios/17-product-image-ocr.md (6493b), scripts/scan.py (18920b), SKILL.md (19067b), _meta.json (139b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: yescan-ocr-universal\ndescription: 专业的OCR文字识别路由与处理专家。支持OCR 通用文字提取 | OCR 手写文档 | 提取表格内容 | 识别身份证 | 识别社保卡 | 识别港澳通行证 | 识别学位证 | 识别增值税发票 | 识别火车票 | 识别数学公式 | 识别习题题目 | 识别驾驶证 | 识别行驶证 | 识别英文发票 | 识别医疗报告单 | 识别营业执照 | 识别商品图片 | 把这张图转成文字 | 提取图中所有文字 | 读一下这张证件\nversion: 1.0.0\n\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SCAN_WEBSERVICE_KEY\n    primaryEnv: SCAN_WEBSERVICE_KEY\n    homepage: https://scan.quark.cn/business\n\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 URL 发送至夸克官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n✅ **推荐方式：环境变量（免权限、即时生效、webchat 友好）**\n在终端中运行（本次会话立即可用）：\n```bash\nexport SCAN_WEBSERVICE_KEY=\"your_scan_webservice_key_here\"\n```\n\n```bash\n# 将凭证追加写入到 ~/.openclaw/env 文件\necho 'export SCAN_WEBSERVICE_KEY=\"your_scan_webservice_key_here\"' >> ~/.openclaw/env\n```\n\n> [!TIP] **🔧 如何获取密钥？官方入口在此**\n>\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。\n>\n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n✅ **环境依赖**\n```bash\npip3 install requests\n```\n\n## 强制执行规则\n\n> [!IMPORTANT] **⚠️ 绝对执行原则（强制生效）**\n> - **所有意图的调用命令必须且只能取自其对应 `references/scenarios/XX-xxx.md` 文件中的命令。**\n> - `SKILL.md` 中的意图描述仅为语义说明，不参与参数匹配，不可用于构造调用命令。\n> - **禁止伪造响应**：每个场景文件已添加「执行前必做」警告，不得使用示例 JSON 作为真实响应。\n> - 违反此规则将导致 API 调用失败（如 `A0210` 未开通权限）。\n> - **❗ 每次请求独立识别意图**：必须从用户本次指令中提取关键词进行意图匹配，**禁止惯性沿用上一次的场景**。\n\n>\n> 💡 **Agent 必读**：每个场景文件开头都有「执行前必做」检查清单，执行前请逐项确认。\n\n---\n\n## 🚀 通用调用规范\n\n> 所有场景均遵循以下规范。\n\n### 脚本位置\n\n```\nscripts/scan.py\n```\n\n### 输入方式（三选一）\n\n| 方式 | 参数 | 适用场景 |\n|------|------|---------|\n| URL | `--url \"https://...\"` | 图片已在网上 |\n| 本地文件 | `--path \"/Users/...\"` | 图片在本地（自动转 BASE64） |\n| BASE64 | `--base64 \"...\"` | 图片已在内存/数据库 |\n\n### 通用参数\n\n| 参数 | 必需 | 说明 |\n|------|------|------|\n| `--service-option` | 是 | 服务类型（structure/scan/ocr 等） |\n| `--input-configs` | 是 | JSON 字符串（外层需引号包裹） |\n| `--output-configs` | 是 | JSON 字符串（外层需引号包裹） |\n| `--data-type` | 是 | 数据类型（image/pdf） |\n\n### 返回格式（所有场景统一）\n\n```json\n{\n  \"code\": \"String\",      // 状态码，\"00000\" 表示成功\n  \"message\": \"String\",  // 错误描述或成功提示\n  \"data\": \"Object\"      // API 原始返回数据，结构随场景变化\n}\n```\n\n### 错误码说明\n\n| 错误码 | 说明 | 处理方式 |\n|-------|------|---------|\n| `00000` | 成功 | 解析 `data` 字段 |\n| `A0211` | 配额/余额不足 | **直接输出纯文本**：`请前往 https://scan.quark.cn/business，登录开发者后台，选择需要的套餐进行充值（请注意购买 Skill 专用套餐）` ⚠️ **不要包装成 JSON，不要总结** |\n| `HTTP_ERROR` | HTTP 请求失败 | 检查网络/API 可用性 |\n| `CONFIG_ERROR` | 配置错误（如缺少 API Key） | 检查环境变量 |\n| `TIMEOUT` | 请求超时 | 重试或检查网络 |\n| `NETWORK_ERROR` | 网络错误 | 检查网络连接 |\n| `JSON_PARSE_ERROR` | 响应解析失败 | 联系技术支持 |\n| `URL_VALIDATION_ERROR` | URL 格式验证失败 | 检查 URL 是否正确（需以 http:// 或 https:// 开头） |\n| `BASE64_DECODE_ERROR` | BASE64 解码失败 | 检查 BASE64 字符串是否完整、合法 |\n| `BASE64_FORMAT_ERROR` | BASE64 格式错误 | 检查 Data URL 格式是否正确 |\n| `FILE_ERROR` | 本地文件验证失败 | 检查文件是否存在、格式是否支持、大小是否超限 |\n| `FILE_READ_ERROR` | 文件读取失败 | 检查文件权限或磁盘空间 |\n| `INVALID_INPUT` | 输入参数错误 | 确保只提供了一个输入参数（URL/路径/BASE64 三选一） |\n| `INVALID_JSON` | JSON 配置格式错误 | 检查 `--input-configs` 或 `--output-configs` 是否为合法 JSON 字符串 |\n---\n\n## 🎯 意图路由（when to use）\n\n> [!IMPORTANT] **⚠️ 全局流程控制**\n> - **单一意图原则**：每次请求只执行一个意图类型，命中即执行\n> - **接口返回即结束**：无论接口返回成功还是失败，都直接展示给用户\n> - **不继续判断**：执行完一个意图后，**不再尝试其他意图**，不重试、不切换\n> - **等待新指令**：任务完成后等待用户发起新的请求\n\n> **AGENT 执行流程**：根据用户指令关键词匹配意图类型 → 点击链接获取完整执行策略（调用命令 + 返回结构 + 示例）→ 执行后直接返回结果\n\n---\n\n### 📋 意图类型与 API 场景映射\n\n> 💡 **编号说明**：意图编号 (1-17) 为内部逻辑序号，场景编号 (1-17) 对应夸克 API 场景 ID，保持独立便于未来扩展。\n\n| 意图编号 | 意图类型 | 映射 API 场景 | 场景文件                                                                                  |\n|---------|---------|-------------|---------------------------------------------------------------------------------------|\n| 0 | **环境变量检查** | 场景 0 | [00-auth-check.md](references/scenarios/00-auth-check.md)                             |\n| 1 | **手写文档识别** | 场景 2 | [02-handwritten-ocr.md](references/scenarios/02-handwritten-ocr.md)                   |\n| 2 | **表格识别** | 场景 3 | [03-table-ocr.md](references/scenarios/03-table-ocr.md)                               |\n| 3 | **身份证识别** | 场景 4 | [04-idcard-ocr.md](references/scenarios/04-idcard-ocr.md)                             |\n| 4 | **社保卡识别** | 场景 5 | [05-social-security-card-ocr.md](references/scenarios/05-social-security-card-ocr.md) |\n| 5 | **港澳通行证识别** | 场景 6 | [06-travel-permit-ocr.md](references/scenarios/06-travel-permit-ocr.md)               |\n| 6 | **学位证识别** | 场景 7 | [07-degree-certificate-ocr.md](references/scenarios/07-degree-certificate-ocr.md)     |\n| 7 | **增值税发票识别** | 场景 8 | [08-vat-invoice-ocr.md](references/scenarios/08-vat-invoice-ocr.md)                   |\n| 8 | **火车票识别** | 场景 9 | [09-train-ticket-ocr.md](references/scenarios/09-train-ticket-ocr.md)                 |\n| 9 | **公式识别** | 场景 10 | [10-formula-ocr.md](references/scenarios/10-formula-ocr.md)                           |\n| 10 | **题目识别** | 场景 11 | [11-question-ocr.md](references/scenarios/11-question-ocr.md)                         |\n| 11 | **驾驶证识别** | 场景 12 | [12-driver-license-ocr.md](references/scenarios/12-driver-license-ocr.md)             |\n| 12 | **行驶证识别** | 场景 13 | [13-vehicle-license-ocr.md](references/scenarios/13-vehicle-license-ocr.md)           |\n| 13 | **英文发票识别** | 场景 14 | [14-commercial-invoice-ocr.md](references/scenarios/14-commercial-invoice-ocr.md)     |\n| 14 | **医疗报告单识别** | 场景 15 | [15-medical-report-ocr.md](references/scenarios/15-medical-report-ocr.md)             |\n| 15 | **营业执照识别** | 场景 16 | [16-business-license-ocr.md](references/scenarios/16-business-license-ocr.md)         |\n| 16 | **商品图片识别** | 场景 17 | [17-product-image-ocr.md](references/scenarios/17-product-image-ocr.md)               |\n| 17 | **通用文字提取** | 场景 1 | [01-general-ocr.md](references/scenarios/01-general-ocr.md)                           |\n\n---\n\n### 🔍 意图匹配规则\n\n**⚠️ 前置检查：环境变量**（自动执行，非意图）\n- 在调用任何场景前，**自动检查** `SCAN_WEBSERVICE_KEY` 是否已配置\n- 若未配置，直接提示用户获取密钥，**不执行任何 API 调用**\n- 检查逻辑参考：[00-auth-check.md](references/scenarios/00-auth-check.md)\n\n**意图 1 - 手写文档识别** （API 场景 2）\n- 当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图\n- [⚠️ 获取执行策略](references/scenarios/02-handwritten-ocr.md)\n\n**意图 2 - 表格识别** （API 场景 3）\n- 当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图\n- [⚠️ 获取执行策略](references/scenarios/03-table-ocr.md)\n\n**意图 3 - 身份证识别** （API 场景 4）\n- 当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/04-idcard-ocr.md)\n\n**意图 4 - 社保卡识别**（API 场景 5）\n- 当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/05-social-security-card-ocr.md)\n\n**意图 5 - 港澳通行证识别** （API 场景 6）\n- 当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/06-travel-permit-ocr.md)\n\n**意图 6 - 学位证识别** （API 场景 7）\n- 当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/07-degree-certificate-ocr.md)\n\n**意图 7 - 增值税发票识别** （API 场景 8）\n- 当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/08-vat-invoice-ocr.md)\n\n**意图 8 - 火车票识别** （API 场景 9）\n- 当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图\n- [⚠️ 获取执行策略](references/scenarios/09-train-ticket-ocr.md)\n\n**意图 9 - 公式识别** （API 场景 10）\n- 当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/10-formula-ocr.md)\n\n**意图 10 - 题目识别** （API 场景 11）\n- 当用户存在精准提取题目关键词、利用智能算法锁定内容核心、优化信息检索路径，或应用于自动化内容创作、智能问答系统构建、教育题库索引优化及垂直领域知识图谱搭建等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/11-question-ocr.md)\n\n**意图 11 - 驾驶证识别** （API 场景 12）\n- 当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/12-driver-license-ocr.md)\n\n**意图 12 - 行驶证识别** （API 场景 13）\n- 当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/13-vehicle-license-ocr.md)\n\n**意图 13 - 英文发票识别** （API 场景 14）\n- 当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/14-commercial-invoice-ocr.md)\n\n**意图 14 - 医疗报告单识别**（API 场景 15）\n- 当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/15-medical-report-ocr.md)\n\n**意图 15 - 营业执照识别**（API 场景 16）\n- 当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/16-business-license-ocr.md)\n\n**意图 16 - 商品图片识别**（API 场景 17）\n- 用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类\n- [⚠️ 获取执行策略](references/scenarios/17-product-image-ocr.md)\n\n**意图 17 - 通用文字提取**（兜底意图）（API 场景 1）\n- 当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时\n- [⚠️ 获取执行策略](references/scenarios/01-general-ocr.md)\n\n---\n\n### ⚠️ 匹配顺序说明\n\n1. **前置检查**：调用任何场景前，自动检查 `SCAN_WEBSERVICE_KEY` 环境变量\n2. **顺序匹配**：按逻辑序号升序匹配（1 → 2 → ... → 17），命中即止\n3. **兜底机制**：逻辑序号 17（通用文字提取）为最后兜底，仅当上述具体意图均未命中时使用\n\n---\n\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## 💡 示例参考\n\n> 每个意图场景的完整调用示例已在对应场景文件中提供，请直接查阅：\n> - 各场景调用命令 + 响应结构 + 完整示例：`references/scenarios/XX-xxx.md`\n> - 通用参数规范：见上文「🚀 通用调用规范」章节\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **JSON 格式**: `--input-configs` 和 `--output-configs` 必须是 **JSON 字符串**\n   - ✅ 正确：`--input-configs '{\"function_option\": \"...\"}'`\n   - ❌ 错误：`--input-configs {\"function_option\": \"...\"}`\n\n2. **安全与配额**: 严禁泄露 API Key，注意 `A0211` 配额限制\n\n3. **图片大小**: 本地文件最大 5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式\n\n---\n\n## 🔗 相关资源\n\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n- [API 通用规范](references/API.md)（可选参考）\n- [场景文件目录](references/scenarios/)\n\n---\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `references/scenarios/00-auth-check.md` - 场景零 [环境变量检查]\n- `references/scenarios/01-general-ocr.md` - 场景1 [通用图片 OCR]\n- `references/scenarios/02-handwritten-ocr.md` - 场景2 [手写文档识别]\n- `references/scenarios/03-table-ocr.md` - 场景3 [表格识别]\n- `references/scenarios/04-idcard-ocr.md` - 场景4 [身份证识别]\n- `references/scenarios/05-social-security-card-ocr.md` - 场景5 [社保卡识别]\n- `references/scenarios/06-travel-permit-ocr.md` - 场景6 [港澳通行证识别]\n- `references/scenarios/07-degree-certificate-ocr.md` - 场景7 [学位证识别]\n- `references/scenarios/08-vat-invoice-ocr.md` - 场景8 [增值税发票识别]\n- `references/scenarios/09-train-ticket-ocr.md` - 场景9 [火车票识别]\n- `references/scenarios/10-formula-ocr.md` - 场景10 [公式识别]\n- `references/scenarios/11-question-ocr.md` - 场景11 [题目识别]\n- `references/scenarios/12-driver-license-ocr.md` - 场景12 [驾驶证识别]\n- `references/scenarios/13-vehicle-license-ocr.md` - 场景13 [行驶证识别]\n- `references/scenarios/14-commercial-invoice-ocr.md` - 场景14 [英文发票识别]\n- `references/scenarios/15-medical-report-ocr.md` - 场景15 [医疗报告单识别]\n- `references/scenarios/16-business-license-ocr.md` - 场景16 [营业执照识别]\n- `references/scenarios/17-product-image-ocr.md` - 场景17 [商品图片识别]\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1773910492945\n}\n\nFile v1.0.5:references/API.md\n\n# API 通用规范 - 夸克扫描王综合服务\n\n> 📖 **主文档**: [返回 SKILL.md](../SKILL.md)\n> \n> 📁 **场景详情**: 每个场景的完整调用命令、返回结构、示例请查看 [scenarios/](scenarios/) 目录中的独立文件。\n\n---\n\n## 📋 调用规范\n\n### 前置条件\n\n```bash\n# 1. 设置环境变量\nexport SCAN_WEBSERVICE_KEY=\"your_api_key_here\"\n\n# 2. 安装依赖\npip3 install requests\n```\n\n### 脚本位置\n\n```\nscripts/scan.py\n```\n\n### 通用参数\n\n| 参数 | 必需 | 说明 |\n|------|------|------|\n| `--url` | 三选一 | 图片 URL（http/https） |\n| `--path` | 三选一 | 本地文件路径（自动转 BASE64） |\n| `--base64` | 三选一 | BASE64 字符串（支持 Data URL 格式） |\n| `--service-option` | 必需 | 服务类型（structure/scan/ocr 等） |\n| `--input-configs` | 必需 | JSON 字符串（外层需引号包裹） |\n| `--output-configs` | 必需 | JSON 字符串（外层需引号包裹） |\n| `--data-type` | 必需 | 数据类型（image/pdf） |\n\n### 返回格式（所有场景统一）\n\n```json\n{\n  \"code\": \"String\",      // 状态码，\"00000\" 表示成功\n  \"message\": \"String\",  // 错误描述或成功提示（可能为 null）\n  \"data\": \"Object\"      // API 原始返回数据，结构随场景变化\n}\n```\n\n### 错误码说明\n\n| 错误码 | 说明 | 处理方式 |\n|-------|------|---------|\n| `00000` | 成功 | 解析 `data` 字段 |\n| `A0210` | 未开通此 API 权限 | 登录夸克控制台 → 进入应用 → 开通对应场景的 API 服务 |\n| `A0211` | 配额/余额不足 | 请前往 [夸克扫描王开放平台](https://scan-business.quark.cn) 充值或升级套餐 |\n| `A0300` | QPS 超限（请求过于频繁） | 等待 2-3 秒后重试，如频繁出现请升级套餐提升 QPS 限额 |\n| `HTTP_ERROR` | HTTP 请求失败 | 检查网络/API 可用性 |\n| `CONFIG_ERROR` | 配置错误（如缺少 API Key） | 检查环境变量 |\n| `TIMEOUT` | 请求超时 | 重试或检查网络 |\n| `NETWORK_ERROR` | 网络错误 | 检查网络连接 |\n| `JSON_PARSE_ERROR` | 响应解析失败 | 联系技术支持 |\n\n---\n\n## 🎯 场景索引\n\n| 编号 | 场景名称 | 适用场景 | 详情 |\n|------|---------|---------|------|\n| 01 | 通用图片 OCR | 文档、书籍、笔记、截图等通用文本提取 | [查看详情](scenarios/01-general-ocr.md) |\n| 02 | 手写文档识别 | 学生作答、作文、会议记录、手写账单等中英文手写内容 | [查看详情](scenarios/02-handwritten-ocr.md) |\n| 03 | 表格识别 | Excel/Word 表格、票据单据、手写表格、检查报告单 | [查看详情](scenarios/03-table-ocr.md) |\n| 04 | 身份证识别 | 中华人民共和国居民身份证正反面 | [查看详情](scenarios/04-idcard-ocr.md) |\n| 05 | 社保卡识别 | 中华人民共和国社保卡 | [查看详情](scenarios/05-social-security-card-ocr.md) |\n| 06 | 港澳通行证识别 | 港澳通行证/港澳台通行证 | [查看详情](scenarios/06-travel-permit-ocr.md) |\n| 07 | 学位证识别 | 学位证书（12 个字段提取） | [查看详情](scenarios/07-degree-certificate-ocr.md) |\n| 08 | 增值税发票识别 | 增值税发票（30+ 字段提取） | [查看详情](scenarios/08-vat-invoice-ocr.md) |\n| 09 | 火车票识别 | 火车票（10 个关键字段） | [查看详情](scenarios/09-train-ticket-ocr.md) |\n| 10 | 公式识别 | 数学/化学公式转 LaTeX | [查看详情](scenarios/10-formula-ocr.md) |\n| 11 | 题目识别 | 题目关键词提取 | [查看详情](scenarios/11-question-ocr.md) |\n| 12 | 驾驶证识别 | 中华人民共和国驾驶证 | [查看详情](scenarios/12-driver-license-ocr.md) |\n| 13 | 行驶证识别 | 中华人民共和国行驶证 | [查看详情](scenarios/13-vehicle-license-ocr.md) |\n| 14 | 英文发票识别 | 英文商业发票 | [查看详情](scenarios/14-commercial-invoice-ocr.md) |\n| 15 | 医疗报告单识别 | 医疗检验报告单 | [查看详情](scenarios/15-medical-report-ocr.md) |\n| 16 | 营业执照识别 | 企业营业执照 | [查看详情](scenarios/16-business-license-ocr.md) |\n| 17 | 商品图片识别 | 商品包装图片（支持条码提取） | [查看详情](scenarios/17-product-image-ocr.md) |\n---\n\nFile v1.0.5:references/scenarios/00-auth-check.md\n\n# 场景零 [环境变量检查]\n\n**适用场景**: 使用任何夸克扫描王 OCR 功能前的前置检查\n\n---\n\n## 🔍 检查步骤\n\n### 1. 检查环境变量是否已设置\n\n```bash\necho $SCAN_WEBSERVICE_KEY\n```\n\n### 2. 判断结果\n\n| 结果 | 处理方式 |\n|------|---------|\n| 输出非空字符串 | ✅ 已配置，继续执行 任务 |\n| 输出为空 | ❌ 未配置，提示用户获取密钥 |\n\n---\n\n## ❌ 未配置时的提示模板\n\n当 `SCAN_WEBSERVICE_KEY` 未设置时，**不要执行任何 OCR 调用**，直接返回以下提示：\n\n```markdown\n⚠️ **环境变量 `SCAN_WEBSERVICE_KEY` 未配置**\n\n夸克扫描王 OCR 服务需要 API Key 才能使用。\n\n> [!TIP] **🔧 如何获取密钥？官方入口在此**\n> 请访问 **[夸克扫描王开放平台](https://scan-business.quark.cn)** → 登录/注册账号 → 进入「控制台」→ 「创建新应用」→ 填写基本信息（应用名称建议填 `openclaw-ocr`）→ 提交后即可看到 `SCAN_WEBSERVICE_KEY`。\n> \n> ⚠️ **注意**：若你点击链接后跳转到其他域名（如 `quark.feishu.cn` 或 `open.quark.com`），说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan-business.quark.cn`（这是当前唯一有效的官方入口）。\n\n获取密钥后，在终端执行：\n```bash\nexport SCAN_WEBSERVICE_KEY=\"your_key_here\"\n```\n\n然后重新运行 OCR 命令即可。\n```\n\n---\n\n## ✅ 配置成功后的处理\n\n环境变量已设置时，直接继续执行对应的 OCR 场景：\n\n- 通用 OCR → [01-general-ocr.md](01-general-ocr.md)\n- 身份证识别 → [02-idcard-ocr.md](02-idcard-ocr.md)\n- 合同扫描 → [03-contract-scan.md](03-contract-scan.md)\n...\n---\n\n## 💡 示例流程\n\n### 用户请求\n> 帮我提取这张图片的文字：https://example.com/doc.jpg\n\n### Agent 执行流程\n\n1. **先检查环境变量**\n   ```bash\n   echo $SCAN_WEBSERVICE_KEY\n   ```\n\n2. **如果为空** → 返回上述提示模板，**不执行后续步骤**\n\n3. **如果已设置** → 继续调用通用 OCR：\n   ```bash\n   python3 scripts/scan.py \\\n     --url \"https://example.com/doc.jpg\" \\\n     --service-option \"structure\" \\\n     --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n     --output-configs '{\"need_return_image\": \"False\"}' \\\n     --data-type \"image\"\n   ```\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [夸克扫描王开放平台](https://scan-business.quark.cn)\n\nFile v1.0.5:references/scenarios/01-general-ocr.md\n\n# 场景1 [通用图片 OCR]\n\n**适用场景**: 文档、书籍、笔记、截图等通用图片的文本提取\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"识别的完整文本\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"段落 1 文本\",\n            \"Confidence\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"段落 2 文本\",\n            \"Confidence\": 0.98\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `data.OcrInfo` | Array | OCR 识别结果数组 |\n| `data.OcrInfo[].Text` | String | 完整识别文本（所有段落合并） |\n| `data.OcrInfo[].Detail` | Array | 详细识别结果（按段落/类型分组） |\n| `data.OcrInfo[].Detail[].Type` | String | 文本类型：`PrintedText`（印刷体）/`WrittenText`（手写体） |\n| `data.OcrInfo[].Detail[].Value` | String | 该段落的识别文本 |\n| `data.OcrInfo[].Detail[].Confidence` | Number | 置信度（0-1） |\n\n---\n\n## 📝 输出逻辑\n\n调用方解析 `data.OcrInfo[].Text`，纯文本换行展示。\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/text.jpg\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1\n          },\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n```\n青玉案元夕一辛弃疾\n东风夜放花千树，更吹落星如雨。宝马雕车香满路，\n凤箫声动，玉壶光转，一夜鱼龙舞。\n```\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.5:references/scenarios/02-handwritten-ocr.md\n\n# 场景2 [手写文档识别]\n**适用场景**: 手写文档识别使用最新的AI技术，突破传统OCR能力，以极高的准确率识别各种类型中、英文手写文字，在中文手写识别场景，具有更高的识别准确率。适用于教育场景的学生作答识别、作文识别，办公场景的手写会议记录识别、手写文章识别，生活场景的各种手写账单识别。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `OcrInfo` | List[Dict] | 图片中的内容 |\n| `OcrInfo/Text` | string | 图片中的全部文字 |\n| `OcrInfo/Detail` | dict | 图片中的内容详情 |\n| `OcrInfo/Type` | string | 内容类型，PrintedText｜WrittenText｜PrintedFormula ｜ WrittenFormula ｜Illustration | Stramp 等分别表示印刷文字｜手写文字｜印刷公式 ｜手写公式｜插图｜印章等 |\n| `Detail/Value` | string | 内容值 |\n| `Detail/Confidence` | string | 内容置信度 |\n| `Detail/Position` | list[list[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `Detail/InGraph` | bool | 当图片内容为文本时，文本是否在图片中的插图、印章、流程图等其中 |\n| `Detail/ColumnIndex` | int | 当内容在表格中时，所在表格单元格的列索引 |\n| `Detail/RowIndex` | int | 当内容在表格中时，所在表格单元格的行索引 |\n| `Detail/ColumnSpan` | int | 当内容在表格中时，所在表格单元格的列合并信息 |\n| `Detail/RowSpan` | int | 当内容在表格中时，所在表格单元格的行合并信息 |\n| `Detail/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.OcrInfo`，提取文字识别结果展示给用户\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 识别文本 | 青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。 |\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.5:references/scenarios/03-table-ocr.md\n\n# 场景3 [表格识别]\n**适用场景**: 表格识别服务支持各种类型在OCR能力的基础上，借助最新的AI技术，支持众多类型表格格式识别，包括excel表格、word表格、票据、单据、手写表格、检查报告单等类型，文字识别准确率高，格式还原精准。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 1,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 2,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 2\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `OcrInfo` | List[Dict] | 图片中的内容 |\n| `OcrInfo/Text` | string | 图片中的全部文字 |\n| `OcrInfo/Detail` | List[Dict] | 图片中的内容详情 |\n| `Detail/Type` | string | 内容类型，EmptyType｜PrintedText｜WrittenText｜PrintedFormula ｜ WrittenFormula ｜Illustration | Stramp 等分别表示空类型（空白区域）｜印刷文字｜手写文字｜印刷公式 ｜手写公式｜插图｜印章等 |\n| `Detail/Value` | string | 内容值，当值为None时表示对应单元格无任何内容 |\n| `Detail/Confidence` | float | 内容置信度 |\n| `Detail/Position` | list[list[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `Detail/InGraph` | bool | 当图片内容为文本时，文本是否在图片中的插图、印章、流程图等其中 |\n| `Detail/ColumnIndex` | int | 当内容在表格中时，所在表格单元格的列索引 |\n| `Detail/RowIndex` | int | 当内容在表格中时，所在表格单元格的行索引 |\n| `TextDetail/ColumnSpan` | int | 当内容在表格中时，所在表格单元格的列合并信息 |\n| `TextDetail/RowSpan` | int | 当内容在表格中时，所在表格单元格的行合并信息 |\n| `TextDetail/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.OcrInfo`，提取文字识别结果展示给用户\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 1,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 2,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 2\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 识别文本 | 青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。 |\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.5:references/scenarios/04-idcard-ocr.md\n\n# 场景4 [身份证识别 OCR]\n\n**适用场景**: 中华人民共和国居民身份证正反面识别\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n> [!NOTE] **📸 拍摄建议**\n> - 确保身份证四角完整、无反光、无遮挡\n> - 背景建议为纯色（白色/黑色最佳）\n> - 支持身份证正面（人像面）和反面（国徽面）同时识别\n> - 图片分辨率建议 640x480 以上\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"StructureInfo\": [\n      {\n        \"姓名\": {\"Value\": \"李明\"},\n        \"性别\": {\"Value\": \"男\"},\n        \"民族\": {\"Value\": \"汉\"},\n        \"出生\": {\"Value\": \"1997 年 9 月 10 日\"},\n        \"住址\": {\"Value\": \"北京西城区天赋小区 1 号 301\"},\n        \"公民身份号码\": {\"Value\": \"110102199709100123\"}\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `data.StructureInfo` | Array | 结构化识别结果数组 |\n| `data.StructureInfo[].姓名` | Object | 姓名信息 |\n| `data.StructureInfo[].性别` | Object | 性别信息 |\n| `data.StructureInfo[].民族` | Object | 民族信息 |\n| `data.StructureInfo[].出生` | Object | 出生日期（格式：YYYY 年 M 月 D 日） |\n| `data.StructureInfo[].住址` | Object | 详细住址 |\n| `data.StructureInfo[].公民身份号码` | Object | 18 位身份证号码 |\n| `[].Value` | String | 字段的具体值 |\n\n### 字段详情\n\n| 字段名 | 必填 | 示例值 | 说明 |\n|--------|------|--------|------|\n| 姓名 | 是 | 李明 | 居民身份证持有人姓名 |\n| 性别 | 是 | 男 | 性别：男/女 |\n| 民族 | 是 | 汉 | 民族信息，如：汉、回、维吾尔等 |\n| 出生 | 是 | 1997 年 9 月 10 日 | 出生日期，格式固定为\"YYYY 年 M 月 D 日\" |\n| 住址 | 是 | 北京西城区天赋小区 1 号 301 | 户籍所在地详细地址 |\n| 公民身份号码 | 是 | 110102199709100123 | 18 位居民身份证号码 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.StructureInfo`，按 Markdown 表格格式展示\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n### 常见错误场景\n\n| 场景 | 表现 | 处理建议 |\n|------|------|---------|\n| 图片模糊 | 部分字段识别为空或错误 | 建议重新拍摄清晰图片 |\n| 反光遮挡 | 关键字段（如身份证号）识别失败 | 调整光线角度后重拍 |\n| 非身份证图片 | 返回空结果或错误码 | 确认图片为居民身份证 |\n| 图片不完整 | 缺角、裁剪导致信息缺失 | 确保身份证四角完整 |\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/idcard.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"StructureInfo\": [{\n      \"姓名\": {\"Value\": \"李明\"},\n      \"性别\": {\"Value\": \"男\"},\n      \"民族\": {\"Value\": \"汉\"},\n      \"出生\": {\"Value\": \"1997 年 9 月 10 日\"},\n      \"住址\": {\"Value\": \"北京西城区天赋小区 1 号 301\"},\n      \"公民身份号码\": {\"Value\": \"110102199709100123\"}\n    }]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 姓名 | 李明 |\n| 性别 | 男 |\n| 民族 | 汉 |\n| 出生 | 1997 年 9 月 10 日 |\n| 住址 | 北京西城区天赋小区 1 号 301 |\n| 公民身份号码 | 110102199709100123 |\n\n---\n\n## 🔒 隐私与安全提示\n\n> [!WARNING] **⚠️ 敏感信息处理**\n> - 身份证信息属于**个人敏感信息**，请妥善保管识别结果\n> - 识别完成后建议及时删除临时图片文件\n> - 不要在公开场合展示完整的身份证号码\n> - 本服务通过夸克官方 API 处理，不会永久保存图片数据\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n- [夸克扫描王开放平台](https://scan-business.quark.cn)\n\nFile v1.0.5:references/scenarios/05-social-security-card-ocr.md\n\n# 场景5 [社保卡识别]\n**适用场景**: 社保卡识别接口利用夸克高精度的基础OCR识别能力，结合夸克自研的文档大模型基础，实现对社保卡识别内容信息的提取，支持\"姓名\",\"社会保障号码\",\"卡号\",\"银联号码\",\"性别\",\"民族\",\"发卡日期\",\"有效期限\"等8个社保卡字段信息的提取。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"社会保障号码\": {\n          \"Value\": \"************\"\n        },\n        \"卡号\": {\n          \"Value\": \"************\"\n        },\n        \"银联号码\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"民族\": {\n          \"Value\": \"************\"\n        },\n        \"发卡日期\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `姓名` | Dict | 姓名 |\n| `社会保障号码` | Dict | 社会保障号码 |\n| `卡号` | Dict | 卡号 |\n| `银联号码` | Dict | 银联号码 |\n| `性别` | Dict | 性别 |\n| `民族` | Dict | 民族 |\n| `发卡日期` | Dict | 发卡日期 |\n| `有效期限` | Dict | 有效期限 |\n| `XXX/Value` | string | 内容值 |\n| `XXX/Position` | List[List[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `XXX/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.Result`，按 Markdown 表格格式展示各字段\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"社会保障号码\": {\n          \"Value\": \"************\"\n        },\n        \"卡号\": {\n          \"Value\": \"************\"\n        },\n        \"银联号码\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"民族\": {\n          \"Value\": \"************\"\n        },\n        \"发卡日期\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 姓名 | ************ |\n| 社会保障号码 | ************ |\n| 卡号 | ************ |\n| 银联号码 | ************ |\n| 性别 | ************ |\n| 民族 | ************ |\n| 发卡日期 | ************ |\n| 有效期限 | ************ |\n\n---\n\n## 🔒 隐私与安全提示\n\n> [!WARNING] **⚠️ 敏感信息处理**\n> - 社保卡信息属于**个人敏感信息**，请妥善保管识别结果\n> - 识别完成后建议及时删除临时图片文件\n> - 不要在公开场合展示完整的社会保障号码\n> - 本服务通过夸克官方 API 处理，不会永久保存图片数据\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.5:references/scenarios/06-travel-permit-ocr.md\n\n# 场景 6 [港澳通行证识别]\n**适用场景**: 港澳通行证识别接口利用夸克高精度的基础OCR识别能力，结合夸克自研的文档大模型基础，实现对港澳台通行证识别内容信息的提取，支持11个港澳通行证字段信息的提取。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证件类型\": {\n          \"Value\": \"************\"\n        },\n        \"中文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"英文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        },\n        \"签发机关\": {\n          \"Value\": \"************\"\n        },\n        \"签发地点\": {\n          \"Value\": \"************\"\n        },\n        \"机读码\": {\n          \"Value\": \"************\"\n        },\n        \"证件号码\": {\n          \"Value\": \"************\"\n        },\n        \"签发次数\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `证件类型` | Dict | 证件类型 |\n| `中文姓名` | Dict | 中文姓名 |\n| `英文姓名` | Dict | 英文姓名 |\n| `出生日期` | Dict | 出生日期 |\n| `性别` | Dict | 性别 |\n| `有效期限` | Dict | 有效期限 |\n| `签发机关` | Dict | 签发机关 |\n| `签发地点` | Dict | 签发地点 |\n| `机读码` | Dict | 机读码 |\n| `证件号码` | Dict | 证件号码 |\n| `签发次数` | Dict | 签发次数 |\n| `XXX/Value` | string | 内容值 |\n| `XXX/Position` | List[List[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `XXX/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.Result`，按 Markdown 表格格式展示各字段\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证件类型\": {\n          \"Value\": \"************\"\n        },\n        \"中文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"英文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        },\n        \"签发机关\": {\n          \"Value\": \"************\"\n        },\n        \"签发地点\": {\n          \"Value\": \"************\"\n        },\n        \"机读码\": {\n          \"Value\": \"************\"\n        },\n        \"证件号码\": {\n          \"Value\": \"************\"\n        },\n        \"签发次数\": {\n          \"Value\": \"************\"\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> [!WARNING] **⚠️ 敏感信息处理**\n> - 港澳通行证信息属于**个人敏感信息**，请妥善保管识别结果\n> - 识别完成后建议及时删除临时图片文件\n> - 不要在公开场合展示完整的证件号码\n> - 本服务通过夸克官方 API 处理，不会永久保存图片数据\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.5:references/scenarios/07-degree-certificate-ocr.md\n\n# 场景 7 [学位证识别]\n**适用场景**: 学位证书识别接口利用夸克高精度的基础OCR识别能力，结合夸克自研的文档大模型基础，实现对学位证书内容信息的提取，支持\"证书名称\",\"学校\",\"姓名\",\"性别\",\"出生日期\",\"学习日期\",\"学制\",\"学历\",\"学位\",\"专业\",\"证书编号\",\"发证日期\"等12个字段信息的提取，适用于企业人才信息录入和学历核验等场景。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证书名称\": {\n          \"Value\": \"************\"\n        },\n        \"学校\": {\n          \"Value\": \"************\"\n        },\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"学习日期\": {\n          \"Value\": \"************\"\n        },\n        \"学制\": {\n          \"Value\": \"************\"\n        },\n        \"学历\": {\n          \"Value\": \"************\"\n        },\n        \"学位\": {\n          \"Value\": \"************\"\n        },\n        \"专业\": {\n          \"Value\": \"************\"\n        },\n        \"证书编号\": {\n          \"Value\": \"************\"\n        },\n        \"发证日期\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `证书名称` | Dict | 证书名称 |\n| `学校` | Dict | 学校 |\n| `姓名` | Dict | 姓名 |\n| `性别` | Dict | 性别 |\n| `出生日期` | Dict | 出生日期 |\n| `学习日期` | Dict | 学习日期 |\n| `学制` | Dict | 学制 |\n| `学历` | Dict | 学历 |\n| `学位` | Dict | 学位 |\n| `专业` | Dict | 专业 |\n| `证书编号` | Dict | 证书编号 |\n| `发证日期` | Dict | 发证日期 |\n| `XXX/Value` | string | 内容值 |\n| `XXX/Position` | List[List[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `XXX/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.Result`，按 Markdown 表格格式展示各字段\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证书名称\": {\n          \"Value\": \"************\"\n        },\n        \"学校\": {\n          \"Value\": \"************\"\n        },\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"学习日期\": {\n          \"Value\": \"************\"\n        },\n        \"学制\": {\n          \"Value\": \"************\"\n        },\n        \"学历\": {\n          \"Value\": \"************\"\n        },\n        \"学位\": {\n          \"Value\": \"************\"\n        },\n        \"专业\": {\n          \"Value\": \"************\"\n        },\n        \"证书编号\": {\n          \"Value\": \"************\"\n        },\n        \"发证日期\": {\n          \"Value\": \"************\"\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- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.5:references/scenarios/08-vat-invoice-ocr.md\n\n# 场景 8 [增值税发票识别]\n**适用场景**: 增值税发票识别使用最新的AI技术，突破传统OCR能力，以极高的准确率识别发票中的文字，结合内容结构化算法能力，输出包含销售方、购买方、货物详情、金额等在内的30多个发票字段信息。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTaxInvoice\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTaxInvoice\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTaxInvoice\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"header\": {\n          \"Value\": \"云南增值税专用发票\"\n        },\n        \"机器编号\": {\n          \"Value\": \"234124123\"\n        },\n        \"校验码\": {\n          \"Value\": \"12312 34534 12312 23411\"\n        },\n        \"发票代码\": {\n          \"Value\": \"123456789123\"\n        },\n        \"发票号码\": {\n          \"Value\": \"12345678\"\n        },\n        \"开票日期\": {\n          \"Value\": \"2024年01月03日\"\n        },\n        \"购买方名称\": {\n          \"Value\": \"夸克\"\n        },\n        \"购买方纳税人识别号\": {\n          \"Value\": \"134354356345X\"\n        },\n        \"购买方地址\": {\n          \"Value\": \"*********\"\n        },\n        \"购买方电话\": {\n          \"Value\": \"*********\"\n        },\n        \"购买方开户行\": {\n          \"Value\": \"*********\"\n        },\n        \"购买方账号\": {\n          \"Value\": \"*********\"\n        },\n        \"密码区\": {\n          \"Value\": \"*********\"\n        },\n        \"货物或应税劳务服务名称\": {\n          \"Value\": \"*********\"\n        },\n        \"规格型号\": {\n          \"Value\": \"*********\"\n        },\n        \"单位\": {\n          \"Value\": \"*********\"\n        },\n        \"数量\": {\n          \"Value\": \"*********\"\n        },\n        \"单价\": {\n          \"Value\": \"*********\"\n        },\n        \"金额\": {\n          \"Value\": \"*********\"\n        },\n        \"税率\": {\n          \"Value\": \"*********\"\n        },\n        \"税额\": {\n          \"Value\": \"*********\"\n        },\n        \"合计金额\": {\n          \"Value\": \"*********\"\n        },\n        \"合计税额\": {\n          \"Value\": \"*********\"\n        },\n        \"价税合计大写\": {\n          \"Value\": \"*********\"\n        },\n        \"价税合计小写\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方名称\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方纳税人识别号\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方地址\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方电话\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方开户行\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方账号\": {\n          \"Value\": \"*********\"\n        },\n        \"备注\": {\n          \"Value\": \"*********\"\n        },\n        \"收款人\": {\n          \"Value\": \"*********\"\n        },\n        \"复核\": {\n          \"Value\": \"*********\"\n        },\n        \"开票人\": {\n          \"Value\": \"*********\"\n        }\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `header` | Dict | 发票抬头信息 |\n| `机器编号` | Dict | 机器编号 |\n| `校验码` | Dict | 校验码 |\n| `发票代码` | Dict | 发票代码 |\n| `发票号码` | Dict | 发票号码 |\n| `开票日期` | Dict | 开票日期 |\n| `购买方名称` | Dict | 购买方名称 |\n| `购买方纳税人识别号` | Dict | 购买方纳税人识别号 |\n| `购买方地址` | Dict | 购买方地址 |\n| `购买方电话` | Dict | 购买方电话 |\n| `购买方开户行` | Dict | 购买方开户行 |\n| `购买方账号` | Dict | 购买方账号 |\n| `密码区` | Dict | 密码区 |\n| `货物或应税劳务服务名称` | Dict | 货物或应税劳务服务名称 |\n| `规格型号` | Dict | 规格型号 |\n| `单位` | Dict | 单位 |\n| `数量` | Dict | 数量 |\n| `单价` | Dict | 单价 |\n| `金额` | Dict | 金额 |\n| `税率` | Dict | 税率 |\n| `税额` | Dict | 税额 |\n| `合计金额` | Dict | 合计金额 |\n| `合计税额` | Dict | 合计税额 |\n| `价税合计大写` | Dict | 价税合计大写 |\n| `价税合计小写` | Dict | 价税合计小写 |\n| `销售方名称` | Dict | 销售方名称 |\n| `销售方纳税人识别号` | Dict | 销售方纳税人识别号 |\n| `销售方地址` | Dict | 销售方地址 |\n| `销售方电话` | Dict | 销售方电话 |\n| `销售方开户行` | Dict | 销售方开户行 |\n| `销售方账号` | Dict | 销售方账号 |\n| `备注` | Dict | 备注 |\n| `收款人` | Dict | 收款人 |\n| `复核` | Dict | 复核 |\n| `开票人` | Dict | 开票人 |\n| `XXX/Value` | string | 内容值 |\n| `XXX/Position` | List[List[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `XXX/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.Result`，按 Markdown 表格格式展示各字段\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTaxInvoice\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"header\": {\n          \"Value\": \"云南增值税专用发票\"\n        },\n        \"机器编号\": {\n          \"Value\": \"234124123\"\n        },\n        \"校验码\": {\n          \"Value\": \"12312 34534 12312 23411\"\n        },\n        \"发票代码\": {\n          \"Value\": \"123456789123\"\n        },\n        \"发票号码\": {\n          \"Value\": \"12345678\"\n        },\n        \"开票日期\": {\n          \"Value\": \"2024年01月03日\"\n        },\n        \"购买方名称\": {\n          \"Value\": \"夸克\"\n        },\n        \"购买方纳税人识别号\": {\n          \"Value\": \"134354356345X\"\n        },\n        \"购买方地址\": {\n          \"Value\": \"*********\"\n        },\n        \"购买方电话\": {\n          \"Value\": \"*********\"\n        },\n        \"购买方开户行\": {\n          \"Value\": \"*********\"\n        },\n        \"购买方账号\": {\n          \"Value\": \"*********\"\n        },\n        \"密码区\": {\n          \"Value\": \"*********\"\n        },\n        \"货物或应税劳务服务名称\": {\n          \"Value\": \"*********\"\n        },\n        \"规格型号\": {\n          \"Value\": \"*********\"\n        },\n        \"单位\": {\n          \"Value\": \"*********\"\n        },\n        \"数量\": {\n          \"Value\": \"*********\"\n        },\n        \"单价\": {\n          \"Value\": \"*********\"\n        },\n        \"金额\": {\n          \"Value\": \"*********\"\n        },\n        \"税率\": {\n          \"Value\": \"*********\"\n        },\n        \"税额\": {\n          \"Value\": \"*********\"\n        },\n        \"合计金额\": {\n          \"Value\": \"*********\"\n        },\n        \"合计税额\": {\n          \"Value\": \"*********\"\n        },\n        \"价税合计大写\": {\n          \"Value\": \"*********\"\n        },\n        \"价税合计小写\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方名称\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方纳税人识别号\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方地址\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方电话\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方开户行\": {\n          \"Value\": \"*********\"\n        },\n        \"销售方账号\": {\n          \"Value\": \"*********\"\n        },\n        \"备注\": {\n          \"Value\": \"*********\"\n        },\n        \"收款人\": {\n          \"Value\": \"*********\"\n        },\n        \"复核\": {\n          \"Value\": \"*********\"\n        },\n        \"开票人\": {\n          \"Value\": \"*********\"\n        }\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| header | 云南增值税专用发票 |\n| 机器编号 | 234124123 |\n| 校验码 | 12312 34534 12312 23411 |\n| 发票代码 | 123456789123 |\n| 发票号码 | 12345678 |\n| 开票日期 | 2024年01月03日 |\n| 购买方名称 | 夸克 |\n| 购买方纳税人识别号 | 134354356345X |\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- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nArchive v1.0.4: 22 files, 55114 bytes\n\nFiles: references/API.md (4206b), references/scenarios/00-auth-check.md (2461b), references/scenarios/01-general-ocr.md (4105b), references/scenarios/02-handwritten-ocr.md (6118b), references/scenarios/03-table-ocr.md (6596b), references/scenarios/04-idcard-ocr.md (5631b), references/scenarios/05-social-security-card-ocr.md (5236b), references/scenarios/06-travel-permit-ocr.md (5827b), references/scenarios/07-degree-certificate-ocr.md (5712b), references/scenarios/08-vat-invoice-ocr.md (10692b), references/scenarios/09-train-ticket-ocr.md (5342b), references/scenarios/10-formula-ocr.md (5180b), references/scenarios/11-question-ocr.md (4704b), references/scenarios/12-driver-license-ocr.md (5824b), references/scenarios/13-vehicle-license-ocr.md (8237b), references/scenarios/14-commercial-invoice-ocr.md (6773b), references/scenarios/15-medical-report-ocr.md (6653b), references/scenarios/16-business-license-ocr.md (5086b), references/scenarios/17-product-image-ocr.md (6493b), scripts/scan.py (18920b), SKILL.md (19067b), _meta.json (139b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: yescan-ocr-universal\ndescription: 专业的OCR文字识别路由与处理专家。支持OCR 通用文字提取 | OCR 手写文档 | 提取表格内容 | 识别身份证 | 识别社保卡 | 识别港澳通行证 | 识别学位证 | 识别增值税发票 | 识别火车票 | 识别数学公式 | 识别习题题目 | 识别驾驶证 | 识别行驶证 | 识别英文发票 | 识别医疗报告单 | 识别营业执照 | 识别商品图片 | 把这张图转成文字 | 提取图中所有文字 | 读一下这张证件\nversion: 1.0.0\n\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - SCAN_WEBSERVICE_KEY\n    primaryEnv: SCAN_WEBSERVICE_KEY\n    homepage: https://scan.quark.cn/business\n\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 URL 发送至夸克官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n✅ **推荐方式：环境变量（免权限、即时生效、webchat 友好）**\n在终端中运行（本次会话立即可用）：\n```bash\nexport SCAN_WEBSERVICE_KEY=\"your_scan_webservice_key_here\"\n```\n\n```bash\n# 将凭证追加写入到 ~/.openclaw/env 文件\necho 'export SCAN_WEBSERVICE_KEY=\"your_scan_webservice_key_here\"' >> ~/.openclaw/env\n```\n\n> [!TIP] **🔧 如何获取密钥？官方入口在此**\n>\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。\n>\n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n✅ **环境依赖**\n```bash\npip3 install requests\n```\n\n## 强制执行规则\n\n> [!IMPORTANT] **⚠️ 绝对执行原则（强制生效）**\n> - **所有意图的调用命令必须且只能取自其对应 `references/scenarios/XX-xxx.md` 文件中的命令。**\n> - `SKILL.md` 中的意图描述仅为语义说明，不参与参数匹配，不可用于构造调用命令。\n> - **禁止伪造响应**：每个场景文件已添加「执行前必做」警告，不得使用示例 JSON 作为真实响应。\n> - 违反此规则将导致 API 调用失败（如 `A0210` 未开通权限）。\n> - **❗ 每次请求独立识别意图**：必须从用户本次指令中提取关键词进行意图匹配，**禁止惯性沿用上一次的场景**。\n\n>\n> 💡 **Agent 必读**：每个场景文件开头都有「执行前必做」检查清单，执行前请逐项确认。\n\n---\n\n## 🚀 通用调用规范\n\n> 所有场景均遵循以下规范。\n\n### 脚本位置\n\n```\nscripts/scan.py\n```\n\n### 输入方式（三选一）\n\n| 方式 | 参数 | 适用场景 |\n|------|------|---------|\n| URL | `--url \"https://...\"` | 图片已在网上 |\n| 本地文件 | `--path \"/Users/...\"` | 图片在本地（自动转 BASE64） |\n| BASE64 | `--base64 \"...\"` | 图片已在内存/数据库 |\n\n### 通用参数\n\n| 参数 | 必需 | 说明 |\n|------|------|------|\n| `--service-option` | 是 | 服务类型（structure/scan/ocr 等） |\n| `--input-configs` | 是 | JSON 字符串（外层需引号包裹） |\n| `--output-configs` | 是 | JSON 字符串（外层需引号包裹） |\n| `--data-type` | 是 | 数据类型（image/pdf） |\n\n### 返回格式（所有场景统一）\n\n```json\n{\n  \"code\": \"String\",      // 状态码，\"00000\" 表示成功\n  \"message\": \"String\",  // 错误描述或成功提示\n  \"data\": \"Object\"      // API 原始返回数据，结构随场景变化\n}\n```\n\n### 错误码说明\n\n| 错误码 | 说明 | 处理方式 |\n|-------|------|---------|\n| `00000` | 成功 | 解析 `data` 字段 |\n| `A0211` | 配额/余额不足 | **直接输出纯文本**：`请前往 https://scan.quark.cn/business，登录开发者后台，选择需要的套餐进行充值（请注意购买 Skill 专用套餐）` ⚠️ **不要包装成 JSON，不要总结** |\n| `HTTP_ERROR` | HTTP 请求失败 | 检查网络/API 可用性 |\n| `CONFIG_ERROR` | 配置错误（如缺少 API Key） | 检查环境变量 |\n| `TIMEOUT` | 请求超时 | 重试或检查网络 |\n| `NETWORK_ERROR` | 网络错误 | 检查网络连接 |\n| `JSON_PARSE_ERROR` | 响应解析失败 | 联系技术支持 |\n| `URL_VALIDATION_ERROR` | URL 格式验证失败 | 检查 URL 是否正确（需以 http:// 或 https:// 开头） |\n| `BASE64_DECODE_ERROR` | BASE64 解码失败 | 检查 BASE64 字符串是否完整、合法 |\n| `BASE64_FORMAT_ERROR` | BASE64 格式错误 | 检查 Data URL 格式是否正确 |\n| `FILE_ERROR` | 本地文件验证失败 | 检查文件是否存在、格式是否支持、大小是否超限 |\n| `FILE_READ_ERROR` | 文件读取失败 | 检查文件权限或磁盘空间 |\n| `INVALID_INPUT` | 输入参数错误 | 确保只提供了一个输入参数（URL/路径/BASE64 三选一） |\n| `INVALID_JSON` | JSON 配置格式错误 | 检查 `--input-configs` 或 `--output-configs` 是否为合法 JSON 字符串 |\n---\n\n## 🎯 意图路由（when to use）\n\n> [!IMPORTANT] **⚠️ 全局流程控制**\n> - **单一意图原则**：每次请求只执行一个意图类型，命中即执行\n> - **接口返回即结束**：无论接口返回成功还是失败，都直接展示给用户\n> - **不继续判断**：执行完一个意图后，**不再尝试其他意图**，不重试、不切换\n> - **等待新指令**：任务完成后等待用户发起新的请求\n\n> **AGENT 执行流程**：根据用户指令关键词匹配意图类型 → 点击链接获取完整执行策略（调用命令 + 返回结构 + 示例）→ 执行后直接返回结果\n\n---\n\n### 📋 意图类型与 API 场景映射\n\n> 💡 **编号说明**：意图编号 (1-17) 为内部逻辑序号，场景编号 (1-17) 对应夸克 API 场景 ID，保持独立便于未来扩展。\n\n| 意图编号 | 意图类型 | 映射 API 场景 | 场景文件                                                                                  |\n|---------|---------|-------------|---------------------------------------------------------------------------------------|\n| 0 | **环境变量检查** | 场景 0 | [00-auth-check.md](references/scenarios/00-auth-check.md)                             |\n| 1 | **手写文档识别** | 场景 2 | [02-handwritten-ocr.md](references/scenarios/02-handwritten-ocr.md)                   |\n| 2 | **表格识别** | 场景 3 | [03-table-ocr.md](references/scenarios/03-table-ocr.md)                               |\n| 3 | **身份证识别** | 场景 4 | [04-idcard-ocr.md](references/scenarios/04-idcard-ocr.md)                             |\n| 4 | **社保卡识别** | 场景 5 | [05-social-security-card-ocr.md](references/scenarios/05-social-security-card-ocr.md) |\n| 5 | **港澳通行证识别** | 场景 6 | [06-travel-permit-ocr.md](references/scenarios/06-travel-permit-ocr.md)               |\n| 6 | **学位证识别** | 场景 7 | [07-degree-certificate-ocr.md](references/scenarios/07-degree-certificate-ocr.md)     |\n| 7 | **增值税发票识别** | 场景 8 | [08-vat-invoice-ocr.md](references/scenarios/08-vat-invoice-ocr.md)                   |\n| 8 | **火车票识别** | 场景 9 | [09-train-ticket-ocr.md](references/scenarios/09-train-ticket-ocr.md)                 |\n| 9 | **公式识别** | 场景 10 | [10-formula-ocr.md](references/scenarios/10-formula-ocr.md)                           |\n| 10 | **题目识别** | 场景 11 | [11-question-ocr.md](references/scenarios/11-question-ocr.md)                         |\n| 11 | **驾驶证识别** | 场景 12 | [12-driver-license-ocr.md](references/scenarios/12-driver-license-ocr.md)             |\n| 12 | **行驶证识别** | 场景 13 | [13-vehicle-license-ocr.md](references/scenarios/13-vehicle-license-ocr.md)           |\n| 13 | **英文发票识别** | 场景 14 | [14-commercial-invoice-ocr.md](references/scenarios/14-commercial-invoice-ocr.md)     |\n| 14 | **医疗报告单识别** | 场景 15 | [15-medical-report-ocr.md](references/scenarios/15-medical-report-ocr.md)             |\n| 15 | **营业执照识别** | 场景 16 | [16-business-license-ocr.md](references/scenarios/16-business-license-ocr.md)         |\n| 16 | **商品图片识别** | 场景 17 | [17-product-image-ocr.md](references/scenarios/17-product-image-ocr.md)               |\n| 17 | **通用文字提取** | 场景 1 | [01-general-ocr.md](references/scenarios/01-general-ocr.md)                           |\n\n---\n\n### 🔍 意图匹配规则\n\n**⚠️ 前置检查：环境变量**（自动执行，非意图）\n- 在调用任何场景前，**自动检查** `SCAN_WEBSERVICE_KEY` 是否已配置\n- 若未配置，直接提示用户获取密钥，**不执行任何 API 调用**\n- 检查逻辑参考：[00-auth-check.md](references/scenarios/00-auth-check.md)\n\n**意图 1 - 手写文档识别** （API 场景 2）\n- 当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图\n- [⚠️ 获取执行策略](references/scenarios/02-handwritten-ocr.md)\n\n**意图 2 - 表格识别** （API 场景 3）\n- 当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图\n- [⚠️ 获取执行策略](references/scenarios/03-table-ocr.md)\n\n**意图 3 - 身份证识别** （API 场景 4）\n- 当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/04-idcard-ocr.md)\n\n**意图 4 - 社保卡识别**（API 场景 5）\n- 当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/05-social-security-card-ocr.md)\n\n**意图 5 - 港澳通行证识别** （API 场景 6）\n- 当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号码、签发机关、有效期限等 11 个字段）、将证件影像转化为结构化数据，或应用于身份核验、出入境管理及政务服务自动化等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/06-travel-permit-ocr.md)\n\n**意图 6 - 学位证识别** （API 场景 7）\n- 当用户存在识别学位证书图片、提取证书关键信息（包括但不限于证书名称、学校、姓名、性别、出生日期、学习日期、学制、学历、学位、专业、证书编号及发证日期等 12 个字段）、将证书影像转化为结构化数据，或应用于企业人才信息录入和学历核验等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/07-degree-certificate-ocr.md)\n\n**意图 7 - 增值税发票识别** （API 场景 8）\n- 当用户存在识别增值税发票图片、提取单据关键信息（包括但不限于销售方、购买方、货物详情、金额等 30 多个字段）、将发票影像转化为结构化数据，或应用于财务报销自动化、税务管理及企业风控等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/08-vat-invoice-ocr.md)\n\n**意图 8 - 火车票识别** （API 场景 9）\n- 当用户存在识别火车票图片、提取票号/出发站/到达站/车次/开车时间/票价/座位号/座位类型/旅客身份号码/旅客姓名等 10 个关键字段信息、将车票照片转化为结构化文本数据，或应用于企业出行报销场景的意图\n- [⚠️ 获取执行策略](references/scenarios/09-train-ticket-ocr.md)\n\n**意图 9 - 公式识别** （API 场景 10）\n- 当用户存在识别数学/化学公式图片、高精度解析分数、矩阵、分段函数及化学方程式等复杂结构、将图像公式转化为可编辑的 LaTeX 代码或结构化数据，或应用于智能试卷自动批改、学术论文数字化归档、在线教育题目解析及科研文献深度分析等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/10-formula-ocr.md)\n\n**意图 10 - 题目识别** （API 场景 11）\n- 当用户存在精准提取题目关键词、利用智能算法锁定内容核心、优化信息检索路径，或应用于自动化内容创作、智能问答系统构建、教育题库索引优化及垂直领域知识图谱搭建等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/11-question-ocr.md)\n\n**意图 11 - 驾驶证识别** （API 场景 12）\n- 当用户存在识别驾驶证图片、提取证件关键信息（如证号、姓名、住址、有效期等）、将非结构化图像转化为结构化数据，或应用于身份核验、交通管理等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/12-driver-license-ocr.md)\n\n**意图 12 - 行驶证识别** （API 场景 13）\n- 当用户存在识别行驶证图片、提取证件关键信息（包括但不限于证号、姓名、住址、有效期、准驾车型等）、将行驶证影像转化为结构化数据，或应用于身份核验、交通管理及汽车租赁等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/13-vehicle-license-ocr.md)\n\n**意图 13 - 英文发票识别** （API 场景 14）\n- 当用户存在识别英文商业发票图片、提取单据关键信息（包括但不限于发票号、日期、买卖双方信息、商品明细、金额及税额等）、将非结构化英文单据转化为结构化数据，或应用于跨境贸易单证处理、海外费用报销及国际化财务自动化审核等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/14-commercial-invoice-ocr.md)\n\n**意图 14 - 医疗报告单识别**（API 场景 15）\n- 当用户存在识别医疗报告单图片、提取报告关键信息（包括但不限于检验项目、结果、参考值等）、将医疗报告影像转化为结构化数据，或应用于电子病历归档、健康数据分析及远程医疗辅助诊断等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/15-medical-report-ocr.md)\n\n**意图 15 - 营业执照识别**（API 场景 16）\n- 当用户存在识别营业执照图片、提取证件关键信息（包括但不限于统一社会信用代码、名称、类型、法定代表人、经营范围等）、将执照影像转化为结构化数据，或应用于企业身份核验、工商注册自动化、供应链准入审核及金融风控等场景的意图\n- [⚠️ 获取执行策略](references/scenarios/16-business-license-ocr.md)\n\n**意图 16 - 商品图片识别**（API 场景 17）\n- 用户需要识别图片中的具体商品对象，包括商品名称、品牌、品类等信息，用于商品检索或分类\n- [⚠️ 获取执行策略](references/scenarios/17-product-image-ocr.md)\n\n**意图 17 - 通用文字提取**（兜底意图）（API 场景 1）\n- 当用户指令中不包含上述任何具体场景，仅表达提取纯文字意图时\n- [⚠️ 获取执行策略](references/scenarios/01-general-ocr.md)\n\n---\n\n### ⚠️ 匹配顺序说明\n\n1. **前置检查**：调用任何场景前，自动检查 `SCAN_WEBSERVICE_KEY` 环境变量\n2. **顺序匹配**：按逻辑序号升序匹配（1 → 2 → ... → 17），命中即止\n3. **兜底机制**：逻辑序号 17（通用文字提取）为最后兜底，仅当上述具体意图均未命中时使用\n\n---\n\n\n## ⛔ 不适用场景（When Not to Use）\n\n> 本技能**不支持**以下场景，请勿尝试：\n\n| 不支持的场景 | 原因 | 建议替代方案 |\n|------------|------|------------|\n| **视频处理** | 仅支持单张静态图片 | 先提取视频帧，再逐帧处理 |\n| **批量处理** | 每次调用仅限单张图片 | 如需批量，请循环调用或联系管理员 |\n| **实时摄像头流** | 非实时流处理架构 | 使用专用视频处理服务 |\n| **超大图片（>5MB）** | API 限制 | 先压缩或裁剪后再处理 |\n| **非图片格式** | 仅支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp | 先转换为支持的图片格式 |\n\n---\n\n## 💡 示例参考\n\n> 每个意图场景的完整调用示例已在对应场景文件中提供，请直接查阅：\n> - 各场景调用命令 + 响应结构 + 完整示例：`references/scenarios/XX-xxx.md`\n> - 通用参数规范：见上文「🚀 通用调用规范」章节\n\n---\n\n## ⚠️ 重要注意事项\n\n1. **JSON 格式**: `--input-configs` 和 `--output-configs` 必须是 **JSON 字符串**\n   - ✅ 正确：`--input-configs '{\"function_option\": \"...\"}'`\n   - ❌ 错误：`--input-configs {\"function_option\": \"...\"}`\n\n2. **安全与配额**: 严禁泄露 API Key，注意 `A0211` 配额限制\n\n3. **图片大小**: 本地文件最大 5MB，支持 jpg/jpeg/png/gif/bmp/webp/tiff/wbmp/webp 格式\n\n---\n\n## 🔗 相关资源\n\n- [夸克扫描王开放平台](https://scan.quark.cn/business)\n- [API 通用规范](references/API.md)（可选参考）\n- [场景文件目录](references/scenarios/)\n\n---\n\n## 📁 文件结构\n- `SKILL.md` —  本文档（意图分析 + 通用规范）\n- `scripts/scan.py` —  主执行脚本 (Python 3.9+)\n- `references/scenarios/00-auth-check.md` - 场景零 [环境变量检查]\n- `references/scenarios/01-general-ocr.md` - 场景1 [通用图片 OCR]\n- `references/scenarios/02-handwritten-ocr.md` - 场景2 [手写文档识别]\n- `references/scenarios/03-table-ocr.md` - 场景3 [表格识别]\n- `references/scenarios/04-idcard-ocr.md` - 场景4 [身份证识别]\n- `references/scenarios/05-social-security-card-ocr.md` - 场景5 [社保卡识别]\n- `references/scenarios/06-travel-permit-ocr.md` - 场景6 [港澳通行证识别]\n- `references/scenarios/07-degree-certificate-ocr.md` - 场景7 [学位证识别]\n- `references/scenarios/08-vat-invoice-ocr.md` - 场景8 [增值税发票识别]\n- `references/scenarios/09-train-ticket-ocr.md` - 场景9 [火车票识别]\n- `references/scenarios/10-formula-ocr.md` - 场景10 [公式识别]\n- `references/scenarios/11-question-ocr.md` - 场景11 [题目识别]\n- `references/scenarios/12-driver-license-ocr.md` - 场景12 [驾驶证识别]\n- `references/scenarios/13-vehicle-license-ocr.md` - 场景13 [行驶证识别]\n- `references/scenarios/14-commercial-invoice-ocr.md` - 场景14 [英文发票识别]\n- `references/scenarios/15-medical-report-ocr.md` - 场景15 [医疗报告单识别]\n- `references/scenarios/16-business-license-ocr.md` - 场景16 [营业执照识别]\n- `references/scenarios/17-product-image-ocr.md` - 场景17 [商品图片识别]\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1773910380138\n}\n\nFile v1.0.4:references/API.md\n\n# API 通用规范 - 夸克扫描王综合服务\n\n> 📖 **主文档**: [返回 SKILL.md](../SKILL.md)\n> \n> 📁 **场景详情**: 每个场景的完整调用命令、返回结构、示例请查看 [scenarios/](scenarios/) 目录中的独立文件。\n\n---\n\n## 📋 调用规范\n\n### 前置条件\n\n```bash\n# 1. 设置环境变量\nexport SCAN_WEBSERVICE_KEY=\"your_api_key_here\"\n\n# 2. 安装依赖\npip3 install requests\n```\n\n### 脚本位置\n\n```\nscripts/scan.py\n```\n\n### 通用参数\n\n| 参数 | 必需 | 说明 |\n|------|------|------|\n| `--url` | 三选一 | 图片 URL（http/https） |\n| `--path` | 三选一 | 本地文件路径（自动转 BASE64） |\n| `--base64` | 三选一 | BASE64 字符串（支持 Data URL 格式） |\n| `--service-option` | 必需 | 服务类型（structure/scan/ocr 等） |\n| `--input-configs` | 必需 | JSON 字符串（外层需引号包裹） |\n| `--output-configs` | 必需 | JSON 字符串（外层需引号包裹） |\n| `--data-type` | 必需 | 数据类型（image/pdf） |\n\n### 返回格式（所有场景统一）\n\n```json\n{\n  \"code\": \"String\",      // 状态码，\"00000\" 表示成功\n  \"message\": \"String\",  // 错误描述或成功提示（可能为 null）\n  \"data\": \"Object\"      // API 原始返回数据，结构随场景变化\n}\n```\n\n### 错误码说明\n\n| 错误码 | 说明 | 处理方式 |\n|-------|------|---------|\n| `00000` | 成功 | 解析 `data` 字段 |\n| `A0210` | 未开通此 API 权限 | 登录夸克控制台 → 进入应用 → 开通对应场景的 API 服务 |\n| `A0211` | 配额/余额不足 | 请前往 [夸克扫描王开放平台](https://scan-business.quark.cn) 充值或升级套餐 |\n| `A0300` | QPS 超限（请求过于频繁） | 等待 2-3 秒后重试，如频繁出现请升级套餐提升 QPS 限额 |\n| `HTTP_ERROR` | HTTP 请求失败 | 检查网络/API 可用性 |\n| `CONFIG_ERROR` | 配置错误（如缺少 API Key） | 检查环境变量 |\n| `TIMEOUT` | 请求超时 | 重试或检查网络 |\n| `NETWORK_ERROR` | 网络错误 | 检查网络连接 |\n| `JSON_PARSE_ERROR` | 响应解析失败 | 联系技术支持 |\n\n---\n\n## 🎯 场景索引\n\n| 编号 | 场景名称 | 适用场景 | 详情 |\n|------|---------|---------|------|\n| 01 | 通用图片 OCR | 文档、书籍、笔记、截图等通用文本提取 | [查看详情](scenarios/01-general-ocr.md) |\n| 02 | 手写文档识别 | 学生作答、作文、会议记录、手写账单等中英文手写内容 | [查看详情](scenarios/02-handwritten-ocr.md) |\n| 03 | 表格识别 | Excel/Word 表格、票据单据、手写表格、检查报告单 | [查看详情](scenarios/03-table-ocr.md) |\n| 04 | 身份证识别 | 中华人民共和国居民身份证正反面 | [查看详情](scenarios/04-idcard-ocr.md) |\n| 05 | 社保卡识别 | 中华人民共和国社保卡 | [查看详情](scenarios/05-social-security-card-ocr.md) |\n| 06 | 港澳通行证识别 | 港澳通行证/港澳台通行证 | [查看详情](scenarios/06-travel-permit-ocr.md) |\n| 07 | 学位证识别 | 学位证书（12 个字段提取） | [查看详情](scenarios/07-degree-certificate-ocr.md) |\n| 08 | 增值税发票识别 | 增值税发票（30+ 字段提取） | [查看详情](scenarios/08-vat-invoice-ocr.md) |\n| 09 | 火车票识别 | 火车票（10 个关键字段） | [查看详情](scenarios/09-train-ticket-ocr.md) |\n| 10 | 公式识别 | 数学/化学公式转 LaTeX | [查看详情](scenarios/10-formula-ocr.md) |\n| 11 | 题目识别 | 题目关键词提取 | [查看详情](scenarios/11-question-ocr.md) |\n| 12 | 驾驶证识别 | 中华人民共和国驾驶证 | [查看详情](scenarios/12-driver-license-ocr.md) |\n| 13 | 行驶证识别 | 中华人民共和国行驶证 | [查看详情](scenarios/13-vehicle-license-ocr.md) |\n| 14 | 英文发票识别 | 英文商业发票 | [查看详情](scenarios/14-commercial-invoice-ocr.md) |\n| 15 | 医疗报告单识别 | 医疗检验报告单 | [查看详情](scenarios/15-medical-report-ocr.md) |\n| 16 | 营业执照识别 | 企业营业执照 | [查看详情](scenarios/16-business-license-ocr.md) |\n| 17 | 商品图片识别 | 商品包装图片（支持条码提取） | [查看详情](scenarios/17-product-image-ocr.md) |\n---\n\nFile v1.0.4:references/scenarios/00-auth-check.md\n\n# 场景零 [环境变量检查]\n\n**适用场景**: 使用任何夸克扫描王 OCR 功能前的前置检查\n\n---\n\n## 🔍 检查步骤\n\n### 1. 检查环境变量是否已设置\n\n```bash\necho $SCAN_WEBSERVICE_KEY\n```\n\n### 2. 判断结果\n\n| 结果 | 处理方式 |\n|------|---------|\n| 输出非空字符串 | ✅ 已配置，继续执行 任务 |\n| 输出为空 | ❌ 未配置，提示用户获取密钥 |\n\n---\n\n## ❌ 未配置时的提示模板\n\n当 `SCAN_WEBSERVICE_KEY` 未设置时，**不要执行任何 OCR 调用**，直接返回以下提示：\n\n```markdown\n⚠️ **环境变量 `SCAN_WEBSERVICE_KEY` 未配置**\n\n夸克扫描王 OCR 服务需要 API Key 才能使用。\n\n> [!TIP] **🔧 如何获取密钥？官方入口在此**\n> 请访问 **[夸克扫描王开放平台](https://scan-business.quark.cn)** → 登录/注册账号 → 进入「控制台」→ 「创建新应用」→ 填写基本信息（应用名称建议填 `openclaw-ocr`）→ 提交后即可看到 `SCAN_WEBSERVICE_KEY`。\n> \n> ⚠️ **注意**：若你点击链接后跳转到其他域名（如 `quark.feishu.cn` 或 `open.quark.com`），说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan-business.quark.cn`（这是当前唯一有效的官方入口）。\n\n获取密钥后，在终端执行：\n```bash\nexport SCAN_WEBSERVICE_KEY=\"your_key_here\"\n```\n\n然后重新运行 OCR 命令即可。\n```\n\n---\n\n## ✅ 配置成功后的处理\n\n环境变量已设置时，直接继续执行对应的 OCR 场景：\n\n- 通用 OCR → [01-general-ocr.md](01-general-ocr.md)\n- 身份证识别 → [02-idcard-ocr.md](02-idcard-ocr.md)\n- 合同扫描 → [03-contract-scan.md](03-contract-scan.md)\n...\n---\n\n## 💡 示例流程\n\n### 用户请求\n> 帮我提取这张图片的文字：https://example.com/doc.jpg\n\n### Agent 执行流程\n\n1. **先检查环境变量**\n   ```bash\n   echo $SCAN_WEBSERVICE_KEY\n   ```\n\n2. **如果为空** → 返回上述提示模板，**不执行后续步骤**\n\n3. **如果已设置** → 继续调用通用 OCR：\n   ```bash\n   python3 scripts/scan.py \\\n     --url \"https://example.com/doc.jpg\" \\\n     --service-option \"structure\" \\\n     --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n     --output-configs '{\"need_return_image\": \"False\"}' \\\n     --data-type \"image\"\n   ```\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [夸克扫描王开放平台](https://scan-business.quark.cn)\n\nFile v1.0.4:references/scenarios/01-general-ocr.md\n\n# 场景1 [通用图片 OCR]\n\n**适用场景**: 文档、书籍、笔记、截图等通用图片的文本提取\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"识别的完整文本\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"段落 1 文本\",\n            \"Confidence\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"段落 2 文本\",\n            \"Confidence\": 0.98\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `data.OcrInfo` | Array | OCR 识别结果数组 |\n| `data.OcrInfo[].Text` | String | 完整识别文本（所有段落合并） |\n| `data.OcrInfo[].Detail` | Array | 详细识别结果（按段落/类型分组） |\n| `data.OcrInfo[].Detail[].Type` | String | 文本类型：`PrintedText`（印刷体）/`WrittenText`（手写体） |\n| `data.OcrInfo[].Detail[].Value` | String | 该段落的识别文本 |\n| `data.OcrInfo[].Detail[].Confidence` | Number | 置信度（0-1） |\n\n---\n\n## 📝 输出逻辑\n\n调用方解析 `data.OcrInfo[].Text`，纯文本换行展示。\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/text.jpg\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\": \"RecognizeGeneralDocument\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1\n          },\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n```\n青玉案元夕一辛弃疾\n东风夜放花千树，更吹落星如雨。宝马雕车香满路，\n凤箫声动，玉壶光转，一夜鱼龙舞。\n```\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.4:references/scenarios/02-handwritten-ocr.md\n\n# 场景2 [手写文档识别]\n**适用场景**: 手写文档识别使用最新的AI技术，突破传统OCR能力，以极高的准确率识别各种类型中、英文手写文字，在中文手写识别场景，具有更高的识别准确率。适用于教育场景的学生作答识别、作文识别，办公场景的手写会议记录识别、手写文章识别，生活场景的各种手写账单识别。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `OcrInfo` | List[Dict] | 图片中的内容 |\n| `OcrInfo/Text` | string | 图片中的全部文字 |\n| `OcrInfo/Detail` | dict | 图片中的内容详情 |\n| `OcrInfo/Type` | string | 内容类型，PrintedText｜WrittenText｜PrintedFormula ｜ WrittenFormula ｜Illustration | Stramp 等分别表示印刷文字｜手写文字｜印刷公式 ｜手写公式｜插图｜印章等 |\n| `Detail/Value` | string | 内容值 |\n| `Detail/Confidence` | string | 内容置信度 |\n| `Detail/Position` | list[list[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `Detail/InGraph` | bool | 当图片内容为文本时，文本是否在图片中的插图、印章、流程图等其中 |\n| `Detail/ColumnIndex` | int | 当内容在表格中时，所在表格单元格的列索引 |\n| `Detail/RowIndex` | int | 当内容在表格中时，所在表格单元格的行索引 |\n| `Detail/ColumnSpan` | int | 当内容在表格中时，所在表格单元格的列合并信息 |\n| `Detail/RowSpan` | int | 当内容在表格中时，所在表格单元格的行合并信息 |\n| `Detail/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.OcrInfo`，提取文字识别结果展示给用户\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"ocr\" \\\n  --input-configs '{\"function_option\":\"RecognizeWritten\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 识别文本 | 青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。 |\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.4:references/scenarios/03-table-ocr.md\n\n# 场景3 [表格识别]\n**适用场景**: 表格识别服务支持各种类型在OCR能力的基础上，借助最新的AI技术，支持众多类型表格格式识别，包括excel表格、word表格、票据、单据、手写表格、检查报告单等类型，文字识别准确率高，格式还原精准。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 1,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 2,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 2\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `OcrInfo` | List[Dict] | 图片中的内容 |\n| `OcrInfo/Text` | string | 图片中的全部文字 |\n| `OcrInfo/Detail` | List[Dict] | 图片中的内容详情 |\n| `Detail/Type` | string | 内容类型，EmptyType｜PrintedText｜WrittenText｜PrintedFormula ｜ WrittenFormula ｜Illustration | Stramp 等分别表示空类型（空白区域）｜印刷文字｜手写文字｜印刷公式 ｜手写公式｜插图｜印章等 |\n| `Detail/Value` | string | 内容值，当值为None时表示对应单元格无任何内容 |\n| `Detail/Confidence` | float | 内容置信度 |\n| `Detail/Position` | list[list[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `Detail/InGraph` | bool | 当图片内容为文本时，文本是否在图片中的插图、印章、流程图等其中 |\n| `Detail/ColumnIndex` | int | 当内容在表格中时，所在表格单元格的列索引 |\n| `Detail/RowIndex` | int | 当内容在表格中时，所在表格单元格的行索引 |\n| `TextDetail/ColumnSpan` | int | 当内容在表格中时，所在表格单元格的列合并信息 |\n| `TextDetail/RowSpan` | int | 当内容在表格中时，所在表格单元格的行合并信息 |\n| `TextDetail/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.OcrInfo`，提取文字识别结果展示给用户\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTable\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"OcrInfo\": [\n      {\n        \"Text\": \"青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。\",\n        \"Detail\": [\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"青玉案元夕一辛弃疾\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 0,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 0\n          },\n          {\n            \"Type\": \"PrintedText\",\n            \"Value\": \"东风夜放花千树，更吹落星如雨。宝马雕车香满路，\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 1,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 1\n          },\n          {\n            \"Type\": \"WrittenText\",\n            \"Value\": \"凤箫声动，玉壶光转，一夜鱼龙舞。\",\n            \"Confidence\": 1,\n            \"InGraph\": false,\n            \"ColumnIndex\": 0,\n            \"RowIndex\": 2,\n            \"ColumnSpan\": 0,\n            \"RowSpan\": 2\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 识别文本 | 青玉案元夕一辛弃疾东风夜放花千树，更吹落星如雨。宝马雕车香满路，凤箫声动，玉壶光转，一夜鱼龙舞。 |\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.4:references/scenarios/04-idcard-ocr.md\n\n# 场景4 [身份证识别 OCR]\n\n**适用场景**: 中华人民共和国居民身份证正反面识别\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n> [!NOTE] **📸 拍摄建议**\n> - 确保身份证四角完整、无反光、无遮挡\n> - 背景建议为纯色（白色/黑色最佳）\n> - 支持身份证正面（人像面）和反面（国徽面）同时识别\n> - 图片分辨率建议 640x480 以上\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"StructureInfo\": [\n      {\n        \"姓名\": {\"Value\": \"李明\"},\n        \"性别\": {\"Value\": \"男\"},\n        \"民族\": {\"Value\": \"汉\"},\n        \"出生\": {\"Value\": \"1997 年 9 月 10 日\"},\n        \"住址\": {\"Value\": \"北京西城区天赋小区 1 号 301\"},\n        \"公民身份号码\": {\"Value\": \"110102199709100123\"}\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `data.StructureInfo` | Array | 结构化识别结果数组 |\n| `data.StructureInfo[].姓名` | Object | 姓名信息 |\n| `data.StructureInfo[].性别` | Object | 性别信息 |\n| `data.StructureInfo[].民族` | Object | 民族信息 |\n| `data.StructureInfo[].出生` | Object | 出生日期（格式：YYYY 年 M 月 D 日） |\n| `data.StructureInfo[].住址` | Object | 详细住址 |\n| `data.StructureInfo[].公民身份号码` | Object | 18 位身份证号码 |\n| `[].Value` | String | 字段的具体值 |\n\n### 字段详情\n\n| 字段名 | 必填 | 示例值 | 说明 |\n|--------|------|--------|------|\n| 姓名 | 是 | 李明 | 居民身份证持有人姓名 |\n| 性别 | 是 | 男 | 性别：男/女 |\n| 民族 | 是 | 汉 | 民族信息，如：汉、回、维吾尔等 |\n| 出生 | 是 | 1997 年 9 月 10 日 | 出生日期，格式固定为\"YYYY 年 M 月 D 日\" |\n| 住址 | 是 | 北京西城区天赋小区 1 号 301 | 户籍所在地详细地址 |\n| 公民身份号码 | 是 | 110102199709100123 | 18 位居民身份证号码 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.StructureInfo`，按 Markdown 表格格式展示\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n### 常见错误场景\n\n| 场景 | 表现 | 处理建议 |\n|------|------|---------|\n| 图片模糊 | 部分字段识别为空或错误 | 建议重新拍摄清晰图片 |\n| 反光遮挡 | 关键字段（如身份证号）识别失败 | 调整光线角度后重拍 |\n| 非身份证图片 | 返回空结果或错误码 | 确认图片为居民身份证 |\n| 图片不完整 | 缺角、裁剪导致信息缺失 | 确保身份证四角完整 |\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/idcard.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\": \"RecognizeIDCard\"}' \\\n  --output-configs '{\"need_return_image\": \"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"StructureInfo\": [{\n      \"姓名\": {\"Value\": \"李明\"},\n      \"性别\": {\"Value\": \"男\"},\n      \"民族\": {\"Value\": \"汉\"},\n      \"出生\": {\"Value\": \"1997 年 9 月 10 日\"},\n      \"住址\": {\"Value\": \"北京西城区天赋小区 1 号 301\"},\n      \"公民身份号码\": {\"Value\": \"110102199709100123\"}\n    }]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 姓名 | 李明 |\n| 性别 | 男 |\n| 民族 | 汉 |\n| 出生 | 1997 年 9 月 10 日 |\n| 住址 | 北京西城区天赋小区 1 号 301 |\n| 公民身份号码 | 110102199709100123 |\n\n---\n\n## 🔒 隐私与安全提示\n\n> [!WARNING] **⚠️ 敏感信息处理**\n> - 身份证信息属于**个人敏感信息**，请妥善保管识别结果\n> - 识别完成后建议及时删除临时图片文件\n> - 不要在公开场合展示完整的身份证号码\n> - 本服务通过夸克官方 API 处理，不会永久保存图片数据\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n- [夸克扫描王开放平台](https://scan-business.quark.cn)\n\nFile v1.0.4:references/scenarios/05-social-security-card-ocr.md\n\n# 场景5 [社保卡识别]\n**适用场景**: 社保卡识别接口利用夸克高精度的基础OCR识别能力，结合夸克自研的文档大模型基础，实现对社保卡识别内容信息的提取，支持\"姓名\",\"社会保障号码\",\"卡号\",\"银联号码\",\"性别\",\"民族\",\"发卡日期\",\"有效期限\"等8个社保卡字段信息的提取。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"社会保障号码\": {\n          \"Value\": \"************\"\n        },\n        \"卡号\": {\n          \"Value\": \"************\"\n        },\n        \"银联号码\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"民族\": {\n          \"Value\": \"************\"\n        },\n        \"发卡日期\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `姓名` | Dict | 姓名 |\n| `社会保障号码` | Dict | 社会保障号码 |\n| `卡号` | Dict | 卡号 |\n| `银联号码` | Dict | 银联号码 |\n| `性别` | Dict | 性别 |\n| `民族` | Dict | 民族 |\n| `发卡日期` | Dict | 发卡日期 |\n| `有效期限` | Dict | 有效期限 |\n| `XXX/Value` | string | 内容值 |\n| `XXX/Position` | List[List[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `XXX/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.Result`，按 Markdown 表格格式展示各字段\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeSocialSecurityCard\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"社会保障号码\": {\n          \"Value\": \"************\"\n        },\n        \"卡号\": {\n          \"Value\": \"************\"\n        },\n        \"银联号码\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"民族\": {\n          \"Value\": \"************\"\n        },\n        \"发卡日期\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n### 调用方展示\n| 字段 | 值 |\n|------|-----|\n| 姓名 | ************ |\n| 社会保障号码 | ************ |\n| 卡号 | ************ |\n| 银联号码 | ************ |\n| 性别 | ************ |\n| 民族 | ************ |\n| 发卡日期 | ************ |\n| 有效期限 | ************ |\n\n---\n\n## 🔒 隐私与安全提示\n\n> [!WARNING] **⚠️ 敏感信息处理**\n> - 社保卡信息属于**个人敏感信息**，请妥善保管识别结果\n> - 识别完成后建议及时删除临时图片文件\n> - 不要在公开场合展示完整的社会保障号码\n> - 本服务通过夸克官方 API 处理，不会永久保存图片数据\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.4:references/scenarios/06-travel-permit-ocr.md\n\n# 场景 6 [港澳通行证识别]\n**适用场景**: 港澳通行证识别接口利用夸克高精度的基础OCR识别能力，结合夸克自研的文档大模型基础，实现对港澳台通行证识别内容信息的提取，支持11个港澳通行证字段信息的提取。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证件类型\": {\n          \"Value\": \"************\"\n        },\n        \"中文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"英文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        },\n        \"签发机关\": {\n          \"Value\": \"************\"\n        },\n        \"签发地点\": {\n          \"Value\": \"************\"\n        },\n        \"机读码\": {\n          \"Value\": \"************\"\n        },\n        \"证件号码\": {\n          \"Value\": \"************\"\n        },\n        \"签发次数\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `证件类型` | Dict | 证件类型 |\n| `中文姓名` | Dict | 中文姓名 |\n| `英文姓名` | Dict | 英文姓名 |\n| `出生日期` | Dict | 出生日期 |\n| `性别` | Dict | 性别 |\n| `有效期限` | Dict | 有效期限 |\n| `签发机关` | Dict | 签发机关 |\n| `签发地点` | Dict | 签发地点 |\n| `机读码` | Dict | 机读码 |\n| `证件号码` | Dict | 证件号码 |\n| `签发次数` | Dict | 签发次数 |\n| `XXX/Value` | string | 内容值 |\n| `XXX/Position` | List[List[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `XXX/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.Result`，按 Markdown 表格格式展示各字段\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeTravelPermit\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证件类型\": {\n          \"Value\": \"************\"\n        },\n        \"中文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"英文姓名\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"有效期限\": {\n          \"Value\": \"************\"\n        },\n        \"签发机关\": {\n          \"Value\": \"************\"\n        },\n        \"签发地点\": {\n          \"Value\": \"************\"\n        },\n        \"机读码\": {\n          \"Value\": \"************\"\n        },\n        \"证件号码\": {\n          \"Value\": \"************\"\n        },\n        \"签发次数\": {\n          \"Value\": \"************\"\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> [!WARNING] **⚠️ 敏感信息处理**\n> - 港澳通行证信息属于**个人敏感信息**，请妥善保管识别结果\n> - 识别完成后建议及时删除临时图片文件\n> - 不要在公开场合展示完整的证件号码\n> - 本服务通过夸克官方 API 处理，不会永久保存图片数据\n\n---\n\n## 🔗 相关资源\n\n- [返回主文档](../../SKILL.md)\n- [API 通用规范](../API.md)\n\nFile v1.0.4:references/scenarios/07-degree-certificate-ocr.md\n\n# 场景 7 [学位证识别]\n**适用场景**: 学位证书识别接口利用夸克高精度的基础OCR识别能力，结合夸克自研的文档大模型基础，实现对学位证书内容信息的提取，支持\"证书名称\",\"学校\",\"姓名\",\"性别\",\"出生日期\",\"学习日期\",\"学制\",\"学历\",\"学位\",\"专业\",\"证书编号\",\"发证日期\"等12个字段信息的提取，适用于企业人才信息录入和学历核验等场景。\n\n> [!IMPORTANT] **⚠️ 场景独立性说明**\n> - **严禁任何代码、Agent 或人工操作**，将本文件中任意 JSON 示例块的内容作为真实响应返回。所有输出必须来自 `yescan-scan-universal` 的实时 API 调用结果。\n> - 该 JSON 块无业务含义，不参与路由、不触发执行、不构成 SLA 承诺，纯文档装饰。\n> - 本场景为**独立任务**，识别完成后直接返回结果\n> - **无论接口返回什么**（成功、失败、部分识别），都直接展示给用户\n> - **不继续执行其他 OCR 场景**，不尝试二次识别或补充处理\n> - 如用户有其他需求（如合同扫描、通用 OCR），需等待用户重新发起请求\n\n---\n\n## 📞 调用命令\n\n### URL 输入\n```bash\npython3 scripts/scan.py \\\n  --url \"${IMAGE_URL}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 本地文件输入\n```bash\npython3 scripts/scan.py \\\n  --path \"${IMAGE_FILE_PATH}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### BASE64 输入\n```bash\npython3 scripts/scan.py \\\n  --base64 \"${IMAGE_BASE64}\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n---\n\n## 📤 返回结构\n\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证书名称\": {\n          \"Value\": \"************\"\n        },\n        \"学校\": {\n          \"Value\": \"************\"\n        },\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"学习日期\": {\n          \"Value\": \"************\"\n        },\n        \"学制\": {\n          \"Value\": \"************\"\n        },\n        \"学历\": {\n          \"Value\": \"************\"\n        },\n        \"学位\": {\n          \"Value\": \"************\"\n        },\n        \"专业\": {\n          \"Value\": \"************\"\n        },\n        \"证书编号\": {\n          \"Value\": \"************\"\n        },\n        \"发证日期\": {\n          \"Value\": \"************\"\n        }\n      }\n    ]\n  }\n}\n```\n\n---\n\n## 📋 字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `证书名称` | Dict | 证书名称 |\n| `学校` | Dict | 学校 |\n| `姓名` | Dict | 姓名 |\n| `性别` | Dict | 性别 |\n| `出生日期` | Dict | 出生日期 |\n| `学习日期` | Dict | 学习日期 |\n| `学制` | Dict | 学制 |\n| `学历` | Dict | 学历 |\n| `学位` | Dict | 学位 |\n| `专业` | Dict | 专业 |\n| `证书编号` | Dict | 证书编号 |\n| `发证日期` | Dict | 发证日期 |\n| `XXX/Value` | string | 内容值 |\n| `XXX/Position` | List[List[int, int]] | 内容位置（当返回结果包含矫正图时返回），以4个顶点坐标表示 |\n| `XXX/PageIndex` | int | 输入为多页时，表示内容所在的页面索引 |\n\n---\n\n## 📝 输出逻辑\n\n1. **成功识别**（`code: \"00000\"`）→ 解析 `data.Result`，按 Markdown 表格格式展示各字段\n2. **识别失败**（任何非 `00000` 状态码）→ 直接返回错误信息，不重试、不切换场景\n3. **任务结束** → 不再执行任何其他 OCR 操作，等待用户新指令\n\n---\n\n## 💡 完整示例\n\n### 请求\n```bash\npython3 scripts/scan.py \\\n  --url \"https://example.com/sample.jpg\" \\\n  --service-option \"structure\" \\\n  --input-configs '{\"function_option\":\"RecognizeDegreeCertificate\"}' \\\n  --output-configs '{\"need_return_image\":\"false\"}' \\\n  --data-type \"image\"\n```\n\n### 响应\n```json\n{\n  \"code\": \"00000\",\n  \"message\": null,\n  \"data\": {\n    \"Result\": [\n      {\n        \"证书名称\": {\n          \"Value\": \"************\"\n        },\n        \"学校\": {\n          \"Value\": \"************\"\n        },\n        \"姓名\": {\n          \"Value\": \"************\"\n        },\n        \"性别\": {\n          \"Value\": \"************\"\n        },\n        \"出生日期\": {\n          \"Value\": \"************\"\n        },\n        \"学习日期\": {\n          \"Value\": \"************\"\n        },\n        \"学制\": {\n          \"Value\": \"************\"\n        },\n        \"学历\": {\n          \"Value\": \"************\"\n        },\n        \"学位\": {\n          \"Value\": \"************\"\n        },\n        \"专业\": {\n          \"Value\": \"**********\n\nArchive v1.0.3: 22 files, 55392 bytes\n\nFiles: references/API.md (4206b), references/scenarios/00-auth-check.md (2461b), references/scenarios/01-general-ocr.md (4105b), references/scenarios/02-handwritten-ocr.md (6118b), references/scenarios/03-table-ocr.md (6596b), references/scenarios/04-idcard-ocr.md (5631b), references/scenarios/05-social-security-card-ocr.md (5236b), references/scenarios/06-travel-permit-ocr.md (5827b), references/scenarios/07-degree-certificate-ocr.md (5712b), references/scenarios/08-vat-invoice-ocr.md (10692b), references/scenarios/09-train-ticket-ocr.md (5342b), references/scenarios/10-formula-ocr.md (5180b), references/scenarios/11-question-ocr.md (4704b), references/scenarios/12-driver-license-ocr.md (5824b), references/scenarios/13-vehicle-license-ocr.md (8237b), references/scenarios/14-commercial-invoice-ocr.md (6773b), references/scenarios/15-medical-report-ocr.md (6653b), references/scenarios/16-business-license-ocr.md (5086b), references/scenarios/17-product-image-ocr.md (6493b), scripts/scan.py (18920b), SKILL.md (19733b), _meta.json (139b)\n\nArchive v1.0.2: 22 files, 55390 bytes\n\nFiles: references/API.md (4206b), references/scenarios/00-auth-check.md (2461b), references/scenarios/01-general-ocr.md (4105b), references/scenarios/02-handwritten-ocr.md (6118b), references/scenarios/03-table-ocr.md (6596b), references/scenarios/04-idcard-ocr.md (5607b), references/scenarios/05-social-security-card-ocr.md (5236b), references/scenarios/06-travel-permit-ocr.md (5827b), references/scenarios/07-degree-certificate-ocr.md (5712b), references/scenarios/08-vat-invoice-ocr.md (10692b), references/scenarios/09-train-ticket-ocr.md (5342b), references/scenarios/10-formula-ocr.md (5180b), references/scenarios/11-question-ocr.md (4704b), references/scenarios/12-driver-license-ocr.md (5824b), references/scenarios/13-vehicle-license-ocr.md (8237b), references/scenarios/14-commercial-invoice-ocr.md (6773b), references/scenarios/15-medical-report-ocr.md (6653b), references/scenarios/16-business-license-ocr.md (5086b), references/scenarios/17-product-image-ocr.md (6493b), scripts/scan.py (18920b), SKILL.md (19733b), _meta.json (139b)","readmeExcerpt":"Skill: 夸克扫描王 OCR文字识别 - yescan ocr universal Owner: yescan-ai Summary: 由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。 Tags: latest:1.0.14 Version history: v1.0.14 | 2026-07-09T07:43:16.309Z | user - No code or documentation changes detected in this version. - Functionality, configurati","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"openclaw config set skills.entries.yescan-ocr-universal.env.SCAN_WEBSERVICE_KEY \"your_scan_webservice_key_here\""},{"language":"json","snippet":"{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}"},{"language":"json","snippet":"{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}"},{"language":"bash","snippet":"# URL类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --url \"${IMAGE_URL}\"\n\n# 本地文件类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --path \"${IMAGE_FILE_PATH}\"\n\n# BASE64类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --base64 \"${IMAGE_BASE64}\""},{"language":"bash","snippet":"openclaw config set skills.entries.yescan-ocr-universal.env.SCAN_WEBSERVICE_KEY \"your_scan_webservice_key_here\""},{"language":"json","snippet":"{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: alibaba-quark-ocr\ndescription: 由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。\nmetadata: {\"openclaw\":{\"emoji\":\"🔍︎\",\"requires\":{\"bins\":[\"python3\"],\"env\":[\"SCAN_WEBSERVICE_KEY\"]},\"primaryEnv\":\"SCAN_WEBSERVICE_KEY\"},\"homepage\":\"https://scan.quark.cn/business\"}\n---\n\n# 🧭 使用前必读（30 秒）\n\n> [!WARNING] **⚠️ 隐私与数据流向重要提示**\n> - **第三方服务交互**：本技能会将您提供的**图片 发送至夸克扫描王官方服务器 (`scan-business.quark.cn`)** 进行识别。\n> - **数据可见性**：夸克服务将获取并处理该图片内容，不会永久保存\n\n**推荐方式：CLI 配置（永久生效）**\n\n配置 `SCAN_WEBSERVICE_KEY` 环境变量到 OpenClaw：\n```bash\nopenclaw config set skills.entries.yescan-ocr-universal.env.SCAN_WEBSERVICE_KEY \"your_scan_webservice_key_here\"\n```\n> ⚠️ 配置后需要**重启或开启新会话**才能生效（技能列表在 session 启动时加载）。\n\n**如何获取密钥？夸克扫描王官方入口在此**\n> 请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key。  \n> ⚠️ **注意**：若你点击链接后跳转到其他域名，说明该链接已失效 —— 请直接在浏览器地址栏手动输入 `https://scan.quark.cn/business`（这是当前唯一有效的官方入口）。\n\n---\n\n# Constraints\n- **单一意图原则：每次请求只执行一个意图类型，命中即执行**\n- **严禁自行构造任何命令参数，严禁伪造、拼接内部配置**\n- **严禁幻觉，禁止伪造请求和响应，不得沿用上一次的场景、参数进行假设**\n- **必须严格按照本指南指定的固定格式执行，不允许自行修改命令**\n\n#  技能执行指南(强制执行)\n\n第一步：**环境变量检查**\n- 若 `SCAN_WEBSERVICE_KEY` 未配置，立即返回：\n```json\n{\n  \"code\": \"A0100\",\n  \"message\": \"SCAN_WEBSERVICE_KEY 未配置，请访问 https://scan.quark.cn/business → 开发者后台 → 登录/注册账号 → 查看API Key\",\n  \"data\": null\n}\n```\n\n第二步：**输入处理**\n\n识别用户传入的图片类型，只能是以下三种之一：\n\n- 图片URL: url\n- 本地文件路径: path\n- 图片BASE64: base64\n\n未提供任何有效图片时，直接返回：\n```json\n{\n  \"code\": \"A0201\",\n  \"message\": \"缺少图片输入，请提供图片链接、文件路径或 BASE64 数据。\",\n  \"data\": null\n}\n```\n\n第三步：**意图匹配&场景确定**\n- 按照下面列出的意图*从上到下顺序匹配。命中第一个即停止*\n- 命中后，*只确定当前意图对应的scene标识*\n\n第四步：**构建执行命令(固定格式，严禁修改)**：\n\n根据图片类型，严格使用下面对应格式：\n```bash\n# URL类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --url \"${IMAGE_URL}\"\n\n# 本地文件类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --path \"${IMAGE_FILE_PATH}\"\n\n# BASE64类型\npython3 scripts/scan.py --scene \"${SCENE_VALUE}\" --base64 \"${IMAGE_BASE64}\"\n```\n- 把`${IMAGE_URL}`/`${IMAGE_FILE_PATH}`/`${IMAGE_BASE64}`替换为真实值\n- 把`${SCENE_VALUE}`替换为当前意图对应的scene值\n- 直接执行命令，不增删任何参数，不修改JSON，不加引号，不换行\n\n第五步：**结果透出**：\n- 执行完成后，*原样返回执行结果*，不修改，不翻译，不美化，不总结\n- 成功 失败均直接透出，不重试\n\n\n## 场景与意图列表(按匹配优先级排序)\n\n1. 手写文档识别\n- 触发意图：当用户存在识别各类中英文手写内容（如学生作答、作文、会议记录、手写账单等）、将潦草或非标准手写图片转化为高精度可编辑文本，或突破传统 OCR 限制处理复杂手写场景的意图。\n- 场景scene标识：handwritten-ocr\n- 参考示例指令：\n  - \"帮我把这张手写笔记转成文字\"\n  - \"识别这张作文图片里的内容\"\n2. 表格识别\n- 触发意图：当用户存在识别图片中的各类表格（如 Excel/Word 表格、票据单据、手写表格、检查报告单等）、高精度提取文字内容并精准还原原始表格格式与结构的意图。\n- 场景scene标识：table-ocr\n- 参考示例指令：\n  - \"提取这张表格里的数据\"\n  - \"把这张报销单的表格转成 Excel 格式\"\n3. 身份证识别\n- 触发意图：当用户存在识别身份证图片、提取证件关键信息（包括但不限于姓名、身份证号、地址等字段）、将证件影像转化为结构化数据，或应用于身份核验、实名认证及信息准确性校验等场景的意图。\n- 场景scene标识：idcard-ocr\n- 参考示例指令：\n  - \"帮我读一下这张身份证\"\n  - \"提取身份证上的姓名和号码\"\n4. 社保卡识别\n- 触发意图：当用户存在识别社保卡图片、提取证件关键信息（包括但不限于姓名、社会保障号码、卡号、银联号码、性别、民族、发卡日期及有效期限等字段）、将证件影像转化为结构化数据，或应用于社保业务办理、身份核验及政务服务自动化等场景的意图。\n- 场景scene标识：social-security-card-ocr\n- 参考示例指令：\n  - \"识别这张社保卡的信息\"\n  - \"提取社保卡上的姓名和社保号\"\n5. 港澳通行证识别\n- 触发意图：当用户存在识别港澳通行证（或港澳台通行证）图片、提取证件关键信息（包括但不限于姓名、证件号"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70q165k6hd6cpjtfp8enaa8s82vyem\",\n  \"slug\": \"yescan-ocr-universal\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1783582996309\n}"},{"path":"skill-card.md","content":"## Description:\n\nProvides OCR for images, screenshots, and scanned documents through Quark Scan King, including printed text, handwriting, tables, formulas, IDs, invoices, tickets, medical reports, business licenses, and other supported document types.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[yescan-ai](https://clawhub.ai/user/yescan-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit a single image, local image file, or base64 image to Quark Scan King's OCR service and receive extracted text or structured OCR data for supported document scenes.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Submitted images, including sensitive documents, are sent to Quark's remote OCR service using the configured API key.\n\nMitigation: Use only with documents approved for third-party OCR processing, and avoid submitting sensitive images unless that data flow is acceptable.\n\nRisk: Crafted image inputs could be run unsafely as shell commands under the current command template.\n\nMitigation: Invoke Python with a non-shell argument array before routine use, and avoid untrusted image URLs, paths, or base64 strings until the run instructions are changed.\n\nRisk: OCR POST requests allow redirects, which can broaden where submitted content and credentials are sent.\n\nMitigation: Disable or constrain redirects for OCR POST requests before routine use.\n\n## Reference(s):\n\n- [Quark Scan King Business Platform](https://scan.quark.cn/business)\n- [ClawHub Skill Page](https://clawhub.ai/yescan-ai/skills/yescan-ocr-universal)\n\n## Skill Output:\n\n**Output Type(s):** [text, JSON, structured data]\n\n**Output Format:** [JSON OCR response with code, message, and data fields]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires SCAN_WEBSERVICE_KEY and sends submitted image content to Quark's remote OCR service.]\n\n## Skill Version(s):\n\n1.0.14 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。 Skill: 夸克扫描王 OCR文字识别 - yescan ocr universal Owner: yescan-ai Summary: 由夸克扫描王提供的高准取率 OCR 文字识别工具，支持印刷、手写、表格、多语言、公式等各种场景。支持图片、截图、扫描件中的文字提取，包括手写文档、表格内容、数学公式、商品图片等复杂场景。精准识别各类证件（身份证、社保卡、驾驶证、行驶证、港澳通行证、学位证等证件）及票据（增值税发票、火车票、英文发票等票据），同时支持医疗报告单、营业执照、习题题目等专业文档识别。 Tags: latest:1.0.14 Version history: v1.0.14 | 2026-07-09T07:43:16.309Z | user - No code or documentation changes detected in this version. - Functionality, configurati","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":887,"uniquenessScore":55,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T06:26:46.560Z","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-09T06:26:46.560Z","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-09T23:43:05.165Z","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"}]}}}