Skip to main content

matrx-ai

Unified multi-provider AI client, orchestration, and tool system for Python. One UnifiedAIClient that speaks to 12+ provider SDKs (OpenAI, Anthropic, Google, Groq, Cerebras, xAI, Together, ElevenLabs, Hugging Face, Cohere, Fireworks, Replicate) through a common UnifiedConfig / UnifiedMessage / UnifiedResponse contract, with streaming, tool calls, agents, and an orchestrator that runs a model until its task is complete.

Install

pip install matrx-ai

Python 3.13+ required. Depends on matrx-utils, matrx-connect, matrx-graph, plus the provider SDKs. Host applications inject their own ORM models at startup via matrx_ai.configure(...).

What's in the box

  • Unified client (UnifiedAIClient): one async interface over every supported provider; request translation + response normalization handled by per-provider adapters.
  • Config + message types: UnifiedConfig, UnifiedMessage, MessageList, UnifiedResponse, enums (Provider, Role, ContentType, FinishReason), usage trackers (TokenUsage, TimingUsage, ToolCallUsage).
  • Orchestrator: AIMatrixRequest, CompletedRequest, execute_until_complete(...) — autonomous multi-turn execution with tool loops.
  • Agents (matrx_ai.agents): template + session-based agent system; caching; services.
  • Tools (matrx_ai.tools): registry + built-in implementations (ctx_patch, ctx_create, shell, code, …). All host-specific integration points (ContextManifest, writeback persistence, test helpers) come in via configure().
  • Context (matrx_ai.context): re-exports AppContext + Emitter from matrx-connect.
  • Persistence (matrx_ai.db): Supabase-backed conversation/request storage. ORM models are host-injected.
  • Providers (matrx_ai.providers): per-provider translators, request shaping, streaming adapters, parameter modifiers (e.g. GPT-5 strips temperature/top_p).

Usage

One-shot call

from matrx_ai import UnifiedAIClient, UnifiedConfig, UnifiedMessage, Provider, Role

client = UnifiedAIClient()
config = UnifiedConfig(
    provider=Provider.ANTHROPIC,
    ai_model="claude-sonnet-4-6",
    messages=[UnifiedMessage(role=Role.USER, content="Summarize the Magna Carta.")],
    stream=False,
)
response = await client.run(config)
print(response.text)

Streaming

config = UnifiedConfig(
    provider=Provider.OPENAI,
    ai_model="gpt-4o",
    messages=[UnifiedMessage(role=Role.USER, content="Explain RAFT.")],
    stream=True,
)
async for chunk in client.stream(config):
    print(chunk.delta, end="", flush=True)

Autonomous execution (tools + multi-turn)

from matrx_ai import execute_until_complete, AIMatrixRequest

request = AIMatrixRequest(
    config=config,
    tools=["web_search", "code_executor"],
    max_iterations=10,
)
completed = await execute_until_complete(request)
print(completed.final_response.text)
print(completed.timing_usage, completed.token_usage)

Host integration — matrx_ai.configure(...)

matrx-ai is designed to be embedded in a larger application (like aidream) that supplies ORM models, settings, and context-object classes. It is also designed to run without any of that configuration — most features work on their own; the DB-dependent ones raise ExtNotConfiguredError at call time if the host didn't wire them up.

import matrx_ai

matrx_ai.configure(
    db_models={"AiModel": AiModel, "CxConversation": CxConversation, ...},
    db_bases={"CxConversationBase": CxConversationBase, ...},
    db_instances={"guest_executions_manager": guest_manager},
    db_extras={"ContentBlocksDTO": ContentBlocksDTO},
    settings=settings,
    get_supabase_client=get_async_supabase_client,
    # Context-object model classes (used by ctx_patch / ctx_create tools)
    context_object_cls=ContextObject,
    context_object_type_cls=ContextObjectType,
    context_source_cls=ContextSource,
    persist_mode_cls=PersistMode,
    context_manifest_cls=ContextManifest,
    load_manifest_from_ctx=load_manifest_from_ctx,
    schedule_context_writeback=schedule_writeback,
    # …anything else the host wants to make available
)

This is the reference implementation of the "capability-within, injection-without" pattern used throughout the Matrx family — the package stores injected values in a module-level _ext registry; feature code retrieves them at call time via get_ext("…"). import matrx_ai always works in a minimal environment; only features that need a specific injection will raise if it's missing.

For a client host, get_jwt may be a synchronous or asynchronous zero-argument provider. matrx-ai resolves it at each authenticated server request and does not cache its result. Once a host configures that provider, a failure or missing token refuses the authenticated request instead of falling back to anonymous access. Without a provider, the public tool-catalog fetch remains unauthenticated.

Dependency posture

Hard deps: matrx-utils, matrx-connect, matrx-graph, plus the provider SDKs (Anthropic, OpenAI, Google GenAI, Groq, Cerebras, xAI, Together, Cohere, Fireworks, Replicate, Tiktoken) and core libs (pydantic, httpx, aiohttp, supabase, asyncpg, json-repair, numpy, rich).

matrx-ai does not depend on matrx-orm. The host app that embeds matrx-ai may use matrx-orm (aidream does), but matrx-ai itself accepts ORM model classes through configure(db_models=..., db_bases=..., ...) rather than importing them.

Replaces

The old root-level ai/ folder in the aidream monorepo. matrx-ai is now the canonical AI layer.

Contributing

