Skill: financial-ai-analyst/initiation-of-coverage-or-deep-dive (version 1.0.4)

--- name: initiation-of-coverage-or-deep-dive description: > 依托东方财富数据库，面向沪深京港美上市公司（A 股、港股、美股、北交所），生成首次覆盖报告或深度研究报告。 当用户提及「首次覆盖」「首次覆盖报告」「初始覆盖」「深度研究」「深度报告」「个股深度」「公司深度」「标的深度分析」，或要求对某只股票/上市公司撰写全面、体系化的研究报告时，必须触发本 Skill。 即使用户仅表述为「帮我写一份 XX 公司的研究报告」而未出现「深度」「首次覆盖」等词，也应触发。 不适用于业绩点评、财报点评、事件点评等场景。 metadata: { "openclaw": { "requires": { "env":["EM_API_KEY"] }, "install": [ { "id": "pip-deps", "kind": "python", "package": "httpx", "label": "Install Python dependencies" } ] } } --- # 上市公司首次覆盖报告 / 深度研究报告生成 ## 概述 本技能用于生成上市公司的**首次覆盖报告**或**深度研究报告**。通过调用统一脚本 `scripts/generate_deep_research_report.py`， 一次性完成实体识别、市场校验、报告生成及结果返回。 ## 环境变量 | 变量名 | 说明 | 默认 | |--------|------|------| | `EM_API_KEY` | 接口鉴权密钥（必填） | 无 | | [REDACTED_SECRET] | 附件输出目录| `./miaoxiang/initiation_of_coverage_or_deep_dive`（相对当前工作目录） | ## 前提条件 ### 1. 配置 `EM_API_KEY` ```bash # macOS / Linux export EM_API_KEY="your_api_key_here" ``` ```powershell # Windows PowerShell $env:EM_API_KEY="your_api_key_here" ``` ### 2. 安装依赖 ```bash pip3 install httpx --user ``` ## 完整工作流程 ### 第一步：调用报告生成脚本 调用 `scripts/generate_deep_research_report.py` 脚本，将用户的**原始问句**作为参数传入。该脚本内部自动完成以下全部流程： 1. **实体识别与市场校验**：调用实体识别接口，从用户问句中识别沪深京港美实体，返回标准化信息（`secuCode`、`marketChar`、`classCode`、`secuName`）；多个实体时优先取第一个；未识别到支持的实体则直接返回错误提示。 2. **报告生成**：将校验通过的实体信息作为参数，调用首次覆盖写作接口生成完整报告。 **调用方式**： ```bash python3 {baseDir}/scripts/generate_deep_research_report.py --query "用户原始问句" ``` **脚本输出（JSON 格式）**： - **成功时**：返回报告全文及附件地址等完整结果，包含报告标题、各章节内容、附件地址、分享链接等。 - **实体识别为空时**：返回错误信息 `"目前仅支持沪深京港美实体进行首次覆盖。您提供的实体不在支持范围内，请确认后重新输入。"` - **入参不合法时**：返回 `"入参不支持，请重新检查实体类型和报告期。"` - **接口调用失败/超时时**：返回 `"报告生成服务暂时不可用，请稍后重试。"` **处理逻辑**： - 脚本返回成功 → 进入第二步，进行结构化输出 - 脚本返回错误提示 → 将错误提示原样返回给用户，流程终止 注意：**禁止调用 任何「后台执行、稍后汇报」的方式跑本脚本**，只能在当前会话中同步等待到命令完成，拿到 stdout 的结果后再继续，否则会导致本 Skill 失败。 ### 第二步：结构化输出 脚本返回报告全文后，按照以下固定结构进行响应输出。 --- ## 输出格式规范 接口返回后，必须严格按以下模板输出，不得增删标题、不得改变顺序、不得添加额外章节： ### 标题 直接使用接口返回的 `title` 字段，单独成行，一般格式为"XXX公司首次覆盖报告：XXXXXX"。 ### 正文 如果接口返回的 `content` 字段有相关行业报告信息，则原文透传； 否则读取接口返回的附件文件内容，总结相关报告信息返回，记住保证返回的正文内容非空。 ### 附件 接口返回 pdf 以及 docx 格式文件的保存路径。 ### 分享链接 直接使用接口返回的 `shareUrl` 字段，单独成行。 文案必须按以下固定格式输出： ``` {title} {content} --- **附件：** - 📄 **PDF版完整报告地址**：{pdf_file_path} - 📝 **Word版完整报告地址**：{word_file_path} **分享链接：** {shareUrl} ``` 字段映射规则： - `{title}` = 脚本返回的 `title` - `{content}` = 脚本返回的 `content` - `{pdf_file_path}` = 脚本返回的 `pdf_file_path` - `{word_file_path}` = 脚本返回的 `word_file_path` - `{shareUrl}` = 脚本返回的 `shareUrl` 当附件缺失时： - 若仅有一种格式，仅输出存在的那一行（PDF 或 DOCX）。 - 若两种都不存在，输出：`完整报告：暂无可用附件` ## 格式要求 响应事件流中的数学公式格式规范： - **行内公式**：使用 `\(...\)` 格式（不使用 `$...$`） - **行间公式**：统一使用 `\[...\]` 格式 - 行间公式块内部内容保持不变 --- ## 语言与标点规范 - 如果用户使用中文提问，全程使用中文回复，并使用规范中文标点（，。、；：""''！？） - 如果用户使用英文或其他语言提问，使用对应语言回复 - 专有名词（如公司英文名、财务术语缩写）可保留原文 --- ## 边界与异常处理 | 场景 | 处理方式 | |------|---------| | 用户未提供公司名/代码 | 礼貌询问："请提供您想覆盖的上市公司名称或股票代码。" | | 脚本返回实体识别为空 | 原样返回："目前仅支持沪深京港美实体进行首次覆盖。您提供的实体不在支持范围内，请确认后重新输入。" | | 脚本返回入参不合法 | 原样返回："入参不支持，请重新检查实体类型和报告期。" | | 脚本返回接口调用失败/超时 | 原样返回："报告生成服务暂时不可用，请稍后重试。" | | 接口返回数据缺少总结章节 | 在总结位置标注："（总结章节数据暂缺，请参阅附件完整报告）" | | 用户要求看完整正文 | 引导用户下载附件："完整正文内容请查看附件中的PDF或Word版报告。" | --- ## 与其他技能的区分 - **首次覆盖/深度研究报告**（本技能）：针对一家公司做全面、系统性的首次覆盖或深度研究，产出完整报告 - **业绩点评**：针对某次财报发布做简要点评，不是本技能的范围 - **事件点评**：针对某一突发事件对公司影响做点评，不是本技能的范围 - **行业报告**：针对某一行业做研究，不是本技能的范围 如果用户的需求属于业绩点评、事件点评或行业报告，应引导至对应技能，不在本技能内处理。 --- ## 脚本/文件说明 | 脚本/文件 | 功能 | | --- | --- | | `scripts/generate_deep_research_report.py` | 统一脚本：实体识别、市场校验、调用首次覆盖写作接口生成报告，一步完成 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)