> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 在沙盒里运行Claude Code
- URL: https://www.hubwiz.com/blog/run-claude-code-in-a-sandbox/
- Published: 2026-02-03T03:58:54.000Z
- Updated: 2026-02-03T03:59:32.000Z
- Description: 在这里，我将分享一个编写代码的 Anthropic Skill（通用代理）的最简单示例，以及两种创建沙盒环境的方法...
- Author: admin
- Tags: TOOL, CLAUDE CODE, #Import 2026-10-14 14:41

在这里，我将分享一个编写代码的 Anthropic Skill（通用代理）的最简单示例，以及两种创建沙盒环境的方法...

### 一些背景知识...

在*具有代码编写能力的 AI 代理*的语境中，沙盒是一个*关键的隔离层*。

它保护您的系统免受 AI 生成的潜在有害或错误代码的侵害。

当 AI 代理编写代码时，总是存在代码可能包含错误、死循环、资源密集型操作甚至安全漏洞的风险。

特别是当 AI 代理正在实验或从用户反馈中学习时。

通过在沙盒环境中运行代理（如 Python 虚拟环境、Docker 容器或专用虚拟机），您可以创建边界，限制生成的代码可以访问和修改的内容。

这意味着，如果 AI 编写的代码试图删除文件、消耗过多内存或访问敏感系统资源，沙盒会将损害限制在一个可以轻松重置或丢弃的隔离空间中。

***高级沙盒化可以包括：***

- 限制文件系统访问，
- 网络隔离，
- CPU/内存限制，以及
- 代码执行的时间约束。

在创建容器时，所有这些参数以及更多内容都可以设置...

这个***保护层***允许您安全地试验 AI 生成的代码，而不会冒犯您的开发环境或生产系统的风险。

对于任何部署自主编码代理的人来说，这都是必不可少的实践。

### 虚拟环境 vs Docker 容器

我对使用 VE 或 DC 的主要差异做了一些研究...

从实际角度来看，VE 易于快速设置或运行。DC 要求稍高，但...

据说 Docker 容器比 Python 虚拟环境提供更强的隔离性、更好的可移植性和更一致的行为。

据说这使得 Docker 成为生产级 AI 代理部署和安全敏感工作流的更好选择。

虚拟环境（venv 或 virtualenv）在同一操作系统内的应用程序级别隔离 Python 包和依赖项。

> 简而言之，使用虚拟环境进行快速、本地实验；当隔离、一致性和生产准备就绪变得不可协商时，切换到 Docker。

它们防止项目之间的版本冲突，但共享主机内核、文件系统和系统级库。

如果恶意代码运行，这为意外干扰或安全泄露留下了空间。

*Docker 容器通过封装整个运行时环境（包括操作系统用户空间、库、二进制文件和网络堆栈）走得更远。*

Docker 似乎更适合更深层的进程隔离，在不同机器上可重复构建。

同时能够实施严格的资源限制和安全策略。

虽然虚拟环境对于本地开发来说仍然轻量且快速，但 Docker 在需要为运行不受信任的 AI 生成的代码、CI/CD 管道或部署到多样化基础设施而进行沙盒化的场景中表现出色。

### MacOS 上的虚拟环境设置...

创建一个工作目录...

`mkdir ai-sandbox-agent`

进入该目录...

`cd ai-sandbox-agent`

创建一个虚拟环境...

`python3 -m venv sandbox_env`

激活虚拟环境...

`source sandbox_env/bin/activate`

运行这些安装...

`pip install anthropic`

和...

`pip install python-dotenv ipython`

将您的 Anthropic API 保存为环境变量...

`echo "ANTHROPIC_API_KEY=your_api_key_here" > .env`

创建一个空 Python 文件并命名...

`touch code_agent.py`

打开它...

`vim code_agent.py`

粘贴以下 Python 代码：

```python
import os
from anthropic import Anthropic
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# 初始化客户端
client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))

def run_code_agent(task):
    """
    运行一个具有代码编写能力的 AI 代理
    """
    system_prompt = """你是一个专业的代码编写助手。
    当被要求编写代码时：
    - 提供干净的、有注释的代码
    - 解释代码的功能
    - 在适当的地方包含错误处理
    - 建议如何运行/测试代码
    """

    message = client.messages.create(
        model="claude-sonnet-4-5-20250529",
        max_tokens=4000,
        system=system_prompt,
        messages=[
            {"role": "user", "content": task}
        ]
    )

    return message.content[0].text

# 交互模式
if __name__ == "__main__":
    print("AI 代码代理已初始化！")
    print("输入 'exit' 退出\n")

    while True:
        task = input("您想让我编写什么代码？> ")

        if task.lower() in ['exit', 'quit']:
            print("再见！")
            break

        print("\n" + "="*60)
        response = run_code_agent(task)
        print(response)
        print("="*60 + "\n")

```

您可以从命令行运行此编码代理：

`python code_agent.py`

然后在提示时输入您的请求：

`What would you like me to code? > 构建一个简单的 Flask API，包含两个端点`

### Docker 设置

安装 Docker...

`pip install docker`

创建 Dockerfile

```dockerfile
cat > Dockerfile << 'EOF'
FROM python:3.11-slim

```

创建 requirements.txt 文件...

```text
cat > requirements.txt << 'EOF'
anthropic
python-dotenv
EOF

```

粘贴后按**回车**。

在 `ai-sandbox-agent` 文件夹中，您应该在列表中看到 `Dockerfile` 和 `requirements.txt`。

构建 Docker 镜像...

```bash
docker build -t code-agent .

```

然后运行镜像...

```bash
docker run -it --env-file .env code-agent

```

下面是您如何通过命令行与编码代理（代理技能）交互的视图...

![无](https://www.hubwiz.com/blog/content/images/2026/02/1-fNbSxF-qGikWkTSdqcfAWg.png)

如果您前往 docker UI，您将看到您的容器已列出...

![无](https://www.hubwiz.com/blog/content/images/2026/02/1-Wagc4xXrwvVsc5PZIhYFZg.png)

---

原文链接: [Claude Code Sandboxing](https://cobusgreyling.medium.com/claude-code-sandboxing-b33d42b61888?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处