agent-Specialization/doc/phases/phase1_summary.md

2.8 KiB
Raw Permalink Blame History

Phase 1 Summary 环境变量与容器隔离

已完成的关键改动

  1. 配置去硬编码

    • config/api.py / config/auth.py 读取 .env 中的密钥和凭证,config/__init__.py 自动加载 .env,彻底清理仓库里的明文 key。
    • .env.example 提供可复制的模板,.env 记录当前部署所用值,防止环境遗漏。
  2. 终端容器化

    • 所有实时终端、run_commandrun_python 全部运行在 my-agent-shell 镜像(基于 python:3.11-slim)中;镜像预装常用系统工具与 Python 依赖,并内置虚拟环境。
    • 工具容器懒加载,可复用同一个会话,空闲超时自动回收,日志可追踪容器启动/释放。
  3. 资源配额

    • .env 控制 0.5 vCPU / 1GB RAM 的容器配额,项目目录写入前会进行 2GB 存储配额检查。
    • TERMINAL_SANDBOX_*/PROJECT_MAX_STORAGE_MB/TOOLBOX_TERMINAL_IDLE_SECONDS/MAX_ACTIVE_USER_CONTAINERS 等可在环境中统一调整。
  4. 并发保护与体验

    • 新增 active_users 计数,限制同时在线账户总数;超限时 /login 与 Ajax 登录都会跳转到 resource_busy 页面,提示“资源繁忙,请稍后重试”。
    • 登出/会话释放时及时归还 slot确保超过配额不会导致服务器崩溃。
  5. 系统提示同步

    • main prompt 中不再暴露宿主机路径,只告知模型“你在隔离容器(挂载目录 /workspace)中工作”,附带 CPU/内存/磁盘配额说明,减少对真实环境的暴露。
  6. 安全检查

    • doc/security/security_review.md 更新了第一阶段完成项:环境变量治理、终端容器化、资源限制、繁忙提示等,便于下一阶段延续。

后续建议

  1. 用户级容器

    • 当前仍是“多终端共享多个容器”。下一阶段可收敛为“每用户一个长生命周期容器”,集中处理终端/文件/工具请求,进一步简化资源管理。
  2. 文件操作代理

    • 目前 FileManager 仍在宿主机写入。可以考虑在用户容器内提供文件服务/API让 append/modify 等也走容器,宿主机只负责挂载和备份。
  3. 监控与预警

    • 接入 Docker/系统 metrics记录容器 CPU/Mem/IO 使用情况,并在触达阈值前告警;后续可结合日志汇报高危命令。
  4. CI / 镜像自动构建

    • docker/terminal.Dockerfiletoolbox-requirements.txt 纳入 CI pipeline自动构建并推送 my-agent-shell,避免手工 build。
  5. 权限最小化

    • 研究 rootless Docker 或容器内非 root 用户,进一步降低 /etc/shadow 等容器内敏感文件被误读的风险。

如需接手下一阶段,请先阅读 doc/security/security_review.md,了解之前的风险总览及尚未推进的条目。祝顺利!