Skill Hub · 诺亚 AI 能力中心 静态参考版

让每一个技能成为可信资产 —— 诺亚 Agent 生态的技能资产中心:统一注册、检测把关、按需复用。本站为 skill-hub.noahgroup.com 于 2026-08-21 的全量数据镜像。

镜像采集 2026-08-2166 个已发布技能18 个分类 · 3 条分发渠道含技能包 SKILL.md 全文
← 返回目录

个股资讯推导

SKILL_850591195 · vv1.0 · iARK 线上 · Owner:— · 发布于 2026-08-17
调用 132 下载 0 点赞 0 浏览 0
简介
基于脚本过滤与AI推导,评估个股资讯对业务发展的传导影响并生成评级。
触发词
个股资讯,资讯影响,传导路径,资讯评级,行业传导
分发渠道
ARK Engine
功能测试
✅ 通过 · 业务评审:✅ 通过
技能包文件
news-impact-reasoning-engine/SKILL.md、news-impact-reasoning-engine/references/industry-reasoning-framework.md、news-impact-reasoning-engine/references/recency_decay_config.json、news-impact-reasoning-engine/references/soft-phrasing-map.md、news-impact-reasoning-engine/references/source_tier_weights.json、news-impact-reasoning-engine/scripts/rank_and_dispatch.py、news-impact-reasoning-engine/scripts/score_and_gate.py
使用示例:请梳理宁德时代近期资讯对业绩的潜在传导路径与评级。

SKILL.md 全文

Frontmatter

name个股资讯推导
description个股资讯影响链推导引擎。当用户提供单个股票标的(名称/代码)并要求梳理近期资讯对该公司业绩/产品/销量/发展的潜在传导路径、生成资讯影响评级、TOP3资讯摘要或行业传导链分析时触发。核心机制是"大模型获取内容与语义推导 + 服务端脚本管控时效性/来源权威性/去重/权重排序/推理指令下达"的三段式流水线,用于消除大模型对时间、权重、来源的幻觉与输出不稳定性。不适用于股价预测、目标价、具体买卖时点建议、适当性判断(应转交理财师结合客户风险测评处理)。

个股资讯影响链推导引擎(news-impact-reasoning-engine)

基于个股近期公开资讯,通过脚本管控层确保时效/来源/去重的确定性,结合行业传导框架生成 TOP3 资讯影响评级与定性展望。不做股价预测或估值判断,仅梳理资讯对公司"业绩/产品/销量/发展"的潜在传导路径。

职责

| 职责 | 说明 | |:----|:------| | 资讯抓取 | 从六大源头抓取目标个股最近 N 日资讯 | | 脚本管控 | 服务端脚本对时效性、来源权威性、去重做确定性计算与拦截,产出只读分数 | | TOP3 筛选 | 脚本按三维权重公式(影响程度0.5 > 来源权威性0.3 > 时效性0.2)合成排序,取 TOP3 | | 独立双步推导 | 每条资讯在脚本下达的 reasoning_directive 边界内独立推导,禁止跨资讯合并 | | 综合总结 | 生成约150字综合总结(desc 字段),整合共振/背离关系 | | 合规护栏 | 委婉化替换、禁止词过滤 |

输入

个股资讯影响推导(Step 1→Step 5)

入口判断:用户提供个股标的参数(名称代码任一即可),且请求内容属于"个股资讯影响/评级推导"类分析

由主控传入(stock_name 和 stock_code 至少提供一个即可触发,缺失的由 Step 1 自动补全):

引用路由表

| 用户意图 | 加载参考文件 | |:---------|:------------| | 行业推导框架、传导链、关键校验点 | {skill_root}/references/industry-reasoning-framework.md | | 委婉表述映射表、禁止词规则 | {skill_root}/references/soft-phrasing-map.md | | 来源权威分等级枚举 | {skill_root}/references/source_tier_weights.json | | 时效衰减公式参数 | {skill_root}/references/recency_decay_config.json |

输出

