Agent Workspace
安全隔离的 AI 代理执行环境
概述
Agent Workspace 是每个 Agent 任务的隔离执行环境。 它提供了一个安全的沙箱,让 AI 代理可以读写文件、执行代码、运行命令, 而不会影响到系统的其他部分。
隔离环境
每个任务独立的工作空间
安全边界
限制访问敏感系统资源
持久存储
文件可以跨会话保留
目录结构
默认工作空间
~/.clawdbot/workspace/
├── default/ # 默认工作空间
│ ├── files/ # 用户文件
│ ├── temp/ # 临时文件
│ └── output/ # 输出结果
├── task-abc123/ # 任务特定工作空间
│ ├── files/
│ ├── code/
│ └── logs/
└── shared/ # 共享资源
├── templates/
└── data/任务工作空间
每个 Agent 任务可以有自己的独立工作空间:
# 创建新的工作空间
clawdbot workspace create my-project
# 使用特定工作空间启动任务
clawdbot agent --workspace my-project "分析这个项目"查看工作空间
# 列出所有工作空间
clawdbot workspace list
# 查看工作空间内容
clawdbot workspace show my-project
# 查看磁盘使用
clawdbot workspace usage隔离机制
文件系统隔离
- Agent 默认只能访问工作空间目录
- 需要显式授权才能访问其他目录
- 系统目录(/etc, /usr 等)默认禁止访问
网络隔离
workspace:
network:
# 允许的域名
allowed_hosts:
- "api.github.com"
- "*.googleapis.com"
# 禁止的端口
blocked_ports:
- 22
- 3306进程隔离
- 使用容器或沙箱运行命令
- 限制 CPU 和内存使用
- 设置执行超时
权限边界
| 操作 | 默认权限 | 可配置 |
|---|---|---|
| 读取工作空间文件 | ✅ 允许 | - |
| 写入工作空间文件 | ✅ 允许 | - |
| 读取用户目录 | ⚠️ 需确认 | ✅ |
| 执行 shell 命令 | ⚠️ 需确认 | ✅ |
| 网络请求 | ⚠️ 受限 | ✅ |
| 安装软件 | ❌ 禁止 | ✅ |
文件访问
工作空间内操作
# Agent 可以自由操作工作空间内的文件
workspace/
└── my-task/
├── input.txt # ✅ 可读写
├── output.json # ✅ 可读写
└── temp/ # ✅ 可读写授权外部访问
# 配置允许访问的外部目录
workspace:
external_access:
read:
- "~/documents"
- "~/projects"
write:
- "~/projects/output"临时授权
# 在对话中临时授权
/workspace allow-read ~/downloads
# 或在启动时指定
clawdbot agent --allow-path ~/downloads "处理下载的文件"文件导入导出
# 导入文件到工作空间
clawdbot workspace import ~/documents/report.pdf
# 导出文件
clawdbot workspace export output.json ~/desktop/
# 或在对话中
/workspace import ~/photos/vacation.jpg
/workspace export result.pdf代码执行
支持的运行时
- Python - 默认支持
- Node.js - 默认支持
- Shell - bash/zsh
- 其他 - 可配置添加
执行配置
workspace:
execution:
# Python 配置
python:
version: "3.11"
packages:
- pandas
- numpy
- requests
# Node.js 配置
node:
version: "20"
packages:
- axios
- lodash
# Shell 配置
shell:
default: bash
allowed_commands:
- ls
- cat
- grep
- find安全限制
workspace:
execution:
# 超时设置
timeout: 300 # 5 分钟
# 资源限制
limits:
memory: "1GB"
cpu: 2
disk: "5GB"
# 禁止的操作
blocked:
- network_listen
- subprocess_shell
- file_system_root配置选项
完整配置示例
# ~/.clawdbot/config.yaml
workspace:
# 默认工作空间路径
base_path: "~/.clawdbot/workspace"
# 自动清理
auto_cleanup:
enabled: true
max_age: "7d" # 7 天后清理
max_size: "10GB" # 超过 10GB 时清理
# 持久化设置
persistence:
enabled: true
compress: true # 压缩存储
# 隔离级别
isolation: medium # low, medium, high
# 默认权限
default_permissions:
read_external: false
write_external: false
execute_shell: true
network_access: true隔离级别说明
| 级别 | 说明 | 适用场景 |
|---|---|---|
| low | 最小限制,可访问用户目录 | 信任的本地任务 |
| medium | 平衡安全和功能 | 日常使用(默认) |
| high | 严格隔离,容器运行 | 不信任的代码 |
管理操作
创建和删除
# 创建工作空间
clawdbot workspace create project-analysis
# 从模板创建
clawdbot workspace create --template python-data my-analysis
# 删除工作空间
clawdbot workspace delete project-analysis
# 清理临时文件
clawdbot workspace clean备份和恢复
# 备份工作空间
clawdbot workspace backup project-analysis
# 恢复工作空间
clawdbot workspace restore project-analysis-backup.tar.gz
# 克隆工作空间
clawdbot workspace clone project-analysis project-analysis-v2查看使用情况
# 磁盘使用
clawdbot workspace usage
# 输出示例:
# Workspace Usage:
# ├── default: 234 MB
# ├── project-analysis: 1.2 GB
# ├── temp: 56 MB
# └── Total: 1.5 GB / 10 GB共享工作空间
# 导出工作空间
clawdbot workspace export project-analysis --output project.zip
# 导入工作空间
clawdbot workspace import project.zip --name imported-project