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);
 
  • 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:
      save in interface com.tnsai.context.decision.DecisionTraceStore
    • findById

      public Optional<com.tnsai.context.decision.DecisionTrace> findById(String traceId)
      Specified by:
      findById in interface com.tnsai.context.decision.DecisionTraceStore
    • findByAgent

      public List<com.tnsai.context.decision.DecisionTrace> findByAgent(String agentId)
      Specified by:
      findByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • findRecentByAgent

      public List<com.tnsai.context.decision.DecisionTrace> findRecentByAgent(String agentId, int limit)
      Specified by:
      findRecentByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • findByAction

      public List<com.tnsai.context.decision.DecisionTrace> findByAction(String action)
      Specified by:
      findByAction in interface com.tnsai.context.decision.DecisionTraceStore
    • findByOutcome

      public List<com.tnsai.context.decision.DecisionTrace> findByOutcome(com.tnsai.context.decision.DecisionOutcome.OutcomeStatus status)
      Specified by:
      findByOutcome in interface com.tnsai.context.decision.DecisionTraceStore
    • findByTriggerType

      public List<com.tnsai.context.decision.DecisionTrace> findByTriggerType(com.tnsai.context.decision.DecisionTrigger.TriggerType triggerType)
      Specified by:
      findByTriggerType in interface com.tnsai.context.decision.DecisionTraceStore
    • findByTimeRange

      public List<com.tnsai.context.decision.DecisionTrace> findByTimeRange(Instant start, Instant end)
      Specified by:
      findByTimeRange in interface com.tnsai.context.decision.DecisionTraceStore
    • findByConversation

      public List<com.tnsai.context.decision.DecisionTrace> findByConversation(String conversationId)
      Specified by:
      findByConversation in interface com.tnsai.context.decision.DecisionTraceStore
    • findByTag

      public List<com.tnsai.context.decision.DecisionTrace> findByTag(String tag)
      Specified by:
      findByTag in interface com.tnsai.context.decision.DecisionTraceStore
    • findChildren

      public List<com.tnsai.context.decision.DecisionTrace> findChildren(String parentTraceId)
      Specified by:
      findChildren in interface com.tnsai.context.decision.DecisionTraceStore
    • findSimilar

      public List<com.tnsai.context.decision.DecisionTrace> findSimilar(com.tnsai.context.decision.DecisionTrace reference, double minSimilarity)
      Specified by:
      findSimilar in interface com.tnsai.context.decision.DecisionTraceStore
    • delete

      public boolean delete(String traceId)
      Specified by:
      delete in interface com.tnsai.context.decision.DecisionTraceStore
    • deleteByAgent

      public int deleteByAgent(String agentId)
      Specified by:
      deleteByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • deleteOlderThan

      public int deleteOlderThan(Instant cutoff)
      Specified by:
      deleteOlderThan in interface com.tnsai.context.decision.DecisionTraceStore
    • count

      public int count()
      Specified by:
      count in interface com.tnsai.context.decision.DecisionTraceStore
    • countByAgent

      public int countByAgent(String agentId)
      Specified by:
      countByAgent in interface com.tnsai.context.decision.DecisionTraceStore
    • getStatistics

      public com.tnsai.context.decision.DecisionTraceStore.DecisionTraceStatistics getStatistics()
      Specified by:
      getStatistics in interface com.tnsai.context.decision.DecisionTraceStore
    • clear

      public void clear()
      Clears all data from the store.