06-sandbox-autonomy.md 1.8 KB

6. Agent 沙盒自治

v1.1 新增 — 每个 Agent 在沙盒内拥有完全自治能力,框架只做隔离,不干预内部实现。

6.1 Workspace 目录

data/agents/{agent-id}/
├── define/              # 框架管理: Agent 定义文件
│   ├── AGENTS.md
│   ├── SOUL.md
│   └── TOOLS.md
├── memory/              # 框架管理: 记忆系统
├── logs/                # 框架管理: 日志
├── config.json          # 框架管理: cron/api/gateway 配置
├── skills/              # 框架管理: Skill 定义
│
└── workspace/           # Agent 自治区域
    ├── code/            # Agent 自主编写的代码(爬虫、处理脚本等)
    ├── data/            # Agent 自主创建的数据(SQLite、JSON 等)
    ├── assets/          # Agent 自主管理的资产(文件、图片、视频等)
    └── .env             # Agent 自己的环境变量

6.2 沙盒能力与边界

class SandboxManager {
  async createSandbox(agentId) {
    return {
      cwd: `data/agents/${agentId}/workspace`,

      // ACP 进程可访问的路径范围
      allowedPaths: [
        `data/agents/${agentId}/`,    // 自己的全部数据
      ],

      // 从 config.json 注入 API keys 等
      env: await this.loadAgentEnv(agentId),

      // 资源限制
      limits: {
        maxMemoryMB: 512,
        maxCpuPercent: 25,
        maxDiskMB: 1024,
        maxProcesses: 5,
      },
    };
  }
}

6.3 关键原则

  • workspace/ 是 Agent 的 自治领地,框架不干预
  • Claude Code ACP 内核天然具备写代码、运行代码、读写文件的能力
  • Agent 在沙盒内自主创建爬虫、数据库、数据处理脚本
  • 框架只负责 进程级隔离 + 文件系统隔离 + 资源限制