通过聊天完成 Agent Demo 构建:AI 推荐开源项目、生成本地 Docker 部署包、生成测试问答、录制演示视频,并把会话、消息和产物记录到 MySQL。
backend/ Spring Boot 3 + Spring AI 后端
config/ Web 静态资源配置
controller/ REST API
domain/ MySQL 持久化实体
dto/ API / AI 结构化输出 DTO
repository/ Spring Data JPA Repository
service/ AI 编排、会话存储、部署包、录频
chrome-extension/ Manifest V3 浏览器插件
src/ React 聊天式前端
output/ 部署包、视频、封面、字幕- JDK 17+
- Node.js 18+
- Docker 可选,用于启动 MySQL
- 一个 OpenAI-compatible API Key,例如 DeepSeek / Qwen / OpenAI
cd backend
docker compose -f docker-compose.mysql.yml up -d默认连接信息:
MYSQL_URL=jdbc:mysql://localhost:13306/agentlab_demo?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
MYSQL_USER=agentlab
MYSQL_PASSWORD=agentlabSpring Data JPA 会维护业务表:
ai_conversationai_messageai_artifact
Spring AI JDBC Chat Memory 也已接入 MySQL,并启用 schema 初始化。
默认使用 OpenAI-compatible 配置:
set AI_BASE_URL=https://api.deepseek.com
set AI_API_KEY=your-api-key
set AI_MODEL=deepseek-chat也可以换成其他兼容 OpenAI 协议的模型服务。
当用户在聊天中要求“推荐项目”时,后端会先让 AI 生成 GitHub 搜索计划,然后调用 GitHub Repository Search API:
GET https://api.github.com/search/repositories候选项目会按以下信息综合打分:
- GitHub Stars
- Forks
- 最近 push / update 时间
- 与用户需求、AI 搜索关键词和场景的匹配度
- 是否出现 WebUI / Docker / compose / chatbot 等部署和演示相关信号
推荐回答仍由 AI 生成,但只能基于后端刚刚搜索并打分得到的 GitHub 候选项目。
可选配置:
set GITHUB_TOKEN=your-github-token不配置也可以搜索公开仓库,但 GitHub Search API 的限流会更紧。
npm install
npm run dev服务地址:
单独启动:
npm run start:backend
npm run dev:web前端只保留聊天主入口。可以直接说:
我想做一个 PDF 智能问答 Agent,帮我推荐项目为当前推荐项目生成 Docker 部署包生成适合录制 Demo 的测试问答录制一段可以直接分享的演示视频
后端会通过 Spring AI 判断动作并生成回答。录制完成后,返回的 videoUrl 会直接在聊天气泡中用 <video controls> 播放。
点击推荐项目卡片后,前端会自动发送“选择该项目并生成部署包”的消息,进入后续部署流程。
npm run build
cd backend
mvnw.cmd -q package当前后端使用 Spring AI 1.1.5。实现参考了 Spring AI 官方 ChatClient 和 JDBC Chat Memory 文档。