finance:终端里跑的市场行情追踪 Skill

前言

给 Agent 加行情能力时,常见的做法是让模型自己去网页上找价格。问题是价格类查询对时效性和来源一致性要求高,模型临时抓网页既不稳定,也容易拿到过时或对不上的数字。下面介绍的 finance Skill 把这件事换成一种更可控的方式:Agent 不自己去爬网页,而是调用一组本地 Python 脚本,脚本负责取数、缓存和提供商故障转移,Agent 只负责把结果整理成回复。

这是什么

finance 是一个基于 SKILL.md 格式的 ClawHub Skill,坐标 @clawhub_anton-roos/finance,当前版本 v1.1.2,由 anton-roos 发布,上游仓库在 clawhub.ai。它的定位是市场数据查询工具,覆盖股票、ETF、指数、加密货币(视提供商支持情况)和外汇对,内部做了缓存与提供商故障转移,适合“现在价格多少”“给我 30 天序列”“维护一个 watchlist 并汇总表现”这类高频轻量查询。

它面向终端运行:Skill 里的脚本设计为从命令行执行,由 Agent 负责装依赖、跑脚本、把输出整理成干净的回复。许可证 MIT-0,ClawHub 页面显示安全审计通过。

核心功能

按 SKILL.md 的说明,核心能力有四块:

1、最新报价:支持股票/ETF/指数(如 AAPL、MSFT、^GSPC、VOO)、外汇对(如 USD/ZAR、EURUSD、GBP-JPY)以及提供商支持的加密货币代码,返回价格、涨跌幅和时间戳/来源。

2、历史序列:按天数取一段历史数据,以 CSV 输出到标准输出,便于 Agent 直接处理。

3、Watchlist:本地维护一个关注列表,可以添加、删除代码,并生成汇总表现。

4、缓存与故障转移:股票默认走 Yahoo Finance(yfinance,无需 key,但为非官方接口,可能触发限流);外汇默认走 ExchangeRate-API Open Access 端点(无需 key,每日更新)。缓存用于避免限流,提供商失败时有切换能力。

安装与启用

按上游仓库页面,安装命令是 OpenClaw 的 skills CLI:

$ openclaw skills install @clawhub_anton-roos/finance

依赖方面,SKILL.md 要求用虚拟环境安装 requirements.txt:

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

配置上,股票/ETF/指数和外汇的默认提供商都不需要 API key,因此开箱可用。如果后续要接付费提供商(如 Twelve Data、Alpha Vantage),按 SKILL.md 的说明配置环境变量即可:

export TWELVEDATA_API_KEY="..."
export ALPHAVANTAGE_API_KEY="..."

缓存目录约定在 .cache/finance。需要注意的是,ClawHub 页面将 TWELVEDATA_API_KEY、ALPHAVANTAGE_API_KEY 列为配置要求项,而 SKILL.md 里明确这两个 key 仅在添加付费提供商时才需要,默认路径无 key 可用——以 SKILL.md 的说明为准。

典型用法

SKILL.md 给出的脚本都在 scripts/ 目录下,用法如下。

查询最新报价,支持股票、ETF、指数代码:

python scripts/market_quote.py AAPL
python scripts/market_quote.py ^GSPC
python scripts/market_quote.py VOO

查询外汇最新汇率:

python scripts/market_quote.py USD/ZAR
python scripts/market_quote.py EURUSD
python scripts/market_quote.py GBP-JPY

取历史序列,用 --days 指定天数,CSV 输出到 stdout:

python scripts/market_series.py AAPL --days 30
python scripts/market_series.py USD/ZAR --days 30

维护本地 watchlist,添加、删除和汇总:

python scripts/market_watchlist.py add AAPL MSFT USD/ZAR
python scripts/market_watchlist.py remove MSFT
python scripts/market_watchlist.py summary

对 Agent 输出的约定是:报价要返回价格、涨跌幅、时间戳/来源,以及注意事项(例如“FX 每日更新”);序列要确认日期范围和数据点数量,并展示首尾几行预览;如果被限流,要说明原因并退避重试,或建议降低查询频率。

适用场景与注意

适合的场景:快速回答“某标的现在多少钱”、轻量跟踪一组标的、需要一段历史数据做简单分析。它针对低延迟查询和限流规避做了优化,比让模型临时抓网页稳定。

要注意的几点:

1、外汇 Open Access 端点每日更新,不是实时。SKILL.md 明确要求,除非提供商确实是实时,否则不要声称“real-time”。

2、Yahoo Finance 为非官方接口,可能限流或封请求。遇到这种情况,SKILL.md 建议退避重试、加大缓存 TTL,或改接付费提供商。

3、加密货币支持取决于所选提供商,属尽力而为(best-effort),不是所有代码都能取到。

4、本 Skill 只做行情数据获取,不做持仓管理、盈亏计算或财务记账。股票/外汇之外的资产类型不在其覆盖范围内。

结尾

finance 的价值在于把行情查询从“模型临时抓网页”变成“脚本取数 + Agent 整理”的固定流程,默认路径零配置可用,限流和来源问题有明确的处理策略。适合需要稳定行情数据的 Agent 工作流。官方地址:https://clawhub.ai/anton-roos/finance ,SkillHub 页面:https://www.skillhub.cn/skills/clawhub_anton-roos/finance 。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