ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何让 Vibe-Trading 回测产物写入你自己的目录?VIBE_TRADING_ALLOWED_RUN_ROOTS 配置

如何让 Vibe-Trading 回测产物写入你自己的目录?VIBE_TRADING_ALLOWED_RUN_ROOTS 配置 如何让 Vibe-Trading 回测产物写入你自己的目录VIBE_TRADING_ALLOWED_RUN_ROOTS 配置【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-TradingVibe-Trading 的回测产物run 目录下的config.json、code/signal_engine.py以及回测输出默认写在固定的 run roots 下例如~/.vibe-trading/runs和./runs。如果你想把回测结果写进自己的研究目录——比如按项目归档、方便备份或统一存储——需要配置环境变量VIBE_TRADING_ALLOWED_RUN_ROOTS把你自己的目录加入“生成代码 run 目录”的允许清单。这个配置适用于 CLI、Web UIvibe-trading serve和 MCP 客户端三种使用方式但注入环境变量的方式不同下面分别说明。先弄清楚默认的 run roots 是什么回测 runner 在执行前会用safe_run_dir()校验run_dir目录不在任何允许的 run root 内时直接拒绝。默认的 run roots 由 path_utils.py 的_default_run_roots()给出包括agent/runsagent 包目录下的 runs./runs当前工作目录下的 runs~/.vibe-trading/runs、~/.vibe-trading/shadow_runs以及运行时根目录下的runs/shadow_runs整个运行时状态默认位于~/.vibe-trading可用VIBE_TRADING_HOME整体迁移VIBE_TRADING_ALLOWED_RUN_ROOTS在 env_schema.py 中默认值为空字符串即“不添加额外 root”。配置后你的目录会追加到上述默认清单之后而不是替换它们。另外要注意生成的回测代码以本地 Python 子进程方式运行runner 只把 OS/Python 基础、代理/证书设置、VIBE_TRADING_ALLOWED_RUN_ROOTS和只读行情 key如TUSHARE_TOKEN、FMP_API_KEY、FRED_API_KEY传入子进程不传 LLM key、API 认证 token 或券商密钥。所以这个变量既是“写哪里”的开关也是子进程环境的一部分。配置方法一CLI / serve 场景写进 agent/.env如果你通过终端或 Web UI 使用对应vibe-trading、vibe-trading serve把变量写进agent/.env没有就先按 README 的说明从agent/.env.example复制一份然后重启服务进程。格式是逗号分隔的目录列表例如/home/yourname/research替换成你自己的目录需已存在# agent/.env 中追加一行 VIBE_TRADING_ALLOWED_RUN_ROOTS/home/yourname/research需要多个目录时用英文逗号分隔例如VIBE_TRADING_ALLOWED_RUN_ROOTS/home/yourname/research,/data/backtests/2026条目支持~展开并按绝对路径解析见 path_utils.py 中对每个条目的expanduser().resolve()处理以\\或//开头的 UNC 共享路径会被直接拒绝。配置方法二MCP 客户端必须写在客户端的 env 块里通过 MCP 客户端如 Claude Desktop使用时有一个容易踩的坑server 由客户端自己 spawnshell 里的export永远传不进去。README 明确要求把它写在客户端配置的env块里{ mcpServers: { vibe-trading: { command: vibe-trading-mcp, env: { VIBE_TRADING_ALLOWED_RUN_ROOTS: C:\\Users\\me\\research } } } }上面是 README 原文给出的示例Windows 路径Linux/macOS 下把值换成你自己的目录即可例如~/research或绝对路径/home/yourname/research。改完env块后需要让客户端重启该 MCP server 进程环境变量才会被新进程读到。把回测指到你自己的 run 目录配置生效后回测的执行目录run_dir必须落在允许的 roots 之内。runner 的调用方式是见 runner.pypython -m backtest.runner run_dirrun_dir需要包含config.json和code/signal_engine.pyrunner 在 main() 中先从run_dir读取这两个文件回测结果同样写回该目录。在 agent / swarm 侧strategy discovery 的 SKILL.md 也说明了同一约束每个run_dir必须解析到运行时 runs root 或VIBE_TRADING_ALLOWED_RUN_ROOTS内清单中落在外部的条目会被跳过并带有path-outside-allowed-roots:前缀其余条目继续处理。如何判断配置有没有生效文档给出的判断依据是 runner 的拒绝信息。当run_dir不在允许的 roots 内时safe_run_dir()抛出的错误格式为见 path_utils.pyrun_dir 你的路径 is outside allowed run roots. Allowed roots: - 允许的 root 1 - 允许的 root 2 Set VIBE_TRADING_ALLOWED_RUN_ROOTS to add a run directory. Under an MCP client, set it in that clients server env block — exporting it in a shell does not reach the spawned server.检查两点报错时Allowed roots列表里应出现你配置的目录。没出现说明进程没读到该变量——CLI/serve 场景检查agent/.env是否保存且已重启MCP 场景确认变量在客户端env块而非 shell 里。不报错时run_dir通过校验config.json与code/signal_engine.py被读取回测产物落盘在你自己的目录里。之后可以用vibe-trading show run_idTUI 内对应/show按 run id 回看历史 run——safe_run_id()会在包括已配置 roots 在内的允许范围内解析 run id因此自定义目录里的 run 同样可被检索到。替代路径与边界只想整体搬家而不是加一个目录VIBE_TRADING_HOME可以把整个运行时根sessions、runs、swarm runs、uploads、sessions.db索引都在其下重定位到别的目录。如果你的目标是“所有回测产物都进我的备份盘”整体迁移比逐目录加 root 更直接两者可以叠加使用。Docker 部署回测 runs 存放在命名 Docker volume 中git pull docker compose up --build后数据保留只有docker compose down -v会删除这些数据。在容器场景下配置该变量时注意容器内路径与你宿主机挂载目录的对应关系README 未给出针对此变量的 Docker 示例需按你自己的 compose 挂载方式确认。别和另外两个变量混用VIBE_TRADING_ALLOWED_FILE_ROOTS控制文档/券商流水读取的导入目录VIBE_TRADING_ALLOWED_WRITE_ROOTS控制文件写入/编辑工具二者都不等于VIBE_TRADING_ALLOWED_RUN_ROOTS后者只管生成代码的 run 目录见 README 环境变量表 中三者的定义。配置完成并验证run_dir落在你的目录、回测产物按预期写盘后这个变量就可以保持现状后续若新增研究目录直接在逗号分隔列表中追加即可。【免费下载链接】Vibe-TradingVibe-Trading: Your Personal Trading Agent项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表