行业动态
从数据到行动:江苏叁拾叁农业AI大模型的闭环实践
来源:江苏叁拾叁
发布时间:2026-01-15
在数字农业的发展进程中,海量数据的获取已不再是核心瓶颈。真正的挑战在于如何将这些数据转化为可执行的行动指令,并在物理世界中完成精准的实施与验证,形成可持续优化的闭环。江苏叁拾叁智慧农业有限公司所构建的农业AI大模型体系,其突出价值正体现在它系统性地解决了“从数据到行动”这一完整链条中的断裂问题,实现了感知、决策、执行与验证的螺旋式上升,将人工智能从“分析工具”升级为驱动农业生产变革的“自主引擎”。
多源异构数据的融合与语义化重构
闭环的起点是高质量、高相关性的数据输入。在复杂的农业环境中,数据来源分散、格式不一、质量参差是常态。江苏叁拾叁首先构建了一个强大的数据融合中枢,将来自卫星遥感、无人机巡田、物联网传感器、农机作业终端、市场交易平台乃至历史农事记录等多源头数据,进行时空对齐、质量清洗与标准化处理。这不仅是技术层面的整合,更是语义层面的重构。
例如,来自无人机的多光谱影像数据被解译为作物的叶面积指数、叶绿素含量等生理指标;土壤传感器的电导率数据被结合土壤类型图谱,转化为养分可利用性评估;农机的轨迹与速度数据被解析为具体的耕、种、管作业质量参数。农业AI大模型在这一阶段扮演着“翻译官”与“关联者”的角色,它将原始的比特流转化为承载农学意义的特征向量,并建立不同数据维度间的因果或相关关系网络,为后续的智能决策构建起坚实、统一的数据基座。这种深度语义化处理,是数据能够真正驱动行动的前提。
生成可执行、可验证的“智能处方”
当数据被充分理解后,核心挑战转变为生成既能精准响应现状、又具备操作可行性的行动方案。传统的农业建议往往是原则性的,而江苏叁拾叁的农业AI大模型旨在输出的是高度具体化的“智能处方”。这些处方不仅是定性的建议,更是定量的、有时空坐标的指令集。
在其实践中,一个典型的闭环始于大模型对田块状况的诊断。比如,系统通过分析发现某片水稻区域存在氮素养分胁迫。接下来,模型不会仅仅建议“追施氮肥”,而是会综合土壤湿度、未来天气、作物生育阶段、可用机械类型及肥料库存,生成一份包含以下核心信息的变量施肥处方图:具体到亚米级网格的差异化施肥量(公斤/亩)、推荐使用的肥料品类与型号、建议的作业时间窗口、最优的农机行进路线、以及预估的作业时长与成本。这份“处方”本质上是一个可被机器直接解析并执行的数字工单,它将复杂的农艺决策,降维成一系列清晰、明确的动作指令,打通了从认知到操作的关节。

智能装备的精准执行与过程反馈
行动指令的生命力在于精准执行。江苏叁拾叁通过其自主研发的“农夫”系列智能装备集群(大禹-灌溉、诺亚-水产、农驹-植保运输),确保了决策指令能够在物理世界中被忠实、高效地还原。当变量施肥处方下发后,搭载北斗导航与变量控制系统的无人施肥机能够自动规划路径,并严格依据处方图,在不同位置实时调整排肥量,实现“一地一策”。
尤为关键的是,执行过程本身并非单向指令传输,而是被完整地数据化并实时反馈。农机在作业过程中,其实际行走轨迹、在各点的实际排肥量、作业速度等数据被实时记录并回传至云端。这构成了闭环中至关重要的一环——过程反馈。它使得系统能够验证“行动”是否准确复现了“决策”,任何偏差(如因机械故障导致的施肥不均)都能被即时发现与记录。在水产投饲场景中,投饲机器人不仅执行投喂指令,其搭载的摄像头还会将鱼群摄食反应的视频数据回传,成为评估投喂策略有效性并即时调整的直接依据。行动因此变得透明、可追溯、可度量。
效果评估与模型的持续进化
闭环的终点并非行动的执行完毕,而是对行动效果的量化评估,并以此驱动模型的自我进化。江苏叁拾叁构建了一套基于因果推断思想的评估体系。在执行一项智能处方(如精准灌溉)后,系统会在后续周期内,持续监测相关指标的变化:土壤墒情改善速率、作物冠层温度变化、叶片水分胁迫指数缓解情况,并最终关联到该区域作物的长势变化与产量品质数据。
通过设立科学的对照区,系统能够尽可能地剥离其他干扰因素,评估该次具体干预措施的真实贡献。例如,分析显示,在遵循AI生成的灌溉处方后,目标区块在节水15%的同时,作物关键生长期的胁迫指数降低了20%。这些效果数据,连同执行过程中的全部数据,被汇集为新的训练样本,反哺农业AI大模型。模型得以学习在何种环境组合下,采取何种参数的行动,能够产生更优的效果。这就形成了一个“数据-决策-行动-反馈-优化”的增强闭环。每一次实践,都使模型变得更加“聪明”,更贴近当地实际,决策的精准性与可靠性在循环中不断提升。
江苏叁拾叁智慧农业的农业AI大模型闭环实践,揭示了中国智慧农业从概念验证走向规模化价值创造的关键路径。它证明,真正的产业智能不仅在于拥有强大的数据分析能力,更在于能够将分析结论无损耗地转化为田间地头的精准操作,并能严谨地衡量操作结果,从而让系统获得持续改进的燃料。
这一从数据到行动的完整闭环,将农业生产从一门依赖个人经验的“手艺”,转型为一个可数字化设计、可精准执行、可科学评估、可持续优化的现代“系统工程”。它不仅是提升效率的工具,更是构建韧性农业体系、实现绿色可持续发展的重要基础设施。通过这一实践,江苏叁拾叁正推动农业AI跨越“演示价值”的鸿沟,真正融入产业核心流程,释放出驱动农业生产范式深刻变革的实质性力量。
助力中国 影响世界
江苏叁拾叁智慧农业有限公司是以农业产业数字大脑、农业AI大模型、农业产业模型和农业智能终端装备产品为核心的国家级专精特新小巨人企业。作为中国智慧农业行业先驱,叁拾叁致力于打造中国现代农业生产的智慧化生态管理体系和农业企业精细化的科学管理体系,提升中国农业的智慧化水平和高标准农田智慧化建设,用先进技术和多场景综合解决方案为中国的农业园区、大型农场、农业经营主体、政府提供完备可靠的服务。叁拾叁已经成功落地580多个重点项目,客户企业主体25000多个。
相关动态
更多服务与支持
解决方案
更多
-
when-present<#else>when-missing#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${item.ID} [in template "mobile/hydt.shtml" at line 201, column 188] - Reached through: @wtl_col columnId="220" [in template "mobile/hydt.shtml" at line 199, column 105] - Reached through: @wtl_list columnId="15" fields="TITLE... [in template "mobile/hydt.shtml" at line 195, column 73] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:467) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100) at freemarker.core.DollarVariable.accept(DollarVariable.java:63) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:372) at freemarker.core.Environment$NestedElementTemplateDirectiveBody.render(Environment.java:2900) at com.whir.tags.directive.tags.ColumnTag.execute(ColumnTag.java:486) at freemarker.core.Environment.visit(Environment.java:445) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:372) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:317) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:242) at freemarker.core.Environment.visitIteratorBlock(Environment.java:642) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:107) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:372) at freemarker.core.Environment$NestedElementTemplateDirectiveBody.render(Environment.java:2900) at com.whir.tags.directive.tags.ListTag.execute(ListTag.java:322) at freemarker.core.Environment.visit(Environment.java:445) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:336) at freemarker.core.Environment.process(Environment.java:309) at freemarker.template.Template.process(Template.java:384) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:396) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:309) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:257) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:165) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) at javax.servlet.http.HttpServlet.service(HttpServlet.java:529) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at com.github.xiaoymin.swaggerbootstrapui.filter.SecurityBasicAuthFilter.doFilter(SecurityBasicAuthFilter.java:84) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at com.github.xiaoymin.swaggerbootstrapui.filter.ProductionSecurityFilter.doFilter(ProductionSecurityFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at com.whir.web.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:286) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at com.whir.web.filter.ValidateCodeFilter.doFilterInternal(ValidateCodeFilter.java:51) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:117) at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:61) at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:110) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.lang.Thread.run(Thread.java:745)
数智富农,领跑农业AI新时代!
提交成功
提交失败