直接返回结构化 JSON 响应消息(Schema 见 Step 5),在内存中拼接,不写磁盘文件。

⛔ 执行流程(强制检查点,按顺序执行,禁止跳步)

全局规则
- 每个检查点必须完成后才能进入下一个,未输出📋行视为执行失败
- 所有 📋 Step N … 检查点行严禁出现在面向用户的最终 JSON 响应中
- 面向用户的最终响应必须且仅能是一个合法 JSON 对象(从 { 开始到 } 结束),不得在 JSON 前后附加任何字符(包括空行、换行、Markdown 代码块标记 \\\json / \\\、自然语言文字、📋检查点文本)
- 任何中途终止/失败场景,一律输出降级 JSON(success=false),不得输出自然语言提示或空对象
- 所有脚本调用必须使用 execute_bash + stdin 管道,严禁 fs_write/str_replace 创建临时文件
- 禁止调用的工具mcp__serper-search__scrape。资讯检索统一使用 mcp__serper-search__google_search
- mcp__securities-open-api__search_stock 仅限 Step 1 标的校验使用,Step 2 及之后禁止调用
- 脚本输出的 recency_score / source_authority_score 为只读常量,LLM 不得覆盖或重算
- 任何数据必须来自接口/检索真实返回,严禁用记忆/训练数据填充;缺失标注「数据缺失」
- 合规红线贯穿全流程:禁止预测股价/点位/目标价;禁止操作建议(完整清单见 {skill_root}/references/soft-phrasing-map.md

Step 1:触发判定与标的校验

操作: 1. 判断输入是否提供 stock_name 或 stock_code(至少一个即可触发),且请求意图属于资讯影响/评级推导类 2. 强制调用 mcp__securities-open-api__search_stock 查询标的基本信息(无论 stock_name/stock_code 是否齐全,本步骤必须执行搜索以获取权威标的数据):

a. 先用用户提供的完整 stock_code 原样搜索(如 US-TSLA) b. 若返回结果为空(result 数组长度为0),则去掉市场前缀只取纯代码再搜索(如 TSLA) c. 若仅有 stock_name 无 stock_code,则直接用 stock_name 搜索 3. 若 search_stock 搜索全部返回空(两次尝试均无结果),输出降级 JSON 终止 4. 若 stock_industry 缺失,根据 search_stock 返回的信息及公开常识推断行业分类 5. 若 business_model 缺失,根据已知信息推断主营业务模式(一句话)

内嵌规则

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 1 触发判定:✅/❌ | stock_name=... | stock_code=... | stock_eng_name=... | industry_hit=是/否 | search_stock调用=[成功/失败] | 转交=否/[转交原因]

失败处理

Step 2:数据获取(资讯抓取)

操作: 1. 优先调用 mcp__serper-search__google_search 检索目标个股最近 lookback_days 天内的相关资讯(已提供 pre_fetched_news 时跳过检索)

2. Fallback:若 mcp__serper-search__google_search 返回为空或失败,允许使用其他可用的互联网搜索工具(如 web_searchweb_fetch 等)进行补充检索,LLM 自行判断最合适的工具和关键词 3. 每条转成 NewsItem 结构:news_id / title / content / source / source_tier / publish_time / url / category,字段缺失填 null 4. source_tier{skill_root}/references/source_tier_weights.json 的五级枚举 key 中选取,LLM 只做归类不赋分

内嵌规则

Error Handling 标准表

| 场景 | 响应策略 | |:-----|:--------| | google_search 返回空 | 更换关键词重试一次;仍为空 → 走 Fallback 其他搜索工具 | | Fallback 也为空/失败 | 跳转 Step 5 降级 JSON | | google_search 超时/异常 | 重试一次,仍失败 → 走 Fallback | | 候选不足3条 | 按实际数量纳入,不虚构补齐 | | 所有搜索手段均失败 | 跳转 Step 5 降级 JSON |

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 2 资讯检索:✅/❌ | 搜索次数=[N] | 候选资讯数=[N] | 降级=[无/具体说明]

Step 2.5:脚本管控层(时效/来源/去重)

操作(依赖 Step 2): 1. 将 NewsItem 候选池拼接为 JSON,通过 stdin 管道调用脚本:

   echo '$NEWS_POOL_JSON' | python3 {skill_root}/scripts/score_and_gate.py \
     --now-iso <now_iso> --lookback-days <lookback_days>
   
2. 读取 stdout JSON,每条追加只读字段:recency_scoresource_authority_scorededup_group_idrejected / reject_reason

脚本拦截条件rejected=true):

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 2.5 脚本管控:✅/❌ | 候选总数=[N] | 拦截数=[N] | 去重后剩余=[N] | 时间基准=[now_iso_used]

