# 答辩 PPT：大纲与逐页内容（基于 `doc/TECH_DOC.md` + `doc/开题报告.txt`）

> 目标：给你一个“可直接照着做 PPT”的逐页脚本。  
> 建议页数：**18 页**（答辩 8–12 分钟可控；如需 15/20 页我也可以再压缩/扩展）。  
> 你需要自行补充：系统截图（登录/聊天/终端/文件/监控/虚拟显示器/管理员面板）、架构图（可用 draw.io）。

---

## 0. PPT 叙事主线（建议）
1) **为什么做**：涉密/内网 + 成本 + 可控性痛点  
2) **做了什么**：Docker 多用户隔离的 AI 开发平台（终端/文件/对话/监控一体）  
3) **怎么做**：后端编排 + 容器执行层 + 前端实时交互 + 监控与安全  
4) **做得怎么样**：指标/实战测试/稳定性  
5) **还能怎么做更好**：生产化补齐项（安全/DB/CI/伸缩）

---

## 1. 页面总览（大纲）
1. 标题页  
2. 背景与痛点  
3. 目标与需求（四大目标）  
4. 研究现状对比与创新点  
5. 系统总体架构（三层/数据流）  
6. 运行时拓扑（宿主机 + 多容器）  
7. 后端核心：终端编排与会话（MainTerminal/WebTerminal）  
8. 核心模块 1：用户容器管理（UserContainerManager）  
9. 核心模块 2：容器文件代理（Container File Proxy）  
10. 核心模块 3：持久化终端与超时控制（Persistent Terminal）  
11. 上下文构建与对话管理（Context/Conversation Manager）  
12. 分层思考模式（fast/thinking/deep）  
13. 子智能体机制（Sub-Agent）  
14. 前端架构与虚拟显示器回放（Vue + Monitor）  
15. 安全与权限模型（CSRF/限流/上传隔离/容器隔离）  
16. 监控与日志（CPU/内存/网速/磁盘/Token）  
17. 评估指标与实战测试结果（表格 + 数据）  
18. 总结与展望（贡献/局限/下一步）

---

## 2. 逐页内容（每页可直接做成 PPT）

### 第 1 页：标题页
**标题**：基于 Docker 容器的多用户 AI 智能体开发平台  
**副标题**：自主可控、可私有化部署、支持 OpenAI 兼容国产模型  
**作者/学校/专业/导师/日期**：按你的信息填写  
**建议配图**：系统主界面截图（聊天 + 终端 + 资源面板同屏），或一张“浏览器 + 容器”的示意图。
**讲稿要点（10–15 秒）**：一句话定义：这是一个“多用户隔离 + 全工具链”的 AI 编程/开发助手平台。

---

### 第 2 页：背景与痛点（为什么要做）
**标题**：课题背景：AI 辅助编程的现实痛点  
**内容要点**：
- 商业产品强但有问题：国外服务依赖、内网/涉密不可用、费用高、难定制  
- 国产模型生态成熟：DeepSeek/Qwen/GLM 等具备商用性能与更低成本，支持私有化  
- 需求场景明确：涉密项目、企业内网、高校教学多用户实验
**建议配图**：对比表（Copilot/Cursor/Claude Code vs 本项目）。
**讲稿要点**：强调“不是再做一个聊天网页”，而是“可执行、可隔离、可监控”的开发平台。

---

### 第 3 页：目标与需求（做成什么样）
**标题**：课题目的：四大目标  
**内容要点（四象限）**：
1) 技术自主：OpenAI 兼容 API；可私有化部署  
2) 功能完整：终端/文件/对话管理/监控  
3) 安全隔离：单用户单容器、配额限制、沙箱化文件与命令  
4) 实用性：涉密开发、降低企业成本、教学平台
**建议配图**：四象限图或 checklist。
**讲稿要点**：这四点对应后面四条主线：架构、工具、隔离、安全与监控。

---

### 第 4 页：研究现状与创新点（你做的“新”在哪里）
**标题**：研究现状与不足 → 本项目创新点  
**对比要点**：
- Copilot/灵码：主要是补全，缺少终端/文件/多租户  
- Cursor/Claude Code：工具更强但闭源/云端/单用户或国内受限  
- 开源 AutoGPT/Open-WebUI：偏聊天/框架，工程化与隔离不足  
**本项目创新点（落地型）**：
- 多用户隔离：单用户单容器 + 资源配额  
- 工具完整：持久化终端 + 文件代理 + 对话管理 + 监控  
- 分层思考模式：推理模型首轮 + 快速模型后续（节省成本）  
- 子智能体并行：任务拆分与交付
**讲稿要点**：把“创新”说成“可验证的工程机制”，而不是抽象概念。

---

