agent-Specialization/doc/phases/phase1_summary.md

45 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 1 Summary 环境变量与容器隔离
## 已完成的关键改动
1. **配置去硬编码**
- `config/api.py` / `config/auth.py` 读取 `.env` 中的密钥和凭证,`config/__init__.py` 自动加载 `.env`,彻底清理仓库里的明文 key。
- `.env.example` 提供可复制的模板,`.env` 记录当前部署所用值,防止环境遗漏。
2. **终端容器化**
- 所有实时终端、`run_command`、`run_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.Dockerfile``toolbox-requirements.txt` 纳入 CI pipeline自动构建并推送 `my-agent-shell`,避免手工 build。
5. **权限最小化**
- 研究 rootless Docker 或容器内非 root 用户,进一步降低 /etc/shadow 等容器内敏感文件被误读的风险。
如需接手下一阶段,请先阅读 `doc/security/security_review.md`,了解之前的风险总览及尚未推进的条目。祝顺利!