基于 Modern.js 全栈框架构建的 AI Agent 应用,集成多模型接入、多 Agent 协作、工具链式调用、OIDC 认证、实时监控等企业级能力。
- Modern.js BFF 全栈架构,前后端同仓
- SSE 流式响应 + Markdown 实时渲染(代码高亮)
- 多模型支持:火山引擎豆包 / 本地 Ollama (DeepSeek-R1)
- 多 Agent 协作:Planner-Critic-Host-Reporter 四角色讨论架构
- 工具链式调用:联网搜索 (Tavily)、时间、计划等工具的自动编排
- OIDC 认证体系:自研轻量 IdP + BFF Session + CSRF 防护 + 限流
- MongoDB 持久化 + Redis 缓存 / 会话 / 队列
- Prometheus + Grafana 可观测性
- Docker Compose 一键部署 + Jenkins CI/CD
- Clean Architecture 渐进式重构(DI 容器 + 用例分层)
项目需要配置环境变量才能正常运行。请按照以下步骤操作:
# 1. 复制环境变量模板文件
cp .env.example .env.local
# 2. 编辑 .env.local 文件,填入你的真实配置
# 必须配置的项目:
# - TAVILY_API_KEY: 在 https://tavily.com/ 注册获取
# - ARK_API_KEY: 在 https://console.volcengine.com/ark 注册获取
# - ARK_MODEL: 你的火山引擎模型 Endpoint ID
# - MONGODB_URI: MongoDB 连接地址- 访问 Tavily 官网
- 注册账号并登录
- 在控制台获取 API Key
- 将 API Key 填入
.env.local的TAVILY_API_KEY
- 访问 火山引擎控制台
- 注册账号并开通豆包大模型服务
- 创建推理接入点,获取 Endpoint ID
- 在 API 管理中获取 API Key
- 将配置填入
.env.local的ARK_API_KEY和ARK_MODEL
- 本地开发:确保本地安装了 MongoDB,使用默认配置即可
- 生产环境:使用 Docker Compose 会自动启动 MongoDB 容器
# 安装依赖
npm install
# 配置环境变量
cp .env.example .env.local
# 开发模式(自动启动 IdP + BFF)
npm run dev
# 构建
npm run build
# 启动生产服务
npm run serve
# 提交代码前运行安全检查
npm run check:secrets# 构建镜像
npm run docker:build
# 运行容器
npm run docker:run
# 查看日志
npm run docker:logs
# 停止容器
npm run docker:stop| 层级 | 技术 |
|---|---|
| 前端 | React 18 + Modern.js + TypeScript + CSS Modules |
| 后端 | Modern.js BFF (Hono) + Lambda 函数式路由 |
| AI 模型 | 火山引擎豆包 (doubao-1.5-thinking-pro) / Ollama (DeepSeek-R1) |
| 认证 | 自研轻量 OIDC IdP + BFF Session + CSRF + 限流 |
| 数据库 | MongoDB 7 (持久化) + Redis 7 (缓存/会话/队列) |
| 监控 | Prometheus + Grafana + 自定义埋点 SDK |
| 部署 | Docker Compose + Nginx 反向代理 + Jenkins CI/CD |
| 架构 | Clean Architecture (DI 容器 + Use-Case 分层) |
设计了 Planner-Critic-Host-Reporter 四角色讨论框架。Host 基于向量相似度实时检测共识度(>0.9 收敛 / <0.7 继续辩论),自动控制讨论节奏;Reporter 通过结构化提取 + 优先级排序融合最终结论,而非简单拼接文本。
实现了 MultiToolCallManager,支持单次请求中连续多轮工具调用(搜索 → 分析 → 计划)。通过 TypeScript 接口生成的强类型工具定义注入 System Prompt,配合参数校验器拦截非法调用,5 轮硬上限防死循环。
基于 TransformStream 实现 SSE 流式推送,前端实时渲染思考过程和回答。针对 LLM 输出格式不稳定的问题,实现多策略 JSON 提取与自动修复(括号补全、中文引号替换),解析失败时自动降级为纯文本,保证前端永不白屏。
自研轻量 IdP 支持完整 OIDC Authorization Code + PKCE 流程。BFF 层实现 Session 管理、CSRF 双重校验(Origin/Referer + Token)、Redis 分布式限流(全局/IP/设备三维度 + 熔断降级)。管理接口统一接入 adminGuard 鉴权。
短期记忆(最近 10 轮完整上下文)+ 中长期记忆(90 条范围内关键词模糊匹配),兼顾上下文连贯性与历史信息召回率。架构已预留向量数据库接口,可平滑升级为 Embedding 语义检索。
构建后自动执行关键 CSS 内联、资源预加载提示注入、Brotli/Gzip 预压缩。配套 Lighthouse User Flow 自动化测试和 Bundle 体积 Top-20 分析脚本,形成"优化 → 测量 → 验证"闭环。
├── api/ 后端 API(Lambda 函数 + Clean Architecture)
├── src/ 前端 React 应用
├── shared/ 前后端共享类型
├── idp/ OIDC 认证服务(轻量 IdP)
├── deploy/ 部署配置(Docker Compose / Nginx / 启动脚本)
├── dockerfiles/ 容器构建配方
├── monitoring/ Prometheus & Grafana 配置
├── scripts/ 辅助脚本(dev / build / bench / security)
├── test/ 测试(Jest / K6 / Lighthouse)
└── docs/ 项目文档(按模块编号 00-12)