← 全部文章

AI 编程代理治理指南:Claude Code、Codex、ZCode 和 Cursor 企业级控制策略

AI 编程代理已经能够阅读代码库、执行命令并推送代码——但每个平台提供的运维控制能力差异巨大。本文对比 Claude Code、OpenAI Codex、ZCode(GLM-5.2)和 Cursor Enterprise 的沙箱、权限和审计策略,帮助您在代理提交第一个 PR 之前建立完善的治理体系。

· TheRouter

你的 AI 编程代理如今拥有比大多数初级工程师更大的自主权。它们阅读整个代码库、执行任意 Shell 命令、调用外部 API、推送 commit——有时在一次会话中跨越数百个文件。2026 年中,工程领导者面临的核心问题不再是「哪个模型最快」,而是**「谁来控制代理能做什么,我们如何证明这一点?」**

本指南对比四大主流 AI 编程平台——Claude Code、OpenAI Codex、ZCode(GLM-5.2)和 Cursor Enterprise——的运维治理控制能力,并逐步讲解每个平台的最小可行治理配置。无论你是为 500 人团队评估这些工具的平台工程负责人,还是在路由网关后运行所有四个代理的独立运维人员,本文都能提供实用的检查清单。

OpenAI 兼容指供应商提供一个 chat-completions 接口,其请求与响应结构与 OpenAI API 契约足够接近——只需替换三个值(API key、base URL、模型名),原来的 OpenAI SDK 调用即可直接工作。最小实践面是POST /v1/chat/completions 带 messages、model, 并返回 OpenAI 形式的流式响应。

治理控制一览

控制项Claude CodeOpenAI CodexZCode(GLM-5.2)Cursor Enterprise
沙箱类型Seatbelt(macOS)/ bubblewrap(Linux)云端微型虚拟机(Linux),ACL 沙箱(Windows)逐命令确认提示IDE 级 Privacy Mode
文件系统隔离写入限制在工作目录 + 会话临时目录容器范围;仅可写入工作区代理级文件修改审批默认限制在工作区
网络隔离域名白名单 + 代理代理强制执行默认禁用互联网;域名白名单无内置网络沙箱无文档记录的网络沙箱
权限模型Deny → Ask → Allow 规则;托管设置Full Access / Suggest / Auto 模式逐操作确认对话框全局模型/MCP/规则配置
托管策略分发管理控制台、MDM、policy helper、设置文件组织级 Codex 策略无文档记录管理控制台(SSO/SCIM)
审计日志分析仪表板、监控 API、SIEM 导出任务级审计追踪、API 日志无文档记录SOC 2 Type II;零数据留存
审批工作流PreToolUse hooks;/permissions CLI基于 PR 的审查(代理创建分支)UI 中逐操作审批BugBot PR 审查(代理侧)
合规认证SOC 2;HIPAA BAA(Enterprise)SOC 2;数据不用于训练无文档记录SOC 2 Type II;GDPR/CCPA

第一步:定义每个代理的沙箱隔离策略

沙箱是你的第一道防线,它决定了代理的 Shell 命令可以接触宿主文件系统和网络的哪些部分。每个平台的实现方式截然不同。

Claude Code:操作系统级沙箱

Claude Code 提供四个平台中最细粒度的沙箱。在 macOS 上,它使用 Apple 的 Seatbelt 框架 限制每个 Bash 命令及其子进程。在 Linux 和 WSL2 上,它使用 bubblewrap 和可选的 seccomp 过滤器。

关键运维控制:

  • sandbox.enabled — 在所有项目(用户设置)或组织范围(托管设置)强制启用沙箱
  • sandbox.failIfUnavailable — 沙箱依赖缺失时硬失败,而非回退到无沙箱执行
  • sandbox.filesystem.disabled — 阻止所有对明确允许路径之外的文件系统写入(v2.1.216 新增,2026 年 7 月)
  • 网络域名白名单 — Claude Code 通过沙箱代理转发所有出站连接;新域名需要明确批准
  • allowUnsandboxedCommands — 控制在沙箱约束下失败的命令是否可以回退到无沙箱执行
