当前位置:首页 > 文章列表 > 科技周边 > 业界新闻 > OpenShell安全运行AI代理的设计方向

OpenShell安全运行AI代理的设计方向

来源:17golang原创 2026-11-15 13:20:06 0浏览 收藏

AI 代理真正难管的地方,不是它能不能生成一段代码,而是它开始替人读文件、装依赖、调用 API、使用凭据之后,权限边界仍然能不能被系统强制执行。CNCF 在 2026 年 11 月 10 日的公告中把 OpenShell 列为新的 Sandbox 项目,这说明行业关注点正在从“让代理听懂提示词”转向“让运行时限制代理能做什么”。

官方文档:https://docs.nvidia.com/openshell/home

OpenShell 的设计方向可以概括为一句话:把代理放进隔离的运行时,让文件、网络、进程、凭据和推理入口都经过策略控制。它不是另一个 Agent 框架,也不保证代理永远正确;它提供的是一层位于代理之外的执行边界。

这次进入 CNCF Sandbox,技术上意味着什么

CNCF Sandbox 是项目进入社区治理和生态协作的阶段,不等于项目已经成为成熟标准,也不等于所有企业都应该立即替换现有容器平台。对开发者更有价值的信号是:OpenShell 被放进了云原生社区讨论 AI 生产化的语境里,讨论重点从模型能力延伸到了代理的执行、隔离和审计。

官方文档当前把 OpenShell 描述为面向自治代理集群的安全运行时,并以声明式策略限制未经授权的文件访问、数据外传和不受控网络活动。这个定位和传统“启动一个容器”有明显区别:容器主要解决进程和资源的运行载体问题,OpenShell 还要回答代理访问什么、凭据何时出现、请求发往哪里、谁能修改策略以及这些决策如何留下记录。

OpenShell中AI代理、沙箱、监督器和网关的运行时边界说明图
图1:OpenShell 运行时边界说明图,展示代理与沙箱、监督器、网关的职责关系;这不是截图或运行证据。

OpenShell不是另一个Agent框架

OpenShell 可以位于 Claude Code、Codex、GitHub Copilot CLI、OpenCode 或自定义代理栈的下面。代理仍负责规划和调用工具,运行时则负责把这些动作放进一个受限制的环境。这样做的关键不是把模型换成“更听话”的模型,而是让模型即使判断错误,也不能直接越过系统边界。

可以把它拆成四个职责:

  • 沙箱:承载代理进程,限制可见文件和可用权限,默认不让代理直接拥有宿主机能力。
  • 监督器:在代理之外观察运行时请求,对网络、凭据和系统调用做策略判断。
  • 网关:负责身份、沙箱生命周期、策略和凭据分发,适合成为平台团队的控制面。
  • 策略与审计:用可评审的规则表达允许范围,并记录允许或拒绝的决策。

这也是它和单纯容器的分界:Docker 或 Kubernetes 可以提供底层运行载体,但代理需要的是面向“动作”的治理,例如只允许访问某个代码目录、只允许连接指定模型端点、禁止读取宿主机密钥,并且在策略发生变化时仍能追溯是谁做了决定。

用最小权限思路设计代理边界

如果团队准备评估 OpenShell,第一步不是把所有工具都塞进沙箱,而是先把代理任务拆成“必须读什么、必须写什么、必须访问什么、绝对不能碰什么”。下面这份 YAML 是评审草案,用来展示应该讨论的权限维度;具体字段和版本能力仍应以当前 OpenShell 文档中的策略模式为准。

# 这是一份权限评审草案,不是可直接部署的完整策略文件
agent: code-reviewer
filesystem:
  # 只把待审查代码目录授予只读能力
  read_only:
    - /workspace/repository
  # 把报告目录单独划为可写区域
  writable:
    - /workspace/report
network:
  # 只列出完成任务所需的目的地
  allow:
    - api.model.example
  # 其他出站连接默认拒绝并记录原因
  default: deny
process:
  # 不给代理提升权限的路径
  privileged: false
audit:
  # 允许与拒绝都要保留决策记录
  decisions: record

这份草案的重点有三个。第一,读权限和写权限分开,避免“为了生成报告”就开放整个工作区。第二,网络规则写的是目的地和用途,而不是一句“允许联网”。第三,拒绝也是一种结果,需要被记录,否则发生异常时只能看到代理最后说了什么,却不知道运行时拦下了什么。