失败处理

Step 3:确定性计算(权重排序 + 推理指令下达)

分工(依赖 Step 2.5): 1. LLM 任务:对 rejected=false 的每条候选给出 impact_relevance_score(0~1,是否直接关联业绩/产品/销量/发展)+ impact_relevance_rationale(≤20字审计用)。不得触碰脚本分数。 2. 脚本任务:通过 stdin 管道调用:

   echo '{"scored_pool": $SCORED_POOL_JSON, "impact_scores": $IMPACT_SCORES_JSON}' | \
     python3 {skill_root}/scripts/rank_and_dispatch.py --stock-industry "<stock_industry>" --top-n 3
   
3. 脚本下达 reasoning_directive(锁定 Step 4 推导边界):
   {
     "news_id": "news_1",
     "allowed_industry_framework": "半导体/AI算力",
     "must_avoid_terms": ["股价", "目标价", "PE提升"],
     "max_projection_length": 60,
     "require_info_gap_flag_if_missing": ["产能数据", "客户名称"]
   }
   

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 3 TOP3筛选:✅/❌ | LLM评分=[N/N] | 脚本排序=[已执行] | TOP3=[news_id列表] | directive=[N条]

失败处理

Step 4:规则分析(独立双步推导)

操作(依赖 Step 3): 1. 按 reasoning_directive.allowed_industry_framework 加载 {skill_root}/references/industry-reasoning-framework.md 对应章节(未命中回退通用模板) 2. 每条 TOP3 独立构建:step_1_event(客观事实)→ step_4_projection(定性展望) 3. 标注 impact_direction:positive / neutral / negative 4. 提取 tagName(从资讯内容研判影响倾向,输出"有利"/"中性"/"不利"三选一)

directive 硬约束

tagName 提取source_tier 映射(official_disclosure→公司公告, top_broker_research→机构研报)或从内容提炼(行业地位/产品动态/财务数据/政策影响等),结合资讯对业绩/产品/销量/发展的传导路径综合研判,仅输出三选一:"有利"、"中性"、"不利"。与 impact_direction 独立研判,可一致亦可不同

Step 4 中间产物结构(供 Step 5 组装):

{
  "news_id": "news_1",
  "tagName": "有利",
  "step_1_event": "客观事实≤30字",
  "step_4_projection": "定性展望≤60字",
  "impact_direction": "positive",
  "info_gap_note": ""
}

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 4 规则分析:✅/❌ | 行业命中=[行业名/通用模板] | 推导条数=[N] | 信息缺口=[N] | 禁用词自检=[通过]

失败处理

Step 5:合成输出(结构化 JSON)

操作(依赖 Step 4): 1. 生成约150字 desc(整合共振/背离关系,不引入 TOP3 之外的新事实) 2. 组装最终 JSON(Schema 如下) 3. 生成 3 个追问问题 4. 最终对照 {skill_root}/references/soft-phrasing-map.md 做禁用词扫描

输出 JSON Schema(唯一权威定义)