// 托管设置(管理控制台或 MDM)
{
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "allowUnsandboxedCommands": false
  },
  "permissions": {
    "deny": ["Bash(curl *)", "Bash(wget *)"],
    "allow": ["Bash(git *)"]
  }
}

Git 隔离(v2.1.215–216):Claude Code 现在为代理会话创建隔离的 git worktree,防止代理直接修改开发者的工作检出。这解决了代理发起的 commit 可能破坏进行中工作的一类问题。

OpenAI Codex:云端微型虚拟机

Codex 采用了根本不同的方案:每个编程任务都在云端微型虚拟机(Linux)或自定义 ACL 沙箱(Windows)中运行。代理从不在开发者的本机直接执行命令。

关键运维控制:

  • 默认禁用互联网访问 — Codex 任务在没有网络访问的情况下运行,除非运维人员配置了域名白名单
  • 工作区范围写入 — 微型虚拟机挂载仓库的只读快照,仅对工作区目录有写入权限
  • 执行模式 — Full Access(无限制)、Suggest(需要审批)和 Auto(沙箱化自动执行)
  • 基于 PR 的输出 — 所有代理变更都提交到分支并作为 Pull Request 供人类审查
# 限制网络访问的 Codex 任务
from openai import OpenAI
client = OpenAI()
task = client.codex.tasks.create(
    model="codex",
    prompt="修复 auth_service.py 中失败的测试",
    sandbox={
        "internet_access": False,
        "allowed_domains": ["pypi.org"]
    }
)

Multi-agent v2:Codex 现在支持多代理工作流,父任务可以生成子任务,每个子任务在独立的微型虚拟机中运行。运维人员可以为每个任务设置独立的沙箱策略和域名白名单。

ZCode(GLM-5.2):基于确认的控制

ZCode 是本次对比中最年轻的平台,于 2026 年 7 月推出,作为 Z.AI 围绕 GLM-5.2 构建的代理式开发环境。它的治理模型更简单:每个敏感命令、文件修改和高权限操作都需要在执行前明确确认。

关键运维控制:

  • 逐操作审批 — 代理在执行 Shell 命令、修改文件或执行 Git 操作之前暂停
  • 无内置操作系统级沙箱 — ZCode 依赖确认对话框而非内核级隔离
  • 桌面 + Remote + Bot 控制 — 运维人员可以从桌面应用、移动端 Remote 或飞书/微信 Bot 渠道监控和批准操作
  • GLM Coding Plan 配额 — 基于 token 的用量限制,支持峰值/低峰时段系数

ZCode 的治理功能不如 Claude Code 或 Codex 成熟。没有文档化的托管设置、MDM 分发或网络级隔离。对于企业团队来说,如果需要硬隔离保证,需要在额外的基础设施沙箱(Docker、VM 或网络策略)中运行 ZCode。

Cursor Enterprise:IDE 级控制

Cursor 从 IDE 侧而非沙箱侧切入治理。其企业版聚焦于组织控制——SSO、SCIM 配置、零数据留存和集中式模型/MCP 配置。

关键运维控制:

  • Privacy Mode — 防止代码被 Cursor 或 LLM 提供商存储
  • 零数据留存 — Cursor 或上游提供商不会用客户代码进行训练
  • 集中式模型访问 — 管理员配置开发者可以使用哪些前沿模型(OpenAI、Anthropic、Gemini、SpaceXAI)
  • MCP 控制 — 全局配置 Model Context Protocol 服务器
  • 系统级代理规则 — 应用于所有会话的组织范围规则
  • BugBot — 在新 Pull Request 上后台运行的自动化 PR 审查代理

Cursor 在身份认证和合规性方面表现出色(SOC 2 Type II、SAML SSO、SCIM、GDPR/CCPA),但在运行时沙箱隔离方面不如 Claude Code 或 Codex 深入。代理在 IDE 进程内执行,文件访问限制在工作区范围,但没有文档化的操作系统级沙箱或网络白名单强制执行。

第二步:设置权限策略和审批工作流

沙箱隔离约束了代理在哪里操作。权限策略控制代理在边界内能做什么。

