mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 08:43:02 +08:00
feat(exception): support report necessary exception info into context
This commit is contained in:
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="EntryPointsManager">
|
<component name="EntryPointsManager">
|
||||||
<list size="18">
|
<list size="19">
|
||||||
<item index="0" class="java.lang.String" itemvalue="lombok.Data" />
|
<item index="0" class="java.lang.String" itemvalue="lombok.Data" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="net.bytebuddy.implementation.bind.annotation.RuntimeType" />
|
<item index="1" class="java.lang.String" itemvalue="net.bytebuddy.implementation.bind.annotation.RuntimeType" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="work.slhaf.partner.api.agent.factory.capability.annotation.Capability" />
|
<item index="2" class="java.lang.String" itemvalue="work.slhaf.partner.api.agent.factory.capability.annotation.Capability" />
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
<item index="15" class="java.lang.String" itemvalue="work.slhaf.partner.api.register.capability.annotation.Capability" />
|
<item index="15" class="java.lang.String" itemvalue="work.slhaf.partner.api.register.capability.annotation.Capability" />
|
||||||
<item index="16" class="java.lang.String" itemvalue="work.slhaf.partner.framework.agent.factory.capability.annotation.CapabilityCore" />
|
<item index="16" class="java.lang.String" itemvalue="work.slhaf.partner.framework.agent.factory.capability.annotation.CapabilityCore" />
|
||||||
<item index="17" class="java.lang.String" itemvalue="work.slhaf.partner.framework.agent.factory.capability.annotation.CapabilityMethod" />
|
<item index="17" class="java.lang.String" itemvalue="work.slhaf.partner.framework.agent.factory.capability.annotation.CapabilityMethod" />
|
||||||
|
<item index="18" class="java.lang.String" itemvalue="work.slhaf.partner.framework.agent.factory.component.annotation.AgentComponent" />
|
||||||
</list>
|
</list>
|
||||||
<writeAnnotations>
|
<writeAnnotations>
|
||||||
<writeAnnotation name="work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability" />
|
<writeAnnotation name="work.slhaf.partner.api.agent.factory.capability.annotation.InjectCapability" />
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package work.slhaf.partner.runtime.exception;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.Element;
|
||||||
|
import work.slhaf.partner.core.cognition.BlockContent;
|
||||||
|
import work.slhaf.partner.core.cognition.CognitionCapability;
|
||||||
|
import work.slhaf.partner.core.cognition.ContextBlock;
|
||||||
|
import work.slhaf.partner.framework.agent.exception.AgentException;
|
||||||
|
import work.slhaf.partner.framework.agent.exception.ExceptionReport;
|
||||||
|
import work.slhaf.partner.framework.agent.exception.ExceptionReporter;
|
||||||
|
import work.slhaf.partner.framework.agent.factory.capability.annotation.InjectCapability;
|
||||||
|
import work.slhaf.partner.framework.agent.factory.component.annotation.AgentComponent;
|
||||||
|
import work.slhaf.partner.framework.agent.factory.component.annotation.Init;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
@AgentComponent
|
||||||
|
public class ContextExceptionReporter implements ExceptionReporter {
|
||||||
|
|
||||||
|
public static final String REPORTER_NAME = "context-reporter";
|
||||||
|
|
||||||
|
@InjectCapability
|
||||||
|
private CognitionCapability cognitionCapability;
|
||||||
|
|
||||||
|
@Init
|
||||||
|
public void init() {
|
||||||
|
register();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NotNull
|
||||||
|
public String reporterName() {
|
||||||
|
return REPORTER_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void report(@NotNull AgentException exception) {
|
||||||
|
ExceptionReport report = exception.toReport();
|
||||||
|
cognitionCapability.contextWorkspace().register(new ContextBlock(
|
||||||
|
buildExceptionReportBlock(report),
|
||||||
|
Set.of(ContextBlock.VisibleDomain.COGNITION),
|
||||||
|
10,
|
||||||
|
10,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
private @NotNull BlockContent buildExceptionReportBlock(ExceptionReport report) {
|
||||||
|
return new BlockContent("agent-runtime-exception", "context-exception-reporter") {
|
||||||
|
@Override
|
||||||
|
protected void fillXml(@NotNull Document document, @NotNull Element root) {
|
||||||
|
appendTextElement(document, root, "exception_info", report.toString());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user