我做了一个“校园大脑”Agent:尝试用 AI 打通高校里的各个系统

0 阅读11分钟

最近我在做一个面向高校场景的 AI Agent 项目,叫 农林小林 ZafuGPT。

一开始很多人听到“校园 AI 助手”,会自然联想到:

查课表、看通知、问校历、宿舍报修。

这些当然是校园 AI 可以做的事,但这并不是我最想解决的问题。

我真正想探索的是:

能不能用 AI Agent 打通学校内部多个系统,让它成为一个“校园大脑”,辅助处理校园范围内的复杂事务和决策问题?

换句话说,这个项目不是为了做一个只面向学生的问答机器人,而是想做一个连接教务、学工、后勤、通知、人员、活动、场馆、工单等系统的智能调度层。

它的价值不只是“帮学生查信息”,而是让学校里的复杂事务能够被 AI 理解、拆解、调度和规划。

为什么高校需要“校园大脑”?

现在大多数高校其实已经有很多信息化系统了。

比如:

  • 教务系统
  • 学工系统
  • 后勤系统
  • 图书馆系统
  • 场馆预约系统
  • 通知公告系统
  • 报修工单系统
  • 一卡通系统
  • 学生画像系统
  • 各学院自己的管理平台

表面上看,系统很多,功能也不少。

但问题是:

系统越多,信息反而越分散。

不同系统之间往往是割裂的。

比如一个学院想组织一场 200 人的讲座,需要考虑:

  • 哪些学生有空?
  • 哪些时间段没有大面积课程冲突?
  • 哪些报告厅能容纳 200 人?
  • 场地是否已经被预约?
  • 是否和学校其他大型活动冲突?
  • 是否需要后勤保障?
  • 是否需要保卫处审批?
  • 通知应该发给哪些人?
  • 活动结束后如何收集反馈?

这些信息可能分别散落在教务系统、场馆系统、学工系统、通知系统、后勤系统里。

管理者真正的工作量,不只是做决策,而是先花大量时间收集信息、对齐资源、协调部门。

这就是我觉得 AI Agent 有价值的地方。

它不只是一个聊天入口,而是可以成为多个系统之间的“智能中间层”。

我想做的不是聊天机器人,而是校园智能调度层

ZafuGPT 的目标不是取代现有校园系统,而是把它们连接起来。

可以把它理解成:

一个运行在校园各类业务系统之上的 AI Agent 调度层。

用户用自然语言提出一个复杂目标,Agent 负责:

  1. 理解目标
  2. 拆解任务
  3. 查询相关数据
  4. 选择合适工具
  5. 调用不同系统
  6. 汇总结果
  7. 生成方案
  8. 给出决策建议

比如用户输入:

下周三下午想办一场 200 人左右的学院讲座,帮我规划一下时间、场地、通知和后勤安排。

一个真正有用的校园大脑,不应该只回答:

建议你提前预约场地。

而应该进一步做这些事:

  • 查询下周三下午课程安排
  • 判断目标学生群体是否有课
  • 查询可用报告厅和教室
  • 检查场地容量是否满足 200 人
  • 判断是否和校级活动冲突
  • 生成多个备选时间和地点
  • 给出后勤保障建议
  • 生成通知文案
  • 生成活动执行清单
  • 标注需要人工确认的审批环节

这才是我想做的“校园大脑”。

项目的核心架构

目前 ZafuGPT 采用的是一个 Agent 编排架构。

整体链路大概是:

用户自然语言输入
  ↓
学生 / 校园画像上下文
  ↓
Task Planner 任务规划
  ↓
Tool Selector 工具选择
  ↓
Skill / Tool 执行
  ↓
结果汇总与冲突判断
  ↓
Response Generator 生成方案
  ↓
输出给用户

其中几个模块比较关键。

完整的思考链路

1. Task Planner:把复杂事务拆成任务

校园事务往往不是单步问题。

比如“帮我安排一场活动”,背后可能包含:

  • 时间规划
  • 场地查询
  • 人群分析
  • 通知发布
  • 物资准备
  • 后勤保障
  • 风险检查
  • 审批提醒

