Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

THINK KB

Perform explicit knowledge base reasoning with structured results.

Syntax

results = THINK KB "query_text"
results = THINK KB query_variable

Parameters

ParameterTypeDescription
query_textStringThe question or search query to execute
query_variableVariableVariable containing the search query

Description

Unlike automatic KB search (USE KB), THINK KB provides explicit control over knowledge base queries with structured results for analysis and decision-making.

Return Structure

{
  "results": [
    {
      "content": "Relevant text content",
      "source": "document.pdf", 
      "kb_name": "knowledge_base_name",
      "relevance": 0.85,
      "tokens": 150
    }
  ],
  "summary": "Brief summary of findings",
  "confidence": 0.78,
  "total_results": 5,
  "sources": ["doc1.pdf", "doc2.md"],
  "query": "original search query",
  "kb_count": 2
}

Examples

Basic Usage

USE KB "policies"
results = THINK KB "What is the remote work policy?"

TALK results.summary
PRINT "Confidence: " + results.confidence

FOR i = 0 TO results.results.length - 1
  result = results.results[i]
  PRINT "Source: " + result.source
  PRINT "Content: " + result.content
NEXT i

Decision Making with Confidence

USE KB "technical_docs"
results = THINK KB "How to fix database errors?"

IF results.confidence > 0.8 THEN
  TALK "I found reliable information: " + results.summary
  top_result = results.results[0]
  TALK "From: " + top_result.source
  TALK top_result.content
ELSE IF results.confidence > 0.5 THEN
  TALK "Found some information, but not completely certain"
ELSE
  TALK "Couldn't find reliable information. Consult additional resources."
END IF

Multi-Stage Reasoning

USE KB "research_papers"

' Stage 1: General search
general = THINK KB "machine learning applications"

' Stage 2: Specific search based on findings
IF general.confidence > 0.6 THEN
  specific_query = "deep learning " + general.results[0].content.substring(0, 50)
  specific = THINK KB specific_query
  
  TALK "Overview: " + general.summary
  TALK "Details: " + specific.summary
END IF

Source Filtering

results = THINK KB "contract clauses"

pdf_results = []
FOR i = 0 TO results.results.length - 1
  result = results.results[i]
  IF result.source CONTAINS ".pdf" THEN
    pdf_results.push(result)
  END IF
NEXT i

TALK "Found " + pdf_results.length + " PDF results"

Key Differences from USE KB

FeatureUSE KB (Automatic)THINK KB (Explicit)
TriggerAutomatic on user questionsExplicit keyword execution
ControlBehind-the-scenesFull programmatic control
ResultsInjected into LLM contextStructured data for processing
ConfidenceNot exposedExplicit confidence scoring
FilteringNot availableFull result filtering

Best Practices

  1. Activate KBs First: Use USE KB to activate knowledge bases
  2. Check Confidence: Use thresholds for decision making
  3. Handle Empty Results: Check total_results before accessing array
  4. Filter by Relevance: Consider filtering results below 0.5 relevance
  5. Cache Results: Store in variables for multiple uses

Error Handling

TRY
  results = THINK KB user_query
  IF results.total_results = 0 THEN
    TALK "No information found for: " + user_query
  END IF
CATCH error
  TALK "Search failed: " + error.message
END TRY

Performance

  • Search Time: 100-500ms depending on KB size
  • Memory: Results cached for session
  • Token Limits: Respects 2000 token default limit
  • Concurrent: Searches all active KBs in parallel

See Also