Skip to main content
Production-ready patterns for integrating EverOS into Python applications with the official everos-cloud SDK: client management, error handling, retries, and concurrency.
The everos-cloud 1.x SDK is synchronous. For concurrency, share one client across threads (shown below). There is no async client. Writes are already async server-side: add returns immediately and extraction runs in the background.

Installation

Client management

Create one client and reuse it. It manages connection pooling internally.

Basic usage

Error handling

The wrapper raises EverOSError. HTTP failures come as EverOSAPIError, which carries .status (the HTTP code) and .body (the raw error payload). Branch on .status: 4xx are your bug (don’t retry); 429 and 5xx are transient (retry with backoff).

Retry with backoff

Retry only transient failures (429, 5xx); let client errors fail fast.

Concurrency with threads

The SDK is synchronous, but the client is safe to share across threads. Use a ThreadPoolExecutor to parallelize independent calls, for example searching several users at once.
Because writes are async server-side, you often don’t need client-side concurrency for add at all. Fire the calls and let extraction happen in the background. Reserve the thread pool for read-heavy fan-out (many searches).

Logging and monitoring

Wrap SDK calls to record latency and success:

Best practices

  • Create one EverOS instance and reuse it across your app and threads.
  • Connection pooling and keep-alive are handled internally.
  • Catch EverOSAPIError and branch on .status; catch EverOSError as the catch-all.
  • Retry only 429 / 5xx with exponential backoff; never retry 4xx.
  • The most common 422 is a timestamp in seconds. It must be unix ms.
  • Share one client across a ThreadPoolExecutor for read fan-out.
  • Writes are async server-side; don’t over-parallelize add.
  • method="hybrid" is the default; keyword for exact terms, vector for paraphrase, agentic for complex multi-part queries (use a longer timeout).
  • Pass include_profile=True when you also want consolidated profile items.

Next steps

Batch Processing

Import conversation history at scale.

Agentic Retrieval

LLM-guided search for complex queries.