Integrations

Anthropic Claude

Build retrieval-augmented generation pipelines by combining Aether's vector search with Anthropic Claude's language models.

Aether handles document storage and semantic retrieval while Claude generates grounded, context-aware answers from the retrieved content. This pattern keeps responses factual and traceable back to your source documents.

This is the most common pattern you'll use with Aether: your application receives a question, Aether finds the most relevant documents, and Claude synthesizes a clear answer from that context. The entire flow is just a few lines of code.


Prerequisites

Install the Aether SDK alongside the Anthropic SDK for your language of choice.

pip install aether-ai anthropic

Go and .NET

Go and .NET call the Anthropic API directly via net/http and HttpClient respectively — no third-party LLM SDK required.

Environment variables

Configuration

Set the following environment variables before running the examples below.

  • ANTHROPIC_API_KEY — your Anthropic API key (required).
  • AETHER_API_KEY — your Aether API key, loaded and passed to the client below (optional for unauthenticated deployments).

Full working example

The example below assumes you've already inserted documents into Aether (see the Documents API for how to do that). The retrieve() call finds the most relevant passages, formats them as context, and passes them to Claude in the system prompt.

The pattern is straightforward: retrieve relevant documents from Aether, inject them as context into a Claude prompt, and let Claude synthesize a grounded answer.

import os

from aether import AetherClient
import anthropic

aether = AetherClient(api_key=os.environ.get("AETHER_API_KEY"))

# Retrieve relevant context from your document store
results = aether.retrieve("How many days of PTO do I get?", k=3)
context = "\n\n".join(f"[{r.title or r.doc_id}]\n{r.content}" for r in results)

# Generate a grounded answer with Claude
client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system=f"Answer using only this context:\n\n{context}",
    messages=[{"role": "user", "content": "How many days of PTO do I get?"}],
)

print(message.content[0].text)