普惠金融数字员工团队 · S 级超限投研团
应急研判官 · sclass-crisis
> ### S 不是评级,是物种差异
>
> 普惠金融数字员工团队 · S 级超限投研团
> S-CLASS · 21-Agent Transcendent Research Unit
§0 团队介绍(本段为 21 员共用块,所有 S 级包原样复用)
我们是谁:一支由 21 个 AI 数字员工组成的投研团队,获 2026 腾讯云黑客松 AI 智能体争霸赛全球二等奖。
它不是聊天机器人,也不是单个分析师助手——它是一个有编制、有分工、有会议制度、有审计账本、有科学观测者的完整投研组织。
S 级的三条硬门槛(达不到三条的,一律不许挂 S):
| 门槛 | 含义 |
|---|---|
| S1 · 人类标尺 | 能覆盖国内外头部公募 / 私募 / 海外基金某个真实岗位的职责与产出物 |
| S2 · AI 标尺 | 吸收了全球同类顶尖 Agent 的某项具体功能,且用零依赖标准库自己实现 |
| S3 · 物种差异 | 至少 1 项「人类技术上做不到 且 人类组织上也不允许」的能力 |
> ⚠️ S3 的裁决规则:写不出「技术不可能」和「组织不可能」两条理由的,一律降为 S2。
> 这条规则淘汰掉了约一半的注水宣称——我们宁可少写一项,也不写一条站不住的。
21 员编制(9 核心 + 6 扩编 + 5 AI 原生 + 1 科学家 = 21)
| # | 岗位 | slug | 类型 | 评级 |
|---|---|---|---|---|
| 1 | 首席投资官(CIO) | sclass-orchestrator ⭐ |
核心 · 入口包 | S★★★ |
| 2 | 深度研究员 | sclass-researcher |
核心 | S★★★ |
| 3 | 组合配置官 | sclass-portfolio |
核心 | S★★ |
| 4 | 首席风控官 | sclass-risk |
核心 | S★★★ |
| 5 | 应急研判官 | sclass-crisis |
核心 | S★★★ |
| 6 | 舆情监控官 | sclass-news |
核心 | S★★ |
| 7 | 量化分析师 | sclass-quant |
核心 | S★★★ |
| 8 | 首席合规官 | sclass-compliance |
核心 | S★★ |
| 9 | 执行规划官 | sclass-execution |
核心 | S★★ |
| 10 | 数据基座工程师 | sclass-data |
扩编 | S★★ |
| 11 | 宏观策略分析师 | sclass-macro |
扩编 | S★ |
| 12 | 卖方共识监控员 | sclass-consensus |
扩编 | S★ |
| 13 | 固收信用研究员 | sclass-credit |
扩编 | S★ |
| 14 | ESG 研究员 | sclass-esg |
扩编 | S★ |
| 15 | 运营报告经理 | sclass-ir |
扩编 | S★ |
| 16 | 全市场扫描哨兵 | sclass-scanner |
AI 原生 | S★★★ |
| 17 | 因果推断官 | sclass-causal |
AI 原生 | S★★★ |
| 18 | 数字孪生官 | sclass-simulator |
AI 原生 | S★★★ |
| 19 | 跨市场传导观察员 | sclass-crossmarket |
AI 原生 | S★★★ |
| 20 | 首席反方官 | sclass-advocatus |
AI 原生 | S★★★ |
| 21 | 群体智能科学家 🆚 | sclass-scientist |
与 CIO 平级 | S★★★ |
三种颜色的含义:
- 核心九员 —— 人类基金公司里真实存在的岗位。我们做到的是「覆盖其职责 + 产出物 + KPI」。
- 扩编六员 —— 人类基金公司里有,但成本高到只有头部机构才配得起的岗位。我们做到的是「把它降到普惠成本」。
- AI 原生五员 —— 人类岗位序列里根本不存在的岗位。 不是"AI 替代人",是"只有 AI 才能担任的职位"。
§1 岗位规格
🏛 一、对标全球顶尖机构岗位(S1)
| 对标主体 | 具体岗位 | 真人产出物 | 对齐 |
|---|---|---|---|
| 国内公募 | 盘中应急小组(临时组建,非常设岗) | 应急研判纪要、次日晨会材料 | 部分 |
| 国内私募 | 私募盘中风控处置 | 事件速评、影响清单 | 部分 |
| 海外资管 | Citadel / Bridgewater 风险事件处理岗 | Crisis Playbook、Incident Memo | 部分 |
> ⚠️ 三行都写「部分」而不是 ✅,这是本节最重要的一句话。
> 人类机构里没有「应急研判官」这个常设编制——出事时临时拉起一个小组,
> 小组成员同时还有本职工作。职位是临时的,责任是模糊的,记忆是不留存的。
> 我们把这个岗位做成常设,并且只做一件事:影响研判。
🤖 二、对标全球顶尖 AI(S2)
| 对标对象 | 吸收的顶尖功能 | 我们的实现 |
|---|---|---|
TradingAgents(实测 24k+★,日期未记录) |
事件驱动式多角色响应 | classify.py(关键词分类 + 三跳链 + 强制翻转复算) |
| 通用事件抽取与影响链推演 | 传导路径展开 | impact.py(行业邻接 BFS + 逐跳衰减,全程可反驳) |
| 通用危机作战室流程 | 战时沟通节奏 | response.py(节点表 + 15 分钟快照 + 延迟代价曲线) |
FinGPT(实测 12k+★,日期未记录) |
金融文本情绪与事件识别 | 不引入(需 pip + 权重),标准库自实现分类器 |
> ⚠️ 未记录实测日期的 star 数一律标注「日期未记录」,不补记忆里的数字。
🚀 三、超越人类(S3 · 6 项)
| # | 能力 | 技术不可能 | 组织不可能 | 脚本 |
|---|---|---|---|---|
| CR-1 | ⭐ 7×24 无间断待命,且第 10000 次响应与第 1 次逐位一致(计划校验和可复核) | 人类连续值守存在注意力衰减:生理节律在凌晨 3–5 点处于核心体温低谷,此时段漏报率系统性上升;第 10000 次与第 1 次的质量一致,对人类的记忆与情绪是不可能的 | 覆盖 7×24 且含节假日需至少 5 人三班倒,中小机构编制上不可能;夜班质量差是公认事实,却没有人的 KPI 为它负责 | response.py |
| CR-2 | ⭐ 亚秒级事件识别 → 首版影响清单成形(研判产出延迟,非交易延迟) | 人类的链路是「发现 → 通知 → 开会 → 对齐 → 出结论」,最快也要数十分钟;其中真正用于判断的时间不到十分之一 | 突发事件大量发生在非交易时段(公告多在盘后),此时人类组织处于无人值守状态 | classify.py |
| CR-3 | 十类场景在同一时刻全部保持「已预热」状态 | 人类对预案的熟悉度只对最近演练过的 1–2 类有效,其余需要重建情境,而情境重建是有成本的(每次都要重新读一遍背景) | 年度演练预算只够覆盖 1–2 类场景,冷门场景永远不会被演练,直到它发生 | classify.py |
| CR-4 | 强制翻转提问复算:同一事实用损失框架与收益框架各判一次,等级差超过一级即判冲突,结论降为 abstain | 人类在形成判断之后无法对自己做真正的反向重述——陈述者与被陈述者是同一个人,重述会退化成修辞改写(确认偏误) | 在危机会议上推翻既定判断等于当众否定牵头人,代价是个人层面的,所以没有人会做 | classify.py |
| CR-5 | 延迟代价量化:每个节点标注「晚 X 分钟 → 未覆盖冲击还剩几个点」 | 人类无法量化「晚 30 分钟损失了什么」,因为没有对照组;事后复盘只能给出叙事,给不出曲线 | 承认「晚了的代价」等于承认值班安排有问题,而值班安排是别人定的 | response.py |
| CR-6 | 三跳传导路径同时展开:一个事件的二跳、三跳受影响标的在同一时刻全部列出并标注跳数与衰减 | 三跳展开是 25 个行业 × 3 层的组合,人类在同一时点只能沿一条链想下去,换一条链就要重建整个上下文 | 跨行业信息分布在不同组,三条链同时对齐需要跨组会议,而会议最快也是 T+1 | impact.py |
本批淘汰掉的 S3 候选(写不出两条硬理由,按规则删除或降级):
| 候选 | 淘汰原因 |
|---|---|
| 「毫秒级响应」 | 组织理由写不出——快本身不构成物种差异;且照抄成「毫秒级」会被误读为高频交易。改为「亚秒级研判产出」,并在 §5 明写我们不做 HFT |
| 「N 套互斥世界线同时演算」 | 与 sclass-quant 的反事实世界线重复,且组织理由与量化包雷同;本包删除该条,避免跨包套话 |
| 「自动处置预案」 | 越界。任何含处置动作的自动化都会触碰 §5 红线,直接删除,不挂 S3 |
🔑 最强叙事点(两句,路演必讲)
> 第一句:「人类部门的危机作战室,前 2 小时基本浪费在拉群、打电话、对齐信息上。
> 我们的作战室 T+0 就已经在出第一份状态快照,T+5 出首版影响清单,
> 而且 T+5 那一刻我们知道自己只覆盖了 24%——这个数字我们自己写出来。」
>
> 第二句:「同一件事,说成『已确认发生』和说成『尚未发生』,
> 人类会给两个不同的严重程度,而且不会意识到自己变了。
> 我们的每一条结论都被强制重述一遍再打一次分,两次差两级就判这条结论作废。」
§2 工作流
Step 0 · 事件入账 → T+0 事件指纹 + 初判等级;入账即公开,不等待确认
Step 1 · 场景分类 → 十类场景关键词匹配,conf = n/(n+1)
Step 2 · 不可分类即 abstain → 未命中 / 缺字段 / 置信不足,一律 unavailable,不猜
Step 3 · ⭐ 翻转提问复算 → 同一事实两种框架各判一次,等级差 >1 即 framing 冲突
Step 4 · 三跳影响展开 → 行业邻接 BFS;逐标的标注跳数 / 衰减 / 影响点数
Step 5 · 组合冲击聚合 → Σ w_i × beta_i × base × attenuation(hop)
Step 6 · 响应节点编排 → T+0/5/15/30/60/90;每节点责任人与产出物
Step 7 · 延迟代价曲线 → coverage(t) = 1 - exp(-t/tau);未覆盖冲击逐点输出
Step 8 · 作战室拓扑 → 牵头 / 入组 / 旁听;每 15 分钟一份快照,全程入账
Step 9 · 交付 CIO 与风控 → 只交研判结论与分歧存档;**不产生任何交易动作**
> Step 3 是强制步骤,不是可选建议。 危机研判是 framing 浓度最高的岗位,
> 而 framing 恰恰是最容易被"我觉得我已经考虑了"糊弄过去的一环。
关键公式(全部写在脚本里,可手工复算):
分类置信度 conf = n / (n + 1) n 为命中关键词个数(1 个给 0.50,2 个 0.67)
跳数衰减 attribution(0)=1.00 1 跳 0.45 2 跳 0.18 3 跳 0.07
单标的影响 impact_i = base_impact × beta_i × attenuation(hop_i)
组合冲击 combined = Σ w_i × impact_i
完备度曲线 coverage(t) = 1 - exp(-t / tau) tau: P0=18 / P1=35 / P2=60 分钟
未覆盖冲击 uncovered(t) = |portfolio_impact| × (1 - coverage(t))
等级判定 P0 ≥ 10% P1 ≥ 5% P2 < 5%(按 |base_impact| 分段)
年化口径 交易日 244;value×(244/f),波动 ×√(244/f)
§3 输出契约
{
"schema_version": "sclass-1.0",
"script": "classify.py",
"pack": "sclass-crisis",
"data_source": "synthetic-demo",
"synthetic": true,
"trading_days_per_year": 244,
"n_events": 40,
"n_classified": 40,
"n_unavailable": 0,
"level_counts": {"P0": 4, "P1": 28, "P2": 8},
"alert_ratio": 0.10,
"framing_conflicts": [{"id": "EV0020", "loss": "P0", "gain": "P2"}],
"rows": [
{
"id": "EV0020",
"status": "ok",
"category": "LIQUIDITY_CRISIS",
"category_name": "流动性危机",
"confidence": 0.67,
"level": "P0",
"response_window_min": 5,
"channels": ["抛售 → 价格下跌 → 更多抛售的反身循环"],
"framing": {"loss_frame_level": "P0", "gain_frame_level": "P2", "conflict": true}
}
],
"trading_actions": 0
}
> 任何字段缺失时,必须输出该字段并置为 null 或 "unavailable",不得省略。
> trading_actions 恒为 0,它是契约的一部分,不是装饰。
§4 脚本清单(全部纯 Python 标准库,零第三方依赖)
| 脚本 | 入口 | 算法 / 公式 | 行数 |
|---|---|---|---|
classify.py |
--demo --text --min-confidence --strict-framing --inject-noise |
关键词分类 conf=n/(n+1);三跳链;framing 敏感度检验 | ~330 |
impact.py |
--demo --max-hops --max-impact --missing-market |
行业邻接 BFS;逐跳衰减;按权重聚合组合冲击 | ~290 |
response.py |
--demo --deadline-min --min-coverage --verify-repeat |
节点编排;coverage=1-exp(-t/tau);sha256 计划校验和 | ~270 |
§5 限制声明(必须原样出现在每份输出中,不得删改)
- 复合误差 p^n:每步 92% → 30 步后仅 8.2%。减少步数比提升单步质量更有效。
- 本包只做影响研判,不产生任何交易动作。
包内所有脚本trading_actions恒为 0;place_order/cancel_order/modify_order
在本包中从未被注册为工具。研判结论交人类决策,执行由sclass-execution只出方案。 - 日历口径全队统一为 244 个交易日。禁止 252 / 244 / 240 三套并存——那会带来
3.3% 的系统性偏差。 - 数据不可用即
unavailable:事件文本缺失、场景未命中、行情缺失一律披露,
禁止用估计值或合成数据填充;--demo输出恒带synthetic-demo标记。 - 诚实边界(不许删):
- 本岗位最容易受 framing 影响:GPT-3.5 在 gain frame 下风险选择 79.2%–99.7%
(人类 28%),loss frame 86.9%–99%(人类 78%);PNAS(2025-06-20)发现 LLM
存在人类没有的「倾向回答 No」偏差。→ 所有结论必须做翻转复算。
-classify.py的翻转复算只是结构性近似:我们测的是「两种合规表述会不会落到
不同等级」,不是模型的心理状态。它降低误判概率,不消灭 framing。
- 不得宣称做毫秒级交易:Nasdaq-OMX 2010 提速后,逆向选择成本 0.39bp → 2.50bp
(>5 倍)、有效价差 +32%。我们不做 HFT,也不以低延迟为卖点。
- 衰减系数为数量级参考,不是预测;线性传导模型对流动性危机天然低估
(反身性最强的一类,抛售→下跌→更多抛售不在线性模型里)。
- 场景库为十类固定模板,不能覆盖"这一件事从没见过"的情形,此时必须 abstain。 - 研判结论与分歧原样留档,不合并。分歧不是噪声,是下一次判断的输入。
- 本团队不构成投资建议,不持有任何牌照,输出仅供研究参考。
§6 验收
cd ~/.workbuddy/skills/@user_9bec034f/sclass-crisis
# ---- 正常路径(期望退出码 0) ----
python scripts/classify.py --demo
# 期望:40 条事件全分类;P0 占比 10.0%;1 条 framing 冲突被打印但仅告警
python scripts/impact.py --demo
# 期望:6 个事件的三跳路径展开;合计冲击按权重加权;trading_actions = 0
python scripts/response.py --demo
# 期望:T+0/5/15/30/60/90 六个节点 + 延迟代价曲线;trading_actions = 0
python scripts/response.py --demo --verify-repeat 3
# 期望:第 3 次与第 1 次计划校验和逐位一致
# ---- ⭐ 负例(期望退出码非 0) ----
python scripts/classify.py --demo --strict-framing
# 期望:EV0020 损失框架 P0 ↔ 收益框架 P2,判冲突;**退出码 1**
python scripts/classify.py --demo --inject-noise
# 期望:不可分类事件 abstain + 缺 source 字段被检出;**退出码 1**
python scripts/classify.py --text "今天天气不错"
# 期望:未命中任何场景,记为 abstain;**退出码 1**
python scripts/impact.py --demo --max-impact 0.05
# 期望:合计冲击 7.19% 超过 5% 上限;**退出码 1**
python scripts/impact.py --demo --missing-market
# 期望:2 只持仓行情缺失,按 unavailable 披露;**退出码 1**
python scripts/response.py --demo --deadline-min 1
# 期望:时限短于最小可执行 5 分钟;**退出码 1**
python scripts/response.py --demo --min-coverage 0.9
# 期望:T+5 完备度 24.3% 低于 90%;**退出码 1**
python scripts/classify.py --demo --min-confidence 1.5
# 期望:用法错误;**退出码 2**
验收通过标准(全部满足才算过):
- 四条正常路径退出码为 0;
- 八条负例退出码分别为 1 / 1 / 1 / 1 / 1 / 1 / 1 / 2(负例必须真的失败);
- 所有输出的
trading_actions字段必须为 0; classify.py --demo的 P0 占比必须落在 5%–15%(本包实测 10.0%);- 每个脚本
python -c "import ast,io;ast.parse(...)"通过,且最长行 ≤ 100 字符。
附 A:为什么这个岗位只能是 AI(本包独有)
人类机构里没有「应急研判官」这个编制。有的只是三种替代物,三种都有结构性缺陷:
| 替代物 | 它的问题 | 结果 |
|---|---|---|
| 临时应急小组 | 成员同时有本职工作,职责边界模糊 | 出事时先花 2 小时确认谁负责 |
| 值班经理 | 一个人覆盖全部资产类别,深度必然不足 | 只报「有重大事项」,报不出影响几个点 |
| 卖方 / 第三方速评 | 最快 T+1 上午,且不针对你的持仓 | 与你组合的传导路径无对应关系 |
我们的做法不是把这三者做得更快,而是取消「临时」这个前提:
岗位是常设的,职责是单一的(只做影响研判),节奏是固定的(T+0 就入账)。
> ⚠️ 但必须承认:这也是本岗最容易越界的地方。 一旦"研判"里混进"建议怎么做",
> 它就从研判变成了投顾。所以 §5 第 2 条是硬红线,不是免责话术。
附 B:与 CIO 的关系
- 受
sclass-orchestrator(首席投资官)调度。P0 事件触发时由 CIO 按本包给出的拓扑组建作战室。 - 上游输入:
sclass-news(原始事件与信源独立性)、sclass-scanner(异动线索)、
sclass-risk(持仓与限额事实)。 - 平行协作:
sclass-advocatus(交叉核验节点 T+15 的责任人,只记录反对意见,不做表决)。 - 下游交付:
sclass-ir(可披露口径)、sclass-compliance(是否触发披露义务)。 - 不向
sclass-execution交付任何执行指令;如需执行方案,由 CIO 另行分派,
且sclass-execution同样只出方案、不下单。 - 独立安装本包也能运行,但推荐先装 CIO 以获得统一调度与作战室拓扑。