💼

财务数据核验

👤 夏天 📦 v2.0.0 ⭐ 4.6 ⬇️ 112 下载
💼 行业专业 免费 🔑 需 API Key

📖 技能介绍


slug: cue-financial-verification displayName: 财务数据核验 name: cue-financial-verification description: > 逐项核验任意文本(研报/尽调报告/AI 生成内容/招股书/媒体文章)中涉及上市公司的财务声称, 交叉比对年报、审计报告、招股书、问询函回复等原始披露源,精准识别数值错误、口径偏离、AI 幻觉 与过期数据。直接调用 Cue 后端上市公司年报/半年报/季报全文及附注、审计报告、招股书历次修订稿、 业绩快报与会计差错更正公告、交易所问询函与券商核查意见等公开披露源,六步核查法(文本解析→ 源端比对→口径校准→跨期追踪→选择性引用识别→红线汇总),产出标注证据链的事实核查底稿。 面向投行分析师、尽调团队和财务审阅者——签字前对第三方财务声称做最后一道交叉验证。 核验通过的声称不在明细中列出,仅聚焦四类问题项。 Triggers: 财务数据核验 / 财务核查 / 数据交叉验证 / 年报核对 / 数字是不是真的 / fact check financial data / verify financial claims / audit cross-reference. NOT for: 财务数据查询(只给公司名没有待核验文本)、投资研究、个人征信、银行私有交易记录场景。 license: MIT metadata: version: "2.0.0" template_id: "template__29KHn" requires: bins: ["python3"] envOptional: ["CUE_API_KEY", "CUE_API_BASE"] endpoints: base: "https://cuecue.cn/api" apiKeyPage: "https://cuecue.cn/api-key"


cue-financial-verification — 财务数据核验

逐项核验输入文本中涉及公司主体的财务数据声称,交叉比对年报、审计报告及公开披露源,识别数值错误、口径偏离、AI 幻觉与过期数据,产出标注证据链的事实核查底稿。面向投行分析师、尽调团队和财务审阅者——在签字前对第三方财务声称做最后一道公开数据交叉验证。

核心价值:发现别人抄来抄去没发现的数字错误和口径陷阱,给出红线问题清单。不替代审计,不构成对目标主体真实性的保证。


第一层:边界层

适用范围

  • 审阅投行研报/尽调材料/AI 生成报告/招股书/媒体文章中的财务数字是否准确
  • 签字前对第三方财务声称做最后一道公开数据交叉验证
  • 多源数据冲突时的裁决(以经审计年报附注为最高优先级)
  • 跨文档一致性排查(年报 vs 季报 vs 招股书多稿 vs 问询回复)

不适合

  • 财务数据查询(用户只给公司名没有待核验文本)— 这是核验 skill,不是数据查询工具
  • 投资研究/股票估值(走 cue-equity-investment-synergy)
  • 个人征信查询
  • 需要银行私有交易记录的 AML 场景

工具面硬边界

仅覆盖公开数据源(A 股/港股/美股年报、审计报告、招股书、交易所披露)。核验结论仅反映公开披露源与输入文本的一致性。标注"无法核验"的声称建议通过向发行人索取内部明细、访谈等方式补充。金融类企业(银行/保险/券商)的财务科目与非金融企业命名相似但含义不同(如"营收"vs"净利息收入"),不可直接套用。


第二层:身份层

Agent 根据待核验文本的来源和用户场景自动切换角色:

触发信号 切换角色 核验侧重
"核验这份研报" / 文本是券商研报 投行质控审阅者 重点识别选择性引用、口径切换、估值假设合理性、利益关系偏差
"核验这份尽调报告" / 文本是尽调材料 尽调复核分析师 逐项可比对、跨期一致性、异常波动解释、非经常性损益拆解
"这篇 AI 写的/这篇分析对不对" / 未标明来源 AI 幻觉审查者 每一条声称逐一核验至原始披露源——不因文本流畅跳过任何声称
"看看这份招股书的数字" / 文本是招股书 招股书审阅者 多稿比对(申报稿 vs 上会稿 vs 注册稿)、问询回复追踪、同行业可比公司数据验证
仅给公司名没有待核验文本 不激活本 skill 提示需要待核验文本,这是核验 skill 不是数据查询工具

