依托东方财富数据库,面向沪深京港美五大市场的上市公司/股票,生成业绩点评类输出(含财报分析、业绩解读)。 当用户明确提出业绩点评、财报分析、业绩解读需求,或出现「业绩点评」「财报点评」「业绩分析」「季报/半年报/年报点评」「财务分析」「盈利分析」「业绩解读」等表述时,应触发本 Skill。 用户点名具体公司/股票...
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install stock-earnings-review或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install stock-earnings-review⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/stock-earnings-review/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: stock-earnings-review description: > 依托东方财富数据库,面向沪深京港美五大市场的上市公司/股票,生成业绩点评类输出(含财报分析、业绩解读)。 当用户明确提出业绩点评、财报分析、业绩解读需求,或出现「业绩点评」「财报点评」「业绩分析」「季报/半年报/年报点评」「财务分析」「盈利分析」「业绩解读」等表述时,应触发本 Skill。 用户点名具体公司/股票并希望获得业绩与盈利维度的分析评价时,应触发本 Skill。 即使用户未明说「业绩点评」,只要意图是对该公司财报或业绩作分析解读,也应触发。 metadata: { "openclaw": { "requires": { "env":["EM_API_KEY"] }, "install": [ { "id": "pip-deps", "kind": "python", "package": "httpx", "label": "Install Python dependencies" } ] } } ---
通过用户问句完成实体识别 → 报告期匹配 → 业绩点评接口生成,并在本地保存 PDF/Word 附件(base64 解码保存)。JSON 过程日志仅在 debug 模式落盘。最终对用户返回标题、接口 content 文本整理结果、附件本地路径、溯源说明与分享链接。
EM_API_KEY(请求头 em_api_key)。EM_API_KEY 由东方财富妙想相关服务签发,用于接口鉴权;使用前请确认来源、范围与有效期。本 skill 采用分步骤调用:由大模型按流程依次调用 1) scripts/validate_entity.py 获得实体 2) scripts/normalize_report_period.py 获得报告期候选 3) 大模型基于用户语义选择 reportDate 4) scripts/call_review_api.py 生成点评并保存附件
无论采用哪种方式,禁止仅由大模型凭知识库「编造」业绩点评全文并冒充 skill 结果。
与 mx_macro_data 相同约定:默认根目录为当前工作目录下的 miaoxiang/stock-earnings-review/(无需手动创建,脚本会自动 mkdir)。
每次执行会在该根目录下再创建一次运行子目录(run_id,含时间戳与短 UUID),结构如下:
| 路径(相对本次 run 根目录) | 说明 | |----------------------------|------| | 01_entity.json | 实体识别结果(仅 --debug) | | 02_report_period.json | 报告期列表与匹配结果(仅 --debug) | | 03_comment_raw.json | 业绩点评接口原始响应(仅 --debug) | | 04_review_result.json | 解析后的点评结果与章节信息(仅 --debug) | | 05_final_result.json | 汇总与 finalOutput(仅 --debug) | | attachments/review.pdf | 接口返回 pdfBase64 解码后的文件(若接口有返回) | | attachments/review.doc | 接口返回 wordBase64 解码后的文件(若接口有返回) |
说明:若接口未返回对应 base64,则不会生成对应文件。非 debug 模式不会生成 01~05.json,但附件仍会保存。
| 变量名 | 说明 | 默认 | |--------|------|------| | EM_API_KEY | 接口鉴权密钥(必填) | 无 | | STOCK_EARNINGS_REVIEW_OUTPUT_DIR | 日志与附件的根目录(其下仍按每次 run 分子目录) | miaoxiang/stock-earnings-review(相对当前工作目录) | | EARNINGS_REVIEW_LOG_DIR | 与上一项同义,兼容旧配置 | 同上 |
EM_API_KEY# macOS / Linux
export EM_API_KEY="your_api_key_here"
# Windows PowerShell
$env:EM_API_KEY="your_api_key_here"
pip3 install httpx --user
# 第一步:实体识别
python3 {baseDir}/stock-earnings-review/scripts/validate_entity.py --query "东方财富 业绩点评"
# 第二步:获取报告期候选
python3 {baseDir}/stock-earnings-review/scripts/normalize_report_period.py \
--secu-code 300059 --market-char SZ --class-code 002001
# 第三步:外层大模型选择 reportDate 后调用点评
python3 {baseDir}/stock-earnings-review/scripts/call_review_api.py \
--secu-code 300059 --market-char SZ --class-code 002001 \
--report-date 2025-12-31 --secu-name 东方财富
可选参数:
| 参数 | 说明 | 必填 | |------|------|------| | validate_entity.py --query | 用户原始问句(需含公司/股票信息) | ✅ | | normalize_report_period.py --selected-report-date | 可选,由上层模型已决策时传入;传入值须在候选列表中 | 否 | | call_review_api.py --attachment-dir | 附件保存目录;不传则默认为 miaoxiang/stock-earnings-review/ | 否 | | call_review_api.py --debug | 输出完整中间字段并落盘调试日志 | 否 |
注意:禁止调用 任何「后台执行、稍后汇报」的方式跑本脚本,只能在当前会话中同步等待到命令完成,拿到 stdout 的结果后再继续,否则会导致本 Skill 失败。
---
整体流程分为三步:实体识别与市场校验 → 报告期匹配 → 生成点评并落盘。
调用 scripts/validate_entity.py,将用户原始问句传入实体识别接口,返回 secuCode、marketChar、classCode、secuName 等;多个实体时取第一个。
调用 scripts/normalize_report_period.py 获取报告期列表;由上层模型根据用户意图选择 reportDate(或通过 --report-date 传入)。若用户未指定报告期,默认取列表中最新一期(以脚本实现为准)。
/assistant/write/choice/reportList 接口返回的是该实体已发布的报告期列表,不包含未发布报告期。 例如请求 {"emCode":"NVDA.O"} 时,返回结果即为英伟达已发布报告期集合。
调用 scripts/call_review_api.py,请求业绩点评接口,解析标题与正文 content,将 PDF/Word base64 写入 attachments/。各阶段 JSON 日志仅在 debug 模式写入。
content 文本进行整理后输出。shareUrl。files.pdf / files.word / files.dataSheet(若生成)。第三步 call_review_api.py 输出仅使用以下字段:title、content、shareUrl、files。
# {title}
{content}
如需查看详细信息,请查看附件 PDF 或 DOC.......
- **附件**:{files}
- **分享链接**:{shareUrl}
review.pdf / review.doc 的文件内容。call_review_api.py 返回的结构化字段(尤其是 summary/content)整理并回复用户。 - 实体识别为空或实体不在支持范围; - 报告期列表为空; - 用户指定的 selected_report_date 不在候选列表(strict 模式)。
ok=false 或返回体中存在 message 字段时,必须原样输出 message,不得改写或替换。---
响应中的数学公式格式:
\(...\) 格式(不使用 $...$)\[...\] 格式| 错误场景 | 处理方式 | |----------|----------| | 问句中无实体 | 向用户确认需要点评的公司名称 | | 实体识别失败 | 提示用户确认公司名称或股票代码 | | 实体不在支持市场 | 返回「目前仅支持沪深京港美实体进行业绩点评」 | | 报告期列表为空 | 提示「暂无该实体的可用报告期数据」 | | 报告期接口调用失败 | 提示「暂时无法获取报告期信息,请稍后重试」 | | 业绩点评接口调用失败 | 提示「业绩点评生成失败,请稍后重试」 | | 用户要求看完整正文 | 直接返回接口 content 文本;如需原文件可提示附件路径,但不读取附件内容 |
| 脚本/文件 | 功能 | |-----------|------| | scripts/validate_entity.py | 实体识别 | | scripts/normalize_report_period.py | 报告期列表与匹配 | | scripts/call_review_api.py | 业绩点评接口与附件落盘 | | BUSINESS_LOGIC.md | 业务逻辑详版:前置检查、报告期 A 股/港美股规则、交付模板、完整错误表、与脚本 strict 模式说明 |
编排层实现完整规则时请同时阅读 BUSINESS_LOGIC.md。
安装 Earnings Review Agent 后,可以对 AI 说这些话来触发它
Help me get started with Earnings Review Agent
Explains what Earnings Review Agent does, walks through the setup, and runs a quick demo based on your current project
Use Earnings Review Agent to relying on the Oriental Fortune database, it generates performance ...
Invokes Earnings Review Agent with the right parameters and returns the result directly in the conversation
What can I do with Earnings Review Agent in my finance & investment workflow?
Lists the top use cases for Earnings Review Agent, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/stock-earnings-review/ 目录(个人级,所有项目可用),或 .claude/skills/stock-earnings-review/(项目级)。重启 AI 客户端后,用 /stock-earnings-review 主动调用,或让 AI 根据上下文自动发现并使用。
Earnings Review Agent 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
Earnings Review Agent 可免费安装使用。请查阅仓库了解许可证信息。
依托东方财富数据库,面向沪深京港美五大市场的上市公司/股票,生成业绩点评类输出(含财报分析、业绩解读)。 当用户明确提出业绩点评、财报分析、业绩解读需求,或出现「业绩点评」「财报点评」「业绩分析」「季报/半年报/年报点评」「财务分析」「盈利分析」「业绩解读」等表述时,应触发本 Skill。 用户点名具体公司/股票...
Earnings Review Agent 属于「Finance & Investment」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my finance & investment tasks using Earnings Review Agent
Identifies repetitive steps in your workflow and sets up Earnings Review Agent to handle them automatically