mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(project): normalize formatting and reorder class members across modules
This commit is contained in:
@@ -56,14 +56,13 @@ public final class Agent {
|
||||
private final ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor();
|
||||
private final List<Runnable> beforeLaunchRunners = new ArrayList<>();
|
||||
private final List<Runnable> afterLaunchRunners = new ArrayList<>();
|
||||
private AgentGateway gateway;
|
||||
private final Class<?> applicationClass;
|
||||
private final CountDownLatch latch = new CountDownLatch(1);
|
||||
private AgentGateway gateway;
|
||||
private Class<? extends AgentConfigManager> agentConfigManagerClass;
|
||||
private Class<? extends AgentGateway> gatewayClass;
|
||||
private Class<? extends AgentExceptionCallback> agentExceptionCallbackClass;
|
||||
|
||||
private final CountDownLatch latch = new CountDownLatch(1);
|
||||
|
||||
private AgentApp(Class<?> clazz) {
|
||||
this.applicationClass = clazz;
|
||||
}
|
||||
@@ -136,9 +135,9 @@ public final class Agent {
|
||||
private void beforeLaunch() {
|
||||
try {
|
||||
AgentConfigManager.setINSTANCE(agentConfigManagerClass.getDeclaredConstructor().newInstance());
|
||||
log.info("配置管理器设置完毕: {}",agentConfigManagerClass.getSimpleName());
|
||||
log.info("配置管理器设置完毕: {}", agentConfigManagerClass.getSimpleName());
|
||||
GlobalExceptionHandler.setExceptionCallback(agentExceptionCallbackClass.getDeclaredConstructor().newInstance());
|
||||
log.info("异常处理回调设置完毕: {}",agentExceptionCallbackClass.getSimpleName());
|
||||
log.info("异常处理回调设置完毕: {}", agentExceptionCallbackClass.getSimpleName());
|
||||
launchRunners(beforeLaunchRunners);
|
||||
log.info("前置任务启动完毕");
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -37,7 +37,8 @@ import static work.slhaf.partner.api.agent.util.AgentUtil.methodSignature;
|
||||
* </ol>
|
||||
*
|
||||
* <p>下一步流程请参阅 {@link ModuleInitHookExecuteFactory}</p>
|
||||
*/public class CapabilityInjectFactory extends AgentBaseFactory {
|
||||
*/
|
||||
public class CapabilityInjectFactory extends AgentBaseFactory {
|
||||
|
||||
private Reflections reflections;
|
||||
private HashMap<String, Function<Object[], Object>> coordinatedMethodsRouterTable;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package work.slhaf.partner.api.agent.factory.capability.exception;
|
||||
|
||||
public class DuplicateMethodException extends CapabilityCheckFailedException{
|
||||
public class DuplicateMethodException extends CapabilityCheckFailedException {
|
||||
public DuplicateMethodException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package work.slhaf.partner.api.agent.factory.capability.exception;
|
||||
|
||||
public class EmptyCapabilityHolderException extends CapabilityCheckFailedException{
|
||||
public class EmptyCapabilityHolderException extends CapabilityCheckFailedException {
|
||||
public EmptyCapabilityHolderException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package work.slhaf.partner.api.agent.factory.capability.exception;
|
||||
|
||||
public class UnMatchedCapabilityException extends CapabilityCheckFailedException{
|
||||
public class UnMatchedCapabilityException extends CapabilityCheckFailedException {
|
||||
public UnMatchedCapabilityException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package work.slhaf.partner.api.agent.factory.config.exception;
|
||||
|
||||
public class ConfigUpdateFailedException extends ConfigFactoryRuntimeException{
|
||||
public class ConfigUpdateFailedException extends ConfigFactoryRuntimeException {
|
||||
public ConfigUpdateFailedException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package work.slhaf.partner.api.agent.factory.exception;
|
||||
|
||||
public class ExternalModuleLoadFailedException extends AgentRegisterFactoryFailedException{
|
||||
public class ExternalModuleLoadFailedException extends AgentRegisterFactoryFailedException {
|
||||
public ExternalModuleLoadFailedException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
@@ -157,26 +157,27 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
|
||||
private void checkIfClassCorresponds(AnnotatedModules annotatedModules, ExtendedModules extendedModules) {
|
||||
// 检查是否有被@AgentModule注解但没有继承AgentRunningModule的类
|
||||
checkSets(annotatedModules.moduleTypes(), extendedModules.moduleTypes(),
|
||||
"存在被@AgentModule注解但未继承AgentRunningModule的类");
|
||||
|
||||
checkSets(annotatedModules.moduleTypes(), extendedModules.moduleTypes(),
|
||||
"存在被@AgentModule注解但未继承AgentRunningModule的类");
|
||||
|
||||
// 检查是否有继承AgentRunningModule但没有被@AgentModule注解的类
|
||||
checkSets(extendedModules.moduleTypes(), annotatedModules.moduleTypes(),
|
||||
"存在继承AgentRunningModule但未被@AgentModule注解的类");
|
||||
|
||||
"存在继承AgentRunningModule但未被@AgentModule注解的类");
|
||||
|
||||
// 检查是否有被@AgentSubModule注解但没有继承AgentRunningSubModule的类
|
||||
checkSets(annotatedModules.subModuleTypes(), extendedModules.subModuleTypes(),
|
||||
"存在被@AgentSubModule注解但未继承AgentRunningSubModule的类");
|
||||
|
||||
"存在被@AgentSubModule注解但未继承AgentRunningSubModule的类");
|
||||
|
||||
// 检查是否有继承AgentRunningSubModule但没有被@AgentSubModule注解的类
|
||||
checkSets(extendedModules.subModuleTypes(), annotatedModules.subModuleTypes(),
|
||||
"存在继承AgentRunningSubModule但未被@AgentSubModule注解的类");
|
||||
"存在继承AgentRunningSubModule但未被@AgentSubModule注解的类");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 检查源集合中是否有不在目标集合中的元素
|
||||
* @param source 源集合
|
||||
* @param target 目标集合
|
||||
*
|
||||
* @param source 源集合
|
||||
* @param target 目标集合
|
||||
* @param errorMessage 错误信息前缀
|
||||
*/
|
||||
private void checkSets(Set<Class<?>> source, Set<Class<?>> target, String errorMessage) {
|
||||
@@ -188,7 +189,7 @@ public class ModuleCheckFactory extends AgentBaseFactory {
|
||||
.map(Class::getSimpleName)
|
||||
.limit(10) // 限制显示数量,避免信息泄露
|
||||
.collect(Collectors.joining(", ", "[", "]"));
|
||||
|
||||
|
||||
throw new ModuleCheckException(errorMessage + ": " + classNames);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,11 +40,11 @@ import java.util.List;
|
||||
*/
|
||||
public class ModuleProxyFactory extends AgentBaseFactory {
|
||||
|
||||
private final HashMap<Class<?>, Object> subModuleInstances = new HashMap<>();
|
||||
private final HashMap<Class<?>, Object> moduleInstances = new HashMap<>();
|
||||
private List<MetaModule> moduleList;
|
||||
private List<MetaSubModule> subModuleList;
|
||||
private HashMap<Class<?>, Object> capabilityHolderInstances;
|
||||
private final HashMap<Class<?>, Object> subModuleInstances = new HashMap<>();
|
||||
private final HashMap<Class<?>, Object> moduleInstances = new HashMap<>();
|
||||
|
||||
@Override
|
||||
protected void setVariables(AgentRegisterContext context) {
|
||||
|
||||
@@ -46,6 +46,20 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
|
||||
private List<MetaModule> moduleList;
|
||||
private List<MetaSubModule> subModuleList;
|
||||
|
||||
private static MetaModule getMetaModule(Class<? extends AbstractAgentRunningModule> clazz) {
|
||||
MetaModule metaModule = new MetaModule();
|
||||
AgentRunningModule agentRunningModule;
|
||||
if (clazz.isAnnotationPresent(CoreModule.class)) {
|
||||
agentRunningModule = CoreModule.class.getAnnotation(AgentRunningModule.class);
|
||||
} else {
|
||||
agentRunningModule = clazz.getAnnotation(AgentRunningModule.class);
|
||||
}
|
||||
metaModule.setName(agentRunningModule.name());
|
||||
metaModule.setOrder(agentRunningModule.order());
|
||||
metaModule.setClazz(clazz);
|
||||
return metaModule;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setVariables(AgentRegisterContext context) {
|
||||
ModuleFactoryContext factoryContext = context.getModuleFactoryContext();
|
||||
@@ -60,20 +74,6 @@ public class ModuleRegisterFactory extends AgentBaseFactory {
|
||||
setSubModuleList();
|
||||
}
|
||||
|
||||
private static MetaModule getMetaModule(Class<? extends AbstractAgentRunningModule> clazz) {
|
||||
MetaModule metaModule = new MetaModule();
|
||||
AgentRunningModule agentRunningModule;
|
||||
if (clazz.isAnnotationPresent(CoreModule.class)){
|
||||
agentRunningModule = CoreModule.class.getAnnotation(AgentRunningModule.class);
|
||||
}else{
|
||||
agentRunningModule = clazz.getAnnotation(AgentRunningModule.class);
|
||||
}
|
||||
metaModule.setName(agentRunningModule.name());
|
||||
metaModule.setOrder(agentRunningModule.order());
|
||||
metaModule.setClazz(clazz);
|
||||
return metaModule;
|
||||
}
|
||||
|
||||
private void setSubModuleList() {
|
||||
Set<Class<?>> subModules = reflections.getTypesAnnotatedWith(AgentSubModule.class);
|
||||
for (Class<?> subModule : subModules) {
|
||||
|
||||
@@ -21,12 +21,12 @@ public abstract class AbstractAgentRunningModule<C extends RunningFlowContext> e
|
||||
log.debug("[{}] 模块执行结束...", getModuleName());
|
||||
}
|
||||
|
||||
private String getModuleName(){
|
||||
private String getModuleName() {
|
||||
if (this.getClass().isAnnotationPresent(AgentRunningModule.class)) {
|
||||
return this.getClass().getAnnotation(AgentRunningModule.class).name();
|
||||
} else if (this.getClass().isAnnotationPresent(CoreModule.class)) {
|
||||
return CoreModule.class.getAnnotation(AgentRunningModule.class).name();
|
||||
}else {
|
||||
} else {
|
||||
return "Unknown AbstractAgentModule";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@ package work.slhaf.partner.api.agent.factory.module.exception;
|
||||
|
||||
public class ModuleFactoryInitFailedException extends RuntimeException {
|
||||
public ModuleFactoryInitFailedException(String message) {
|
||||
super("ModuleFactory 执行失败: "+message);
|
||||
super("ModuleFactory 执行失败: " + message);
|
||||
}
|
||||
|
||||
public ModuleFactoryInitFailedException(String message, Throwable cause) {
|
||||
super("ModuleFactory 执行失败: "+message, cause);
|
||||
super("ModuleFactory 执行失败: " + message, cause);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,10 +15,9 @@ import java.util.*;
|
||||
@Data
|
||||
public abstract class AgentConfigManager {
|
||||
|
||||
private static final String DEFAULT_KEY = "default";
|
||||
@Setter
|
||||
public static AgentConfigManager INSTANCE;
|
||||
private static final String DEFAULT_KEY = "default";
|
||||
|
||||
protected HashMap<String, ModelConfig> modelConfigMap;
|
||||
protected HashMap<String, List<Message>> modelPromptMap;
|
||||
protected HashMap<String, Boolean> moduleEnabledStatus;
|
||||
|
||||
@@ -2,5 +2,6 @@ package work.slhaf.partner.api.agent.runtime.exception;
|
||||
|
||||
public interface AgentExceptionCallback {
|
||||
void onRuntimeException(AgentRuntimeException e);
|
||||
|
||||
void onFailedException(AgentLaunchFailedException e);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package work.slhaf.partner.api.agent.runtime.exception;
|
||||
|
||||
public class AgentRunningFailedException extends AgentRuntimeException{
|
||||
public class AgentRunningFailedException extends AgentRuntimeException {
|
||||
public AgentRunningFailedException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,10 @@ public class GlobalExceptionHandler {
|
||||
|
||||
private AgentExceptionCallback exceptionCallback = new LogAgentExceptionCallback();
|
||||
|
||||
public static void setExceptionCallback(AgentExceptionCallback callback) {
|
||||
INSTANCE.exceptionCallback = callback;
|
||||
}
|
||||
|
||||
public boolean handle(Throwable e) {
|
||||
boolean exit;
|
||||
Throwable cause = e.getCause();
|
||||
@@ -32,8 +36,4 @@ public class GlobalExceptionHandler {
|
||||
}
|
||||
return exit;
|
||||
}
|
||||
|
||||
public static void setExceptionCallback(AgentExceptionCallback callback) {
|
||||
INSTANCE.exceptionCallback = callback;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,11 +4,11 @@ import work.slhaf.partner.api.agent.runtime.interaction.data.AgentInputData;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.data.AgentOutputData;
|
||||
import work.slhaf.partner.api.agent.runtime.interaction.flow.entity.RunningFlowContext;
|
||||
|
||||
public interface AgentGateway <I extends AgentInputData, O extends AgentOutputData, C extends RunningFlowContext>{
|
||||
public interface AgentGateway<I extends AgentInputData, O extends AgentOutputData, C extends RunningFlowContext> {
|
||||
|
||||
void launch();
|
||||
|
||||
default void receive(I inputData){
|
||||
default void receive(I inputData) {
|
||||
C finalInputData = adapter().parseInputData(inputData);
|
||||
C outputContext = adapter().call(finalInputData);
|
||||
O outputData = adapter().parseOutputData(outputContext);
|
||||
@@ -22,5 +22,5 @@ public interface AgentGateway <I extends AgentInputData, O extends AgentOutputDa
|
||||
*
|
||||
* @return adapter实例
|
||||
*/
|
||||
AgentInteractionAdapter<I, O, C> adapter();
|
||||
AgentInteractionAdapter<I, O, C> adapter();
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public abstract class AgentInteractionAdapter<I extends AgentInputData, O extend
|
||||
protected AgentRunningFlow<C> agentRunningFlow = new AgentRunningFlow<>();
|
||||
protected Map<Integer, List<MetaModule>> moduleOrderedMap = AgentConfigManager.INSTANCE.getModuleOrderedMap();
|
||||
|
||||
public C call(C finalInputData){
|
||||
public C call(C finalInputData) {
|
||||
return agentRunningFlow.launch(moduleOrderedMap, finalInputData);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,5 +5,5 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public abstract class AgentInputData extends InteractionData{
|
||||
public abstract class AgentInputData extends InteractionData {
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public abstract class AgentOutputData extends InteractionData{
|
||||
public abstract class AgentOutputData extends InteractionData {
|
||||
|
||||
protected int code;
|
||||
|
||||
|
||||
@@ -10,22 +10,22 @@ import java.util.stream.Collectors;
|
||||
|
||||
public final class AgentUtil {
|
||||
|
||||
public static boolean isAssignableFromAnnotation(Class<?> clazz,Class<? extends Annotation> targetAnnotation){
|
||||
public static boolean isAssignableFromAnnotation(Class<?> clazz, Class<? extends Annotation> targetAnnotation) {
|
||||
Set<Class<?>> visited = new HashSet<>();
|
||||
return isAssignableFromAnnotation(clazz,targetAnnotation,visited);
|
||||
return isAssignableFromAnnotation(clazz, targetAnnotation, visited);
|
||||
}
|
||||
|
||||
private static boolean isAssignableFromAnnotation(Class<?> clazz,Class<? extends Annotation> targetAnnotation,Set<Class<?>> visited){
|
||||
if (!visited.add(clazz)){
|
||||
private static boolean isAssignableFromAnnotation(Class<?> clazz, Class<? extends Annotation> targetAnnotation, Set<Class<?>> visited) {
|
||||
if (!visited.add(clazz)) {
|
||||
return false;
|
||||
}
|
||||
if (clazz.isAnnotationPresent(targetAnnotation)){
|
||||
if (clazz.isAnnotationPresent(targetAnnotation)) {
|
||||
return true;
|
||||
}
|
||||
Annotation[] annotations = clazz.getAnnotations();
|
||||
for (Annotation annotation : annotations) {
|
||||
boolean ok = isAssignableFromAnnotation(annotation.annotationType(),targetAnnotation,visited);
|
||||
if (ok){
|
||||
boolean ok = isAssignableFromAnnotation(annotation.annotationType(), targetAnnotation, visited);
|
||||
if (ok) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -63,7 +63,7 @@ public final class AgentUtil {
|
||||
collectInterfaces(clazz, classes);
|
||||
}
|
||||
|
||||
public static Set<Class<?>> getMethodAnnotationTypeSet(Class<? extends Annotation> clazz, Reflections reflections){
|
||||
public static Set<Class<?>> getMethodAnnotationTypeSet(Class<? extends Annotation> clazz, Reflections reflections) {
|
||||
Set<Method> methods = reflections.getMethodsAnnotatedWith(clazz);
|
||||
return methods.stream()
|
||||
.map(Method::getDeclaringClass)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package work.slhaf.partner.api.chat.constant;
|
||||
|
||||
public class ChatConstant {
|
||||
|
||||
|
||||
public enum ResponseStatus {
|
||||
SUCCESS, FAILED
|
||||
}
|
||||
|
||||
public static class Character {
|
||||
public static final String USER = "user";
|
||||
public static final String SYSTEM = "system";
|
||||
public static final String ASSISTANT = "assistant";
|
||||
}
|
||||
|
||||
public enum ResponseStatus {
|
||||
SUCCESS, FAILED
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,12 +65,12 @@ public class PrimaryChatResponse {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "UsageBean{" +
|
||||
"prompt_tokens=" + prompt_tokens +
|
||||
", completion_tokens=" + completion_tokens +
|
||||
", total_tokens=" + total_tokens +
|
||||
", prompt_cache_hit_tokens=" + prompt_cache_hit_tokens +
|
||||
", prompt_cache_miss_tokens=" + prompt_cache_miss_tokens +
|
||||
'}';
|
||||
"prompt_tokens=" + prompt_tokens +
|
||||
", completion_tokens=" + completion_tokens +
|
||||
", total_tokens=" + total_tokens +
|
||||
", prompt_cache_hit_tokens=" + prompt_cache_hit_tokens +
|
||||
", prompt_cache_miss_tokens=" + prompt_cache_miss_tokens +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@ import java.lang.reflect.Method;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
public class MyModuleProxyInterceptor {
|
||||
public MyModuleProxyInterceptor() {}
|
||||
public MyModuleProxyInterceptor() {
|
||||
}
|
||||
|
||||
@RuntimeType
|
||||
public Object intercept(@Origin Method method, @AllArguments Object[] allArguments, @SuperCall Callable<?> zuper, @This Object proxy) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user