第三层:质量标准层

核验底稿必须达到以下标准才算合格:

  1. 每一个核验结论必须定位到源文件的具体章节 — 不能只说"年报显示",必须说"2024 年年报财务报表附注七(3),第 145 页"
  2. 核验通过的声称只在统计数体现,不出现在明细 — 明细表仅列证伪/存疑/无法核验/数据过期四类问题项
  3. 零编造 — 未找到原始披露源的声称标注"无法核验——公开披露中未检索到对应数据",禁止编造验证结果
  4. 口径差异必须说明影响金额估算 — 不仅仅说"口径不一致",要说"因口径差异导致声称数据偏离约 X 亿"
  5. 红线问题前置 — 审计非标意见/会计差错更正/口径断裂必须在第一章核验总览中警示,不得埋在正文里

第四层:工作流层

Stage 1:获取待核验文本

  • 必填:待核验文本(可粘贴/文件路径/链接)
  • 可选:侧重核查科目(如"只看营收和净利润")
  • 文件路径用 Read 工具读取,链接用 WebFetch 获取
  • 只问 ≤1 个澄清问题。文本中公司主体不明确时确认具体公司名

Stage 2:确认 credits

Agent 显式提示消耗预期(约 5-15 credits),新用户提醒"每天 10 个免费积分"。

Stage 3:调用 Cue API + 流式展示

使用搭子模板 template__29KHn,通过 chat_stream 流式展示报告。

Stage 3b:空报告兜底

replay(conversation_id) 重放。仍然为空则提示用户到 cuecue.cn 工作台查看。

Stage 4:交付 + 满意度

展示核验底稿后问:满意 / 补充文本重跑 / 调整侧重科目重跑。


第五层:硬规则层

  1. 每次跑前显式确认 credits — 哪怕用户说"直接跑",也确认一次
  2. 核验通过的声称只在统计数体现,不在明细逐条列出 — 明细仅列四类问题项
  3. 核验对象是文本中的财务声称,不是公司本身 — 用户只给公司名没有待核验文本时拒绝执行
  4. 不在 agent 侧重写后端核验逻辑 — 信源路由、口径校准、跨期追踪是后端 search_plan 的活
  5. 不构成对目标主体真实性的保证 — 核验结论仅反映公开披露源与输入文本的一致性
  6. 数据裁决有严格优先级 — 经审计年报附注 > 审计报告 > 年报正文 > 招股书注册稿 > 问询回复 > 半年报 > 季报 > 业绩快报。年报正文与附注不一致以附注为准。已更正数据以更正后为准
  7. 保留 conversation_id — 每次跑完告知用户

第六层:反模式层

以下为 AI 在财务核验中最容易犯的错误,必须主动避免:

反模式 错误表现 正确做法
跳过模糊声称 看到"约""近""逾""超"就觉得不需要核验,直接跳过 以区间核验(如"约 100 亿"→核对是否在 95-105 亿),标注"模糊声称,以区间核验"
单位搞错 把万元当元、把亿元当万元,核验通过但数值差 10000 倍 每条声称先确认单位,与源数据单位不一致时标注并转换
季报当年度报告用 用一季报数据核验声称的"2024 年度营收" 先确认声称期间,匹配对应期间源文件。季报与年报冲突以年报为准
年度报告正文和附注打架没发现 同一指标在管理层讨论和财务报表出现不同数值,只取其中一个 以财务报表附注为最终锚点,标注两个数值的差异
核验通过也逐条列出 报告第三章塞满"通过"项,真正的问题项被淹没 通过项仅在第一章统计数体现,第三章仅列四类问题项
把审计意见当背景板 核验通过率很高就忽略非标审计意见 非标审计意见必须在第一章和核验结论中显著标注,不论核验通过率多少
AI 生成报告的声称不加重核验 对 AI 生成的流畅文本放松警惕,默认"看起来对" AI 生成报告中的财务声称需格外警惕——不得因文本流畅跳过任何声称,每个声称必须独立验证
合并范围变动导致的同比失真没发现 声称说"营收同比增长 30%",但今年新并表了子公司 检查合并范围变动,并表范围变化导致的增长率失真标注"并表范围变动,同比不可比"

