14 KiB
答辩 PPT:大纲与逐页内容(基于 doc/TECH_DOC.md + doc/开题报告.txt)
目标:给你一个“可直接照着做 PPT”的逐页脚本。
建议页数:18 页(答辩 8–12 分钟可控;如需 15/20 页我也可以再压缩/扩展)。
你需要自行补充:系统截图(登录/聊天/终端/文件/监控/虚拟显示器/管理员面板)、架构图(可用 draw.io)。
0. PPT 叙事主线(建议)
- 为什么做:涉密/内网 + 成本 + 可控性痛点
- 做了什么:Docker 多用户隔离的 AI 开发平台(终端/文件/对话/监控一体)
- 怎么做:后端编排 + 容器执行层 + 前端实时交互 + 监控与安全
- 做得怎么样:指标/实战测试/稳定性
- 还能怎么做更好:生产化补齐项(安全/DB/CI/伸缩)
1. 页面总览(大纲)
- 标题页
- 背景与痛点
- 目标与需求(四大目标)
- 研究现状对比与创新点
- 系统总体架构(三层/数据流)
- 运行时拓扑(宿主机 + 多容器)
- 后端核心:终端编排与会话(MainTerminal/WebTerminal)
- 核心模块 1:用户容器管理(UserContainerManager)
- 核心模块 2:容器文件代理(Container File Proxy)
- 核心模块 3:持久化终端与超时控制(Persistent Terminal)
- 上下文构建与对话管理(Context/Conversation Manager)
- 分层思考模式(fast/thinking/deep)
- 子智能体机制(Sub-Agent)
- 前端架构与虚拟显示器回放(Vue + Monitor)
- 安全与权限模型(CSRF/限流/上传隔离/容器隔离)
- 监控与日志(CPU/内存/网速/磁盘/Token)
- 评估指标与实战测试结果(表格 + 数据)
- 总结与展望(贡献/局限/下一步)
2. 逐页内容(每页可直接做成 PPT)
第 1 页:标题页
标题:基于 Docker 容器的多用户 AI 智能体开发平台
副标题:自主可控、可私有化部署、支持 OpenAI 兼容国产模型
作者/学校/专业/导师/日期:按你的信息填写
建议配图:系统主界面截图(聊天 + 终端 + 资源面板同屏),或一张“浏览器 + 容器”的示意图。
讲稿要点(10–15 秒):一句话定义:这是一个“多用户隔离 + 全工具链”的 AI 编程/开发助手平台。
第 2 页:背景与痛点(为什么要做)
标题:课题背景:AI 辅助编程的现实痛点
内容要点:
- 商业产品强但有问题:国外服务依赖、内网/涉密不可用、费用高、难定制
- 国产模型生态成熟:DeepSeek/Qwen/GLM 等具备商用性能与更低成本,支持私有化
- 需求场景明确:涉密项目、企业内网、高校教学多用户实验 建议配图:对比表(Copilot/Cursor/Claude Code vs 本项目)。 讲稿要点:强调“不是再做一个聊天网页”,而是“可执行、可隔离、可监控”的开发平台。
第 3 页:目标与需求(做成什么样)
标题:课题目的:四大目标
内容要点(四象限):
- 技术自主:OpenAI 兼容 API;可私有化部署
- 功能完整:终端/文件/对话管理/监控
- 安全隔离:单用户单容器、配额限制、沙箱化文件与命令
- 实用性:涉密开发、降低企业成本、教学平台 建议配图:四象限图或 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 前先收集)
- 截图:登录页、聊天页、终端页、文件管理、上传、资源面板、虚拟显示器、管理员策略页
- 结构图:总体架构、运行时拓扑、工具调用时序、子智能体协作图
- 数据:并发容器/终端数量、成功率、72h 稳定性、token 成本(用你真实运行数据替换“目标值/示例值”)
- 演示脚本:一条典型任务(搜索→修改文件→运行命令→展示监控/回放)
4. 版本说明
- 生成时间:2026-01-05
- 依据文件:
doc/TECH_DOC.md、doc/开题报告.txt