凭据和推理入口要单独治理

代理能调用模型,并不意味着它应该直接看到 API 密钥。OpenShell 的官方设计把凭据处理放在网关、配置和策略边界内:代理提出请求,运行时根据已授权的 provider profile 决定是否向允许的端点提供凭据。这样可以把“能调用模型”和“知道密钥内容”拆成两个权限。

同样的原则适用于工具 API。一个只负责代码审查的代理,通常需要访问模型端点和代码仓库,但不应同时拥有云账单、生产数据库或任意外部 Web 请求权限。策略评审时可以使用下面的顺序:

  1. 先列出任务必需的模型和工具,再列出资源名称。
  2. 把每个资源映射到独立的 provider、网络目的地或工作区路径。
  3. 确认凭据只在被授权的请求链路中出现,不能通过普通环境变量暴露给代理。
  4. 为允许、拒绝、凭据轮换和策略修改保留审计字段。
OpenShell策略控制文件网络进程凭据和推理路由的关系说明图
图2:策略与凭据边界说明图,展示权限来源、模型端点和审计决策之间的关系;这不是截图或运行证据。

最小试用路径应该先验证边界

官方开发者文档给出了安装和创建第一个沙箱的最小入口。正式接入前,建议把它当成边界实验,而不是直接接入生产凭据:

# 安装官方脚本,实际使用前先按组织流程审阅来源和权限
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh

# 创建一个默认沙箱,先观察代理的工作目录和可用能力
openshell sandbox create

# 生产接入前应替换为经过审查的镜像、provider 和策略
# 不要把生产密钥、宿主机目录或默认全网访问直接带入实验

试用时重点看四类结果:代理能否完成目标任务、超出工作区的访问是否被拒绝、未经允许的网络目的地是否被拦截、审计记录能否解释每次允许或拒绝。若只看到“代理任务成功”,却没有检查拒绝边界,实验结论是不完整的。

它解决了什么,又不能替代什么

OpenShell 适合解决的是自治代理“有能力但不能无限制行动”的运行时问题,尤其适合代码代理、私有企业开发、需要受控模型端点的内部工具,以及希望把策略纳入版本评审的团队。它把安全控制放到了代理进程之外,降低了单靠提示词约束的风险。

但它不能替代身份提供商、密钥管理、日志平台、漏洞管理、合规流程或应用自身的授权检查。官方资料也强调,OpenShell 是企业安全体系中的运行时边界,而不是完整的身份、观测和治理平台。底层隔离仍可能受到镜像来源、宿主机、内核、运行时配置和策略误配影响,策略越宽,代理能做的事越多,风险也越难解释。

因此,当前更稳妥的采用方向是:先选一个权限可枚举、数据可脱敏、失败可回滚的代理任务;再把文件、网络、进程、凭据和审计五项控制分别写进评审清单。等团队能回答“为什么允许、如何拒绝、拒绝后如何恢复、谁能修改规则”之后,再考虑扩展到多代理和生产工作流。

常见问题

OpenShell 是 Agent 框架吗?

不是。它位于 Agent 框架或执行 harness 之下,主要负责沙箱、策略、凭据、网络和运行时治理。

OpenShell 会自动让代理变得安全可靠吗?

不会。它能把许多权限控制移到模型之外,但仍需要团队正确配置策略、审阅镜像和凭据,并保留周边身份与审计能力。

它和 Docker 或 Kubernetes 是竞争关系吗?

更准确的理解是互补关系。Docker、Podman、Kubernetes 或虚拟机可以作为底层运行载体,OpenShell 在此之上增加面向代理动作的网关、监督、策略和凭据控制。

评估时最先看什么?

先看最小权限是否可表达、拒绝是否可观测、凭据是否与代理进程隔离,以及策略修改是否可审计;不要只看代理能否完成一次演示任务。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
CNCF Agent Substrate项目解决什么问题CNCF Agent Substrate项目解决什么问题
上一篇
CNCF Agent Substrate项目解决什么问题
Cloud Native Buildpacks毕业对交付链的影响
下一篇
Cloud Native Buildpacks毕业对交付链的影响
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    1037次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    1035次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    1179次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    1139次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    984次使用