资讯动态

UZI-Skill 数据契约(Data Contracts)完全指南:JSON Schema 定义、6 Task 流水线数据流转与缓存复用

发布时间:2026/10/9 7:38:56 来源:尧图企业网站定制
AI 技能AI 插件金融科技【免费下载链接】UZI-Skill冰冷的钱就这样流进我温暖的口袋-游资UZISkills — 让我们欢迎股海贼王66位投资大佬帮你看盘 · 22维数据 × 180条量化规则 × 17种机构分析方法 · A股/港股/美股项目地址https://gitcode.com/gh_mirrors/uz/UZI-Skill点击查看免费下载本指南以skills/deep-analysis/assets/data-contracts.md为骨架系统讲解 UZI-Skill 深度分析工作流中 5 个 Task 之间的 JSON 数据契约raw_data.json、dimensions.json、panel.json、synthesis.json四个中间产物与reports/、.cache/两类落地目录。读完你既能照 schema 读懂每一份中间 JSON也能理解脚本算数、Agent 下结论的分工如何在数据层面落地并掌握修改字段名时必须同步report-template.html的约束与源码级实现链路。1. 数据契约5 个 Task 之间的数据接力棒UZI-Skill 的深度分析流水线详见 SKILL.md被划分为 6 个 Task每个 Task 的产物都是 JSON 文件Task名称产物 JSON负责人Task 122 维数据采集.cache/{ticker}/raw_data.json脚本 fetcherTask 1.5机构级建模DCF/Comps/LBO/3-Stmt/IC/Porter…内联写入raw_data.json的 dim 20/21/22脚本 Agent 假设审查Task 222 维打分 定性判断.cache/{ticker}/dimensions.json脚本 Agent 写评语Task 365 评委量化裁决.cache/{ticker}/panel.json规则引擎 Agent role-playTask 4综合研判 叙事合成.cache/{ticker}/synthesis.jsonAgent 主导Task 5报告组装reports/{ticker}_{YYYYMMDD}/脚本 Agent 金句数据契约是这套流水线的接口规范其文档开篇立了一条硬性维护红线修改字段名前必须同步更新本文件和report-template.html。也就是说契约文档data-contracts.md与渲染模板report-template.html共同构成字段命名的事实标准——任何一个维度字段改名两端必须一起改否则渲染端会因读不到字段而输出空白或—。这条约束在源码中同样有体现assemble_report.py直接读取synthesis.json dimensions.json panel.json三个文件拼装 HTML见下文第 7 节字段名不一致会直接反映在最终报告上。2. Task 1 产物raw_data.json—— 22 维数据仓库raw_data.json是整个流水线的地基存放 22 个维度的原始抓取结果Task 1.5 的机构建模结果也内联在其中。完整 schema 如下{ ticker: 002273.SZ, name: 水晶光电, market: A, fetched_at: 2026-04-14T12:34:5608:00, dimensions: { 0_basic: { data: { code: 002273.SZ, name: 水晶光电, industry: 光学光电, market_cap: 25860000000, price: 18.56, change_pct: 2.32, pe_ttm: 42.3, pb: 4.12, one_liner: 国内精密光学薄膜龙头 }, source: akshare:stock_individual_info_em, fallback: false }, 1_financials: { data: {...}, source: ..., fallback: false }, ...: ..., 20_valuation_models: { data: { dcf: { wacc_breakdown: {wacc: 0.0696, cost_of_equity: 0.085, after_tax_kd: 0.034}, base_fcf_yi: 8.24, projected_fcf_yi: [9.06, 9.97, 10.97, ...], pv_explicit_yi: 89.7, terminal_value_yi: 450.0, tv_pv_yi: 198.6, tv_pct_of_ev: 69.0, enterprise_value_yi: 288.3, equity_value_yi: 288.3, intrinsic_per_share: 20.73, current_price: 29.03, safety_margin_pct: -28.6, verdict: 略微高估, sensitivity_table: {wacc_axis: [...], g_axis: [...], values_per_share: [[...], ...], center_cell: 20.73}, methodology_log: [Step 1 · WACC: ..., Step 2 · 基期 FCF..., ...] }, comps: { peer_stats: {pe: {...}, pb: {...}, ...}, target_percentile: {pe: 0, pb: 30, ...}, implied_price: {via_median_pe: 59.98}, valuation_verdict: 便宜PE 低于 75% 同行 }, three_statement: { years: [Y1, Y2, Y3, Y4, Y5], income_statement: {revenue: [...], net_income: [...]}, cash_flow: {fcf: [...]} }, lbo: { entry_ebitda_yi: 17.17, irr_pct: 21.7, moic: 2.67, verdict: PE 买方可赚 20% IRR }, summary: { dcf_intrinsic: 20.73, dcf_safety_margin_pct: -28.6, lbo_irr_pct: 21.7, comps_verdict: 便宜... } }, source: compute:fin_models (DCF/Comps/3-stmt/LBO), fallback: false }, 21_research_workflow: { data: { initiating_coverage: { headline: {rating: 减持 (Underperform), target_price: 20.73, current_price: 29.03, upside_pct: -28.6}, executive_summary: ..., investment_thesis: [{pillar: ..., evidence: ..., weight: High}], key_risks: [{risk: ..., severity: High, detail: ...}] }, earnings_analysis: {headline: 双超预期..., beat_miss: {...}}, catalyst_calendar: { events: [{date: 2026-04-15, event: ..., category: past|forward|risk, impact: high|medium|low}], high_impact_count: 1, past_event_count: 10, forward_event_count: 4 }, thesis_tracker: {pillars_passed: 3, pillars_total: 5, thesis_intact_pct: 60, conviction: Medium}, morning_note: {top_call: ..., bullets: [...]}, idea_screens: {value: {...}, growth: {...}, quality: {...}, gulp: {...}, short: {...}}, sector_overview: {industry: ..., market_size: {...}}, summary: {...} } }, 22_deep_methods: { data: { ic_memo: { sections: { I_exec_summary: {headline: ⚪ 观望 (HOLD), recommendation: ..., top_3_risks: [...]}, VII_returns_scenarios: [ {scenario: Bull, price_target: 26.95, return_pct: -7.2, probability_pct: 25}, {scenario: Base, price_target: 20.73, return_pct: -28.6, probability_pct: 50}, {scenario: Bear, price_target: 14.51, return_pct: -50.0, probability_pct: 25} ] } }, competitive_analysis: { porter_five_forces: { new_entrants_threat: {score: 3, rationale: ...}, substitutes_threat: {score: 3, rationale: ...}, supplier_power: {score: 3, rationale: ...}, buyer_power: {score: 3, rationale: ...}, rivalry_intensity: {score: 3, rationale: ...} }, bcg_position: {category: Dog (瘦狗), strategic_action: ...}, industry_attractiveness_pct: 50 }, unit_economics: {business_type: non-recurring, waterfall: [...]}, value_creation_plan: {levers: [...], total_uplift_yi: 6.75}, dd_checklist: {workstreams: [...], completion_pct: 48, manual_review_required: 11}, portfolio_rebalance: {...} } } } }2.1 契约要点逐项拆解顶层字段ticker证券代码、name公司名、marketA/H/U 市场标记、fetched_atISO 8601 时间戳带时区。fetched_at用于判断数据新鲜度也决定后续缓存 TTL 的起点。每个维度三项标配data该维度的业务数据、source数据来源追溯 token如akshare:stock_individual_info_em、fallback布尔值true表示该维度走了降级/兜底路径Agent 需要重点关注。dim 20 估值模型DCF 输出 WACC 拆解wacc/cost_of_equity/after_tax_kd、FCF 预测、显式期 PV、终值及占比、内在价、安全边际与结论sensitivity_table提供 WACC × g 双轴敏感性矩阵center_cell对应基准内在价methodology_log记录每一步计算推导链是可审计的关键字段。Comps 输出同行分位、隐含价LBO 输出 IRR/MOIC。dim 21 研究工作流覆盖首次覆盖评级/目标价/论点/风险、财报解读超预期检测、催化剂日历事件按past|forward|risk分类、按high|medium|low定影响、投资逻辑追踪5 条支柱完好率、晨报与 5 套量化筛选。dim 22 深度方法IC Memo含三情景收益场景、Porter 五力打分、BCG 定位、单位经济、价值创造计划EBITDA 桥、DD 清单completion_pct与manual_review_required提示人工复核数量。2.2 源码级印证DimResult 与三态质量契约文档展示的是落盘后的 JSON 形态而它在源码中的标准容器是DimResult见 schema.py。从源码结构可以确认DimResult的设计目标正是从 v2.15.1 的 bug 教训出发每个 fetcher 返回DimResult而非裸 dict并用Quality枚举显式标注四态数据质量FULLrequired 字段全部有实测值PARTIALrequired 齐但 optional 有缺或反之MISSINGrequired 全空fetcher 跑成功但没数据ERRORfetcher 抛异常或网络失败。DimResult.to_dict()生成 100% 兼容 legacyraw_data.json的顶层字段ticker/data/source/fallback而质量、缺失清单、耗时等 pipeline 元信息放入_pipeline命名空间下游 legacy 代码读不到也不受影响。fallback布尔值由 quality 映射而来error/missing即fallback: true。对应的空值规约规则在 validators.pyNone、、—、-、n/a、暂无、null、NaN以及空容器一律视为缺失落盘前过normalize_data()统一规约为None根绝0 vs None vs —类假数据 bug——注意数值 0 是有效值除非字段语义明确。采集编排在 collect.py 中分三波执行Wave 1 先跑0_basic后续 fetcher 依赖其industryWave 2 并发跑非依赖型 fetchermax_workers6mini_racer 型 fetcher 按串行组隔离Wave 3 串行跑依赖型维度3_macro / 7_industry / 9_futures / 13_policy其中9_futures还依赖8_materials的materials_detail。每个 fetcher 在 base_fetcher.py 的抽象基类约束下只实现_fetch_raw()框架自动完成 normalize、校验、异常捕获。3. Task 2 产物dimensions.json—— 22 维打分结果Task 2 对 22 个维度逐一打分1–10 分、赋权重并给出标签schema 如下{ ticker: 002273.SZ, fundamental_score: 78.4, dimensions: { 1_financials: { score: 8, weight: 5, label: 财报扎实, reasons_pass: [ROE 连续 3 年 18%, 净利率 22%], reasons_fail: [商誉占净资产 35%], raw_pointer: raw_data.json#/dimensions/1_financials } } }3.1 字段语义fundamental_score0–100 的基本面总分由各维度score × weight加权汇总。每个维度包含score1–10 打分、weight权重如财报 5、K 线 4、label一句话标签、reasons_pass/reasons_fail该维度通过/未通过的具体规则理由、raw_pointerJSON Pointer 格式指明对应原始数据在raw_data.json中的位置便于审计回溯。raw_pointer是这份契约里值得注意的设计它把打分结论与原始证据显式挂钩——任何分数都可以沿着raw_data.json#/dimensions/1_financials一路追溯回原始抓取数据。3.2 源码级印证score_from_cachescore.py 的score_from_cache()展示了这份契约的完整消费链路读raw_data.json→ MX API / Playwright 兜底补齐定性维度 →score_dimensions写dimensions.json→generate_panel写panel.json→generate_synthesis写synthesis.json。值得注意的是该实现会在兜底完成后重新写回raw_data.jsonautofill 修改 dim 20/21/22 就位并调用refresh_recovery_artifact生成_data_gaps.json恢复产物保证后序 Task 读到的是最终快照。4. Task 3 产物panel.json—— 65 评委量化裁决Task 3 由规则引擎对 65 位投资大佬进行量化裁决schema 如下{ ticker: 002273.SZ, panel_consensus: 64.2, vote_distribution: { strongly_buy: 8, buy: 12, watch: 18, wait: 7, avoid: 3, n_a: 2 }, signal_distribution: { bullish: 24, neutral: 17, bearish: 9 }, investors: [ { investor_id: buffett, name: 巴菲特, group: A, avatar: avatars/buffett.svg, signal: bullish, confidence: 87, score: 82, verdict: 买入, reasoning: ..., comment: ..., pass: [...], fail: [...], ideal_price: 16.20, period: 3-5 年 } ] }4.1 字段语义panel_consensus0–100 的评审共识分是 Task 4 综合评分的一个输入权重 40%。vote_distribution六档投票分布strongly_buy / buy / watch / wait / avoid / n_a。signal_distribution多空信号统计bullish / neutral / bearish。investors[]每个评委的完整裁决记录——signalbullish/neutral/bearish、confidence0–100 置信度、score量化得分、verdict买入/观望等结论、reasoning引用具体规则的理由、pass/fail命中的规则明细、ideal_price理想买入价、period持仓周期。avatar字段在示例中写作avatars/buffett.svg对应头像文件实际存放于 assets/avatars/ 目录。4.2 与 Agent 的关系按 SKILL.md 的 HARD-GATE-PERSONA-ROLEPLAY规则引擎产出的是骨架分skeleton scoreAgent 必须 spawn 并行 sub-agent 分组 role-play 评委再把人工判断headline/reasoning/score合并回panel.json同时panel.json也可由 investor_db.py 等模块读写该文件在源码中同样消费这份契约。若某次分析被--school F等参数锁定流派panel.json中其他组评委会被标signalskip。5. Task 4 产物synthesis.json—— 综合研判与叙事合成v2.0synthesis.json是整个流水线中最依赖 Agent 判断的产物脚本generate_synthesis()只生成一个 stub关键叙事字段必须由 Claude 重写。完整 schema 在 references/task4-synthesis.md 末尾契约文档中给出关键字段说明与完整 v2.0 示例。5.1 脚本生成stub与 Claude 必写字段的分工脚本生成stuboverall_score0–100 综合分、verdict_label五档定调≥85 值得重仓 / 70–84 可以蹲一蹲 / 55–69 观望优先 / 40–54 谨慎 / 40 回避fundamental_score、panel_consensusinstitutional_modelingdim 20/21/22 的汇总引用DCF intrinsic / LBO IRR / IC recommendation / BCG 等。Claude 必须重写debatebull/bear/rounds[]/judge_verdict/punchline ——每段必须引用具体数字great_divide.punchline20–30 字冲突金句会进入分享卡 PNGdashboard.core_conclusion1–2 句有定论的结论buy_zones.*.rationale每个价位必须有计算逻辑risks[]具体到数字 / 事件dim_commentary每个维度 1–2 句定性评语回答 5 个问题数据可信吗 / 背后故事 / 同行对比 / 结构性问题 / 对论点影响institutional_triangulation.conflict_note解释 DCF/Comps/LBO 为何一致或冲突adjusted_dcf可选默认假设不合理时重跑 DCF 的结果。5.2 完整 v2.0 schema 示例{ ticker: 002273.SZ, name: 水晶光电, overall_score: 60.1, verdict_label: 观望优先, fundamental_score: 66.1, panel_consensus: 50.9, dim_commentary: { 1_financials: [Claude 写] ROE 从 2021 年 18% 掉到 2024 年 11.8%..., 2_kline: [Claude 写] Stage 2 但距 60 日高点仅 -5%..., 14_moat: [Claude 写] 无形资产 规模优势合计 27/40... }, institutional_modeling: { dcf_intrinsic: 20.73, dcf_safety_margin_pct: -28.6, dcf_verdict: 略微高估, lbo_irr_pct: 21.7, lbo_verdict: PE 买方可赚 20% IRR, initiating_rating: 减持 (Underperform), target_price: 20.73, upside_pct: -28.6, ic_recommendation: ⚪ 观望 (HOLD), bcg_position: Dog (瘦狗) }, institutional_triangulation: { conflict_note: [Claude 写] DCF 说高估 28% 但 LBO 说 PE 仍赚 21% IRR — 市场对光学行业增速假设偏悲观 }, debate: { bull: {investor_id: livermore, name: 利弗莫尔}, bear: {investor_id: klarman, name: 卡拉曼}, rounds: [ {round: 1, bull_say: Stage 2 60 日均线站稳..., bear_say: DCF 安全边际 -28%技术面是空中楼阁...} ], punchline: [Claude 写] DCF 说高估 28%但 PE 买方仍能赚 21% IRR — 分歧本身才是信息。 }, great_divide: { bull_avatar: livermore, bear_avatar: klarman, bull_score: 100, bear_score: 0, punchline: [同 debate.punchline] }, buy_zones: { value: {price: 17.62, rationale: DCF 内在价 ¥20.73 × 0.85 安全边际}, growth: {price: 18.05, rationale: Y3 EPS 预测 × 同行中位 PE}, technical: {price: 27.50, rationale: 60 日均线支撑位}, youzi: {price: 29.03, rationale: 龙虎榜未出现集中卖出} }, risks: [ ROE 5 年最低 6.7%达标率 0/5 (巴菲特规则), PE 35x 高于格雷厄姆 15x 标准, DCF 安全边际 -28% ], dashboard: { core_conclusion: [Claude 写] 水晶光电 · 60 分 · 观望优先。机构建模说减持但 LBO 视角 IRR 21% — 分歧来自行业增速假设。, intelligence: { news: ..., risks: [...], catalysts: [...] }, battle_plan: {...} } }5.3 关键设计解读buy_zones四派系定价逻辑task4-synthesis.md 明确给出推导公式价值派 dcf.intrinsic_per_share × 0.8515% 安全边际成长派 三张报表 Y3 EPS × 同行中位 PE技术派 60 日均线 / Stage 2 起涨点 / 颈线支撑游资派 龙虎榜净买入集中区间。debate多空辩论Bull 自动选signalbullish且confidence最高的评委Bear 选signalbearish且confidence最高者bear 为空时从 neutral 中取。每轮 ≤ 80 字必须引用具体数字至少出现一次但是/问题是/代价是类转折。闭环写入机制SKILL.md 明确要求——Agent 的dim_commentary、panel_insights、great_divide_override、narrative_override等成果要写入agent_analysis.json不是直接写synthesis.jsonstage2()的generate_synthesis()会自动读取并合并覆盖脚本 stub若直接写synthesis.jsonstage2 会覆盖它。score.py 中可确认generate_synthesis(raw, dims_scored, panel, agent_analysis...)确实以agent_analysis.json为合并源并在合并后把panel.json一并回写。6. 输出文件与缓存目录报告产物与数据复用6.1 报告输出目录reports/{ticker}_{YYYYMMDD}/ ├── full-report.html # 主报告 ├── share-card.png # 1080×1920 朋友圈 ├── war-report.png # 1920×1080 微信群 ├── one-liner.txt # 一句话 └── kline.png # K 线快照assemble_report.py 顺手出full-report.html是最终交付物Bloomberg 风格主报告share-card.png与war-report.png是两种社交分享图朋友圈竖版 1080×1920、微信群横版 1920×1080one-liner.txt是一句话摘要kline.png是 assemble_report.py 组装时顺手生成的 K 线快照。6.2 缓存目录.cache/{ticker}/ ├── raw_data.json # Task 1 ├── dimensions.json # Task 2 ├── panel.json # Task 3 ├── synthesis.json # Task 4 └── api_cache/ # data_sources.py 的 24h 接口缓存 ├── stock_zh_a_hist__002273__daily.json ├── stock_individual_info_em__002273.json └── ....cache/{ticker}/下的 4 个 JSON 正是前文四个契约产物也是断点续跑--resume与后续 Task 读取的数据源。api_cache/是 data_sources.py 的接口级缓存从源码中的 TTL 常量定义可以确认缓存策略并非一刀切 24h而是按数据特性分级数据TTL依据实时报价 basic60sTTL_REALTIME可用STOCK_NO_CACHE1完全绕过K 线 OHLCV5minTTL_INTRADAY盘中 5 分钟一刷新收盘后天然 stale-OK新闻 / 舆情热榜1h / 5minTTL_HOURLY/TTL_INTRADAY龙虎榜 / 北向资金2hTTL_DAILY收盘后更新窗口覆盖财务数据 / 研报24hTTL_QUARTERLY季报频率7. 从契约到报告源码级消费链路验证最后把四份契约与最终报告串起来看。从源码结构可以确认完整调用链采集与建模pipeline.collect()产出raw_data.json含 dim 20/21/22 机构建模打分与裁决score_from_cache()读取raw_data.json依次产出dimensions.json→panel.json→synthesis.json并在写synthesis.json前合并agent_analysis.json报告组装assemble_report.py 顶部注释写明Usage: python scripts/assemble_report.py {ticker}输出到reports/{ticker}_{YYYYMMDD}/full-report.html其文件头注释明确Assemble the final HTML report from synthesis.json dimensions.json panel.json——它直接以三份契约为输入并通过_get_plugin_version()读取插件 manifest 保持报告 banner 版本同步流水线统一入口synthesize.py 中的synthesize_and_render()作为阶段包装最终调run_real_test.stage2(ticker)完成渲染。这就解释了契约文档开篇那条红线的必要性data-contracts.md、report-template.html、assemble_report.py三者共享同一套字段命名。改一个字段名三处必须联动——契约文档保证 Agent 侧读写正确渲染模板保证字段能落到报告对应区块组装脚本保证数据流闭环。实践中若需查看某字段在报告中的渲染位置可以从 assemble_report.py 的DIM_META配置如1_financials的kpis: [roe, net_margin, revenue_growth, fcf]反查契约字段与模板的对应关系。8. 写在最后契约思维是流水线稳定性的根基对 UZI-Skill 这样脚本算数、Agent 下结论的混合流水线而言四份 JSON 契约的价值在于三点其一职责清晰——脚本只负责产出符合 schema 的数据Agent 只负责消费这些数据做定性判断其二可审计——raw_pointer、source、methodology_log、reasons_pass/fail让每个分数、每句结论都能追溯证据其三可断点续跑——.cache/{ticker}/下的四份 JSON 既是中间产物也是恢复点配合api_cache/的分级 TTL整套流水线既能高效复用数据又能保证实时数据的时效性。理解这份数据契约就等于拿到了读懂整个深度分析流水线的字段级地图。赞分享AI 技能AI 插件金融科技【免费下载链接】UZI-Skill冰冷的钱就这样流进我温暖的口袋-游资UZISkills — 让我们欢迎股海贼王66位投资大佬帮你看盘 · 22维数据 × 180条量化规则 × 17种机构分析方法 · A股/港股/美股项目地址https://gitcode.com/gh_mirrors/uz/UZI-Skill点击查看免费下载相关推荐cjhead是什么仓颉语言头文件生成工具完全入门指南cjhead是什么仓颉语言头文件生成工具完全入门指南 cjhead 是一款面向 仓颉语言Cangjie 的头文件生成工具用于扫描 .cj 源文件和 .cAI 技能AI 插件金融科技ZeroClaw skill-creator JSON Schema 全解析从 evals 到 benchmark 的完整数据契约ZeroClaw skill creator JSON Schema 全解析从 evals 到 benchmark 的完整数据契约 导读 本文以 ZeroCl人工智能AI Agent交互助手工具调用MCP Clients本地部署Agent 工作流RAGDeerFlow skill-creator JSON Schema 全解从 evals 到 benchmark 的八类数据契约DeerFlow skill creator JSON Schema 全解从 evals 到 benchmark 的八类数据契约 skills/public/人工智能大模型AI Agent自主智能体工具调用MCP 服务Agent 沙箱AI 技能后端前端上一篇XUnity AutoTranslatorUnity游戏实时汉化30分钟从下载到出第一条中文下一篇GetQzonehistory如何把QQ空间历史说说批量导出成Excel和网页创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