Skip to main content

Unified multi-provider AI client, orchestration, and tool system

Project description

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,
    file_handler_class=FileHandler,
    # 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.

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.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matrx_ai-0.4.10.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matrx_ai-0.4.10-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file matrx_ai-0.4.10.tar.gz.

File metadata

  • Download URL: matrx_ai-0.4.10.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for matrx_ai-0.4.10.tar.gz
Algorithm Hash digest
SHA256 a8d0192d7e46a522118061753ae35edb5d011d77256d3fff51ed5d0e60516dc9
MD5 7bf7576270abf72be2a9a4b46791aaa8
BLAKE2b-256 1e4559e3f767ec6983942559f3be7c38e0e22f87b47b4502ba2fd24196c83a65

See more details on using hashes here.

Provenance

The following attestation bundles were made for matrx_ai-0.4.10.tar.gz:

Publisher: publish-package.yml on AI-Matrix-Engine/aidream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file matrx_ai-0.4.10-py3-none-any.whl.

File metadata

  • Download URL: matrx_ai-0.4.10-py3-none-any.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for matrx_ai-0.4.10-py3-none-any.whl
Algorithm Hash digest
SHA256 ef96deac121b4c0a84a64f2d5e65bb7b323b99df75f3bb9e9bcf2741e9508ab9
MD5 7f25b40eda0562c71b7270310a23a51c
BLAKE2b-256 ebaa3f008ae4e97f001e4c2f84fe0895eeca3b152c9c30a3cee2abec388d81ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for matrx_ai-0.4.10-py3-none-any.whl:

Publisher: publish-package.yml on AI-Matrix-Engine/aidream

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page