本平台的 Python3 只能通过沙箱执行器 fwh-pyrun 运行。fwh-pyrun 用 bwrap 建立强制隔离,
并施加资源限额;沙箱是内核级强制边界,以下约束即便脚本不遵守也会被系统拦截,但仍需遵守
以免脚本报错或产出无效结果。
@fwh-tools / @officecli / knowledge 等工具无法完成的自定义数据处理、计算、格式转换时,才写 Python。write 把脚本写到沙箱目录,建议放 /tmp/fwh-toolbox-agent/scripts/<name>.py。通过下面的命令执行(这是唯一被放行的方式):
__KIRO_HOME__/bin/fwh-pyrun /tmp/fwh-toolbox-agent/scripts/<name>.py [参数...]
禁止以下写法(配置层 allowedCommands 会直接拒绝,不要尝试):
python3 xxx / python xxxpython3 -c "..."(内联代码); | &.py 结尾的脚本/tmp/fwh-toolbox-agent/ 下的文件。沙箱外路径(/home、项目目录、
/etc 写入、凭据等)不可见或不可写,访问会抛 FileNotFoundError / PermissionError。import requests / urllib / socket 发起网络请求,会失败。
需要外部数据时,改用 MCP 数据工具(@fwh-tools/data_* 等)取回后再交给脚本处理。pip install(沙箱只读且无网,必然失败)。storage_file_read_to_local 下载到
/tmp/fwh-toolbox-agent/downloads/,再在脚本里按本地路径读取。/tmp/fwh-toolbox-agent/ 下;若需交付用户,脚本运行后由你用
storage_file_upload 上传并按 references/file-output-rules.md 输出 $$FILE_DOWNLOAD:...$$ 标记
(上传动作由工具完成,不在脚本内做)。write → /tmp/fwh-toolbox-agent/scripts/analyze.py(只用标准库,读写沙箱内路径)。@fwh-tools 查询或 storage_file_read_to_local 下载到沙箱。__KIRO_HOME__/bin/fwh-pyrun /tmp/fwh-toolbox-agent/scripts/analyze.py。storage_file_upload + 输出下载标记。