See CLAUDE.md for package-specific rules (including the _ext injection pattern and the forbidden-imports list). Deep per-subsystem docs live in matrx_ai/MODULE_README.md. This package lives in the aidream monorepo at github.com/AI-Matrix-Engine/aidream-current.

License

MIT.

Release files for matrx-ai 0.5.328

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

Source distribution (sdist)

Source distribution for matrx-ai 0.5.328
File Size Uploaded
matrx_ai-0.5.328.tar.gz 3.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for matrx-ai 0.5.328
File Interpreter ABI Platform
matrx_ai-0.5.328-py3-none-any.whl Python 3 none any Details

Total release size: 7.0 MB

Release files / matrx_ai-0.5.328.tar.gz

Download URL matrx_ai-0.5.328.tar.gz
Size 3.7 MB
Tags Source
SHA-256 checksum
How to use checksums
9c9ce32e92efd77a64d6483fe5fedd623c846272d45a791eb5fd8316e4ff0dff
BLAKE2b-256 checksum
How to use checksums
4434e9f69e8ce1bcc5d764d4823d2b4ece4bf0862cc931c24f0dc826e0da2f9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / matrx_ai-0.5.328-py3-none-any.whl

Download URL matrx_ai-0.5.328-py3-none-any.whl
Size 3.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7e69e3314cf224cb6bec3f27830d9d1a4e257b5192449b31c1552cf78b3fd659
BLAKE2b-256 checksum
How to use checksums
92ee745b984bed6a3f2cfd407a31b468726f8bcb3a974aa9201069760d96bcf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.328 This release

2 release files

0.5.99

2 release files

0.5.98

2 release files

0.5.97

2 release files

0.5.96

2 release files

0.5.95

2 release files

0.5.94

2 release files

0.5.93

2 release files

0.5.92

2 release files

0.5.91

2 release files

0.5.90

2 release files

0.5.89

2 release files

0.5.88

2 release files

0.5.87

2 release files

0.5.86

2 release files

0.5.85

2 release files

0.5.84

2 release files

0.5.83

2 release files

0.5.82

2 release files

0.5.81

2 release files

0.5.80

2 release files

0.5.79

2 release files

0.5.78

2 release files

0.5.77

2 release files

0.5.76

2 release files

0.5.75

2 release files

0.5.74

2 release files

0.5.73

2 release files

0.5.72

2 release files

0.5.71

2 release files

0.5.70

2 release files

0.5.69

2 release files

0.5.68

2 release files

0.5.67

2 release files

0.5.66

2 release files

0.5.65

2 release files

0.5.64

2 release files

0.5.63

2 release files

0.5.62

2 release files

0.5.61

2 release files

0.5.60

2 release files

0.5.59

2 release files

0.5.58

2 release files

0.5.57

2 release files

0.5.56

2 release files

0.5.55

2 release files

0.5.54

2 release files

0.5.53

2 release files

0.5.52

2 release files

0.5.51

2 release files

0.5.50

2 release files

0.5.49

2 release files

0.5.48

2 release files

0.5.47

2 release files

0.5.46

2 release files

0.5.45

2 release files

0.5.44

2 release files

0.5.43

2 release files

0.5.42

2 release files

0.5.41

2 release files

0.5.40

2 release files

0.5.39

2 release files

0.5.38

2 release files

0.5.37

2 release files

0.5.36

2 release files

0.5.35

2 release files

0.5.34

2 release files

0.5.33

2 release files

0.5.32

2 release files

0.5.31

2 release files

0.5.30

2 release files

0.5.29

2 release files

0.5.28

2 release files

0.5.27

2 release files

0.5.26

2 release files

0.5.25

2 release files

0.5.24

2 release files

0.5.23

2 release files

0.5.22

2 release files

0.5.21

2 release files

0.5.20

2 release files

0.5.19

2 release files

0.5.18

2 release files

0.5.17

2 release files

0.5.16

2 release files

0.5.15

2 release files

0.5.14

2 release files

0.5.13

2 release files

0.5.12

2 release files

0.5.11

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.90

2 release files

0.4.89

2 release files

0.4.88

2 release files

0.4.87

2 release files

0.4.86

2 release files

0.4.85

2 release files

0.4.61

2 release files

0.4.60

2 release files

0.4.59

2 release files

0.4.58

2 release files

0.4.57

2 release files

0.4.56

2 release files

0.4.55

2 release files

0.4.54

2 release files

0.4.53

2 release files

0.4.52

2 release files

0.4.51

2 release files

0.4.50

2 release files

0.4.49

2 release files

0.4.48

2 release files

0.4.47

2 release files

0.4.46

2 release files

0.4.45

2 release files

0.4.44

2 release files

0.4.43

2 release files

0.4.42

2 release files

0.4.41

2 release files

0.4.40

2 release files

0.4.39

2 release files

0.4.38

2 release files

0.4.37

2 release files

0.4.36

2 release files

0.4.35

2 release files

0.4.34

2 release files

0.4.33

2 release files

0.4.32

2 release files

0.4.31

2 release files

0.4.30

2 release files

0.4.29

2 release files

0.4.28

2 release files

0.4.27

2 release files

0.4.26

2 release files

0.4.25

2 release files

0.4.24

2 release files

0.4.23

2 release files

0.4.22

2 release files

0.4.21

2 release files

0.4.20

2 release files

0.4.19

2 release files

0.4.18

2 release files

0.4.17

2 release files

0.4.16

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.12

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

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