进阶配置
投研层的数据源升级与日常调度:补你真正需要的信息,让系统的”眼睛”看得更远。
投研层负责看市场、取事实、做初始调研,也最容易过度建设。先问一句:多这个数据源或报告,我的研究会因此变好吗?不会就别接。先确保你已经跑通最小闭环(跑一下市场洞察 + 跑一下投资雷达),再来升级数据源。
数据源分级:先解决问题,再加 Key
| 级别 | 配置 | 解锁 | 什么时候需要 |
|---|---|---|---|
| Level 0 | 无需 Key | RSS + Yahoo Finance 价格兜底 | 所有人先从这里跑通 |
| Level 1 | FINNHUB_API_KEY | 美股/Crypto 报价与个股新闻 | 主要研究美股或 Crypto |
| Level 1+ | TUSHARE_TOKEN | A股日线与最近交易日价格 | 主要研究 A 股 |
| Level 1++ | 问财 Skill + IWENCAI_API_KEY | A股 What’s Hot / 美股条件选股;其他事实查询为实验性入口 | 需要主动筛股时 |
| Level 2 | YMOS_MARKET_API_* | 已清洗、分类、去重的结构化市场事件 | RSS 噪音或本地处理成本已成瓶颈 |
Level 不是质量排名,也不要求按顺序全部安装。它回答的是「这个数据缺口该用什么补」:只做 A 股不必为了层级完整去配 Finnhub;只跟踪固定持仓,也未必需要条件选股。
统一配置方式:
cp .env.example .env然后只填写需要的字段。脚本会从 YMOS 根目录自动读取 .env,不需要安装 python-dotenv。
.env 已被 Git 忽略,但「被忽略」不等于可以随意复制。不要把真实 Key 写进 SOP、Markdown、业务脚本、定时任务提示词、聊天记录或命令参数——命令参数可能进入 shell history。
Level 0:RSS + Yahoo Finance,先验证最小闭环
不申请任何账户即可使用:fetch_rss.py 拉取公开 RSS,供市场洞察做事件归纳;fetch_price_router.py 在没有专用 Key 时回退 Yahoo Finance。市场洞察、投资雷达、Reader、Strategy Profile 和 BrainStorm 都不依赖付费数据源。
python3 Eyes/scripts/fetch_rss.py 1 –output /tmp/ymos_rss.json
python3 Eyes/scripts/fetch_price_router.py \
–symbols “AAPL,000001.SZ,0700.HK” \
–output-dir /tmp/ymos_pricesLevel 0 的限制也要接受:RSS 可能失效或延迟,Yahoo 是免费兜底,不应被当作交易所级实时行情。单个源失败时,报告应该留下错误和降级说明,而不是假装数据完整。
Level 1:Finnhub,美股 / Crypto 的报价和事件增强
| 能力 | 没有 Finnhub | 配置后 |
|---|---|---|
| 美股 / Crypto 价格 | Yahoo Finance 兜底 | Finnhub 报价 + Yahoo 互备 |
| 个股新闻 | 主要依赖通用 RSS | 可按持仓 Ticker 拉取 company news |
| 财报等事件 | 依赖其他新闻源发现 | 可作为事件检测补充输入 |
- 前往 finnhub.io 注册,在 Dashboard 复制 API Key
- 在
.env填写FINNHUB_API_KEY=你的Key
python3 Eyes/scripts/fetch_price_router.py –symbols “AAPL,NVDA” –output-dir /tmp/ymos_finnhub
python3 Eyes/scripts/fetch_finnhub_news.py –hours 24 –output /tmp/ymos_finnhub_news.json免费额度、延迟和端点权限可能调整,以 Finnhub 当前 Dashboard 为准。YMOS 的日频扫描通常不需要高频调用;不要为了「更实时」把投研任务改成无意义的分钟级轮询。
Level 1+:Tushare,补 A 股日线与最近交易日价格
Tushare 解决的是 A 股代码和日线稳定性问题,不是券商级实时行情。
- 前往 tushare.pro 注册,在个人中心复制 Token(不同接口所需积分以官网当前规则为准)
- 在
.env填写TUSHARE_TOKEN=你的Token
价格路由自动分流
.SS / .SZ → Tushare;无 Token 时回退 Yahoo
.HK → Yahoo Finance
其他 → Finnhub;无 Key 时回退 YahooFinnhub 与 Tushare 可以独立配置,互不影响。两市都研究就都配;只做一个市场就只配对应的数据源。
Level 1++:问财数据层(可选 · Beta)
V4 起新增,让投研层从「只能取价格和新闻」变成「能做条件选股和事实检索」——研究触角变长了,但不替你改变判断规则。
它不是 YMOS 内置 Skill,需要两步:从同花顺问财官方 SkillHub安装对应 Skill,再配置 IWENCAI_API_KEY。推荐流程:
- 登录 SkillHub,打开所需的官方 Skill
- 在安装方式中选择 Agent 用户,把官方生成的安装 Prompt 交给你的 Agent
- 按 SkillHub 当前说明获取
IWENCAI_API_KEY - 优先安装到 Agent 自己的标准 Skills 目录;装在其他位置时,把「包含各 Skill 文件夹的上级目录」写入
YMOS_SKILL_ROOT - 安装后同时确认宿主能识别 Skill、YMOS 能找到
scripts/cli.py——「文件夹存在」不等于安装完成
# .env
YMOS_SKILL_ROOT=/包含各个Skill文件夹的上级目录 # 不是 Key;已装在自动搜索目录时可留空
IWENCAI_API_KEY=你的问财服务Key
IWENCAI_BASE_URL=https://openapi.iwencai.com
# 自检:检查 YMOS 实际发现了哪些问财 Skills
python3 Eyes/scripts/skill_resolver.pyV4 已用真实 Key 验证 A 股与美股条件选股封装。财务、研报需要各自对应的 Skill;公告、新闻当前由封装脚本直连接口——这四项仍按实验性入口管理。港股官方 Skill 可以由 Agent 直接使用,但公开版尚未提供港股 What’s Hot 自动链。这些外部 Skill 不属于 YMOS,YMOS 不复制、不二次分发,也不替 SkillHub 猜下载地址。没安装不阻塞主链——依赖问财的 SOP 会明确写出缺的是 Skill、路径还是 Key。
Level 2:Market Data API(yongmai.xyz)
这是作者自用的数据管道对 YMOS 提供的结构化入口。当前底层以 28 源处理管道为基础,对中英文市场信息做抓取、清洗、分类与去重,减少本地处理 RSS 的 Token 消耗和中文源维护成本。来源概览见 TIB RSS 信息源清单。
| 维度 | 免费 RSS 路径 | Market Data API |
|---|---|---|
| 输入 | 多个原始 Feed | 服务端预处理后的结构化事件 |
| 中文信息 | 取决于公开 RSS / 自建 RSSHub | 包含作者自用的中英文来源管道 |
| 本地处理 | Agent 负责较多清洗、去重和分类 | 本地直接消费结构化结果 |
| 失败降级 | RSS 单源失败后继续 | API 失败时回到 RSS 主链 |
前往 yongmai.xyz 注册页注册或登录,在用户中心自助开通并生成专属 API Key:
YMOS_MARKET_API_URL=https://yongmai.xyz/wp-json/tib/v1/reports
YMOS_MARKET_API_KEY=你的key
# 测试
python3 Eyes/scripts/fetch_market_api.py 1 –output /tmp/ymos_market_data.json先用 Level 0 跑通市场洞察与投资雷达,再判断结构化 API 是否真的减少了你的噪音和处理成本。API 是可替换数据源,不是 YMOS 的运行前提;服务不可用或不配置时回退 RSS,不会让整条投研链停摆。
自定义 RSS 与更多 API
默认 RSS 不够时,先复制补充配置,不要直接改公共源文件:
cp Eyes/scripts/rss_sources_custom.json.example \
Eyes/scripts/rss_sources_custom.jsonrss_sources_custom.json 已被 Git 忽略。市场洞察会把补充 RSS 与主数据源并行读取——无论主数据源是 API 还是默认 RSS,适合行业博客、公司工程博客或特定研究者。
如果要接新的金融 API,参考 fetch_finnhub_news.py 或 fetch_price_api.py:从 .env 读取凭据,输出带来源和时间的 JSON,在 SOP 里声明失败降级,再用正常、空结果和失败三个样本验证。
一个合格驱动的职责
只做四件事:取事实、记来源和时间、输出结构化结果、说明失败降级。建议输出:
{
“schemaVersion”: 1,
“source”: “provider-name”,
“asOf”: “YYYY-MM-DD HH:mm”,
“market”: “”,
“symbols”: [],
“facts”: [],
“unresolved”: [],
“errors”: []
}投研脚本和数据适配器不许写「应该买」「应该卖」或任何个人策略结论。它们可以做事实归纳和初始研究;根据 Profile 形成个性化动作判断,是策略内核层的工作。
配完之后怎么判断是否成功
不要只看「命令没有报错」。至少确认:
- 输出文件真实存在且能解析
source、时间与市场字段正确- 空结果和接口失败会留下明确状态
- 投资雷达实际读取了新数据,而不是仍在使用旧缓存
- 删除或清空 Key 后,系统能按文档回退,而不是静默生成假报告
定时任务:写依赖,不抄时间表
暗号适合试跑和临时调用;定时任务让 YMOS 真正承担日常监测与重复劳动。公开版只定义顺序:
外部事实就绪 → 投资雷达映射 → 策略分析/持仓体检
→ Human 审阅 → 盘前计划 → 盘中执行与留痕建议先启用两条投研主链跑两周;启用操盘层后,再增加平仓复盘:
| 任务 | 建议触发 | 作用 |
|---|---|---|
| 市场洞察 | 你关注的市场收盘后,或每天一次 | 建立市场背景与事件地图 |
| 投资雷达 | 市场洞察完成后 | 结合持仓、关注与价格变化筛选待处理事项 |
| 平仓复盘归档 | 启用操盘层后,每周一次或每次平仓后 | 把实际结果变成策略内核的验证证据 |
内核周期审计建议月度或季度跑,不要每周——样本不足 10 笔时提案没有意义。What’s Hot 等作者扩展默认关闭,按需启用。一条调度至少写清:时区与触发条件、上游产物、读取范围、允许写入的路径、空数据与失败怎么处理、Human 要审阅什么。
不要因为工具支持 cron,就默认所有模块都该自动跑。一个健康的配置,长期启用的任务在 4–6 个。一套真实跑过几个月、迭代过二十多版的参考配置(含时序依赖、踩坑约束和「什么该停掉」)见仓库 Agents/SCHEDULES_REFERENCE.md。直接抄时间没有意义,值得抄的是为什么这么排——尤其那条「把产生决策的任务,全部挪到收盘后」。
定时任务提示词至少要明确角色、SOP、工作目录和成功标准:
你现在承担 Market Insight Agent 角色。
工作目录:/你的路径/YMOS
读取:Agents/market-insight-agent.md
执行:Eyes/SOP_市场洞察.md
成功标准:生成当日市场洞察;失败必须返回具体步骤和错误,不静默跳过。数据新鲜度
Profile 里写明各类事实的有效期。Agent 不能把旧快照当实时行情用。需要精确金额、止损判断或再平衡时必须先刷新——过期就只提示刷新,不给动作结论。
模型选择
模型名称变化很快,不在文档写死。按任务风险分配即可:
| 任务 | 模型选择 |
|---|---|
| RSS 拉取、格式转换、文件归档、状态校验 | 稳定的轻量模型即可 |
| 市场洞察、投资雷达、常规建档 | 中高能力模型,要求长上下文和来源意识 |
| 策略诊断、P5/P6/P9/P12、深度调研、内核变更 | 尽量使用当前可稳定获得的强模型 |
模型再强也不能替代证据边界:事实要有来源,规则要可证伪,变更要由 Human 审批。强模型不获得额外权限。