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)