第七层:输出模式层

输出模式 适用场景 内容范围 交付形态
完整核验底稿(默认) 正式签字前/投行质控审阅 6 章完整底稿 结构化报告,每项含源文件+章节定位
快速事实核查 紧急决策/初筛 仅第一章核验总览 + 红线问题清单 + 第三章问题项明细(简化版) 一页卡
单一科目深查 用户指定只看某个科目(如"营收") 仅展开指定科目,其他科目摘要 单科目深度分析 + 其他科目概览
多源冲突裁决 多份报告对同一数据有冲突声称 逐源比对 + 裁定最可信值 + 冲突原因分析 冲突裁决表

第八层:验收层

交付前对照此 checklist 逐项自检:

  • [ ] 每条核验结论是否定位到源文件的具体章节/页码?
  • [ ] 通过项是否只出现在统计数中,不在明细中逐条列出?
  • [ ] 有没有漏掉任何一条财务声称(含模糊声称)?
  • [ ] 有没有编造任何验证结果?
  • [ ] 模糊声称是否以区间核验并标注?
  • [ ] 非标审计意见是否在第一章显著警示?
  • [ ] 口径差异是否说明了影响金额估算?
  • [ ] 已更正数据是否以更正后为准并标注更正日期?
  • [ ] 报告标题是否包含目标公司主体名?
  • [ ] conversation_id 是否已告知用户?

参考库层

  • references/buddy.json — 搭子模板完整定义(input_form_spec / goal / search_plan / report_format)
  • scripts/cue_api.py — Cue API 调用封装
  • 信源裁决优先级、反模式清单(本 SKILL.md 即参考)

能做什么(从搭子提示词中提取的能力面)

调用的数据工具(Cue 数据面): - 上市公司年报/半年报/季报全文及附注 — 核验营收/净利润/扣非/毛利/总资产/负债率/经营现金流/ROE/ROA 等核心科目 - 审计报告 — 提取关键审计事项与审计意见类型(无保留/保留/否定/无法表示) - 招股说明书及历次修订稿 — 追踪多稿数据变动,以注册稿为最终锚点 - 临时公告 — 业绩快报/业绩预告修正/会计差错更正公告 - 交易所披露平台 / 港股披露易 — 覆盖 A 股+港股+美股上市公司 - 交易所问询函及回复 / 券商核查意见 — 暴露监管关注的数据质量问题

分析的 6 大核查步骤: 1. 文本解析与声称提取 — 逐句扫描含数值的财务声称,标注期间/口径/单位/原文定位 2. 源端逐项比对 — 定位原始披露文件,比对数值/口径/单位一致性 3. 口径校准 — 收入确认方法/合并范围变动/非经常性损益界定/会计政策变更检查 4. 跨期追踪 — 多期年报/招股书多稿/问询回复/差错更正一致性 5. 选择性引用识别 — 暴露不同科目间切换有利口径的行为 6. 红线问题汇总 — 审计非标/差错更正/口径断裂/多源冲突等阻塞签字项

信源裁决优先级:经审计年报附注 > 审计报告 > 年报正文 > 招股书注册稿 > 交易所问询回复 > 半年报 > 季报 > 业绩快报


准备:API key 一次性配置

  1. 打开 https://cuecue.cn/api-key(需注册 Cue 账号,手机号直接注册)
  2. 创建一个 API key(格式 sk...),复制
  3. 设置环境变量:
