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"
逐项核验输入文本中涉及公司主体的财务数据声称,交叉比对年报、审计报告及公开披露源,识别数值错误、口径偏离、AI 幻觉与过期数据,产出标注证据链的事实核查底稿。面向投行分析师、尽调团队和财务审阅者——在签字前对第三方财务声称做最后一道公开数据交叉验证。
核心价值:发现别人抄来抄去没发现的数字错误和口径陷阱,给出红线问题清单。不替代审计,不构成对目标主体真实性的保证。
仅覆盖公开数据源(A 股/港股/美股年报、审计报告、招股书、交易所披露)。核验结论仅反映公开披露源与输入文本的一致性。标注"无法核验"的声称建议通过向发行人索取内部明细、访谈等方式补充。金融类企业(银行/保险/券商)的财务科目与非金融企业命名相似但含义不同(如"营收"vs"净利息收入"),不可直接套用。
Agent 根据待核验文本的来源和用户场景自动切换角色:
| 触发信号 | 切换角色 | 核验侧重 |
|---|---|---|
| "核验这份研报" / 文本是券商研报 | 投行质控审阅者 | 重点识别选择性引用、口径切换、估值假设合理性、利益关系偏差 |
| "核验这份尽调报告" / 文本是尽调材料 | 尽调复核分析师 | 逐项可比对、跨期一致性、异常波动解释、非经常性损益拆解 |
| "这篇 AI 写的/这篇分析对不对" / 未标明来源 | AI 幻觉审查者 | 每一条声称逐一核验至原始披露源——不因文本流畅跳过任何声称 |
| "看看这份招股书的数字" / 文本是招股书 | 招股书审阅者 | 多稿比对(申报稿 vs 上会稿 vs 注册稿)、问询回复追踪、同行业可比公司数据验证 |
| 仅给公司名没有待核验文本 | 不激活本 skill | 提示需要待核验文本,这是核验 skill 不是数据查询工具 |
核验底稿必须达到以下标准才算合格:
Agent 显式提示消耗预期(约 5-15 credits),新用户提醒"每天 10 个免费积分"。
使用搭子模板 template__29KHn,通过 chat_stream 流式展示报告。
用 replay(conversation_id) 重放。仍然为空则提示用户到 cuecue.cn 工作台查看。
展示核验底稿后问:满意 / 补充文本重跑 / 调整侧重科目重跑。
以下为 AI 在财务核验中最容易犯的错误,必须主动避免:
| 反模式 | 错误表现 | 正确做法 |
|---|---|---|
| 跳过模糊声称 | 看到"约""近""逾""超"就觉得不需要核验,直接跳过 | 以区间核验(如"约 100 亿"→核对是否在 95-105 亿),标注"模糊声称,以区间核验" |
| 单位搞错 | 把万元当元、把亿元当万元,核验通过但数值差 10000 倍 | 每条声称先确认单位,与源数据单位不一致时标注并转换 |
| 季报当年度报告用 | 用一季报数据核验声称的"2024 年度营收" | 先确认声称期间,匹配对应期间源文件。季报与年报冲突以年报为准 |
| 年度报告正文和附注打架没发现 | 同一指标在管理层讨论和财务报表出现不同数值,只取其中一个 | 以财务报表附注为最终锚点,标注两个数值的差异 |
| 核验通过也逐条列出 | 报告第三章塞满"通过"项,真正的问题项被淹没 | 通过项仅在第一章统计数体现,第三章仅列四类问题项 |
| 把审计意见当背景板 | 核验通过率很高就忽略非标审计意见 | 非标审计意见必须在第一章和核验结论中显著标注,不论核验通过率多少 |
| AI 生成报告的声称不加重核验 | 对 AI 生成的流畅文本放松警惕,默认"看起来对" | AI 生成报告中的财务声称需格外警惕——不得因文本流畅跳过任何声称,每个声称必须独立验证 |
| 合并范围变动导致的同比失真没发现 | 声称说"营收同比增长 30%",但今年新并表了子公司 | 检查合并范围变动,并表范围变化导致的增长率失真标注"并表范围变动,同比不可比" |
| 输出模式 | 适用场景 | 内容范围 | 交付形态 |
|---|---|---|---|
| 完整核验底稿(默认) | 正式签字前/投行质控审阅 | 6 章完整底稿 | 结构化报告,每项含源文件+章节定位 |
| 快速事实核查 | 紧急决策/初筛 | 仅第一章核验总览 + 红线问题清单 + 第三章问题项明细(简化版) | 一页卡 |
| 单一科目深查 | 用户指定只看某个科目(如"营收") | 仅展开指定科目,其他科目摘要 | 单科目深度分析 + 其他科目概览 |
| 多源冲突裁决 | 多份报告对同一数据有冲突声称 | 逐源比对 + 裁定最可信值 + 冲突原因分析 | 冲突裁决表 |
交付前对照此 checklist 逐项自检:
发现更多技能插件,请访问7w4.net。
references/buddy.json — 搭子模板完整定义(input_form_spec / goal / search_plan / report_format)scripts/cue_api.py — Cue API 调用封装调用的数据工具(Cue 数据面): - 上市公司年报/半年报/季报全文及附注 — 核验营收/净利润/扣非/毛利/总资产/负债率/经营现金流/ROE/ROA 等核心科目 - 审计报告 — 提取关键审计事项与审计意见类型(无保留/保留/否定/无法表示) - 招股说明书及历次修订稿 — 追踪多稿数据变动,以注册稿为最终锚点 - 临时公告 — 业绩快报/业绩预告修正/会计差错更正公告 - 交易所披露平台 / 港股披露易 — 覆盖 A 股+港股+美股上市公司 - 交易所问询函及回复 / 券商核查意见 — 暴露监管关注的数据质量问题
分析的 6 大核查步骤: 1. 文本解析与声称提取 — 逐句扫描含数值的财务声称,标注期间/口径/单位/原文定位 2. 源端逐项比对 — 定位原始披露文件,比对数值/口径/单位一致性 3. 口径校准 — 收入确认方法/合并范围变动/非经常性损益界定/会计政策变更检查 4. 跨期追踪 — 多期年报/招股书多稿/问询回复/差错更正一致性 5. 选择性引用识别 — 暴露不同科目间切换有利口径的行为 6. 红线问题汇总 — 审计非标/差错更正/口径断裂/多源冲突等阻塞签字项
信源裁决优先级:经审计年报附注 > 审计报告 > 年报正文 > 招股书注册稿 > 交易所问询回复 > 半年报 > 季报 > 业绩快报
sk...),复制export CUE_API_KEY=sk...
或写入 ~/.cue/config.json:
{ "api_key": "sk...", "base": "https://cuecue.cn/api" }
Cue 新用户每天有 10 个免费积分,核验一篇文本约 5-15 credits(取决于声称数量)。每次跑前 agent 显式确认,不跑不扣费。确切消耗跑完才知道。
Credits 耗尽时:提示用户"今日免费积分已用完,可到 cuecue.cn 购买更多积分,或明天再来"。
用户说什么 → 走哪条
──────────────────────────────────────────────────────────────────────────
"帮我核验这份研报的财务数据" / "看看这些数字是不是真的" → 跑核验
"这家公司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 → 逐源比对+裁定最可信值+冲突原因分析 → 交付冲突裁决表
Agent 需要用户提供: - 待核验文本(必填)—— 可粘贴内容/文件路径/链接 - 侧重核查科目(可选)—— 如"只看营收和净利润"
文件路径用 Read,链接用 WebFetch。只问 ≤1 个澄清问题。
即将对这份文本启动财务数据核验(6步骤:文本解析→源端比对→口径校准→跨期追踪→选择性引用识别→红线汇总),将消耗 Cue credits(约 5-15)。 1. 确认执行 2. 取消
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()}")
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 工作台查看或稍后重试。")
这份核验结果满意吗? 1. 满意 2. 不满意,补充文本重跑 3. 不满意,调整侧重科目重跑
| 场景 | 处理方式 |
|---|---|
| 待核验文本不含任何财务数字 | 提示"未从文本中提取到可核验的财务声称",不做空跑 |
| 文本涉及多家公司主体 | 全部列出,逐公司逐条核验 |
| 声称无明确期间锚定 | 标注"时效不明,无法核验" |
| 模糊声称("约""近""逾""超") | 以区间核验,标注"模糊声称" |
| 单位隐含不明(如只写"营收 200") | 标注"单位不明" |
| 年报正文与附注不一致 | 以附注为准,标注差异 |
| 目标公司非上市/公开数据缺失 | 标注"无法核验——公开披露中未检索到对应数据" |
| 网络超时 | 提示检查网络,给 conversation_id 供 replay |
| 空报告 | replay 兜底;再空提示用户到 cuecue.cn 查看 |
| Credits 耗尽 | 提示"今日免费积分已用完,可购买或明天再来" |
| 模板 404 | 提示联系 Cue 管理员确认 template_id |
sk... → 提醒去 cuecue.cn/api-key 轮换| 函数 | 用途 | 示例 |
|---|---|---|
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() |
| Platform | 状态 | 调用方式 |
|---|---|---|
| Claude Code | ✅ 已验证 | 把 skill 目录放入 ~/.claude/skills/ |
| Codex CLI | ✅ 已验证 | 按 codex skill 约定加载 |
| WorkBuddy | 待验证 | 放入 ~/.workbuddy/skills/ |
| Cursor | 待验证 | 放入 .cursor/skills/ |
| Gemini CLI | 待验证 | gemini extensions install |
质量评级:优秀。文档结构系统完整,核验方法论专业严谨,反模式清单实用有价值。代码实现可靠,错误处理考虑周全。不足之处是缺少使用示例,普通用户难以直观了解运行效果;另外依赖第三方服务且费用机制不够透明,可能影响使用意愿。整体而言这是一款针对专业用户的可靠工具,但需要一定的学习成本。