AI Engine Framework
The distribution is published to PyPI as
sumbai. There is no CI badge because this project has no public source repository — see Documentation.
A modular, extensible framework for building AI-powered applications with Python.
Features
- Modular Architecture - 17 core modules for agents, memory, tools, workflows, and more
- Plugin System - Contracts that let capabilities be added without touching core. Note: the working providers (OpenAI-compatible, Anthropic, Gemini) are implemented in-core; the
plugins/directory in the source tree is not part of the published wheel and there are no separate provider packages to install - Developer SDK - Fluent API with async support and type safety
- CLI Interface - Interactive chat, project management, and diagnostics
- Observability - Built-in tracing, metrics, and audit logging
- Multi-Agent - Collaboration, organization, and session management
- Production Ready - Comprehensive testing, documentation, and CI/CD
Installation
pip install sumbai
The import names stay ai_engine, sdk, and cli; the ai command-line
entry point is installed with the base package.
With optional extras:
pip install "sumbai[embeddings,postgres,otel,pdf,docx,xlsx,litellm]"
The package declares nine extras in total — the seven above plus dev (test
and lint toolchain) and interactive (InquirerPy, already a hard dependency
and kept only for compatibility). See
Installation for what each one brings.
There is no openai, anthropic, qdrant, redis, or all extra. Model
providers are implemented in-core over httpx and need no extra package.
Asking for an extra that does not exist is not an error, and pip will not
tell you: measured with pip 26.1.2, pip install "sumbai[qdrant,openai]"
prints Successfully installed sumbai-1.0.1 and nothing else, so a typo here
fails completely silently. (uv pip install does warn; pip does not.)
Quick Start
Verify the install:
python -c "from sdk import AISDK; print('SDK installed successfully')"
ai --version
A fresh AISDK() has no model provider wired, so asking it to answer
something fails honestly rather than inventing a reply — sdk.agents.run(...)
raises No LLM provider configured for ChatLoop, and the older
Engine().run("Hello, world!") returns a Response carrying
CAPABILITY_NOT_FOUND: Capability 'chat' not found. Both are measured, and
neither is a bug: configuring a provider is the caller's step.
Wiring one is a DI override today, not a facade call. The worked example is
samples/sdk_tour/05_agent.py, and samples/quickstart/chat.py is a complete
runnable chat client.
Documentation
Documentation lives in this repository; there is no published documentation
site. docs/ and samples/ are not part of the distribution — the sdist
carries ai_engine, engine, sdk, cli and these top-level files, so the
links below resolve in a clone of the source and not in an installed package.
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Security
For security vulnerabilities, please see SECURITY.md.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sumbai-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: sumbai-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 10.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5794b4549df4c8e22ddcdda3b7af87a95bbeb87fb8e5b7ba7579f67792cab9e
|
|
| MD5 |
faba435512a4172ccf41bc57bf3c0236
|
|
| BLAKE2b-256 |
6fe06bb6001c71e3a82112335d9981d8b091b6f50c9d651992423aa67c02712d
|
File details
Details for the file sumbai-1.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sumbai-1.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 9.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83a16b67176f9d3094ba5411c2586a79c216f8ad9378f186c87ee9b4e69abe06
|
|
| MD5 |
b8b54276bd1bb22abb040bd33ac1e0ee
|
|
| BLAKE2b-256 |
8204a41172025f74b88831c63cbc9fd503acc176b239d61588ddb83fd0c67ca3
|
File details
Details for the file sumbai-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: sumbai-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 9.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19573de4ae63906557f4e1231a17bef9a1c17d1d303b990f9ca5cd56c0d37dd1
|
|
| MD5 |
ed1f4c91df2b03cef485cb4c28530141
|
|
| BLAKE2b-256 |
a12fa37b4d2173abc1f908680a07243a63bfb35748cde180dcdb37c830233e15
|
File details
Details for the file sumbai-1.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sumbai-1.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 8.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74435f322bbb1383a354a113c21245f8e5aca23e34590f28706568f5a3252f05
|
|
| MD5 |
08c4e6e282e4d2f4359f02f8c22465c6
|
|
| BLAKE2b-256 |
5a560c1c336841bae7a0af2fdf9d178a348de42def5a43cb4df74a61f5e4dfa8
|