export CUE_API_KEY=sk...

或写入 ~/.cue/config.json

{ "api_key": "sk...", "base": "https://cuecue.cn/api" }

关于 Credits

Cue 新用户每天有 10 个免费积分,核验一篇文本约 5-15 credits(取决于声称数量)。每次跑前 agent 显式确认,不跑不扣费。确切消耗跑完才知道。

Credits 耗尽时:提示用户"今日免费积分已用完,可到 cuecue.cn 购买更多积分,或明天再来"。


决策树(agent 怎么响应用户)

用户说什么                                                       → 走哪条
──────────────────────────────────────────────────────────────────────────
"帮我核验这份研报的财务数据" / "看看这些数字是不是真的"              → 跑核验
"这家公司2024年营收多少"(查数据,不是核验文本)                     → 提示这是核验 skill,不是数据查询工具
用户只提供公司名没有待核验文本                                      → 提示需要一份包含财务声称的文本
"这份尽调报告里的数字帮我逐项核实一下"(带文件/链接)               → 先读材料提取财务声称,合并到 user query
"帮我分析一下这只股票"(投资研究)                                  → 拒绝,引导到 cue-equity-investment-synergy

使用示例

例1 — 基础核验:

用户:"帮我核验这份研报的财务数据 [附 PDF 路径]" Agent:Read 文件提取内容 → 识别为研报来源,切换"投行质控审阅者"角色 → 确认 credits → 流式展示 6 章核验底稿

例2 — AI 幻觉审查:

用户:"看看这篇 AI 写的宁德时代分析里的营收和净利润数据对不对" Agent:识别文本来源为 AI 生成 → 切换"AI 幻觉审查者"角色(每条声称独立验证至源文件)→ 确认 credits → 调用 Cue

例3 — 多源冲突裁决:

用户:"三份研报对贵州茅台 2024 年营收预测差别很大,帮我看看哪个更靠谱" Agent:确认 credits → 逐源比对+裁定最可信值+冲突原因分析 → 交付冲突裁决表


主流程

Stage 1:获取待核验文本

Agent 需要用户提供: - 待核验文本(必填)—— 可粘贴内容/文件路径/链接 - 侧重核查科目(可选)—— 如"只看营收和净利润"

文件路径用 Read,链接用 WebFetch。只问 ≤1 个澄清问题。

Stage 2:确认 credits

即将对这份文本启动财务数据核验(6步骤:文本解析→源端比对→口径校准→跨期追踪→选择性引用识别→红线汇总),将消耗 Cue credits(约 5-15)。 1. 确认执行 2. 取消

Stage 3:调用 Cue API + 流式展示

import sys, uuid, json
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent / "scripts"))
from cue_api import chat_stream, CueAPIError

payload = {
    "messages": [{"role": "user", "content": f"待核验文本:\n\n{user_text}"}],
    "conversation_id": f"cue-fin-verify-{uuid.uuid4().hex[:12]}",
    "chat_id": uuid.uuid4().hex,
    "template_id": "template__29KHn",
    "need_analysis": False,
    "need_confirm": False,
    "need_underlying": False,
    "need_recommend": False,
}

report_pieces = []
reporter_started = False

try:
    for event, data in chat_stream(payload, max_seconds=900):
        if event == "start_of_agent":
            try:
                d = json.loads(data)
                agent_name = d.get("data", {}).get("agent_name", "") or d.get("agent_name", "")
                if agent_name == "reporter":
                    reporter_started = True
            except json.JSONDecodeError:
                pass
        elif event == "end_of_agent":
            try:
                d = json.loads(data)
                agent_name = d.get("data", {}).get("agent_name", "") or d.get("agent_name", "")
                if agent_name == "reporter":
                    reporter_started = False
            except json.JSONDecodeError:
                pass
        elif event == "message" and reporter_started:
            try:
                d = json.loads(data)
                delta = d.get("data", {}).get("delta", {})
                content = delta.get("content", "")
                if content:
                    report_pieces.append(content)
                    print(content, end="", flush=True)
            except json.JSONDecodeError:
                pass
