Package com.tnsai.context.decision.impl
Class CheckpointerDecisionTraceStore
java.lang.Object
com.tnsai.context.decision.impl.CheckpointerDecisionTraceStore
- All Implemented Interfaces:
com.tnsai.context.decision.DecisionTraceStore
public class CheckpointerDecisionTraceStore
extends Object
implements com.tnsai.context.decision.DecisionTraceStore
Checkpointer-backed implementation of DecisionTraceStore.
This implementation leverages the existing Checkpointer system (SQLite, PostgreSQL, MongoDB, Redis) for persistent decision trace storage.
Storage Format
Each decision trace is stored as a checkpoint with:
- threadId = "decisions:" + agentId
- checkpointId = traceId
- state = serialized decision trace data
- metadata = trace metadata (agent, action, outcome, etc.)
Usage Example
// Use with PostgreSQL checkpointer
Checkpointer checkpointer = new PostgreSQLCheckpointer(dataSource);
DecisionTraceStore store = new CheckpointerDecisionTraceStore(checkpointer);
// Enable context graph
agent.enableContextGraph(new InMemorySnapshotStore(), store);
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.tnsai.context.decision.DecisionTraceStore
com.tnsai.context.decision.DecisionTraceStore.DecisionTraceStatistics -
Constructor Summary
ConstructorsConstructorDescriptionCheckpointerDecisionTraceStore(com.tnsai.state.Checkpointer checkpointer) Creates a new CheckpointerDecisionTraceStore. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Clears all data from the store.intcount()intcountByAgent(String agentId) booleanintdeleteByAgent(String agentId) intdeleteOlderThan(Instant cutoff) List<com.tnsai.context.decision.DecisionTrace> findByAction(String action) List<com.tnsai.context.decision.DecisionTrace> findByAgent(String agentId) List<com.tnsai.context.decision.DecisionTrace> findByConversation(String conversationId) Optional<com.tnsai.context.decision.DecisionTrace> List<com.tnsai.context.decision.DecisionTrace> findByOutcome(com.tnsai.context.decision.DecisionOutcome.OutcomeStatus status) List<com.tnsai.context.decision.DecisionTrace> List<com.tnsai.context.decision.DecisionTrace> findByTimeRange(Instant start, Instant end) List<com.tnsai.context.decision.DecisionTrace> findByTriggerType(com.tnsai.context.decision.DecisionTrigger.TriggerType triggerType) List<com.tnsai.context.decision.DecisionTrace> findChildren(String parentTraceId) List<com.tnsai.context.decision.DecisionTrace> findRecentByAgent(String agentId, int limit) List<com.tnsai.context.decision.DecisionTrace> findSimilar(com.tnsai.context.decision.DecisionTrace reference, double minSimilarity) com.tnsai.context.decision.DecisionTraceStore.DecisionTraceStatisticsvoidsave(com.tnsai.context.decision.DecisionTrace trace)
-
Constructor Details
-
CheckpointerDecisionTraceStore
public CheckpointerDecisionTraceStore(com.tnsai.state.Checkpointer checkpointer) Creates a new CheckpointerDecisionTraceStore.- Parameters:
checkpointer- the underlying checkpointer for persistence
-
-
Method Details
-
save
public void save(com.tnsai.context.decision.DecisionTrace trace) - Specified by:
savein interfacecom.tnsai.context.decision.DecisionTraceStore
-
findById
- Specified by:
findByIdin interfacecom.tnsai.context.decision.DecisionTraceStore
-
findByAgent
- Specified by:
findByAgentin interfacecom.tnsai.context.decision.DecisionTraceStore
-
findRecentByAgent
- Specified by:
findRecentByAgentin interfacecom.tnsai.context.decision.DecisionTraceStore
-
findByAction
- Specified by:
findByActionin interfacecom.tnsai.context.decision.DecisionTraceStore
-
findByOutcome
public List<com.tnsai.context.decision.DecisionTrace> findByOutcome(com.tnsai.context.decision.DecisionOutcome.OutcomeStatus status) - Specified by:
findByOutcomein interfacecom.tnsai.context.decision.DecisionTraceStore
-
findByTriggerType
public List<com.tnsai.context.decision.DecisionTrace> findByTriggerType(com.tnsai.context.decision.DecisionTrigger.TriggerType triggerType) - Specified by:
findByTriggerTypein interfacecom.tnsai.context.decision.DecisionTraceStore
-
findByTimeRange
- Specified by:
findByTimeRangein interfacecom.tnsai.context.decision.DecisionTraceStore
-
findByConversation
- Specified by:
findByConversationin interfacecom.tnsai.context.decision.DecisionTraceStore
-
findByTag
- Specified by:
findByTagin interfacecom.tnsai.context.decision.DecisionTraceStore
-
findChildren
- Specified by:
findChildrenin interfacecom.tnsai.context.decision.DecisionTraceStore
-
findSimilar
public List<com.tnsai.context.decision.DecisionTrace> findSimilar(com.tnsai.context.decision.DecisionTrace reference, double minSimilarity) - Specified by:
findSimilarin interfacecom.tnsai.context.decision.DecisionTraceStore
-
delete
- Specified by:
deletein interfacecom.tnsai.context.decision.DecisionTraceStore
-
deleteByAgent
- Specified by:
deleteByAgentin interfacecom.tnsai.context.decision.DecisionTraceStore
-
deleteOlderThan
- Specified by:
deleteOlderThanin interfacecom.tnsai.context.decision.DecisionTraceStore
-
count
public int count()- Specified by:
countin interfacecom.tnsai.context.decision.DecisionTraceStore
-
countByAgent
- Specified by:
countByAgentin interfacecom.tnsai.context.decision.DecisionTraceStore
-
getStatistics
public com.tnsai.context.decision.DecisionTraceStore.DecisionTraceStatistics getStatistics()- Specified by:
getStatisticsin interfacecom.tnsai.context.decision.DecisionTraceStore
-
clear
public void clear()Clears all data from the store.
-