$npx -y skills add pseudo-longinus/quant-buddy-skills --skill quant-buddy-skill查询A股、港股、美股股票及指数的最新收盘价、开盘价、涨跌幅、成交额、成交量、换手率、PE、PB、市值等实时行情与估值数据。 查询最近N个交易日的价格序列、日涨跌幅序列、窗口最高价、最低价、振幅等短期统计。 查询上市公司最近报告期的营业收入、净利润、归母净利润、ROE、总资产、资产负债率等财务指标(A股及部分港/美股字段,以工具返回为准)。 查询单只股票的预计算指标画像,按估值、财务分析、资金流向、波动率、宏观胜率背景、资产走势等维度返回最新值与上一期值。 支持A股选股筛选、因子计算、策略回测、净值对比、行业聚合排名、上传自有因子CSV、渲染图表。 港股、
| 1 | # 观照量化投研 |
| 2 | |
| 3 | > **首屏优先**:先读本文件前部的「平台工具参数速查」「硬规则」和「场景路由」。简单行情、窗口序列、最近报告期、固定区间收益、K 线图等高频任务命中 Fast Path 时,无需继续整本通读。 |
| 4 | |
| 5 | ## 平台工具参数速查(高频踩坑,先看这一段) |
| 6 | |
| 7 | > 下表是 LLM 最容易写错的三个 schema。任何调用前先核对,不要凭"看起来合理"猜参数名。 |
| 8 | |
| 9 | | 工具 | ✅ 正确参数 | ❌ 模型常见错误(已被 call.py 自动归一化或拦截,但仍应避免) | |
| 10 | |------|------------|------------------------------------------------------------| |
| 11 | | `confirmDataMulti` | `{"data_desc": "市盈率 TTM,股息率"}` — **逗号分隔字符串** | `{"queries": [...]}` / `{"query": "..."}` / `{"names": [...]}` | |
| 12 | | `runMultiFormulaBatchStream` 公式中引用 session 中间变量 | 必须用**双引号**包裹:`排序値 = "A股股息率〔估値数据〕" * "条件合并"` | 裸变量名相乘:`"A股股息率…" * 条件合并` ← 平台直接报错 | |
| 13 | | `readData` | `{"ids": ["69fe…<24位hex>"], "mode": "last_column_full"}` — **必须是 `runMultiFormulaBatchStream` 返回的 `data_id` 字段(hex)** | 传中文变量名 `{"ids": ["Top10股息"]}` / 用错参数名 `{"index_title": "..."}` / `{"variable_names": [...]}` / **传 `expression_id` 而非 `data_id`**(两者相邻易混,传错会返回 `"error": "IndexInfo {id}"`)| |
| 14 | |
| 15 | **口径转换(confirmDataMulti 查询词)**:用户写 `PE(TTM)` / `归母净利润` 等英文或缩写时,查询词应使用**中文规范名**(如 `市盈率 TTM` / `归母净利润`),而不是把用户原文照抄进 `data_desc`。详细规则见 `workflows/global-rules.md#指标口径精确匹配`。 |
| 16 | |
| 17 | --- |
| 18 | |
| 19 | ## 硬规则(违反必失败) |
| 20 | |
| 21 | 0. **工具名与 unknown-tool 红线(最高优先级)**: |
| 22 | - 公式执行唯一可调用工具名:`runMultiFormulaBatchStream`。 |
| 23 | - 禁止调用或重试旧名/错名:`runMultiFormulaBatch` / `runMultiFormula` / `run_multi_formula`。 |
| 24 | - 任何工具返回 `未知工具` / `Unknown tool` / `tool not found` 后,同名工具 **0 次重试**,也不得尝试名称变体。 |
| 25 | - 若 workflow 已声明唯一正确原生工具,只允许切换到该工具 1 次;仍失败则立即输出受控失败答复。 |
| 26 | - 若上一步结果已足够回答用户问题,必须直接收敛回答,禁止继续升级工具链。 |
| 27 | |
| 28 | 1. **认证后验与 session 初始化**: |
| 29 | - 不要在普通查数题第一步读取 `config.json`,也不要检查 `.session.json`、`output/.session*.json` 或任何本地 session 文件。 |
| 30 | - 只要本轮准备调用平台原生工具,先直接调用原生 `newSession`;不得用 Bash / Glob / Read / ls 做 session 存在性探测。 |
| 31 | - **quant-buddy-view 上游继承例外**:若当前任务由 quant-buddy-view 编排,且上游已经通过 `trace_context.py begin` 创建 task_id,不得再生成第二个 task_id。优先由 QBV 的 `scripts/qbs_bridge.py` 调用本技能;bridge 会传 `{"task_mode":"inherit","task_id":"<上游 task_id>","task_source":"quant-buddy-view","user_query":"<用户原始问题>"}` 并用 `QBS_SESSION_KEY=<task_id>` 隔离并发 session。此例外只用于跨 Skill 会话绑定。 |
| 32 | - 继承 task_id 时必须使用显式 `task_mode=inherit`,不要通过 `qbv_` 等字符串前缀猜测来源。继承 session 会锁定 task_id;后续参数若传入不同值,必须按 `TASK_ID_CONTEXT_MISMATCH` 停止,不能静默拆链。 |
| 33 | - quant-buddy-skill 独立使用时保持原行为:不传 `task_mode/task_id`,由 `newSession` 自动生成新的 UUID 并上报 session |