Interface KnowledgeStore

All Known Implementing Classes:
FileKnowledgeStore, InMemoryKnowledgeStore

public interface KnowledgeStore
Store for extracted knowledge.

KnowledgeStore provides persistence and search capabilities for knowledge extracted from agent sessions. Knowledge can be shared across projects for cross-project learning.

Usage


 // Create a file-based store
 KnowledgeStore store = KnowledgeStore.file("~/.tnsai/knowledge/");

 // Store knowledge
 store.save(extractedKnowledge);

 // Search knowledge
 List<ExtractedKnowledge> results = store.search("authentication");

 // Search with filter
 KnowledgeFilter filter = KnowledgeFilter.builder()
     .types(ExtractionType.SOLUTION)
     .minConfidence(0.8)
     .build();
 List<ExtractedKnowledge> filtered = store.search("auth", filter);

 // Get similar knowledge
 List<ExtractedKnowledge> similar = store.findSimilar(knowledge, 5);
 
Author:
TnsAI Team
  • Method Details

    • file

      static KnowledgeStore file(String basePath)
      Creates a file-based knowledge store.
      Parameters:
      basePath - the base directory path
      Returns:
      knowledge store
    • inMemory

      static KnowledgeStore inMemory()
      Creates an in-memory knowledge store.
      Returns:
      knowledge store
    • save

      void save(ExtractedKnowledge knowledge)
      Saves knowledge to the store.
      Parameters:
      knowledge - the knowledge to save
    • saveAll

      default void saveAll(List<ExtractedKnowledge> knowledgeList)
      Saves multiple knowledge items.
      Parameters:
      knowledgeList - the knowledge items to save
    • load

      Loads knowledge by ID.
      Parameters:
      id - the knowledge ID
      Returns:
      the knowledge, or empty if not found
    • delete

      boolean delete(String id)
      Deletes knowledge by ID.
      Parameters:
      id - the knowledge ID
      Returns:
      true if deleted, false if not found
    • search

      default List<ExtractedKnowledge> search(String query)
      Searches knowledge by text query.
      Parameters:
      query - the search query
      Returns:
      matching knowledge items
    • search

      List<ExtractedKnowledge> search(String query, KnowledgeFilter filter)
      Searches knowledge with filter.
      Parameters:
      query - the search query (can be null for filter-only search)
      filter - the filter to apply
      Returns:
      matching knowledge items
    • findSimilar

      List<ExtractedKnowledge> findSimilar(ExtractedKnowledge knowledge, int limit)
      Finds knowledge similar to the given item.
      Parameters:
      knowledge - the reference knowledge
      limit - maximum results
      Returns:
      similar knowledge items
    • listByType

      Lists all knowledge by type.
      Parameters:
      type - the extraction type
      Returns:
      knowledge items of that type
    • listBySession

      List<ExtractedKnowledge> listBySession(String sessionId)
      Lists all knowledge by session.
      Parameters:
      sessionId - the session ID
      Returns:
      knowledge items from that session
    • listRecent

      List<ExtractedKnowledge> listRecent(int limit)
      Lists recent knowledge.
      Parameters:
      limit - maximum results
      Returns:
      most recent knowledge items
    • count

      int count()
      Gets the total count of stored knowledge.
      Returns:
      count
    • countByType

      int countByType(ExtractionType type)
      Gets count by type.
      Parameters:
      type - the extraction type
      Returns:
      count of that type
    • clear

      void clear()
      Clears all stored knowledge.
    • getStats

      Gets statistics about stored knowledge.
      Returns:
      knowledge statistics