下面截图均来自真实运行界面(Vue 工作台 + FastAPI 后端)。
登录页——飞书 OAuth 登录,进入工作台:
工作台总览——顶部栏 + 头像入口 + KPI(今日任务 / 成功率 / 状态分布)+ 近 7 天任务量图表 + 待确认板块 + 最近任务:
底部悬浮聊天——点右下角悬浮按钮展开,点空白关闭(草稿保留)、可拖拽调大小、历史持久化:
个人中心面板——点头像展开:QQ 邮箱绑定、权限预留、历史任务:
🧠 Agent 核心
- 意图拆解 → 子任务编排 → 多轮执行循环(结果回填,MAX_STEPS 防死循环)
- 工具契约:BaseTool + Registry + JSON Schema 校验 + 操作白名单
- 工具按需注入(RequestSelector):按意图只把相关工具 Schema 给模型,省 token、降低误选
- 本体层:业务对象建模(字段 + 操作 → 工具),planner 按对象理解需求、注入对应工具
- Agent 对话能力:planner 支持 chat 格式(纯对话 / 对话 + 工具),该聊就聊、该干活才干活
🛡️ 安全可控
- 高危动作两段式确认:工作区内联确认(5 分钟)→ 待确认队列(30 分钟超时挂起)
- 写盘前结构化 diff 预览(表格 old → new,表头感知定位,杜绝改错列)
- JWT 登录 + 用户隔离 + 全链路审计(任务/工具/确认/登录/稍后)
🖥️ 工作台 UI(Vue)
- 顶部栏 + 头像个人中心(QQ 邮箱绑定 / 权限预留 / 历史)
- KPI + 图表(ECharts 按需引入):今日任务 / 成功率 / 状态分布 / 近 7 天任务量
- 待确认板块(内联确认 + diff)、最近任务(搜索 / 筛选)
- 底部悬浮聊天:点击展开 / 点空白关闭(草稿保留)/ 拖拽调大小 / 历史持久化
📊 数据可视化
- 表格聚合出图:
aggregate按表头分组统计 → 聊天卡片直接出柱状图
🧾 飞书多维表格(Bitable)
- 飞书 Bitable API:列出表格 / 读取记录 / 新建记录 / 更新记录(写记录高危,需确认)
- 与本地 Excel/CSV 并列:本地表格 + 云端多维表格两套表格能力
📝 周报自动生成
- 多工具编排:读本周日历 + 最近邮件 + 报名表 → LLM 汇总成周报文本
- 只生成文本,发送走邮件工具的高危确认(不自动外发)
🔌 外部能力(MCP 消费)
- Agent 通过标准 MCP 协议发现并调用外部 MCP server 的工具,适配进自研 Registry、走同一套审计
- 演示源为本地 mock(
backend/mcp/mock_server.py),生产接真实 MCP server 只改连接地址
🔬 安全测试(对抗测试 Agent)
- 红队角色:预置 45 条对抗用例(prompt 注入 / 高危误判 / 模糊意图 / 缺参越权 / 极端输入 / 矛盾指令 / 数据外泄)攻击主 Agent
- 验证确认闸门、白名单、反问澄清、参数校验、审计真的兜得住;
python scripts/run_adversarial.py输出 7 类分类报告(当前 45/45 通过) ⚙️ 工程化 - 141+ 自动化测试(20 黄金 Case / 3 类评分器 / Trace,见
docs/自动化测试方案.md) - 切片开发:每片「接口 → 逻辑 → 工具 → 返回 → 测试」,可运行可回滚
Vue 3 + FastAPI + SQLite(预留 PostgreSQL)+ ECharts + 飞书登录/日历/多维表格 + QQ 邮箱 IMAP/SMTP + 本地 Excel/CSV + MCP(fastmcp)
config/配置与提示词(改配置不动代码)backend/Python 后端(一个概念一个文件)agent/拆解 / 执行 / 多轮循环 / 任务状态 / 对话合成ontology/本体层(业务对象建模 → 工具路由)tools/工具(email / sheets / calendar / bitable / weekly)+ 注册表 + 按需注入safety/高危确认闸门 / 白名单 / 审计mcp/MCP 客户端与 mock serveradversarial/对抗测试 Agent(红队用例 + 运行器)api/v1/REST 接口
frontend/Vue 前端(工作台 / 悬浮聊天 / 个人中心)tests/测试(镜像 backend)scripts/一次性脚本(含对抗测试 CLIrun_adversarial.py)docs/文档(PRD / MVP / 部署 / 自动化测试 / 面试讲解 / UI 原型 v16)+screenshots/运行截图
pip install -r requirements.txt
uvicorn backend.main:app --port 8001 --reload --reload-dir backend --reload-dir config # 后端
pytest # 后端测试
cd frontend
npm install # 前端依赖(首次)
npm run dev # 前端,访问 http://localhost:5173MCP 演示:后端启动后,在聊天框说「查一下上海的天气」——Agent 会通过 MCP 协议调用本地 mock server 的 get_weather 工具。
把报名表里张三的电话更新为 138xxxx → 工作台/聊天卡片显示 diff(old → new)→ 员工确认才写盘。
统计报名表各专业报名人数 → aggregate 按表头分组统计 → 聊天卡片直接出柱状图。
查一下上海的天气 → Agent 通过 MCP 协议调用外部 server 的 get_weather 工具 → 返回结果。
「帮我生成本周周报」→ 编排读取本周日历 + 最近邮件 + 报名表 → LLM 汇总成周报文本;只生成不自动外发,发送走邮件高危确认。
每加一个功能,按「接口 → 逻辑 → 工具 → 返回 → 测试」顺序完成一个切片; 每完成一个切片,项目必须可运行(测试通过 + 服务可启动)。
改动不影响其它功能:改前跑全量测试确认基线;涉及共享模块列出调用方核对;改完立刻全量回归;尽量最小修改;每次改动独立提交可回滚。







