Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RD-Agent Executor

面向 Codex 的 Microsoft RD-Agent 受约束执行 Skill:通过固定的 PowerShell → Python → WSL → Bash 链路,为非实盘研究增加显式门禁、审计记录和失败关闭行为。

Machine-specific guarded wrapper reference for RD-Agent 0.8.0 diagnostics and fresh data-science runs in Ubuntu WSL. It is not a complete security sandbox.

Warning

这是公开审阅用的参考实现,不适合直接承载不可信代码、高价值凭据或不可恢复的数据。当前存在已知的版本绑定、Docker/network 限制、扫描覆盖、主动配额和解释器信任缺口;失败扫描还可能覆盖日志并递归清除 trace。请先阅读“已知安全缺口”,再决定是否部署。

先看这里

这是一份经过实机安全加固的固定环境参考实现,不是开箱即用的通用安装器。

  • 当前策略按 RD-Agent 0.8.0 的行为设计,但现有 wrapper 不会在运行时强制绑定该包版本;执行前必须用 version 核实,升级后必须重新审计。
  • WSL 发行版和用户固定为 Ubuntu / hp
  • Windows、WSL、数据集、运行结果和日志路径均写入策略代码并接受规范路径校验。
  • 14 个公开命令中,目前只有 data-science 可以启动研究任务,而且仅允许从已有本地数据集开始全新运行。
  • fin-factorfin-modelfin-quantgeneral-model 以及所有 pickle/session 恢复请求都会失败关闭。
  • 不包含凭据、.env、数据集、运行日志、模型产物、QMT/XTQuant 或交易数据。
  • 它是受约束的启动器,不是操作系统级沙箱;Docker、上游模型服务和网络仍属于外部信任边界。

这里的“非实盘/offline research”表示使用本地数据集、禁止实盘交易路径,不表示断网运行。场景仍可调用允许的上游 API。SKILL.md 描述中的 resume 和 model-development 关键词用于把相关请求路由到安全策略;它们不是能力承诺,当前实现会拒绝 resume 和预留模型场景。

已知安全缺口

缺口 当前处理
RD-Agent 包未进入策略指纹 执行前人工核验 version == 0.8.0;任何包升级都按策略变更重新审计
自定义日志 sink / 上游服务不在完整扫描覆盖内 只在受控标准日志与 trace surface 上承诺精确脱敏和终态扫描;运行环境仍需最小权限
WSL/Docker 不是完整沙箱 将上游网络、模型服务和 Docker 视为外部信任边界,不运行不可信代码或数据
机器身份和目录硬编码 公开版定位为参考实现;移植时必须整体修改并重新验证,不能局部绕过检查
artifact 扫描范围小于 artifact tree 核心日志和 artifacts/rdagent-log 有终态扫描,但 workspace/cache/tmp 不在同等内容扫描范围内;不要把 list-artifacts 当作全树内容安全证明
Docker 参数与数据 mount 不是完整只读/network policy 在补齐 mount mode、容器环境、网络和固定配置约束前,只在隔离、最小权限、可丢弃的环境中运行
artifact budget 主要是运行后检查 它不是文件系统配额或实时 watcher;不要依靠它阻止运行中的磁盘耗尽
Python launcher 处于同一 Windows 用户信任边界 当前会接受满足路径/形态检查的用户目录解释器;同账户被攻陷时,wrapper 不能提供保护
失败扫描会破坏性清理 scan-incomplete 会替换核心日志并递归清除未验证 trace;相关输出不可恢复,重要输入必须独立备份
collect-info 有网络和主机指纹披露 它会执行上游网络检查并报告依赖版本;只在接受该 egress/metadata 披露时使用

在其他机器上使用前,必须审查并一致地调整下文列出的固定身份与路径,然后重新完成验证。不要只改一个文件来绕过校验。

它解决什么问题

直接运行 RD-Agent 会同时引入命令透传、环境变量泄露、宿主路径写入、Docker 残留、运行恢复反序列化和日志披露等风险。本 Skill 将这些风险收敛为显式策略:

边界 约束
命令入口 只接受 14 个精确命令名;未知命令、缩写选项和多余参数直接拒绝
执行环境 固定 WSL 发行版/用户,使用隔离的 HOME、XDG、临时目录和 RD-Agent profile
数据入口 data-science 只能选择固定 dataset root 下已有的直接非链接子目录
恢复机制 禁止 --path、pickle 和 session resume,在反序列化前失败关闭
环境变量 仅 18 个命名的 API/base/model 变量可进入场景进程;值不进入 argv 或 manifest
持久化 输出固定在单个 run workspace 内;运行策略的 7 个可执行组件会被 SHA-256 指纹化
日志披露 终态秘密扫描必须完整且为 clean,否则摘要和工件不可披露
Docker 容器带 wrapper/run-id 双标签;清理只处理能证明归属的容器
取消 只终止经过重新验证的 wrapper 进程组,并将未验证输出按不成功状态处理
交易安全 .env、QMT、XTQuant、账户、订单、会话、浏览器凭据、实盘路径和交易任务全部拒绝

执行链

Codex / operator
      │
      ▼
rdagent_safe.ps1          Windows 入口与规范路径校验
      │ argument array
      ▼
rdagent_safe.py           命令、参数、数据集、健康回执与披露策略
      │ fixed wsl.exe call
      ▼
rdagent_safe.sh           WSL 环境隔离、进程/容器归属和运行记录
      │
      ├── rdagent_runtime_guard.py   RD-Agent 持久化与 Docker guard
      ├── rdagent_guarded_cli.py     固定上游 CLI 入口
      ├── rdagent_collect_info.py    有界诊断兼容层
      └── rdagent_secret_scan.py     终态秘密扫描与失败关闭

完整边界见 references/architecture.md,精确参数契约见 references/commands.md

公开命令

类别 命令 当前状态
诊断 healthversioncollect-infohelp 可用;诊断不会接收场景 API 变量
研究 data-science 有条件可用;仅允许已有规范数据集上的全新离线运行
预留研究 fin-factorfin-modelfin-quantgeneral-model 名称保留,执行失败关闭
运行管理 list-runsrun-statusrun-summarycancel-runlist-artifacts 可用;摘要和工件受终态扫描及策略指纹门禁保护

Detached 模式返回 exit_code: 0 只表示启动已被接受,不代表研究成功。必须继续轮询 run-status,直到进入终态。

当前固定环境

项目 固定值
Skill 根目录 D:\AgentStack\skills\rdagent-executor
Windows 日志 D:\AgentStack\logs\rdagent
重型数据根目录 F:\DataCenter\research\rdagent
数据集 F:\DataCenter\research\rdagent\datasets
运行目录 F:\DataCenter\research\rdagent\runs
WSL 发行版 / 用户 Ubuntu / hp
WSL venv /home/hp/.local/share/rdagent/venv
WSL profile /home/hp/.local/share/rdagent/profile

七个策略执行文件及上述根目录必须是规范、普通、非 reparse/link 的对象。脚本会主动拒绝缺失、重定向、junction、symlink 或逃逸路径。

部署前适配

仓库不会自动安装 RD-Agent、Docker 或 WSL,也不会替你创建数据集。公共使用者应先建立自己的环境契约:

  1. 审查 scripts/rdagent_safe.ps1 中的 canonical Skill root 和允许的用户 junction。
  2. 同步审查 scripts/rdagent_safe.py 的发行版、WSL 用户、Windows 日志根、重型根目录及允许根目录。
  3. 同步调整 scripts/rdagent_safe.shscripts/rdagent_runtime_guard.pyscripts/rdagent_secret_scan.py 中对应的 WSL 映射。
  4. 将兼容版本的 RD-Agent 安装到独立 WSL venv;不要依赖宿主 shell profile 或 .env
  5. 创建规范的 dataset/run/log 根目录,并确认它们不是链接、junction 或 reparse target。
  6. 对所有 7 个策略执行文件重新做语法、安全和指纹验证;任何修改都会让旧 health receipt 失效,这是预期行为。

