新闻详情

新闻详情

首页 / 资讯中心 / 详情

HyperAgents Docker 沙箱安全机制深度解析:如何用 git+容器隔离执行不可信模型代码

发布时间:2026/10/2 21:07:45来源:尧图网络
HyperAgents Docker 沙箱安全机制深度解析:如何用 git+容器隔离执行不可信模型代码
HyperAgents Docker 沙箱安全机制深度解析如何用 git容器隔离执行不可信模型代码【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgentsHyperAgents 是一个让 AI 智能体自我进化、优化任意可计算任务的开源项目而它最核心的安全设计就是Docker 沙箱所有由模型生成的代码都不直接运行在你的宿主机上而是被关进一个即用即毁的容器里配合 git 检查点实现跑完即还原。本文将带你完整看懂这套git 容器双重隔离机制。为什么必须用 Docker 沙箱HyperAgents 的工作方式是元智能体meta agent自动修改代码任务智能体task agent再被评估执行。也就是说项目里持续运行的是不可信的、由模型生成的代码。项目官方在 README.md 的 Safety Consideration 一节中也明确警告本仓库涉及执行不可信的、模型生成的代码……此类代码可能因模型能力或对齐的局限而表现出破坏性行为。那么问题来了如何让一个可能写出危险代码的 AI 在你的机器上安全地跑起来HyperAgents 的答案是三层防线全部围绕 utils/docker_utils.py 和 utils/git_utils.py 两个核心模块构建️第一层容器隔离—— 代码只能活在容器里 第二层git 检查点—— 容器内的修改可被瞬间还原 ⏱️第三层超时 强制清理—— 任何失控进程都会被终止并回收下图展示了智能体在沙箱中执行的一类真实任务NetHack 游戏环境NLE的像素渲染。这类需要调用图形库、编译依赖的重型环境正是沙箱要隔离的对象第一层Docker 容器隔离机制镜像是怎么来的项目根目录的 Dockerfile 定义了沙箱镜像基于nvidia/cuda:13.0.0-devel-ubuntu22.04内置 Python 3.12、CUDA 运行时和全部依赖requirements.txt在构建时一次性装好。镜像只需构建一次之后每一代智能体、每一个任务实例都复用同一张镜像——宿主机上的环境永远不会被污染。容器是怎么拉起的关键函数是 utils/docker_utils.py 中的build_container()它的做法有几个安全细节镜像幂等如果同名镜像已存在则跳过构建保证沙箱基线稳定受控挂载宿主机仓库目录以只读意图挂载到容器内的/{REPO_NAME}宿主机的其他文件对容器完全不可见空命令保活容器启动命令是tail -f /dev/null——容器本身什么都不干一切执行都由外部通过exec_run逐条下发相当于每次执行都经过看门人。数据进出只走打包通道宿主与容器之间不共享裸文件句柄所有数据交换都经过 tar 打包传入utils/docker_utils.py 的copy_to_container()把文件打成内存 tar 流再put_archive进容器传出copy_from_container()用get_archive取回并解包到宿主机指定目录。这意味着容器里生成的垃圾比如失败的编译产物、半截的日志不会直接落进你的工作目录只有被显式取回的文件才算数。第二层git 检查点让破坏可撤销这是 HyperAgents 安全设计里最精巧的一环模型代码的每次修改本质上只是一份 diff而 diff 永远只发生在容器内部。修改如何进入容器流程在 utils/gl_utils.py 的apply_diffs_container()中把上一代智能体产出的补丁文件拷入容器在容器内执行patch -p1 parent_patch.txt应用修改git add --all 一次占位提交拿到 commit hash 作为本代基线。宿主机的仓库始终停留在干净的根提交上危险代码从未在宿主机落地。跑完之后如何还原generate_loop.py 中每个阶段的finally块都保证执行同两个命令git reset --hard root_commit—— 丢弃所有已跟踪文件的改动git clean -fd—— 清掉所有未跟踪的新文件。也就是说无论模型代码在容器里写了什么、删了什么、编译出了什么10 秒内一切归零。配套的底层工具如reset_to_commit()、commit_repo()、diff_versus_commit()都可以在 utils/git_utils.py 中逐一对照阅读。第三层超时保护与强制清理隔离不是万能的超时才是。HyperAgents 给容器内的每条命令都套上了timeout壳执行内容超时上限所在位置元智能体改代码6 小时generate_loop.py智能体评测5 小时generate_loop.pypolyglot 任务智能体10 分钟domains/polyglot/harness.pypolyglot 测试脚本2 分钟domains/polyglot/harness.py任何死循环、失控进程都会被timeout直接杀死。而 utils/docker_utils.py 中的cleanup_container()保证容器必然被stopremove(forceTrue)domains/polyglot/docker_utils.py 还进一步实现了兜底逻辑——如果 Docker API 停止失败就查出 PID 直接SIGKILL。配合每次运行都带时间戳的容器名如hyperagents-gl-container-run_id彻底避免残留容器互相串扰。更严格的玩法每任务一个独立容器在多语言编程域polyglot中安全等级被推到了最高。参考 domains/polyglot/harness.py 与 domains/polyglot/docker_build.py每个评测实例都基于 SWE-bench 风格构建base → env → instance三级镜像缓存创建独立的单任务容器且按语言配置决定以nonroot用户运行、用nano_cpus限制 CPU模型补丁通过patch -p1打进容器内的/testbed仓库后运行测试结束时finally中无条件调用cleanup_container()销毁容器。一个任务挂掉只销毁它自己的容器其他任务毫发无损——这是容器隔离故障域最小化的典型价值。新手上手3 步跑通 HyperAgents 沙箱如果你想在本地体验这套机制步骤其实很简单构建镜像执行docker build --networkhost -t hyperagents .见 README.md 的 Setup 一节初始化环境bash ./setup_initial.sh脚本会按你选定的域准备数据集子集参考 setup_initial.sh启动进化循环python generate_loop.py --domains domain此后每一代智能体的生成都自动完成起容器 → 应用补丁 → 执行 → git 还原 → 销毁容器的完整闭环。提示运行前请把OPENAI_API_KEY等 API Key 写入.env文件输出统一存放在outputs/目录。总结一套值得借鉴的 AI 代码沙箱范式HyperAgents 的 Docker 沙箱机制可以浓缩为三句话容器是边界不可信代码只能在受控容器里执行数据交换走 tar 通道utils/docker_utils.pygit 是时光机所有修改以 diff 形式进容器、以 commit 形式留痕、以reset --hard形式归零utils/git_utils.py超时是保险丝timeout 强制清理确保任何任务都有终点generate_loop.py。这套git 容器的组合拳也为任何需要安全执行 AI 生成代码的项目——无论是 SWE-bench 式评测、智能体进化系统还是代码自动修复服务——提供了非常实用的参考模板。【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Python数据分析实战:从JSON到可视化自制Spotify年度听歌报告 2026/10/2 21:55:53