Claude Code 权限系统

Claude Code 通过三层规则系统提供最细粒度的权限模型:

  1. Deny 规则 — 完全阻止代理使用某个工具或匹配某个模式
  2. Ask 规则 — 执行前提示人类确认
  3. Allow 规则 — 代理无需提示即可继续

规则按严格优先级求值:deny → ask → allow。即使更具体的 allow 规则匹配了同一调用,deny 规则始终优先。

托管设置分发为运维人员提供四种传递机制(按优先级排列):

  1. 服务器托管(claude.ai 管理控制台或自托管 Claude apps gateway)
  2. MDM 托管(macOS profiles、Windows 注册表、Linux 配置文件)
  3. Policy helper(运行时计算设置的自定义可执行文件)
  4. 企业设置文件(.claude/settings.enterprise.json)
// 组织范围的托管设置
{
  "permissions": {
    "deny": [
      "Bash(rm -rf *)",
      "Bash(sudo *)",
      "Bash(docker run *)"
    ],
    "ask": [
      "Bash(git push *)",
      "Bash(npm publish *)"
    ],
    "allow": [
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(npm test)"
    ]
  }
}

PreToolUse hooks 通过自定义逻辑扩展权限系统。你可以编写一个脚本,Claude Code 在每次工具调用之前调用它,返回 allow、deny 或 ask 以及自定义消息。

Codex 执行模式

Codex 将权限简化为三种模式:

  • Suggest — 代理提出每个操作并等待批准
  • Auto — 沙箱化执行,自动批准安全操作
  • Full Access — 不受限制的执行(不建议用于生产环境)

输出模型本质上更安全,因为所有变更都通过 Pull Request 流转。代理无法合并自己的代码。

Cursor Enterprise 管理控制

Cursor 在组织级别提供全局配置:

  • 模型访问限制(开发者可以使用哪些 LLM)
  • MCP 服务器白名单(代理可以调用哪些外部工具)
  • 系统级代理规则(应用于所有会话的行为约束)

这些通过 Cursor 管理控制台配置,通过 SAML SSO / SCIM 配置分发。

第三步:启用审计日志和用量监控

没有可见性的治理就是没有执行力的策略。每个平台提供不同级别的审计追踪。

平台审计范围导出选项
Claude Code分析仪表板、逐会话工具调用日志、token 用量、费用追踪监控 API、SIEM 集成(CrowdStrike Falcon、Splunk)
Codex任务级审计追踪、命令执行日志、API 请求日志OpenAI API、组织仪表板
ZCode桌面/Remote UI 中的任务执行历史无文档记录;无 API 导出
CursorSOC 2 审计追踪、用量分析管理控制台;无文档化的 SIEM 导出

Claude Code 监控配置

Claude Code 的监控和分析功能对运维人员最友好:

  1. 按团队/项目追踪费用 — 分析仪表板按用户、项目和时间段分解 token 用量和费用
  2. 导出到 SIEM — CrowdStrike 和 Splunk 集成将 Claude Code 审计事件拉入你现有的安全监控管道
  3. 设置费用告警 — 在工作区级别配置预算阈值并自动通知

Codex 审计追踪

每个 Codex 任务都会生成审计追踪,包括:

  • 原始 prompt 和上下文
  • 代理执行的每个命令(含输出)
  • 所有文件读取和写入
  • 最终 diff 和 commit 消息
  • 任务时长和 token 消耗

审计追踪可通过 Codex API 和 OpenAI 组织仪表板访问。

第四步:配置网关级路由策略

当你在组织中运行多个编程代理时,路由网关为你提供统一的控制平面,管理模型访问、速率限制和 fallback 策略——无论请求来自哪个代理。

TheRouter 通过已配置的提供商路由 OpenAI 兼容请求,这意味着任何使用 OpenAI SDK 的编程代理都可以指向网关端点而非直接访问提供商。这让你能够:

  • 按团队强制模型访问 — 将 Team A 的请求路由到 Claude Opus 4,Team B 的路由到 Codex,并为每个团队应用不同的速率限制
  • 设置 fallback 链 — 如果 Anthropic API 返回速率限制错误,自动回退到备用提供商
  • 统一计费 — 在一个计费界面追踪所有编程代理的费用,而不是管理多个提供商账户
  • 应用请求级策略 — 记录每个请求、阻止特定模型 ID 或在网关级注入系统提示
