Skip to content
Back to skills

Exa Architecture Variants

ASecurity

Choose and implement Exa validated architecture blueprints for different scales. Use when designing new Exa integrations, choosing between monolith/service/microservice architectures, or planning migration paths for Exa applications. Trigger with phrases like "exa architecture", "exa blueprint", "how to structure exa", "exa project layout", "exa microservice".

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 10, 2026
devopspythonapibackend

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add micsapp/micstec-skills --skill exa-architecture-variants --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Exa Architecture Variants?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Exa Architecture Variants
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/micsapp-exa-architecture-variants/badge)](https://www.skillsdirectory.com/skills/micsapp-exa-architecture-variants)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: exa-architecture-variants
description: |
  Choose and implement Exa validated architecture blueprints for different scales.
  Use when designing new Exa integrations, choosing between monolith/service/microservice
  architectures, or planning migration paths for Exa applications.
  Trigger with phrases like "exa architecture", "exa blueprint",
  "how to structure exa", "exa project layout", "exa microservice".
allowed-tools: Read, Grep
version: 1.0.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
compatible-with: claude-code, codex, openclaw
---
# Exa Architecture Variants

## Overview
Deployment architectures for Exa neural search at different scales. Exa's search-and-contents model supports everything from simple search features to full RAG pipelines and semantic knowledge bases.

## Prerequisites
- Exa API configured
- Clear search use case defined
- Infrastructure for chosen architecture tier

## Instructions

### Step 1: Direct Search Integration (Simple)

**Best for:** Adding search to an existing app, < 1K queries/day.

```
User Query -> Backend -> Exa Search API -> Format Results -> User
```

```python
from exa_py import Exa
exa = Exa(api_key=os.environ["EXA_API_KEY"])

@app.route('/search')
def search():
    query = request.args.get('q')
    results = exa.search_and_contents(
        query, num_results=5, text={"max_characters": 1000}  # 1000: 1 second in ms
    )
    return jsonify([{
        "title": r.title, "url": r.url, "snippet": r.text[:200]  # HTTP 200 OK
    } for r in results.results])
```

### Step 2: Cached Search with Semantic Layer (Moderate)

**Best for:** High-traffic search, 1K-50K queries/day, content aggregation.

```
User Query -> Cache Check -> (miss) -> Exa API -> Cache Store -> User
                  |                                    
                  v (hit)                              
              Cached Results -> User
```

```python
class CachedExaSearch:
    def __init__(self, exa_client, redis_client, ttl=600):  # 600: timeout: 10 minutes
        self.exa = exa_client
        self.cache = redis_client
        self.ttl = ttl

    def search(self, query: str, **kwargs):
        key = self._cache_key(query, **kwargs)
        cached = self.cache.get(key)
        if cached:
            return json.loads(cached)
        results = self.exa.search_and_contents(query, **kwargs)
        serialized = self._serialize(results)
        self.cache.setex(key, self.ttl, json.dumps(serialized))
        return serialized
```

### Step 3: RAG Pipeline with Exa as Knowledge Source (Scale)

**Best for:** AI-powered apps, 50K+ queries/day, LLM-augmented answers.

```
User Query -> Query Planner -> Exa Search -> Content Extraction
                                                  |
                                                  v
                                          Vector Store (cache)
                                                  |
                                                  v
                                    LLM Generation with Context -> User
```

```python
class ExaRAGPipeline:
    def __init__(self, exa, llm, vector_store):
        self.exa = exa
        self.llm = llm
        self.vectors = vector_store

    async def answer(self, question: str) -> dict:
        # 1. Search for relevant content
        results = self.exa.search_and_contents(
            question, num_results=5, text={"max_characters": 3000},  # 3000: 3 seconds in ms
            highlights=True
        )
        # 2. Store in vector cache for future queries
        for r in results.results:
            self.vectors.upsert(r.url, r.text, {"title": r.title})
        # 3. Generate answer with citations
        context = "\n\n".join([f"[{i+1}] {r.text}" for i, r in enumerate(results.results)])
        answer = await self.llm.generate(
            f"Based on the following sources, answer: {question}\n\n{context}"
        )
        return {"answer": answer, "sources": [r.url for r in results.results]}
```

## Decision Matrix

| Factor | Direct | Cached | RAG Pipeline |
|--------|--------|--------|--------------|
| Volume | < 1K/day | 1K-50K/day | 50K+/day |
| Latency | 1-3s | 50ms (cached) | 3-8s |
| Use Case | Simple search | Content aggregation | AI-powered answers |
| Complexity | Low | Medium | High |

## Error Handling
| Issue | Cause | Solution |
|-------|-------|----------|
| Slow search in UI | No caching | Add result cache with TTL |
| Stale cached results | Long TTL | Reduce TTL for time-sensitive queries |
| RAG hallucination | Poor source selection | Use highlights, increase num_results |
| High API costs | No query deduplication | Cache layer deduplicates identical queries |

## Examples


**Basic usage**: Apply exa architecture variants to a standard project setup with default configuration options.

**Advanced scenario**: Customize exa architecture variants for production environments with multiple constraints and team-specific requirements.

## Resources
- [Exa API Docs](https://docs.exa.ai)
- [Exa RAG Guide](https://docs.exa.ai/reference/rag)

## Output

- Configuration files or code changes applied to the project
- Validation report confirming correct implementation
- Summary of changes made and their rationale

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.