AI智能体+AI编辑器实战:一天从0到1做出疾控应急管理系统
发布时间:2026/9/8 13:56:11 锦皓数字建站

如果你跟我一样手上排着一堆业务需求老板又催着看可演示的Demo那“AI智能体 AI编辑器”这套组合拳是真的能救命。上周末我刚干完一件放在以前至少需要一周才能完成的事情用Hermes智能体平台配合Cursor从需求分析、数据库设计到前后端编码1天时间从0到1做出来一套疾控应急管理系统。说“系统”可能有点大但它把应急场景里最核心的链路跑通了事件接报、预案关联、处置流转、物资台账、数据看板需求方点开就能用、能查、能操作。这篇文章不聊虚的就记录我这次实战的全过程。里面会讲到Hermes和Cursor分别扮演什么角色需求怎么拆、表怎么建、代码怎么出、坑怎么避。适合正在尝试用AI做全流程开发的人也适合想知道“AI辅助编程到底能干到哪一步”的团队技术负责人。看完你大概能判断哪些项目适合这么干哪些环节AI还顶不上。1. 项目整体设计与思路拆解很多人在AI编程上有个误区觉得给ChatGPT类工具丢一句“帮我写个管理系统”它就能吐出来一个能上线的产品。真要这么干结果往往是代码结构混乱、前后端对不上、数据库设计一塌糊涂改起来比从零写还痛苦。我这次之所以选Hermes Cursor的组合核心思路是把“AI辅助开发”这件事拆成两层一层负责想一层负责写。1.1 为什么是Hermes CursorAI Agent和AI IDE的分工先说说这两个工具到底各管哪一段。Hermes是一个智能体编排平台你可以把它理解成一个“会拆任务、会调用工具、能串联多个步骤”的AI代理。它不只是跟你聊天而是能把一个模糊的目标拆成一串可执行的任务清单然后逐个完成。比如你跟它说“我要做一个疾控应急管理系统”它不会直接甩给你一堆代码而是先问清楚业务角色、核心流程、数据要求然后输出需求文档、表结构、接口定义甚至生成测试用例。它更适合承担“系统分析员 架构师 项目经理”的角色。Cursor则是AI原生的代码编辑器它的强项在于代码上下文感知。你选中一段代码让它改它能看懂整个文件甚至整个项目的结构补全、重构、跨文件修改都很顺手。我需要它承担“开发工程师”的角色把手头的代码写出来、改对。这两个工具的组合逻辑很简单Hermes负责把“模糊需求”变成“清晰设计”Cursor负责把“清晰设计”变成“能跑的代码”。如果只靠Hermes它生成代码容易跑偏上下文如果只靠Cursor你得自己先把需求和设计想透。两者分工工作效率才最高。1.2 疾控应急管理系统的业务边界与核心链路疾控应急管理系统这个名字听着很专业但落到第一版MVP业务边界必须掐得很死。我去跟业务方聊了一圈又把过去做公共卫生项目的经验翻出来提炼出最核心的诉求当突发公共卫生事件发生时值班员能快速登记事件信息系统能根据事件类型和严重程度匹配预案处置人员能按步骤完成任务领导能实时看到事件进展和物资库存。周边的花活全砍掉什么在线培训、考核管理、知识库全部放到二期。第一版只做这几件事事件接报、事件分级、预案匹配、处置任务流转、物资台账、统计看板。核心业务链路是这样的值班员接到报告录入事件信息系统根据事件类型自动带出分级和对应预案值班员确认后事件进入“处置中”状态预案里的处置任务被生成出来分派给对应角色处置人员逐项完成任务填写处置记录所有任务完成后事件归档数据进入统计看板。这条链路是整个系统的骨架数据库设计和代码结构都围绕它展开。1.3 技术栈选型原则技术选型上我遵循一条原则别整花活选AI最熟悉、生态最成熟、自己团队最容易接手的组合。后端用Spring Boot 2.7 MyBatis-Plus数据库MySQL 8.0认证用Sa-Token缓存先用不上就不硬加Redis。前端用Vue 3 Element Plus ECharts页面风格偏后台管理。这套技术栈的好处是网上资料极其丰富AI训练语料里这类代码多到泛滥无论是Hermes还是Cursor生成出来的代码质量都相对稳定。我见过不少团队在这种项目里硬上微服务、上K8s结果光排环境问题就花了两天。对于1天要出Demo的节奏来说单体应用 经典前后端分离就是最优解。等业务量起来了再拆不迟第一版最重要的是把业务跑通。2. Hermes智能体部署与准备要用Hermes干活第一步当然是把它跑起来。这个环节我稍微卡了一下因为网上关于它部署的中文资料还不算多而且在不同环境下踩的坑不太一样。我这里把Windows环境下的部署过程完整记下来给后面想试的朋友省点时间。2.1 Hermes到底解决什么问题先花点时间把Hermes的能力边界说清楚免得你期待错方向。我在实际使用中理解下来Hermes擅长的是“目标拆解与多步执行”。你给它一个目标它会自己规划要完成哪些子任务然后按顺序执行需要的时候还能调用外部工具。这跟单纯的大模型对话有本质区别普通对话是你问一句它答一句上下文一长就乱Hermes能把任务拆成模块每个模块有明确的输入输出整体执行路径是可追溯的。最典型的用法是我让它“基于以下业务描述输出PRD文档、数据库DDL和API接口清单”它会像真的项目经理一样先列一个工作计划然后一步步输出对应文档而不是一股脑丢给你一段没人能看懂的代码。如果你现在只是拿ChatGPT一类的工具写写文案、改改代码片段那Hermes这个“主动规划并执行”的能力就是它最大的增量。2.2 Windows环境部署笔记我在Windows 11上部署用的是Docker Desktop方案。原因很简单Docker方式可以把依赖环境打包好不用在宿主机上装一堆运行时后面升级和清理都方便。基本步骤大概是这样安装Docker Desktop并确保WSL 2后端启用这一步要是没弄好Docker起容器会一直报错。拉取Hermes的镜像用docker run命令启动容器把宿主机的某个目录挂载到容器里的数据目录用于保存配置和日志。启动后访问本机端口进入管理界面第一次进入会让你配置大模型服务商因为Hermes本身不内置任何模型需要对接外部的大模型API。在界面里创建一个Agent项目把要用的大模型、系统提示词配置好。整个过程跟部署一个开源的后台系统比较像不算难。但有两个点要提醒你一是模型API的计费标准和访问限额要提前确认我在调试阶段因为反复调用额度消耗得比预期快二是版本迭代比较快Docker镜像tag要看清推荐直接用latest或官方文档指定的稳定版本别自己随便挑一个旧tag。2.3 调试阶段的小技巧第一次跑通Hermes后别急着上正式需求先用一个特别小的问题测试一下比如“帮我把下面这段用户需求拆成5个功能点”。这样跑一遍你会大概了解它输出的风格、速度、是不是会不听话地走偏。等确认能正常工作了再把疾控应急管理系统的需求喂给它。还有一个很重要的习惯让它输出的所有内容都要落盘保存。Hermes生成PRD、表结构、接口文档之后我把它们复制到项目目录下的docs文件夹里。这样就算后面对话上下文丢了、或者Agent执行到一半报错这些重要的中间产物还在不至于白干。3. 需求设计阶段把“人话”变成“开发蓝图”很多人把AI编程的重心放在“写代码”上但我这次最大的感受是AI真正省时间的阶段是“需求分析和方案设计”。以前跟业务聊完需求我得自己憋一晚上写PRD、画流程图、设计表现在这些活儿Hermes能干个七八成我只需要审核、补充、纠偏。这个阶段是整个项目的地基地基稳了后面编码阶段才能真正快起来。3.1 用Hermes做需求拆解我先把自己跟业务方聊到的原始素材整理成一段话丢给Hermes。Prompt大概长这样你是一名资深的公共卫生信息化业务分析师。请基于以下描述输出一份PRD草稿。 业务背景疾控中心需要一套应急管理系统用于突发公共卫生事件的接报、分级、处置和归档。 核心角色值班员、应急办管理员、应急处置人员、中心领导。 核心诉求值班员登记事件后系统根据事件类型自动匹配预案自动生成处置任务处置人员逐项完成任务领导能看统计看板。 请输出用户角色权限表、核心业务流程说明、功能模块清单按P0/P1/P2排优先级、关键业务规则。它输出的结果让我有点意外不仅把四个角色的权限梳理清楚了还补充了几个我一开始没写进去的细节比如“事件编号自动生成规则”“预案任务逾期提醒”“物资台账关联事件消耗”。这些点虽然在第一版里我没全做但给了后续迭代一个很好的方向。我做的第一轮修改是把“逾期提醒”从P0挪到了P1因为第一版先把核心链路走通最重要消息通知涉及额外的前端轮询或WebSocket会拖慢进度。这个取舍AI只能给你选项最终判断还得是人来做。3.2 数据模型与接口设计需求理清楚后我让Hermes基于PRD输出数据库设计。这个环节非常关键因为表结构如果设计得不对后面代码写起来全是坑。我的要求是让它先输出概念模型即实体关系清单再输出具体的建表DDL。Hermes给出的核心表包括用户表、角色表、事件信息表、事件处置记录表、应急预案表、预案任务模板表、事件任务关联表、物资台账表、物资出入库记录表。这几张表基本覆盖了核心链路的数据需求。以事件信息表为例生成的DDL经过我微调后长这样CREATE TABLE event_info ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 事件ID, event_no VARCHAR(32) NOT NULL COMMENT 事件编号, event_name VARCHAR(128) NOT NULL COMMENT 事件名称, event_type VARCHAR(32) NOT NULL COMMENT 事件类型编码, event_level VARCHAR(16) NOT NULL COMMENT 事件级别, status VARCHAR(16) NOT NULL DEFAULT REPORTED COMMENT 事件状态, report_user_id BIGINT NOT NULL COMMENT 接报人ID, report_time DATETIME NOT NULL COMMENT 接报时间, description TEXT COMMENT 事件描述, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, KEY idx_status (status), KEY idx_event_type (event_type) ) COMMENT 突发事件信息表;接口设计方面我让它按照RESTful风格输出了一份接口清单每个接口包含URL、方法、请求参数、返回结果。核心接口有事件创建、事件审核、任务列表查询、任务完成提交、物资库存查询、看板统计数据聚合。有了这批接口定义后面写Controller和前端页面的时候就非常顺基本就是照着文档翻译成代码。3.3 把第一版的开发范围焊死需求阶段最容易犯的错是越做越多。业务方今天提一个想法明天提一个增强如果不控制这个系统会膨胀到做不完。我的做法是跟Hermes一起把P0范围定死事件全生命周期管理、预案任务自动生成、物资台账管理、基础统计看板。这四个模块做完就是一个能自圆其说的闭环系统。那些P1、P2级别的功能比如消息通知、移动端适配、GIS地图展示、历史数据导入我一律先不碰。特别是GIS地图如果加上光地图服务配置和坐标数据处理就得耗掉大半天绝对对不起它的优先级。第一版的目标是让需求方看到业务闭环不是把所有科研想法都落地。4. 编码实现阶段Cursor接棒到了编码环节主角就从Hermes换成了Cursor。但注意角色切换不代表Hermes彻底退休在遇到复杂逻辑需要方案推演、或者需要批量生成测试数据的时候我还会切回Hermes问一嘴。具体的配合打法我用实战过程说明。4.1 项目初始化与环境准备项目初始化我直接用IDEA建了Spring Boot工程然后前后端分开。Cursor在这里的第一步是配置网上热词里有“cursor设置中文”确实这家伙默认是英文界面对部分人来说看着不习惯。在设置里搜索Language安装中文语言包并切换就行整个操作不到1分钟但体验提升明显。目录结构按照经典的分层架构来controller、service、mapper、entity、dto、common。前端用Vite创建Vue3项目引入Element Plus和ECharts。说实话这一步没什么技术含量但做得好不好直接影响后续AI编码质量。Cursor强调项目上下文感知如果项目结构乱七八糟它生成的代码也容易乱。4.2 后端事件管理与状态机实现后端最核心的部分是事件状态流转。这一块我一开始让Cursor直接写结果它给我写了一个到处散落着状态判断的版本改起来很痛苦。后来我让Hermes先梳理了一个简单的状态机规则再让Cursor按这个规则重写代码一下就清晰了。事件状态我定义成五个REPORTED已接报、PROCESSING处置中、PENDING_REVIEW待审核、ARCHIVED已归档、CANCELLED已取消。状态流转规则如下REPORTED - PROCESSING # 值班员确认生成处置任务 PROCESSING - PENDING_REVIEW # 所有处置任务完成提交审核 PENDING_REVIEW - ARCHIVED # 应急办审核通过归档 REPORTED - CANCELLED # 误报或重复上报取消在Controller里核心接口长这样RestController RequestMapping(/api/event) public class EventController { Resource private EventService eventService; PostMapping public RLong createEvent(RequestBody EventCreateDTO dto) { return R.ok(eventService.createEvent(dto)); } PostMapping(/{id}/confirm) public RVoid confirmEvent(PathVariable Long id) { eventService.confirmEvent(id); return R.ok(); } PostMapping(/{id}/complete-task/{taskId}) public RVoid completeTask(PathVariable Long id, PathVariable Long taskId, RequestBody TaskCompleteDTO dto) { eventService.completeTask(id, taskId, dto); return R.ok(); } }生成事件时Service层会把Hermes在需求阶段给出的预案任务模板查询出来逐条生成“事件任务”插入task表。这一步是整个系统最有业务价值的地方也是AI生成的代码里最容易出错的地方。我的建议是先生成任务列表再循环插入别在同一个循环里既查模板又插任务容易产生脏数据。4.3 前端台账页面与统计看板前端部分Cursor的表现比较惊艳。我只需要描述页面需求比如“事件列表页左侧是筛选条件右侧是表格表格展示事件编号、名称、类型、级别、状态、接报时间操作列里有查看和处置按钮”它就直接生成符合Element Plus规范的完整组件代码我基本只做微调。统计看板是领导最关心的页面我用ECharts展示三个核心指标事件按类型分布的饼图、近7天事件趋势折线图、物资库存预警列表。Cursor生成ECharts配置的能力很强基本不用手动去查API文档直接把需求告诉它它就给你一套能跑的option配置。这里分享一个细节生成页面时尽量一次把一个完整页面的需求描述清楚包括页面布局、字段列表、操作按钮、交互行为。描述得越像最终效果Cursor生成的代码改动就越小。如果你一句“生成事件列表页”就完事它给你的东西大概率要你重新返工。4.4 联调与演示数据准备前后端都写完剩最后一步联调。这一步最容易出问题而且AI帮不上太多忙因为它看不到运行时错误。我的经验是先把接口文档固定下来前端所有请求封装在一个api模块里后端接口路径和参数必须跟文档一致。如果前后端各写各的联调阶段就会变成互相甩锅大会。联调跑通后我让Hermes生成了30条模拟事件数据和一批物资台账数据覆盖不同类型、不同级别、不同状态。这批数据不只是给开发联调用更是给领导演示用的。你可以花两分钟把一条事件从接报一直操作到归档看板上的图表就会有动态变化演示效果非常好。5. 常见问题与排查技巧实录一天做完一个系统不可能一帆风顺。这一路我踩了不少坑有些是AI工具本身的限制有些是使用姿势不对。把这些问题写出来希望能帮你少走弯路。5.1 AI生成的代码跟数据库表结构对不上这是最常遇到的情况。Hermes生成表结构的时候用java.util.DateCursor生成实体类的时候用了java.time.LocalDateTime表里字段叫eventLevel生成的前端对象里却写成了levelName。这种问题几乎每次都会出现。我的排查办法很土但有效后端写完实体和Mapper后打开MyBatis-Plus的日志输出把SQL打印到控制台然后跑一个列表查询接口直接看打印出来的SQL语句和字段映射。哪里不匹配一眼就能看到。别指望AI替你处理这种细节人眼扫一遍SQL比什么都快。5.2 Agent对话上下文越用越乱Hermes跑久了之后尤其长对话超过十几轮它有时候会开始“忘记”前面的设定比如一开始你说了“事件状态枚举有五个”它后面给你推荐的新逻辑里可能就多出一个别的状态。解决这个问题有两个办法一是重新开一个对话把关键背景资料作为附件重新给它二是把所有确定的规则写进一个系统提示词文件每次新对话时加载。我的实操习惯是建一个docs/system-prompt.md里面把业务背景、角色定义、技术栈、状态枚举、核心规则全部写清楚。每次跟Hermes开新对话先把这份文件内容复制给它这样它就不会把前因后果丢掉。这个习惯非常推荐能省下很多重复沟通的时间。5.3 事件状态流转逻辑混乱第一版代码里我发现“已归档”的事件还能被重新提交处置任务就是因为状态机的判断条件没写全。Cursor生成的Service代码里每个方法都只有进入该方法时的状态校验缺少对全链路的统一把控。我的做法是把所有状态流转的合法性校验集中到一个枚举类里用Map维护一份“状态流转允许映射表”。比如PROCESSING状态能转向PENDING_REVIEW和CANCELLED但绝不能转回REPORTED。这样写的好处是逻辑都在一处后期排查和修改都很清晰。如果事件流转复杂到一定程度可以考虑引入StateMachine框架但当前这个规模没必要。5.4 初始化项目时的版本兼容性问题Cursor自动生成代码时经常忽略版本兼容比如生成的代码用了Spring Boot 3的特性但项目建的还是Spring Boot 2.7或者Element Plus组件的API跟安装的版本对不上。这类问题通常在编译阶段或页面打开时才会暴露。我的建议是项目创建时把版本号定死在README里写清楚“Spring Boot 2.7.18、MyBatis-Plus 3.5.3、Vue 3.4、Element Plus 2.6”。每次跟Cursor对话都带上这些版本信息并且要求它“不要升级任何依赖版本”。这个约束条件加不加效率差别很大。5.5 常见问题速查表问题现象可能原因快速排查方法接口报字段不存在实体类与表字段不一致开启SQL日志检查Mapper映射前端页面白屏JS报错或组件引入错误打开浏览器控制台看报错信息Agent对话跑偏长对话上下文丢失重新开对话重发系统提示词状态流转被跳过Service缺少状态校验检查状态机方法里的前置判断列表查询很慢缺少索引或查询条件未拼接EXPLAIN分析SQL补索引另外还有一个坑要提醒生成大量重复代码时Cursor偶尔会“偷懒”比如把一模一样的逻辑复制到多个地方却忘了改中间的变量名。这种情况不会报编译错误但运行时会出各种怪问题。所以代码生成完成后花20分钟做一次全局搜索检查有没有哪个方法里还留着上一个人的注释或变量名这个动作不能省。6. 适用范围与踩坑心得最后分享一点我对这套打法适用范围的判断。用Hermes Cursor一天做出一个系统这件事听起来很爽但它并不是万能的。我个人实际使用下来的体会是这类方案最适合数据模型清晰、业务流程标准、界面交互常规的后台管理系统尤其是内部管理类工具、数据台账类系统、业务流程审批类系统。这类系统的代码模式高度重复AI生成质量很高人工只需要把握好业务规则和状态流转就行。反过来说如果你要做的事涉及复杂算法、高并发处理、严格安全合规、精细权限控制或者系统要被成千上万人使用那AI编码目前只能当辅助绝对不能撒手不管。我这次做疾控应急管理系统本质上是一个业务闭环清晰的管理系统所以AI才能发挥这么大价值。如果换成一个交易系统或者在线支付我不会这么激进。这是我第一次完整地用“AI Agent AI IDE”组合从0到1跑完一个项目体感非常直接写代码不再是最耗时的环节反而“跟AI描述清楚需求”成了新的核心技能。你描述得越准确生成的代码就越能直接用你越会拆解任务Agent跑出来的结果就越接近成品。这套打法的天花板很大程度上取决于使用者的业务理解能力和逻辑梳理能力。最后再分享一个小技巧如果你也打算用这套组合做项目建议留出两个小时的缓冲时间别把日程排满在“写代码”上。整个过程里需求纠偏、版本兼容、联调排错这些环节仍然需要人的介入而且往往发生在你以为“快完成”的时候。把这两小时当作风险储备整个项目做下来会从容很多。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。