所以 Agent 的第一步是做任务规划。

它需要把一个模糊目标拆成多个可执行任务,而不是直接生成一段泛泛的回答。

这一步决定了系统能不能从“问答机器人”升级成“事务处理助手”。

2. Tool Selector:选择合适的系统能力

任务拆出来以后,系统要判断应该调用什么能力。

比如:

  • 查课程冲突 → 调用课表 Skill
  • 查通知 → 调用通知 Skill
  • 查学生背景 → 调用学生画像
  • 查场地 → 调用场馆系统
  • 查后勤需求 → 调用报修 / 后勤系统
  • 查地图位置 → 调用地图工具
  • 生成通知 → 调用文本生成能力

这就是 Tool Selector 的作用。

它会在本地 Skill 和外部 MCP Tool 之间选择合适能力。

3. Skill System:把校园系统封装成可插拔能力

我在项目里设计了一个 Skill 机制。

每个 Skill 都是一个独立能力包,包含:

  • 这个能力适合什么场景
  • 需要哪些输入参数
  • 输出什么结构化结果
  • 具体如何执行
  • 是否有 mock 数据或本地参考文档

目前已经接入了一些基础 Skill:

course-schedule:课表查询

这个 Skill 可以查询不同专业、年级、班级的课表。

它不只是简单查“某门课”,而是可以结合学生画像自动补全:

  • 专业
  • 年级
  • 班级

例如用户说:

查一下我周二的课。

系统会根据画像知道这是“计算机科学与技术 / 2023级 / 计科2301班”的学生,然后自动检索该班课表。

虽然这是一个很小的功能,但它验证了一个关键点:

AI 不应该每次都问用户是谁,而应该能利用上下文进行个性化调度。

campus-notice:校园通知查询

这个 Skill 用于查询校园通知,例如:

  • 奖学金申请
  • 教务公告
  • 活动通知
  • 安全检查
  • 图书馆开放安排

未来它可以进一步做通知总结、待办提取、对象匹配和截止时间提醒。

student-profile:学生画像

项目中目前使用一份 mock 学生画像文档,包含:

  • 姓名
  • 学号
  • 学院
  • 专业
  • 年级
  • 班级
  • 导师
  • 校区
  • 宿舍
  • 联系方式

画像会被注入到 Agent 的 prompt 中,帮助系统理解当前用户所处的身份和场景。

当然,这类信息涉及隐私,所以 prompt 中也加了约束:

画像只作为上下文使用,不主动完整复述;除非用户明确询问,否则不输出手机号、宿舍等敏感字段。

这也是校园大脑必须考虑的问题: 不仅要能打通数据,还要知道哪些数据不该随便暴露。

一个典型场景:统筹一场校园活动

我认为“活动统筹”是最能体现校园大脑价值的场景之一。

假设用户输入:

下周三下午帮我安排一场 200 人左右的学院讲座,主要面向 2023 级计科学生,地点尽量在东湖校区。

理想中的 Agent 应该这样工作:

第一步,理解目标:

  • 活动类型:学院讲座
  • 规模:约 200 人
  • 对象:2023 级计算机相关学生
  • 时间偏好:下周三下午
  • 地点偏好:东湖校区

第二步,拆解任务:

  • 查询目标学生课表
  • 检查时间冲突
  • 查询可用场地
  • 筛选容量合适的报告厅
  • 检查校级活动冲突
  • 生成活动方案
  • 生成通知文案
  • 列出后勤和审批事项

第三步,调用工具:

  • 课表系统
  • 场馆预约系统
  • 校园通知系统
  • 后勤服务系统
  • 学生画像系统

第四步,输出方案:

方案 A:
时间:下周三 15:30-17:00
地点:东湖校区报告厅 B201
优点:目标学生课程冲突较少,容量满足
风险:需要提前申请设备支持

方案 B:
时间:下周三 18:30-20:00
地点:信息楼 A 阶梯教室
优点:晚间学生空闲率更高
风险:需要确认楼宇开放时间

