Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Agent 日程与任务协同助手

一个基于自然语言输入的「目标 → 拆解 → 排期 → 提醒 → 总结」全流程智能助手。后端 SpringBoot 3.2 + MyBatis-Plus + 自研 Agent 编排(无 Spring AI / LangChain 依赖),前端 Vue3 + Vite + Element Plus。

演示可在不配置任何 LLM API Key 的情况下端到端运行:未配置 Key 时自动启用内置 LocalPlannerClient 规则规划器,完整复刻「调用工具 → 回填 → 再推理」的多轮行为,并把全部 LLM 输入输出、工具调用写入验收证据表。


1. 技术栈

技术
后端 Java 17 / SpringBoot 3.2.5 / MyBatis-Plus 3.5.7
安全 JWT 双令牌(用户/管理员)、BCrypt、RBAC 菜单权限
存储 MySQL 8.0(默认)或 H2 内存(零配置演示)
Agent 自研 ReAct 编排器 + OpenAI 兼容 LLM 客户端 + 本地规则兜底
前端 Vue3 / Vite 5 / TypeScript / Pinia / Vue Router / Element Plus / Axios

2. 目录结构

aimini/
├── backend/                # SpringBoot 后端
│   ├── pom.xml
│   ├── .env.example        # 环境变量说明
│   └── src/main/
│       ├── resources/
│       │   ├── application.yml        # 默认 mysql 配置
│       │   └── db/
│       │       ├── schema-h2.sql      # H2 演示库 DDL
│       │       ├── data-h2.sql        # H2 演示种子数据
│       │       └── init.sql           # MySQL DDL + 种子(角色/Agent)
│       └── java/com/aiagent/todo/
│           ├── controller/   user/ + admin/
│           ├── service/      业务服务(含 Agent 主链路)
│           ├── agent/        llm / orchestrator / tool / prompt / log
│           ├── entity/ mapper/ common/ security/ exception/
├── frontend/               # Vue3 前端
│   └── src/
│       ├── api/    request + 各模块 API
│       ├── stores/ user + admin(Pinia)
│       ├── router/ 含鉴权与 RBAC 守卫
│       ├── components/  TaskCard / CalendarView / ConflictBadge / ...
│       └── views/  Login / Input / Dashboard / PlanConfirm / TaskDetail
│                    / Reminder / Report + admin/*
├── docker-compose.yml      # MySQL 8.0 一键起

3. 快速开始(零配置演示,推荐)

无需安装 MySQL、无需 LLM Key。

# 1) 后端:用 H2 内存库启动(自动建表 + 种子数据)
cd backend
export JAVA_HOME=/path/to/jdk17
mvn spring-boot:run -Dspring-boot.run.profiles=dev-h2

# 2) 前端:另开一个终端
cd frontend
npm install
npm run dev        # http://localhost:5173

打开 http://localhost:5173

  • 用户端:注册 / 登录 → /input 输入目标(如「帮我准备 7月24日 的新人培训汇报,包括材料整理、PPT初稿、评审修改」)→ 解析 → 确认 → 计划预览 → 一键确认 → 首页查看任务与日历。
  • 后台:/admin/login,使用种子管理员账号 admin / admin123,可管理 Agent/工具/策略/Prompt/渠道,并查看会话日志与效果统计(验收证据)。

演示账号种子:管理员 admin/admin123。用户请在前端自行注册。


4. 使用 MySQL(生产/完整)

# 方式 A:docker-compose 起 MySQL
docker compose up -d mysql

# 方式 B:自己准备 MySQL 8.0,执行 backend/src/main/resources/db/init.sql 建表

# 启动后端(默认 mysql profile)
cd backend
mvn spring-boot:run

默认数据库连接在 application.ymlspring.profiles.mysql 段,可用 .env 或环境变量覆盖(见 .env.example)。


5. 配置 LLM(可选,启用真实大模型)

backend/src/main/resources/application.ymlllm: 段配置:

llm:
  base-url: https://api.openai.com/v1
  api-key: sk-xxxx            # 留空则自动启用 LocalPlannerClient 兜底
  model: gpt-4o-mini

配置后,LlmConfig 会自动注入 OpenAICompatClient(OkHttp 调用 /chat/completions,支持 function calling);留空则启用本地规则规划器。


6. 核心设计要点(对应需求文档)

  • 主链路(FR-U1~U5)GoalService 串联 agent_parse 解析 → 人工确认 → agent_schedule 生成计划(不落库)→ 一键确认批量落库(task/schedule/reminder + 变更日志 + 工具日志)。
  • Agent 编排AgentOrchestrator 实现 ReAct 循环(LLM → 解析 tool_calls → 执行 → 回填 → 再调用),含最大轮次保护、失败兜底、确认拦截器。
  • 敏感操作确认(NFR-S1)createTask / createReminder 等工具标记 confirmRequired,先返回 needConfirm,由用户二次确认后落库;删除提醒同样需二次确认。
  • 验收证据(FR-AI5):每次会话的 model_input / model_output / plan_result 写入 agent_session;每次工具调用的参数/结果/成功/耗时/错误写入 tool_call_log。后台「会话日志」页可查看(含模型 IO 详情)。
  • 失败兜底(FR-AI6):LLM 调用异常时走 LocalPlannerClient 或返回友好提示,不阻塞主流程。
  • 权限(FR-A1):JWT 管理员令牌携带 menuPerms,前端按权限动态显示后台菜单,后端 AuthContext.requirePerm(...) 做接口级 RBAC。
  • 效果评估(NFR-M2):后台统计意图识别准确率、冲突解决率、人工干预率、任务拆解评分。

7. 常用接口速查

能力 方法 路径
目标解析 POST /api/goals/parse
目标确认 PUT /api/goals/{goalId}/confirm
计划预览 POST /api/goals/{goalId}/plan/preview
计划确认 POST /api/goals/{goalId}/plan/confirm
任务列表/详情/状态/总结 GET/PATCH/POST /api/tasks...
日程/提醒/报表/总览 GET /api/schedules /api/reminders /api/reports /api/dashboard/overview
后台管理 CRUD /api/admin/{roles,admins,agents,agents/{id}/tools,strategies,prompts,channels}
验收证据 GET /api/admin/sessions /api/admin/sessions/{id} /api/admin/tool-logs /api/admin/stats /api/admin/audit-logs

8. 构建前端产物

cd frontend
npm install
npm run build      # 输出到 dist/
npm run preview    # 本地预览构建产物

9. 环境要求

  • JDK 17+(已用 Java 17 编译;本地装有 JDK 25 亦可编译)
  • Node 18+(前端)
  • Maven 3.8+(后端)
  • MySQL 8.0(可选,演示可用 H2 替代)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages