package com.smtaiserver.smtaiserver.javaai.jsonflow.node; import com.smtaiserver.smtaiserver.core.SMTAIServerApp; import com.smtaiserver.smtaiserver.javaai.SMTJavaAIError; import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowExecArg; import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowManager; import com.smtaiserver.smtaiserver.javaai.jsonflow.core.SMTJsonFlowNodeOnlyOutput; import com.smtaiserver.smtaiserver.javaai.qwen.agent.SMTQwenAgent; import com.smtservlet.util.Json; import com.smtservlet.util.SMTStatic; public class SMTJsonFlowNodeAgent extends SMTJsonFlowNodeOnlyOutput { private String _agentId; @Override public void initInstane(SMTJsonFlowManager manager, Json jsonNode) throws Exception { super.initInstane(manager, jsonNode); Json jsonValues = jsonNode.getJsonPath("data|group_params|0|params|0|value", false); if(jsonValues == null || !jsonValues.isString()) throw new Exception("flow json agenet not set call agent id"); _agentId = jsonValues.asString(); } @Override public SMTJavaAIError executeFlowNode(SMTJsonFlowExecArg execArg) throws Exception { SMTQwenAgent agent = SMTAIServerApp.getApp().getQwenAgentManager().getAgentById(_agentId); SMTJavaAIError error = agent.callAgents(execArg._jsonPath + SMTStatic.newUUID() + "/", execArg._jsonArgs, execArg._llm, execArg._question, execArg._tranReq); if(error != null) return error; execArg._tranReq.sendChunkedResultBlock(); return super.executeFlowNode(execArg); } }