Skip to main content

quix-ai-sdk

Prompt in, analysis out. One method launches a Quix.AI agent session: a sandboxed sub-agent writes fresh analysis code for your prompt, queries the lakehouse, and streams conclusions back.

from quix_ai_sdk import run

result = run("Compare sector times between the two fastest laps of the last session")
print(result)              # the agent's conclusions
result.activities          # typed log: tools called, code generated, queries run
result.session_id          # resume handle + audit id

Install

uv add quix-ai-sdk        # or: pip install quix-ai-sdk

Configuration (env only)

variable meaning
Quix__Portal__Api portal base URL
Quix__Workspace__Id workspace scope for the analysis sandbox
QUIX_TOKEN a user PAT — see below

Quix__Workspace__Id is only required for run()/stream() (the analysis sandbox) — the agents/knowledge/mcp admin surface doesn't need it.

QUIX_TOKEN must be a user PAT. Quix.AI sessions are user-owned — opening one requires a real user's PAT. The Quix__Sdk__Token that deployments auto-inject is a service token and cannot run Quix.AI sessions. Deployments that run analyses (e.g. automated post-race summaries) must therefore add QUIX_TOKEN as a secret. Missing vars raise MissingConfigError naming the variable.

Acting as a user

Web apps forwarding a logged-in user's token pass token= to run() or stream():

result = run("Summarize", token=request.user.quix_token)

The env QUIX_TOKEN is the default; token= is the only per-call override. When a real user triggers the run, pass their token — fall back to env QUIX_TOKEN only for headless/automated runs (attribution and permissions follow the token). Never log the token value or call args containing it.

Streaming

import asyncio
from quix_ai_sdk import stream, TextChunk, Done

async def main():
    async for event in stream("Find anomalies in brake temperature"):
        if isinstance(event, TextChunk):
            print(event.text, end="")
        elif isinstance(event, Done):
            print(f"\nsession: {event.session_id}")

asyncio.run(main())

Distilled events: TextChunk, ToolCalled, CodeGenerated, QueryRan, Progress, Failed, Done. Pass raw=True for wire-level SSE dicts.

Follow-ups

first = run("Summarize the session")
more = run("Expand on the tyre wear point", resume=first.session_id)

Provisioning (0.3): agents / knowledge / mcp

One-time setup of the AI resources your analyses run on. These live in submodules (agents, knowledge, mcp), not in the root namespace. Every write needs an org-admin user PAT (token= per call or env QUIX_TOKEN).

from quix_ai_sdk import agents, runs

agent_id = agents.ensure_analysis_agent(token=ORG_ADMIN_PAT)  # once per org
result = runs.run(f"Analyze test {test_id} ...", agent_id=agent_id)

ensure_analysis_agent() creates (or updates) an org agent with a curated, versioned system prompt shipped in-package: lakehouse query discipline, the delegate_task sandbox workflow, honest handling of missing data. Append app-specific rules with extra_prompt=. All ensure_* functions are idempotent and support dry_run=True previews. Full guide: docs/admin.md.

Failure model

  • Agent outcome → in the result: result.status == "failed", detail in result.error. Never raises.
  • Infrastructure → typed exceptions under QuixAIError: MissingConfigError, AuthError, RunTimeout, StreamInterrupted.
  • A dropped stream cancels the run server-side (platform behavior). The session survives: StreamInterrupted.session_id feeds resume=. The SDK never auto-retries — a retried run duplicates cost and side effects.

Logging

The SDK logs to stdlib logging under the quix_ai_sdk logger and never configures handlers. Suggested app-side setup:

import logging

handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter("%(asctime)s [%(levelname)-8s] [%(name)s] %(message)s"))
logging.getLogger("quix_ai_sdk").setLevel(logging.INFO)
logging.getLogger("quix_ai_sdk").addHandler(handler)

More runnable examples in examples/. Module docs in docs/.

Metadata

Release files for quix-ai-sdk 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quix-ai-sdk 0.3.0
File Size Uploaded
quix_ai_sdk-0.3.0.tar.gz 26.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quix-ai-sdk 0.3.0
File Interpreter ABI Platform
quix_ai_sdk-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.7 kB

Release files / quix_ai_sdk-0.3.0.tar.gz

Download URL quix_ai_sdk-0.3.0.tar.gz
Size 26.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f369005612ecc39f2c3679c7eb4bf8258d619d8ffcc547d1c167dd69850917ff
BLAKE2b-256 checksum
How to use checksums
eee24d8042ddce4b8ab33b6fa1bd5fb5f6f43336ea8e8622ff38886c1960a674
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.33 {"installer":{"name":"uv","version":"0.11.33","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / quix_ai_sdk-0.3.0-py3-none-any.whl

Download URL quix_ai_sdk-0.3.0-py3-none-any.whl
Size 31.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3e2b93e297bf5d2f0db24b3f02e27941e2c4d3bb57371773a0c710ed7aa655db
BLAKE2b-256 checksum
How to use checksums
b17c38dcc25bf795bb8c55744f21a3c52f1e891d0756ef28f908233cc44a0fd9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.33 {"installer":{"name":"uv","version":"0.11.33","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page