### 第 5 页：系统总体架构（概览）
**标题**：总体架构：浏览器 → Web 服务器 → 业务逻辑 → 容器层  
**内容要点**（建议画图）：
- 前端：Vue SPA + Socket.IO Client  
- Web Server：Flask + Socket.IO（鉴权、API、事件）  
- 业务层：WebTerminal/MainTerminal、ContextManager、UserContainerManager、UploadQuarantineManager  
- 容器层：每用户一个容器，执行命令与文件操作  
**讲稿要点**：解释“工具调用并不在宿主机直接执行”，而是通过容器代理统一落地。

---

### 第 6 页：运行时拓扑（多用户隔离如何工作）
**标题**：运行时拓扑：单机多用户、多容器并发  
**内容要点**：
- 用户登录 → 创建/复用容器 → 挂载用户工作区（project/data/logs）  
- 宿主机仅运行 Web 服务与调度，执行尽量在容器内完成  
- 并发上限：最多 N 个活跃容器（配置项 `MAX_ACTIVE_USER_CONTAINERS`）
**建议配图**：宿主机盒子 + N 个容器盒子，每个容器挂载各自 workspace。
**讲稿要点**：突出横向隔离：用户 A 无法看到用户 B 的文件/进程。

---

### 第 7 页：后端核心：终端编排与会话（MainTerminal/WebTerminal）
**标题**：后端核心：统一编排层  
**内容要点**：
- CLI 与 Web 共用核心：`core/main_terminal.py`  
- Web 版继承：`core/web_terminal.py`，增加消息回调与自动加载/创建对话  
- 统一处理：运行模式（fast/thinking/deep）、工具分类开关、聚焦文件、Todo/记忆、子代理状态  
**建议配图**：类关系简图：WebTerminal → MainTerminal → modules/utils/config。
**讲稿要点**：强调“核心逻辑只写一套”，降低维护成本。

---

### 第 8 页：核心模块 1：用户容器管理（UserContainerManager）
**标题**：容器生命周期管理（按用户）  
**内容要点**：
- 创建/复用/回收：`ensure_container` / `release_container`  
- 资源限制：CPU/内存/网络/卷挂载路径；容器上限与资源繁忙提示  
- 状态采集：支持 `docker stats/inspect` 汇报到监控  
**建议配图**：时序图：login → ensure_container → handle；logout/idle → release。
**可讲实现细节**：
- 容器模式与回退：docker 不可用时可回退 host（可配置 require 强制失败）  
- 容器命名与记录：保存 container_name/container_id/last_active

---

### 第 9 页：核心模块 2：容器文件代理（Container File Proxy）
**标题**：容器内文件操作：安全、低开销  
**内容要点**：
- 方案：`docker exec` 执行内联 Python 脚本（避免 `docker cp` 往返与临时文件）  
- 安全：路径解析 `resolve` + 前缀检查，阻止目录遍历；限制文件大小与行范围  
- 功能：create/read/write/rename/delete、读片段、（可扩展 diff/搜索）  
**建议配图**：对比图：传统 docker cp 三次 IO vs exec 一次 IO。  
**讲稿要点**：把“效率 + 安全”作为这页核心论点。

---

### 第 10 页：核心模块 3：持久化终端与超时控制
**标题**：持久化终端：多会话 + 输出缓冲 + 超时不杀会话  
**内容要点**：
- 多终端会话管理：`modules/terminal_manager.py`（最大会话数、快照行数/字符上限）  
- 持久化终端：`modules/persistent_terminal.py`（读写线程、输出队列、循环缓冲、回显检测）  
- 一次性工具命令：`modules/terminal_ops.py` + `modules/toolbox_container.py`（专用工具容器，避免状态污染）  
**建议配图**：终端会话结构图（session → process → output buffer）。  
**讲稿要点**：强调工程难点：交互式程序、输出爆炸、超时机制（只杀命令不杀终端）。

---

### 第 11 页：上下文构建与对话管理
**标题**：ContextManager：把“可用信息”组装给模型  
**内容要点**：
- 对话持久化：`utils/conversation_manager.py`（对话文件 + index，支持重建索引与容错）  
- 上下文来源：历史消息、工具结果、聚焦文件、Todo/记忆、资源限额、个性化偏好  
- Token 统计：对话级 + 工作区累计（写入 `token_totals.json`）  
**建议配图**：上下文拼装示意：System prompt + tools + focused files + history + memory/todo。  
**讲稿要点**：说明为什么需要“聚焦文件”：让模型稳定获取关键代码片段，减少无关信息。

---

### 第 12 页：分层思考模式（fast / thinking / deep）
**标题**：分层思考模式：质量/速度/成本的平衡  
**内容要点**：
- fast：快速响应，适合简单问题  
- thinking：推理更充分，适合复杂任务  
- deep：更强推理/更长思考（用于难题）  
- 机制：首轮推理结果缓存，后续复用（节约成本；可配置切换间隔 `THINKING_FAST_INTERVAL`）  
**建议配图**：模式切换流程图或对比表（质量/成本/延迟）。  
**讲稿要点**：把“成本控制”说成一个可量化的工程机制，而不是主观感受。

---

### 第 13 页：子智能体机制（Sub-Agent）
**标题**：子智能体：任务并行与交付  
**内容要点**：
- 主智能体负责编排与拆分；子智能体负责执行子任务并返回交付物  
- 生命周期：create → wait → close；状态：pending/running/completed/failed  
- 隔离：独立工作区（references/deliverables），避免污染主会话  
**建议配图**：主/子代理协作图（任务拆分、并行、合并结果）。  
**讲稿要点**：突出价值：复杂任务“可并行”，主对话更清晰。

---

### 第 14 页：前端架构与虚拟显示器回放
**标题**：Vue 前端：实时交互 + 可视化回放  
**内容要点**：
- SPA：Vue3 + Pinia + Socket.IO Client  
- 状态域：聊天、工具、monitor、resource、files、upload、policy、subAgent 等  
- 虚拟显示器：`static/src/components/chat/monitor/*`，将工具执行过程转为可回放动画（指针/窗口/右键/进度气泡）  
**建议配图**：虚拟显示器截图 + 简单事件流（tool event → store → MonitorDirector）。  
**讲稿要点**：强调“可解释性/可观测性”：用户能看到智能体“在做什么”。

---

### 第 15 页：安全与权限模型
**标题**：安全设计：多层防护（容器 + Web 安全 + 上传隔离）  
**内容要点**：
- 容器隔离：单用户单容器，配额限制，宿主机不直接执行用户命令  
- Web 安全：CSRF token、登录失败锁定/限流、Session 过期  
- 上传安全：隔离区暂存 + 后缀/大小校验 + 可选 ClamAV 扫描 + 审计日志  
- 路径安全：`resolve` + 越界检查，阻止 `../../../`  
**建议配图**：安全“洋葱模型”图（外层 Web → 内层容器 → 文件代理）。  
**讲稿要点**：同时说明局限：仍需进一步收紧 CORS、移除硬编码密钥等生产化事项（下一页或总结提）。

---

### 第 16 页：监控与日志（可观测性）
**标题**：可观测性：资源 + Token + 审计日志  
**内容要点**：
- 容器监控：CPU/内存/网络 IO，采样写入 `logs/container_stats.log`，前端计算网速并展示  
- 磁盘配额：项目已用/上限/百分比（轮询，退避策略）  
- Token 统计：当前上下文 + 对话累计 + 工作区累计  
- 审计：上传扫描日志按用户分文件记录  
**建议配图**：资源面板截图（CPU/内存/网速/存储/Token）。  
**讲稿要点**：强调这是“教学/企业可用”的关键：管理员能看到资源与风险点。

---

### 第 17 页：评估指标与实战测试结果
**标题**：评估与验证：实战测试 + 指标达成  
**建议一张表 + 一张要点**：
- 代码规模：约 41,500 行；模块数：25+  
- 并发能力：8 个容器；单容器 3 个终端会话  
- 响应：交互响应 < 100ms（本地条件下）  
- 成功率：diff 补丁 ~85%；终端命令 ~98%  
- 稳定性：连续运行 72h 无崩溃；300+ 次 dogfooding  
- 安全测试：路径遍历/命令注入/恶意上传均拦截
**建议配图**：一页“指标表格”，或“雷达图/柱状图”。  
**讲稿要点**：把“测过/跑过/能用”说清楚，体现工程完成度。

---

### 第 18 页：总结与展望
**标题**：总结与下一步  
**总结（贡献点）**：
- 多用户容器隔离的 AI 开发平台（端到端可运行）  
- 文件代理 + 持久化终端 + 对话上下文 + 监控面板形成闭环  
- 分层思考模式与子智能体增强复杂任务能力  
**局限（坦诚但可控）**：
- 安全基线仍需生产化（密钥治理、CORS 收紧、日志脱敏、DB/权限细化）  
- 可扩展性：后端可拆分执行层/引入任务队列与多 worker  
**下一步**（可选）：
- 数据库化（用户/会话/审计）、CI/CD、镜像漏洞扫描、RAG/代码索引、rootless/gVisor 等
**建议配图**：Roadmap 时间线（短期/中期/长期）。
**讲稿要点**：以“可落地的下一步”收尾，体现工程规划能力。

---

## 3. 你需要准备的素材清单（做 PPT 前先收集）
1) 截图：登录页、聊天页、终端页、文件管理、上传、资源面板、虚拟显示器、管理员策略页  
2) 结构图：总体架构、运行时拓扑、工具调用时序、子智能体协作图  
3) 数据：并发容器/终端数量、成功率、72h 稳定性、token 成本（用你真实运行数据替换“目标值/示例值”）  
4) 演示脚本：一条典型任务（搜索→修改文件→运行命令→展示监控/回放）

---

## 4. 版本说明
- 生成时间：2026-01-05  
- 依据文件：`doc/TECH_DOC.md`、`doc/开题报告.txt`