⚠️ 最终响应发射协议(纯净输出铁律):在所有工具调用、计算和内部自检完成后,最终面向用户的响应必须直接以 { 作为第一个字符,并且有且仅有一个合法 JSON 对象,以 } 作为最后一个字符。
禁止生成过程叙述:最终响应前禁止写任何步骤状态、完成确认、计划或解释,例如“步骤 3 已完成”“步骤 4/5:组装最终 JSON”“脚本返回了全部字段”“以下为结果”。这些文字即使事实正确也属于违规输出。
禁止在 JSON 前后输出任何字符,包括但不限于:空行、换行、空格、Markdown 代码块标记(\\\json / \\\)、自然语言说明、📋检查点文本、注释。违反此规则视为执行失败。
JSON 结构分隔符必须使用英文标点:字段之间的逗号必须是英文半角逗号 ,(U+002C),禁止使用中文全角逗号 (U+FF0C)作为 JSON 结构分隔符。字符串值内部的中文逗号不受限制,但字段与字段之间、数组元素之间的分隔符必须严格为英文逗号。
最终发射前静默自检:仅在内部确认“首字符为 {、末字符为 }、可被 JSON.parse() 解析、没有过程叙述”后,才输出 JSON;不要把自检结论写入响应。

标准输出示例(成功场景):

{"success":true,"title":"微软(US-MSFT)近期资讯影响速览","updateTime":"今天 08:00","desc":"近期资讯聚焦云区域扩张、AI芯片规划与OpenAI商业化,均围绕云与AI业务链条,整体对产品与发展形成观察支撑。","list":[{"tagName":"有利","title":"印度云区域上线","type":"positive"},{"tagName":"有利","title":"Maia 300芯片拟发布","type":"positive"},{"tagName":"有利","title":"披露OpenAI相关收入","type":"positive"}],"questions":[{"prompt":"请分析US-MSFT:印度云区影响","title":"印度云区影响"},{"prompt":"请分析US-MSFT:AI芯片进展","title":"AI芯片进展"},{"prompt":"请分析US-MSFT:OpenAI收入链","title":"OpenAI收入链"}]}

字段完整定义:

{
  "success": true,
  "title": "[stock_name]([stock_code])近期资讯影响速览",
  "updateTime": "今天 HH:mm",
  "desc": "约150字综合总结",
  "list": [
    {"tagName": "有利|中性|不利", "title": "客观事实≤30字", "type": "positive|neutral|negative"}
  ],
  "questions": [
    {"prompt": "请分析[stock_code]:问题≤15字", "title": "问题≤15字"}
  ]
}

字段约束

降级 JSON(TOP3 为空 或 任何中途失败时):

{"success":false,"title":"[stock_name]([stock_code])近期资讯影响速览","updateTime":"今天 HH:mm","desc":"近期无可用相关资讯支撑评估。","list":[],"questions":[]}

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 5 合成输出:✅/❌ | JSON完整=[是] | desc字数=[约N字] | list=[N条] | questions=[3] | 禁用词=[通过]

通关标准: | 检查项 | 标准 | 禁止 | |:-------|:-----|:-----| | 纯净度 | 输出第一个字符为 {,最后一个字符为 } | JSON 前后有任何非 JSON 字符 | | 过程叙述隔离 | 最终响应只含 JSON,内部步骤状态保持静默 | “步骤已完成”/“组装 JSON”/“以下为结果”/脚本执行说明 | | 格式 | 严格符合 JSON Schema,可被 JSON.parse() 直接解析 | 非法 JSON / 多余逗号 / 注释 | | success | 正常为 true,降级为 false | 遗漏该字段 | | 检查点隔离 | JSON 中无📋文本 | 检查点外泄 | | desc | ≤150字 | 引入新事实/遗漏字段 | | list | tagName/title/type 齐全,tagName 仅三选一 | type 不在枚举中 / tagName 为类别标签 | | questions | 3个,每个含 title+prompt | 操作指令词/泛化问题/缺 prompt |

版本号

实现"完整代码 → 去前缀重试"二级 fallback;补全 stock_eng_name 用于英文资讯检索; 统一所有终止路径为降级 JSON 输出,消除自然语言输出与 JSON-only 规则的矛盾; 解除 search_stock 全局禁用,限定仅 Step 1 可用)