โ† Back to Productivity & Tasks
Productivity & Tasks by @lennertjansen

airweave

Context retrieval layer for AI agents across users' applications

0
Source Code

Airweave Search

Search and retrieve context from Airweave collections using the search script at {baseDir}/scripts/search.py.

When to Search

Search when the user:

  • Asks about data in their connected apps ("What did we discuss in Slack about...")
  • Needs to find documents, messages, issues, or records
  • Asks factual questions about their workspace ("Who is responsible for...", "What's our policy on...")
  • References specific tools by name ("in Notion", "on GitHub", "in Jira")
  • Needs recent information you don't have in your training
  • Needs you to check app data for context ("check our Notion docs", "look at the Jira ticket")

Don't search when:

  • User asks general knowledge questions (use your training)
  • User already provided all needed context in the conversation
  • The question is about Airweave itself, not data within it

Query Formulation

Turn user intent into effective search queries:

User Says Search Query
"What did Sarah say about the launch?" "Sarah product launch"
"Find the API documentation" "API documentation"
"Any bugs reported this week?" "bug report issues"
"What's our refund policy?" "refund policy customer"

Tips:

  • Use natural language โ€” Airweave uses semantic search
  • Include context โ€” "pricing feedback" beats just "pricing"
  • Be specific but not too narrow
  • Skip filler words like "please find", "can you search for"

Running a Search

Execute the search script:

python3 {baseDir}/scripts/search.py "your search query"

Optional parameters:

  • --limit N โ€” Max results (default: 20)
  • --temporal N โ€” Temporal relevance 0-1 (default: 0, use 0.7+ for "recent", "latest")
  • --strategy TYPE โ€” Retrieval strategy: hybrid, semantic, keyword (default: hybrid)
  • --raw โ€” Return raw results instead of AI-generated answer
  • --expand โ€” Enable query expansion for broader results
  • --rerank / --no-rerank โ€” Toggle LLM reranking (default: on)

Examples:

# Basic search
python3 {baseDir}/scripts/search.py "customer feedback pricing"

# Recent conversations
python3 {baseDir}/scripts/search.py "product launch updates" --temporal 0.8

# Find specific document
python3 {baseDir}/scripts/search.py "API authentication docs" --strategy keyword

# Get raw results for exploration
python3 {baseDir}/scripts/search.py "project status" --limit 30 --raw

# Broad search with query expansion
python3 {baseDir}/scripts/search.py "onboarding" --expand

Handling Results

Interpreting scores:

  • 0.85+ โ†’ Highly relevant, use confidently
  • 0.70-0.85 โ†’ Likely relevant, use with context
  • 0.50-0.70 โ†’ Possibly relevant, mention uncertainty
  • Below 0.50 โ†’ Weak match, consider rephrasing

Presenting to users:

  1. Lead with the answer โ€” don't start with "I found 5 results"
  2. Cite sources โ€” mention where info came from ("According to your Slack conversation...")
  3. Synthesize โ€” combine relevant parts into a coherent response
  4. Acknowledge gaps โ€” if results don't fully answer, say so

Handling No Results

If search returns nothing useful:

  1. Broaden the query โ€” remove specific terms
  2. Try different phrasing โ€” use synonyms
  3. Increase limit โ€” fetch more results
  4. Ask for clarification โ€” user might have more context

Parameter Reference

See PARAMETERS.md for detailed parameter guidance.

Examples

See EXAMPLES.md for complete search scenarios.