// 示例:通过 TheRouter 路由编程代理请求
import OpenAI from "openai";

const client = new OpenAI({
  baseUrl: "https://your-therouter-instance.example.com/v1",
  apiKey: "your-therouter-key",
});

// 相同的 SDK 调用,无论上游提供商是谁
const response = await client.chat.completions.create({
  model: "anthropic/claude-opus-4",
  messages: [{ role: "user", content: "重构 auth 模块" }],
});

关于模型 fallback 配置的详细信息,请参阅模型 fallback 指南。

生产环境检查清单:最小可行治理

在将任何编程代理部署到你的工程团队之前,请验证以下控制措施已到位:

Claude Code

  • 在托管设置中启用 sandbox.enabled: true
  • 设置 sandbox.failIfUnavailable: true 以防止无沙箱回退
  • 为破坏性命令配置权限 deny 规则(rm -rf、sudo、docker run)
  • 配置 SAML SSO 和 SCIM 配置
  • 将监控连接到 SIEM(CrowdStrike 或 Splunk)
  • 在工作区级别配置费用告警
  • 审查并锁定 allowUnsandboxedCommands: false

Codex

  • 使用 Auto 或 Suggest 模式——永远不要在生产团队部署 Full Access
  • 为需要网络访问的任务配置域名白名单
  • 设置组织级 Codex 策略
  • 要求对所有代理生成的变更进行 PR 审查
  • 通过 OpenAI API 监控任务审计追踪

ZCode

  • 将 ZCode 封装在容器或 VM 中以实现网络/文件系统隔离
  • 为所有敏感操作启用逐操作审批
  • 设置 GLM Coding Plan 配额以控制费用
  • 通过桌面/Remote UI 监控任务执行
  • 考虑补充外部审计日志解决方案

Cursor Enterprise

  • 在组织范围内启用 Privacy Mode
  • 配置 SAML SSO 和 SCIM 配置
  • 设置模型访问限制(开发者可以使用哪些 LLM)
  • 配置 MCP 服务器白名单
  • 启用 BugBot 进行自动化 PR 审查
  • 与法务/合规团队确认零数据留存策略

常见陷阱及避免方法

陷阱 1:将「沙箱」视为二元选择。 Claude Code 的沙箱和 Codex 的微型虚拟机是根本不同的隔离模型。一个限制宿主上的进程,另一个在独立 VM 中运行进程。根据你的威胁模型评估哪种隔离模型更合适。

陷阱 2:忽视网络隔离。 文件系统沙箱是必要的但不充分的。能够访问互联网的代理可以泄露代码、下载恶意依赖或调用未授权的 API。始终在文件系统限制之外配置网络白名单。

陷阱 3:部署时没有审计追踪。 如果你无法回答「代理在过去 24 小时内做了什么」,你的治理就是不完整的。在授予代理对生产代码库的访问权限之前,先配置好监控。

陷阱 4:一刀切策略。 不同团队需要不同的治理配置。安全关键的后端团队可能需要严格的 deny 规则和强制 PR 审查,而前端原型团队可能更适合自动批准沙箱模式。使用按团队的托管设置或网关路由来区分。

展望:治理差距

2026 年中,四个平台最大的差距是跨代理治理标准化。每个平台都有自己的策略格式、审计追踪模式和隔离方法。目前还没有行业标准方法来定义一个同时适用于 Claude Code、Codex、ZCode 和 Cursor 的「编程代理策略」。

目前的实际答案是在所有编程代理前部署一个路由网关,应用统一的请求级策略——模型访问、速率限制、费用上限和审计日志——无论底层是哪个代理运行时在发出调用。

我们预期随着 Model Context Protocol 的演进以及企业采购推动厂商在审计和策略标准上的趋同,这一差距将会缩小。


来源:

本文涉及的模型

帮助与联系