Python数据分析实战:从JSON到可视化自制Spotify年度听歌报告

每年年底 Spotify 都会准时送上一张 Wrapped 卡片,告诉你这一年你听了多少小时、哪个歌手被你循环最多。但说实话,每次看到那张图我都觉得不够——它只给你结论,不给你明细。比如我想知道"这一年里凌晨三点的我到底在循环什么歌"&q…

阅读更多 →
PVE网络配置实战:修改IP、网关、DNS及失联自救全攻略 2026/10/2 21:55:52

PVE网络配置实战:修改IP、网关、DNS及失联自救全攻略

说个我自己的经历。大概是两三年前,我第一次在一台淘汰下来的小主机上装好了Proxmox Virtual Environment(PVE),版本还是7.x。装完之后系统默认的管理IP是192.168.1.100,而我家的路由器网段是192.168.31.0/24&#xff…

阅读更多 →
小米手机页面反复重启?从启动模式搞懂排查自救方法 2026/10/2 21:55:49

小米手机页面反复重启?从启动模式搞懂排查自救方法

很多人第一次遇到小米手机“页面重新启动”这个问题时,第一反应是手机坏了,甚至直接拿去维修店。我最早接触这个情况是给家里人清理手机,结果误触了按键组合,屏幕一黑直接进了那个“手机连接电脑”的兔子画面,当时也吓…

阅读更多 →
中文命名实体识别实战:BERT+BiLSTM+CRF课设指南 2026/10/2 21:55:47

中文命名实体识别实战:BERT+BiLSTM+CRF课设指南

简介:这份资源面向计算机相关专业的本科生与课程设计学习者,提供一套基于BERTBiLSTMCRF的中文命名实体识别完整源码,适合作为毕业设计、期末大作业或NLP入门实战项目。项目采用预训练语言模型提取语义特征,结合双向LSTM与条件随机…

阅读更多 →
OpenClaw实战:从环境部署到Skills技能,打造个人AI自动化工作流 2026/10/2 21:55:37

OpenClaw实战:从环境部署到Skills技能,打造个人AI自动化工作流

1. OpenClaw 到底是什么,凭什么能替你干活早上八点五十一分,邮箱弹出一封只有一句话的邮件:“下班前把方案给我”。我打开终端,敲了一行命令:openclaw run "把上周六次会议纪要去重,提取待办&#xff…

阅读更多 →
Claude Code 跳过登录:API密钥与环境变量配置指南 2026/10/2 21:55:24

Claude Code 跳过登录:API密钥与环境变量配置指南

说实话,Claude Code 第一次在我终端里提示登录的时候,我的第一反应是:一个命令行工具,为什么会做到这种交互体验?后来我才明白,这套网页登录流程只是认证链条里的最末端。在它前面有环境变量密钥、会话令牌…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