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.4.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.4.0
File Size Uploaded
quix_ai_sdk-0.4.0.tar.gz 28.0 kB Details

Built distribution (wheel)

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

Total release size: 60.7 kB

Release files / quix_ai_sdk-0.4.0.tar.gz

Download URL quix_ai_sdk-0.4.0.tar.gz
Size 28.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1d8aeec39b0131b94ae37a8b7f69ef59199c7474ac7089cfb25e850bdcafce1f
BLAKE2b-256 checksum
How to use checksums
7f235109aef73d7c31690f52731f3dd1f1af9036b0780f3af1786742f47be5ba
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.4.0-py3-none-any.whl

Download URL quix_ai_sdk-0.4.0-py3-none-any.whl
Size 32.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fb6910bf24887024f8a3859299d9d97adfc57b18b8d1451e5b7fe565a41cd342
BLAKE2b-256 checksum
How to use checksums
2af3efe6fa3d5358f0aea67fa2d84602c5df3f251e1a25d30855b51d7e477d34
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

This release

0.4.0 This release

2 release files

0.3.0

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