ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

如何给 Vibe-Trading 提供台股数据?VIBE_TW_STOCK_DB 快照配置

2026/9/13 6:40:15 拓冰建站 浏览量
如何给 Vibe-Trading 提供台股数据?VIBE_TW_STOCK_DB 快照配置 如何给 Vibe-Trading 提供台股数据VIBE_TW_STOCK_DB 快照配置【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-TradingVibe-Trading 内置了一个只读工具get_taiwan_stock_data用于查询 TWSE台证与 TPEx兴证的台股快照数据但它不随仓库附带任何市场数据只有当环境变量VIBE_TW_STOCK_DB指向一个 schema 合法的 SQLite 快照文件时这个工具才会被注册进 Agent 的工具列表见 README.md 的环境变量表与 CHANGELOG.md 中 registered only whenVIBE_TW_STOCK_DBpoints at a schema-valid snapshot 的说明。本文覆盖三件事把快照文件放对位置、正确配置环境变量Docker Compose 与非 Docker 两条路径、验证工具生效并能查询。工具生效机制路径如何解析、如何校验实现见 taiwan_stock_data_tool.py。快照路径的解析规则是设置了VIBE_TW_STOCK_DB时使用该变量的值环境变量定义见 env_schema.py未设置时回退到默认路径/data/tw-stock/latest.db。这个路径是容器内挂载约定非容器环境下通常不存在工具就不会注册。注册前工具会通过check_available()做一次性校验配置路径必须是一个文件、是可读的 SQLite 数据库、并且包含下文列出的全部表与列。任何一项不满足工具会被静默跳过——工具注册表在 tools/__init__.py 中记录Tool ... unavailable, skipping。注意这个校验发生在 Agent 构建工具注册表时如果快照文件是在之后才放好的需要重启 Agent或容器让它重新检查。工具对快照始终以只读、不可变方式打开file:...?moderoimmutable1文档中明确写了 This tool never places orders它不会修改快照文件也不会下单。快照文件的 schema 要求REQUIRED_SCHEMA常量定义了工具会读取的四张表及必需列。标识符按 SQLite 惯例做大小写不敏感比较额外的表或列不影响校验缺了任何一个必需项就会失败表名必需列stock_masterstock_id,stock_name,market,industry,enabledaily_pricedate,stock_id,open,max,min,close,Trading_Volume,Trading_money,Trading_turnover,spreadstock_featuredate,stock_id,ma5,ma20,ma60,ema12,ema26,macd,macd_signal,macd_hist,rsi14analysis_universestock_id,stock_name,market,industry,active,reason,price_rows,last_price_date,last_feature_date,trading_day_lag,latest_close仓库本身不附带数据文件快照应由台股数据管线Taiwan stock pipeline发布——仓库文档没有给出数据下载地址需要你自备一份符合上述 schema 的快照文件。想要一份可参照的建表 SQL可以直接看测试文件 test_taiwan_stock_data_tool.py 顶部的SCHEMA_SQL它构造的就是一个 schema 合法的测试库。拿到快照文件后可以用 sqlite3 快速预检把路径替换成你的快照文件绝对路径sqlite3 /绝对路径/snapshot.db .tables输出中应出现stock_master、daily_price、stock_feature、analysis_universe四张表多出其他表没有问题。Docker Compose 部署把文件放进约定目录用 docker-compose.yml 运行时不需要自己写VIBE_TW_STOCK_DBcompose 文件已经配好了environment: - VIBE_TW_STOCK_DB/data/tw-stock/latest.db volumes: - ${VIBE_TW_STOCK_DATA_DIR:-${HOME}/.vibe-trading/tw-stock}:/data/tw-stock:ro即容器内固定读/data/tw-stock/latest.db它对应宿主机上~/.vibe-trading/tw-stock/目录下的latest.db以只读方式挂载。compose 注释里强调了这个目录保持在仓库工作树之外no market data may ever land in the working tree不要改到仓库目录里。所以最短主路径是mkdir -p ~/.vibe-trading/tw-stock # 将你的快照文件放到该目录下并命名为 latest.db如果快照文件放在别的宿主机目录在仓库根目录的.env文件中设置VIBE_TW_STOCK_DATA_DIR为另一个绝对路径即可compose 注释明确说明 Compose 不展开~所以.env里必须写绝对路径。注意VIBE_TW_STOCK_DB被 compose 的environment段固定为容器内路径改.env里的VIBE_TW_STOCK_DB对 Docker 部署无效宿主机侧的开关只有VIBE_TW_STOCK_DATA_DIR。非 Docker 部署显式设置 VIBE_TW_STOCK_DB直接从源码运行 Agent 时在启动 Vibe-Trading 之前导出该变量export VIBE_TW_STOCK_DB/绝对路径/snapshot.db/绝对路径/snapshot.db替换为你快照文件的实际绝对路径。这是可选变量README 环境变量表中该项为 No不设置时回退到容器默认路径普通主机上一般会导致工具不注册。验证配置生效按以下顺序判断工具是否注册启动后查看 Agent 是否暴露了get_taiwan_stock_data工具若快照未就绪注册表只记录Tool ... unavailable, skipping会话里查不到这个工具。这是文档中描述的第一种失败形态——不是查询报错而是工具直接缺席。查询status动作工具可用后向 Agent 发起actionstatus的查询。成功时返回的 JSON 信封形如{status: success, tool: get_taiwan_stock_data, action: status, snapshot: 快照文件名, data: {...}}其中data包含各表行数stock_master_rows、daily_price_rows等、latest_market_date、integrity即PRAGMA integrity_check的结果、journal_mode以及reason_distribution。这些字段来自你快照文件的真实内容不是固定预期值。跑仓库自带测试pytest agent/tests/test_taiwan_stock_data_tool.py该测试在临时目录中构造 schema 合法的快照覆盖VIBE_TW_STOCK_DB设置后check_available()返回 True、文件缺失或 schema 不符时返回 False 等行为可以确认工具链本身工作正常。查询方式与输出限制工具支持五个actionstatus快照摘要、lookup个股身份与是否可分析、latest最新价与技术指标、history历史日线、universe分析池列表。关键参数stock_ids台股四位数字 ID例如[2330, 2317]lookup/latest/history必填最多 50 个start_date/end_dateYYYY-MM-DD格式start_date不能晚于end_datemarket仅universe可用取值twse或tpexindustry为部分匹配过滤active_onlyuniverse查询默认true只返回 active 标的limit默认 60、上限 200对universe是最大行数对history是每只股票的最大 K 线数。两个需要理解的输出行为截断响应受 9,500 字符的工具结果预算限制。超出时按每只股票最新 K 线优先、轮流保留的顺序丢弃最旧的行并在返回中给出truncated: true和提示收窄日期范围、调低limit或减少stock_ids数量。stale_features标记最新价行与最新指标行按各自日期独立选取可能不在同一天不一致时该行会带stale_features: true不要把指标日期当作价格日期。查询中未命中的 ID 会出现在not_foundlookup/latest或not_found_or_no_rowshistory里。错误信息与限制如果查询时报错工具会给出三种带具体原因的失败信息直接对应排查方向见 taiwan_stock_data_tool.py文件不存在Taiwan stock snapshot not found: 路径. Point VIBE_TW_STOCK_DB at a published snapshot file.—— 检查VIBE_TW_STOCK_DB或 Docker 下的VIBE_TW_STOCK_DATA_DIR指向的文件是否真的存在不是可读的 SQLite 数据库Taiwan stock snapshot 路径 is not a readable SQLite database: ...schema 不符Taiwan stock snapshot 路径 does not match the required schema: ...消息中会逐一列出缺失的表或列对照上文的 schema 表补齐即可。限制方面该工具是纯只读快照查询不联网拉取数据也不支持下单快照内容的新鲜度取决于发布方status里的latest_market_date可以反映快照覆盖到哪天。数据文件放置完成后若工具仍未出现先重启 Agent 让注册表重新执行check_available()。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考