然后继续生成:

  • 通知文案
  • 物资清单
  • 部门协同清单
  • 待确认事项

这比“给我一些活动建议”有价值得多。

因为它实际减少了管理者的信息收集和方案比较成本。

校园大脑的意义:减轻决策负担

高校管理中有很多事务并不难,但很繁琐。

难点不在于某一个系统没有功能,而在于:

  • 信息分散
  • 流程割裂
  • 部门协同成本高
  • 人工判断依赖经验
  • 决策前需要查太多数据

校园大脑要解决的不是“有没有系统”,而是“系统之间能不能协同”。

AI Agent 的价值在于:

把多个系统的能力组合起来,围绕一个目标自动形成执行路径。

它可以帮助管理者回答:

  • 这个活动安排在哪个时间最合适?
  • 哪些学生群体会受影响?
  • 哪些资源已经被占用?
  • 哪些部门需要协同?
  • 有哪些风险需要提前处理?
  • 有没有更优的替代方案?

这不是简单问答,而是辅助决策。

当前 Demo 已经完成什么?

目前这个项目还是原型mvp阶段,但已经完成了一些基础能力:

  • Next.js 前端聊天界面
  • FastAPI 后端
  • SQLite 会话存储
  • Agent 任务规划
  • Tool / Skill 选择
  • 本地 Skill 注册机制
  • 课表查询 Skill
  • 校园通知 Skill
  • 学生画像 mock 文档
  • 学生画像注入 prompt
  • 基于学生画像的课表查询
  • 多专业课表 mock 数据
  • Tool / Skill 能力面板

这些功能本身还比较基础,但它们构成了一个校园大脑的最小闭环:

自然语言目标 → 任务规划 → 工具调度 → 数据查询 → 结果整合 → 输出方案。

后续计划

接下来我更想扩展的不是“多加几个问答功能”,而是围绕复杂事务做能力增强。

比如:

1. 活动统筹 Agent

支持输入一个活动目标,自动完成:

  • 时间推荐
  • 场地推荐
  • 人群冲突检测
  • 通知文案生成
  • 后勤清单生成
  • 审批事项提醒

2. 宿舍报修与后勤调度

不只是学生报修,而是进一步支持:

  • 故障分类
  • 自动派单
  • SLA 判断
  • 催单升级
  • 维修资源调度
  • 维修数据分析

3. 校园运行状态看板

把工单、通知、活动、课表、场馆等数据汇总起来,让管理者能问:

这周校园里有哪些高频问题? 哪些楼栋报修最多? 哪些活动可能发生资源冲突?

4. 多系统真实接入

目前很多数据是 mock 的,后续可以对接真实系统:

  • 教务系统
  • 学工系统
  • 后勤系统
  • 场馆系统
  • OA 审批系统
  • 消息通知系统

5. 更强的权限控制

校园大脑必须处理权限问题。

学生、教师、辅导员、学院管理员、校级管理员能看到的数据范围应该不同。

未来需要加入:

  • 用户角色
  • 数据权限
  • 操作审计
  • 敏感信息保护
  • 工具调用日志

总结

我现在越来越觉得,校园 AI 的价值不应该只停留在“做一个会聊天的助手”。

真正值得做的是:

让 AI Agent 成为高校复杂事务的智能调度层。

它不是替代教务系统、学工系统、后勤系统,而是把这些系统连接起来,让数据和能力围绕具体目标自动协同。

学生查课表、看通知只是最基础的入口。

更大的价值在于:

  • 活动统筹
  • 资源调度
  • 跨部门协同
  • 校园运行分析
  • 决策辅助

如果把高校看成一个复杂系统,那么校园大脑要做的事情就是:

让分散的数据、系统和流程,能够被 AI 理解、调度和组合。

ZafuGPT「农林小林」目前还是一个 Demo,但它已经验证了一个方向:

AI Agent 不只是校园服务入口,也可以成为校园治理和运行决策的智能中枢。