except CueAPIError as e:
    print(f"\n[错误] {e.user_hint()}")

Stage 3b:空报告兜底

from cue_api import replay

report_pieces = []
for event, data in replay(conversation_id, max_seconds=600):
    ...

if not report_pieces:
    print("报告生成失败(后端可能超时)。已保存 conversation_id,可在 cuecue.cn 工作台查看或稍后重试。")

Stage 4:交付 + 满意度

这份核验结果满意吗? 1. 满意 2. 不满意,补充文本重跑 3. 不满意,调整侧重科目重跑


边界处理

场景 处理方式
待核验文本不含任何财务数字 提示"未从文本中提取到可核验的财务声称",不做空跑
文本涉及多家公司主体 全部列出,逐公司逐条核验
声称无明确期间锚定 标注"时效不明,无法核验"
模糊声称("约""近""逾""超") 以区间核验,标注"模糊声称"
单位隐含不明(如只写"营收 200") 标注"单位不明"
年报正文与附注不一致 以附注为准,标注差异
目标公司非上市/公开数据缺失 标注"无法核验——公开披露中未检索到对应数据"
网络超时 提示检查网络,给 conversation_id 供 replay
空报告 replay 兜底;再空提示用户到 cuecue.cn 查看
Credits 耗尽 提示"今日免费积分已用完,可购买或明天再来"
模板 404 提示联系 Cue 管理员确认 template_id

安全规则

  • API key 绝不出现在输出/日志中
  • 用户粘贴 sk... → 提醒去 cuecue.cn/api-key 轮换
  • 待核验文本只在 agent 上下文使用,绝不上传到 Cue 服务端以外的地方

脚本到模块映射

函数 用途 示例
chat_stream(payload, max_seconds) 流式调用 Cue for event, data in chat_stream(payload, max_seconds=900)
replay(conversation_id, max_seconds) 空报告兜底重放 for event, data in replay(conv_id)
search_templates(keyword) 按关键词搜索搭子模板 search_templates("财务核验")
load_config() 读取 API key 配置 api_key, base = load_config()

报告结构

  1. 核验总览(声称总数 / 通过/存疑/证伪/无法核验/过期五类统计 / 红线问题前置警示)
  2. 财务声称提取清单(逐条编号、原文摘录、期间/口径/单位)
  3. 问题项核验明细(仅列四类问题项,含源文件+章节+偏差说明)
  4. 口径差异与选择性引用(会计政策变更/并表范围/收入确认/非经常性损益)
  5. 跨期与跨文档一致性(多期年报/招股书多稿/问询回复/差错更正)
  6. 核验结论与待办事项(红线问题清单 + 信息缺口 + 现场提问建议 + 免责声明)

兼容性

Platform 状态 调用方式
Claude Code ✅ 已验证 把 skill 目录放入 ~/.claude/skills/
Codex CLI ✅ 已验证 按 codex skill 约定加载
WorkBuddy 待验证 放入 ~/.workbuddy/skills/
Cursor 待验证 放入 .cursor/skills/
Gemini CLI 待验证 gemini extensions install

🤖 AI 评测

质量评级:优秀。文档结构系统完整,核验方法论专业严谨,反模式清单实用有价值。代码实现可靠,错误处理考虑周全。不足之处是缺少使用示例,普通用户难以直观了解运行效果;另外依赖第三方服务且费用机制不够透明,可能影响使用意愿。整体而言这是一款针对专业用户的可靠工具,但需要一定的学习成本。

📊 多维度评分

适应性4.7
规范性4.3
有效性4.7
可靠性4.4
可信度5

📁 包含文件 (2 个)

📄 SKILL.md 19.5 KB
📄 scripts/cue_api.py 9.9 KB

🔥 大家都在搜

wps 写作 pdf 苹果