Initiation of Coverage Agent

依托东方财富数据库,面向沪深京港美上市公司(A 股、港股、美股、北交所),生成首次覆盖报告或深度研究报告。 当用户提及「首次覆盖」「首次覆盖报告」「初始覆盖」「深度研究」「深度报告」「个股深度」「公司深度」「标的深度分析」,或要求对某只股票/上市公司撰写全面、体系化的研究报告时,必须触发本 Skill。 即使用户仅表述为「帮我写一份 XX 公司的研究报告」而未出现「深度」「首次覆盖」等词,也应触发。 不适用于业绩点评、财报点评、事件点评等场景。

Pasang
$clawhub install initiation-of-coverage-or-deep-dive

上市公司首次覆盖报告 / 深度研究报告生成

概述

本技能用于生成上市公司的首次覆盖报告深度研究报告。通过调用统一脚本 scripts/generate_deep_research_report.py, 一次性完成实体识别、市场校验、报告生成及结果返回。

环境变量

变量名 说明 默认
EM_API_KEY 接口鉴权密钥(必填)
INITIATION_OF_COVERAGE_OR_DEEP_DIVE_OUTPUT_DIR 附件输出目录 ./miaoxiang/initiation_of_coverage_or_deep_dive(相对当前工作目录)

前提条件

1. 配置 EM_API_KEY


# macOS / Linux
export EM_API_KEY="your_api_key_here"


# Windows PowerShell
$env:EM_API_KEY="your_api_key_here"

2. 安装依赖

pip3 install httpx --user

完整工作流程

第一步:调用报告生成脚本

调用 scripts/generate_deep_research_report.py 脚本,将用户的原始问句作为参数传入。该脚本内部自动完成以下全部流程:

  1. 实体识别与市场校验:调用实体识别接口,从用户问句中识别沪深京港美实体,返回标准化信息(secuCodemarketCharclassCodesecuName);多个实体时优先取第一个;未识别到支持的实体则直接返回错误提示。

  2. 报告生成:将校验通过的实体信息作为参数,调用首次覆盖写作接口生成完整报告。

调用方式

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 统一脚本:实体识别、市场校验、调用首次覆盖写作接口生成报告,一步完成