如果你的环境与上表完全一致,可以将仓库克隆到固定目录:

git clone https://github.com/myc0576/rdagent-executor.git D:\AgentStack\skills\rdagent-executor

使用示例

始终从 PowerShell guard 入口调用;不要直接执行内部 Python、Bash、WSL 或 RD-Agent 命令。

$launcher = 'D:\AgentStack\skills\rdagent-executor\scripts\rdagent_safe.ps1'

# 低成本检查
& $launcher version
& $launcher help

# data-science 前必须获得小于一小时、带 Docker 证据的干净健康回执
& $launcher health --check-docker --timeout-seconds 90

# <competition> 必须已是固定 dataset root 下的直接非链接子目录
& $launcher data-science --competition '<competition>' --step-n 1 --loop-n 1

# 使用启动返回的 run_id 轮询;终态后再请求摘要或工件列表
& $launcher run-status --run-id '<run_id>'
& $launcher run-summary --run-id '<run_id>'
& $launcher list-artifacts --run-id '<run_id>'

不要把 API 密钥写进仓库或 .env。场景只接受命令契约中列出的 18 个进程环境变量;所有非空值都会按敏感值处理并参与运行时精确脱敏和终态扫描。

仓库结构

.
├── SKILL.md                         Codex Skill 主契约
├── agents/openai.yaml               UI 元数据与默认提示
├── references/
│   ├── architecture.md              安全架构与信任边界
│   └── commands.md                  14 个公开命令的精确契约
└── scripts/
    ├── rdagent_safe.ps1             Windows 唯一公开入口
    ├── rdagent_safe.py              核心策略与运行管理
    ├── rdagent_safe.sh              固定 WSL mapper
    ├── rdagent_runtime_guard.py     持久化、路径和 Docker guard
    ├── rdagent_guarded_cli.py       固定 RD-Agent CLI 入口
    ├── rdagent_collect_info.py      有界 collect-info 兼容层
    └── rdagent_secret_scan.py       有界秘密扫描器

发布前验证范围

本公开副本在发布前完成了以下检查:

  • 7 个可执行策略文件逐文件 SHA-256 与已验证的本地 Skill 一致;公开版仅对 SKILL.md 和 references 做了边界澄清,并新增 README/仓库元数据;
  • .env、凭据文件、私钥、GitHub token、AWS access key、JWT、credential URL、运行日志或 reparse entry;
  • Python 文件通过 AST 语法解析;
  • Bash mapper 通过 bash -n
  • PowerShell 入口通过 PowerShell AST 解析;
  • SKILL.md 结构通过 Skill validator;
  • 未执行真实研究场景,因此这里不宣称模型结果或端到端研究成功。

重要边界

  • 本项目不执行交易,也不得用于实盘、账户、订单或 broker 操作。
  • “安全启动器”不等于完整沙箱;请在独立、最小权限的 WSL/Docker 环境中运行。
  • 任何 scan-incomplete 或污染状态都可能触发核心日志替换和 trace 递归清理;这是不可恢复的失败关闭行为,不要把 run workspace 当作唯一副本。
  • RD-Agent 升级可能改变 CLI、持久化、Docker 或反序列化行为。升级前必须重新审计,不要直接放宽 fail-closed 门禁。
  • 当前 7 组件策略指纹不包含已安装 RD-Agent 包本身;在补上版本/包内容绑定之前,version 核验仍是必须由操作者执行的外部门禁。
  • 这是独立社区实现,不是 Microsoft、OpenAI 或 RD-Agent 项目的官方组件。

License

本次公开发布未附加开源许可证。公开可见不等于自动授予复制、修改或再分发权;如需开放复用,请在确认合适的授权方式后单独添加 LICENSE

About

Machine-specific guarded wrapper reference for RD-Agent 0.8.0 diagnostics and fresh data-science runs in Ubuntu WSL; not an OS/network sandbox.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages