<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      構建定時 Agent,基于 Spring AI Alibaba 實現自主運行的人機協同智能 Agent

      作者:千習

      參考 Langchain 的這篇文章 https://blog.langchain.com/introducing-ambient-agents/,面對目前我們常見 Chat 模式的 Agent 形態以外,還可以充分發揮 Agent 新的運行形態:

      • 自主持續運行 Agent:突破目前大部分 AI 應用依賴用戶主動發起對話(Chat)聊天模式的限制。Agent 通過監聽環境信號(如:定時運行、消息事件、上下文變化),Agent 作為智能體,按計劃定時運行的特性在實際業務場景中非常有用。
      • Agent 發起人機交互:關鍵點在于部分任務需通過“人工確認”機制(如通知、提問、審核)確保與用戶目標一致,Agent 在自主運行過程中需要一個人機交互窗口,支持人工介入機制,從而在自主性與可控性間取得平衡。

      Spring AI Alibaba(以下簡稱 SAA)為開發上述形態的 Agent 提供了相應的框架支持,方便業務快速實現上述場景需求下的 Agent 開發。

      為什么需要自主運行 Agent

      通過自主運行的 Agent 可以充分發揮其執行效率,讓其具備按預設規劃自主工作的能力,無需每次都等待人類指令運行,可將 Agent 作為一個能替代你部分工作自主運行的“人”來看待。

      image

      由此我們可以看到,隨著 Agent 的能力增強,以及 Agent 自主能力的提升,應該會出現以下局面:

      • 個體創業者的能力邊界將被大幅度拓寬。
      • 在工程領域多人協同的工作可拆解到由一個人+多 Agent 來完成,以提高生產效率。

      從業務需求的角度看,可以有以下一些場景可探索挖掘。

      • 自動化周期性業務: 面向企業經營的業務系統,可構建周期性地自動收集分析數據、提取數據核心要素、可視化經營報表生成等場景。通過定時運行的 Agent 可實現無人值守的自動化執行,顯著提升數據分析整理效率。相較于傳統經營報表,通過模型對非結構化數據的分析總結能力,可顯著提升報告質量。
      • 批量清算處理: 部署多個 Agent,每個 Agent 可同時批量并行處理不同維度的數據信息。在金融行業智能投研領域,AI Agent 可批量處理來自于不同數據源渠道的海量金融數據、新聞資訊和社交媒體信息,借助大模型充分挖掘行業投資機遇和風險事件。
      • 事件應急預案響應: 在物聯網、安全監控等場景中,系統需對突發消息事件(如設備報警、用戶行為、危險事件識別觸發)做出自動響應。后臺常駐 Agent 可通過監聽消息隊列或定時巡檢掃描的方式運行,分析識別事件等級做出響應級別的告警消息發布。
      • 人類參與決策判斷: Agent 自動處理,人只在需要時進入決策判斷以提升效率。比如 Agent 每天固定時間自動采集匯總供應商的新聞、輿情及社交平臺討論,并進行風險分類與情緒分析;遇到高風險負面事件(如食品安全事故)時,Agent 能通知管理人員人工介入判斷,選擇采取下一步行動策略,比如生成自檢報告、批量通知各網點下架對應供應商產品等。
      • 復雜長周期任務: 現階段大批量基于模型進行數據分析處理的場景下,往往執行較慢,就不適合構建 Chat 模式交互。通過任務固定周期觸發、涉及跨域和多模態數據分析,Agent 在后臺將數據做預制加工處理,最終交互上即可提供給用戶加工完成后的數據信息。
      • 周期性任務記憶管理: 定時后臺運行的 Agent,在每個周期執行后可以管理其對應的多個周期的執行記憶。通過周期執行記錄信息,可分析隨時間周期變化,借助模型來解讀數據的變化過程。比如出現輿論輿情時,可根據周期變化來分析事件是再持續發酵還是逐步消退,根據變化趨勢來智能路由下一步決策。

      如何構建定時運行 Agent

      目前市面上定時 AI Task 相關的應用,主要分為以下幾類:

      image

      接下來重點說明下 SAA 中的定時 Agent 設計構想,為了支持后臺自主執行的 Agent,在 CompiledGraph 上提供的 schedule(ScheduleConfig config)方法可自由設置該 Agent 定時執行。對于后臺定時運行的 Agent 任務在設計上都通過 ScheduledAgentManager 來進行任務的注冊管理,目前開源默認實現提供了單機應用進程內的 Agent 任務運行管理實現。

      image

      通過上述方式,后續可支持在分布式部署場景下的定時 Agent 任務運行,同時為自定義 Agent 任務可視化管理和運行監控提供擴展點。

      基于 SAA 自主運行 Agent 展示

      Spring AI Alibaba 作為 Agent 開發框架,可方便地為業務開發 Agent 提供了對應解決方案,同時在框架側也提供了構建定時運行的 Agent 能力。后續將通過框架提供的定時調度、人工節點功能,實現兩個實踐案例:店鋪經營分析 Agent、評價輿情分析 Agent。

      店鋪經營日報 Agent

      通過 SAA 框架可以方便的開發出自定義的 Agent(Workflow Agent),相比于低代碼平臺的流程構建,通過編碼方式定義 Agent 流程會更適合高度定制的場景。比如當前的這個 Agent 我們需要從多個維度(交易訂單、產品說明、客戶畫像信息、門店基礎信息、客戶評價反饋等)去提取對應的數據信息,通過業務編碼再結合 Prompt 模版提供給 LLM 進行分析處理在實現上更具靈活性和可控性。

      通過這個方式,讓業務報表既能保持關鍵數據的準確性,又可結合發揮模型對非結構化數據分析,提煉總結出報告的核心要點和下一步行動方案。

      image

      參考代碼:

      @Bean
      public CompiledGraph dailyReportAgent(ChatModel chatModel) throws GraphStateException {
          ChatClient chatClient = ChatClient.builder(chatModel).defaultAdvisors(new SimpleLoggerAdvisor()).build();
          AsyncNodeAction dataLoaderNode = node_async(
              (state) -> {
                  /*
                   * 業務報告元數據讀取,如:指定周期的訂單銷量數據、
                   * 門店產品信息、訂單用戶反饋信息
                   */
              }       
          );
          // 定義一個經營日報生成節點,根據提供的原始數據信息結合Prompt生成報告
          LlmNode llmDataAnalysisNode = LlmNode.builder().chatClient(chatClient)
                  .paramsKey("data_summary")
                  .outputKey("summary_message_to_sender")
                  .userPromptTemplate(DAILY_REPORT)
                  .build();
          // Agent流程:提取原始數據-->生成經營日報-->發送日報信息
          StateGraph stateGraph = new StateGraph("OperationAnalysisAgent", () -> {
              Map<String, KeyStrategy> strategies = new HashMap<>();
              strategies.put("data_summary", new ReplaceStrategy());
              strategies.put("summary_message_to_sender", new ReplaceStrategy());
              strategies.put("message_sender_result", new ReplaceStrategy());
              strategies.put("access_token", new ReplaceStrategy());
              return strategies;
          }).addNode("data_loader", dataLoaderNode)
                  .addNode("data_analysis", node_async(llmDataAnalysisNode))
                  .addNode("message_sender", node_async(generateMessageSender()))
                  .addEdge(START, "data_loader")
                  .addEdge("data_loader", "data_analysis")
                  .addEdge("data_analysis", "message_sender")
                  .addEdge("message_sender", END);
          CompiledGraph compiledGraph = stateGraph.compile();
          compiledGraph.setMaxIterations(100);
          // 設定當前Agent每天8點執行
          ScheduleConfig scheduleConfig = ScheduleConfig.builder()
      				.cronExpression("0 0 8 */1 * ?") // 每天8點
      				.build();
          compiledGraph.schedule(scheduleConfig);
          return compiledGraph;
      }
      

      image

      image

      評價輿情分析 Agent

      當前案例主要體現 Agent 自主定時運行,僅在分析發現必要時提示用戶進入“人工決策”。相比較于傳統的基于數值比較、關鍵詞匹配等監控方式,通過 LLM 接入可增加業務監控新的維度,讓監控面向更加泛化的數據場景,包括非結構化的文本數據、圖片、影像等等,通過各類型結構數據充分挖掘出潛在風險。

      image

      參考代碼:

      @Bean
      public CompiledGraph evaluationAnalysisAgent(ChatModel chatModel,
                       FeedbackMapper feedbackMapper) throws GraphStateException {
          ChatClient chatClient = ChatClient.builder(chatModel).defaultAdvisors(new SimpleLoggerAdvisor()).build();
          EvaluationClassifierNode sessionAnalysis = EvaluationClassifierNode.builder()
                  .chatClient(chatClient)
                  .inputTextKey("iterator_item")
                  .outputKey("session_analysis_result")
                  .categories(List.of("yes", "no"))
                  .classificationInstructions(List.of("要求返回純JSON字符串,禁止包含非JSON格式內容,包含字段:user、time、complaint、satisfaction、summary。",
                                  "complaint: 表示當前評價是否為店鋪或產品投訴,取值范圍(yes or no).",
                                  "satisfaction: 表示用戶實際的消費滿意度",
                                  "summary: 提煉本條核心吐槽點,以及可以改進的方向"))
                  .build();
          StateGraph sessionAnalysisGraph = new StateGraph("session_analysis", subFactory1)
                  .addNode("iterator", node_async(sessionAnalysis))
                  .addEdge(StateGraph.START, "iterator")
                  .addEdge("iterator", StateGraph.END);
          AsyncNodeAction sessionLoaderNode = node_async((state) -> {
              // 輿情和評價數據加載... ...
              return result;
          });
          // 輿情評價結果分析匯總
          AsyncNodeAction sessionResultSummaryNode = node_async((state) -> {
              // 輿情評價結果分析匯總... ...
              return Map.of();
          });
          // 通過LLM生成告警報告
          LlmNode llmNode = LlmNode.builder().chatClient(chatClient)
                  .paramsKey("summary_message")
                  .outputKey("summary_message_to_sender")
                  .systemPromptTemplate("自定義Prompt")
                  .build();
          // 構建Agent運行流程
          StateGraph stateGraph = new StateGraph("ReviewAnalysisAgent", () -> {
              Map<String, KeyStrategy> strategies = new HashMap<>();
              ... ...
              return strategies;
          }).addNode("session_loader_node", sessionLoaderNode)
                  .addNode("iteration_session_analysis_node", iterationNode)
                  .addNode("session_result_summary_node", sessionResultSummaryNode)
                  .addNode("message_parse", node_async(llmNode))
                  .addNode("message_sender", node_async(generateMessageSender()))
                  .addNode("human_feedback", node_async(new HumanFeedbackNode()))
                  .addNode("human_action", node_async(new HumanActionNode()))
                  .addEdge(START, "session_loader_node")
                  .addEdge("session_loader_node", "iteration_session_analysis_node")
                  .addEdge("iteration_session_analysis_node", "session_result_summary_node")
                  .addConditionalEdges("session_result_summary_node", AsyncEdgeAction.edge_async(state -> {
                      Integer complaint = state.value("complaint", 0);
                      return complaint > 0 ? "message_parse" : StateGraph.END;
                  }), Map.of("message_parse", "message_parse", StateGraph.END, StateGraph.END))
                  .addEdge("message_parse", "message_sender")
                  .addEdge("message_sender", "human_feedback")
                  .addConditionalEdges("human_feedback", AsyncEdgeAction.edge_async(state -> {
                      boolean ignore = state.value("ignore", true);
                      return ignore ? StateGraph.END : "human_action";
                  }), Map.of("human_action", "human_action", StateGraph.END, StateGraph.END))
                  .addEdge("message_sender", END);
          CompiledGraph compiledGraph = stateGraph.compile();
          compiledGraph.setMaxIterations(1000);
          // 設定當前Agent每小時執行檢測一次
          ScheduleConfig scheduleConfig = ScheduleConfig.builder()
      				.cronExpression("0 0 */1 * * ?") // 每小時執行檢測一次
      				.build();
          compiledGraph.schedule(scheduleConfig);
          return compiledGraph;
      }
      

      image

      結束語

      自主運行的 AI Agent 開拓了企業智能化場景,通過定時觸發、事件響應和人工協同機制,為業務帶來高效、精準的自動化能力。借助 Spring AI Alibaba 框架,開發者可快速構建定制化 Agent,實現從數據采集、分析到決策的全流程閉環。

      相關鏈接:

      [1] MSE 任務調度產品

      https://mse.console.aliyun.com/#/auth

      [2] LangGraph CronJob

      https://docs.langchain.com/langgraph-platform/cron-jobs

      點擊此處,歡迎針對定時 Agent 運用場景交流溝通。

      posted @ 2025-10-27 16:13  阿里云云原生  閱讀(39)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲a∨无码无在线观看| 亚洲av一本二本三本| 欧美视频专区一二在线观看| 礼泉县| 亚洲综合久久精品国产高清| 国产精品大全中文字幕| 亚洲中文字幕无码久久2017| 国产一区二区三区怡红院| 凤城市| 人妻少妇精品无码专区二区| 日韩本精品一区二区三区| 久久国产成人午夜av影院| 伊在人间香蕉最新视频| 国产精品综合在线免费看| 无限看片在线版免费视频大全 | 日韩人妻无码一区二区三区99 | 久久久久四虎精品免费入口| 国产午夜精品福利免费看| 国产精品无遮挡猛进猛出| 国产精品熟妇视频国产偷人| 亚洲欧洲一区二区福利片| 亚洲色成人网站www永久| 日韩精品一区二区亚洲专区| 国产精品色内内在线播放| 国产一卡2卡三卡4卡免费网站| 亚洲无人区一区二区三区| 少妇特殊按摩高潮惨叫无码| 亚洲一区二区无码影院| 亚洲av永久无码精品网站| 桐梓县| 69精品无人区国产一区| 日本久久99成人网站| 国产办公室秘书无码精品99| 中文字幕色av一区二区三区| 国产成人精品无码免费看| 在线高清免费不卡全码| 久久久精品波多野结衣av| 亚洲精品一区二区五月天| 亚洲国产在一区二区三区| 国产午夜精品一区理论片| 免费无遮挡无码视频网站|